我有一个使用自动填充小部件类型的实体引用字段。我想将小部件类型更改为“选择列表”以添加新节点,并在编辑时保持自动完成。
我已经有两天了。我没有找到任何解决方案。
答案 0 :(得分:1)
我这样做的一种方法是使用hook_form_alter
。创建一个自定义模块(如果你还没有)(现在我们称之为mymodule)并添加函数:
function mymodule_form_alter(&$form, &$form_state, $form_id)
在那里,您可以检查ID以查看正在处理的表单,它应该是mytype_node_form
的内容,但您也可以通过执行drupal_set_message(print_r($form_id, true));
之类的操作来相当轻松地检查它功能
您可以通过选中$form_state['node']->nid
来查看是否要添加或更新。之后,您可以通过执行以下操作来修改表单:
function mymodule_form_alter(&$form, &$form_state, $form_id)
{
// check to see if this is our form and it is a new node form (doesn't have an id yet)
if ($form_id == 'mytype_node_form' && !isset($form_state['node']->nid)) {
$form['field_coordinators']['und']['#type'] = 'select';
}
}
这只是一个开始介意你,你可能不得不改变甚至删除其他属性,但你可以通过设置字段使用选择列表并再次检查$form
的结构来查看这些设置