私はttkによって提案された機能を集中的に使用していましたが、最近の更新は物事を台無しにしたと思います...
以下は、Drupal 7.22およびctools 7.x-1.3で動作する以前のソリューションの新しいバージョンです。
したがって、前の投稿のように、次のようにカスタム関数を呼び出します。
my_field_attach_form('field_body', 'node', 'blog', $node, $form, $form_state, LANGUAGE_NONE);
エンティティバンドルがパラメータになっていることに注意してください。これは、ユーザーの編集にもこの機能を使用していたためです。このように、分類用語やその他のエンティティにも使用できます。
そして、my_field_attach_form
次のように定義されます:
function my_field_attach_form($field_name, $entity_type, $bundle, $entity, &$form, &$form_state, $langcode = NULL) {
// Set #parents to 'top-level' if it doesn't exist.
$form += array('#parents' => array());
// If no language is provided use the default site language.
$options = array(
'language' => field_valid_language($langcode),
'default' => TRUE,
);
// Append to the form
ctools_include('fields');
$field_instance = field_info_instance($entity_type, $field_name, $bundle);
$form += (array) ctools_field_invoke_field($field_instance, 'form', $entity_type, $entity, $form, $form_state, $options);
}
この機能により時間を大幅に節約できました。
#access = FALSE
、このコンテキストではハックのように見える設定をする代わりに、他のコンテンツタイプのようにフィールドを制御できます。