Пункт меню определяется drupal_get_form
как функция обратного вызова и возвращает форму из функции обратного вызова. Как я могу добавить taxonomy_term_reference
поле в эту форму?
$items['files/add'] = array(
'title' => 'Add file',
'description' => 'Allows users to add files',
'type' => MENU_CALLBACK,
'page callback' => 'drupal_get_form',
'page arguments' => array('mymodule_add_file'),
'access callback' => TRUE,
);
function mymodule_add_file($form, &$form_state) {
drupal_set_title("Add file");
$form['mymodule_form'] = array(
'#type' => 'fieldset',
'#tree' => TRUE,
'#collapsable' => FALSE,
'#title' => 'Adding file to locker room',
);
$form['mymodule_form']['file'] = array(
'#type' => 'managed_file',
'#title' => 'Upload file',
);
$form['mymodule_form']['tag'] = array(
'#type' => 'taxonomy_term_reference',
'#title' => 'Tags',
);
return $form;
}
Я не уверен, как добавить поле taxonomy_term_reference для $form['mymodule_form']['tag']
. Я хочу, чтобы это поле было текстовым полем с автозаполнением из словарных терминов и добавлением нового термина, если введенный термин не найден
7
taxonomy-terms
forms
Срихита Нарра
источник
источник
page
делает в конце вашего кода? швы к моему как недопустимый код PHP?$submitted_tags = $form_state['values']['tags']; $node->field_tags[LANGUAGE_NONE][0]['value'] = $submitted_tags;
не работает для меня Просто дает мне ошибки.Вы должны включить идентификатор лексики - вы должны быть в состоянии жестко закодировать его, так что либо
);
или для Vocab ID 5
Не проверено, но это должно работать. Еще есть гусак здесь: http://drupal.org/node/854216
источник
Я использовал это, и у меня работали автозавершения обратных вызовов, но не для указанного словаря таксономии. Вместо этого он дал результаты из всех вокаб
Я не совсем уверен, почему это честно.
источник
@tecjam Для Drupal 7 у вас это почти получилось. Все, что вам нужно сделать, это использовать имя поля вместо идентификатора вокаба.
Нравится:
Замените field_name на имя вашего поля.
источник