Widgets

之前為了要在 Drupal 7 當中增加使用者的相關屬性欄位(user profile field),例如使用者的英文名字、個人網站之類的個人資訊,很直覺的到 Home » Administration » Configuration » People » Account settings » Manage fields 這個位置新增一個欄位給使用者資訊(user profile)使用,但在新增欄位時(Add new field)卻會出現錯誤訊息「Add new field: you need to select a widget.」。嗯好,遇到了狀況(bug),就來處理看看囉(debug)。

當時的背景資訊是:

  • 有新增並啟用客製化的模版(theme)
  • 有新增並啟用客製化的模組(module)
  • 沒有動到 Drupal Core


幾個直覺反應是:
  • 可能是 Drupal 7 的 bug?
  • 有發現在新增欄位時(Add new field)最右側的下拉式選單(select list, options)是沒有啟用的狀態,無法點選。但是文件資料上看到的畫面都是可以下拉做選取的。推斷可能跟 JavaScript 有關連。

解有錯誤訊息的狀況時,通常可以先從:直接將錯誤訊息丟進搜尋引擎找看看有沒有前人處理過的經驗。很幸運的在看了兩三篇文件後就找到了方向,是可能因為 jQuery 方面採用了新版本的 jQuery 所造成的狀況(所以在我套用自製模版與模組之後,才發生這個狀況),但後來有看到一個比較乾脆的解法:修改檔案 modules/field_ui/field_ui.js 大約 89 行附近的這一行,即可解決:

$(this).html(html).attr('disabled', disabled ? 'disabled' : '');
改成:
$(this).html(html).attr('disabled', disabled ? 'disabled' : false);


Brought to you by

0 Comments:

Post a Comment

 
Top