何らかの理由で、ユーザーのバンドルにフィールドを表示するときに、私のallowed_values_functionが呼び出されないことがあります。コード:フィールドを作成するときに、Drupalのallowed_values_functionが呼び出されない
function get_business_units()
{
$options = entity_load('business_unit', FALSE, NULL, FALSE);
$opt = bu_to_list_values($options);
return $opt;
}
function MYMODULE_enable()
{
if (!field_info_field('field_user_business_unit')) {
$field = array(
'field_name' => 'field_user_business_unit',
'type' => 'text',
'settings' => array(
'allowed_values' => array(),
'allowed_values_function' => 'get_business_units',
)
);
field_create_field($field);
// Create the instance on the bundle.
$instance = array(
'field_name' => 'field_user_business_unit',
'entity_type' => 'user',
'label' => 'Business Unit',
'bundle' => 'user',
'required' => FALSE,
'settings' => array(
'user_register_form' => 1,
),
'widget' => array(
'type' => 'options_select',
),
);
field_create_instance($instance);
}
}
フィールドが作成され、その情報を編集するときにも、ユーザーが「編集」ページに表示されます。しかし、唯一の値は "選択"または "なし"です。私のメソッドは決して呼び出されません(私はデバッグポイントを配置しました)。これはMYMODULE.installファイル内にあります。
これも私がもともと考えていたものですが、それでも呼び出されることはありません。 get_business_units()をMYMODULE.moduleファイルに移動しましたが、移動しません。クリアされたキャッシュ。私はdevelでPHPコードを実行することができ、呼び出されます。私の$フィールド構造に何か問題がありますか?設定はインスタンスまたはウィジェットレベルで定義する必要がありますか? – Jack
他に何か考えてもらえますか?私はコンピューターサイエンスの棺のプロジェクトを終えるために一ヶ月を残しましたが、これは機能の多くを停止させます。 – Jack