我正在密集使用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
在这种情况下进行设置。