Вывод терминов таксономии.

Аватар пользователя Junnior Junnior 14 августа 2018 в 13:08

Выпадающий список работает корректно если изменять отношения у уже созданного термина каталога.

Как сделать выпадающий список отношений, когда добавляешь новый термин для каталога? Тут не выводится.

Применение выпадающего списка для уже созданного термина.

function custom_form_taxonomy_form_term_alter(&$form) {
  if (!empty($form['#term'])) {
    if ($form['#term']['vid'] == 2){
      $form['relations']['parent']['#multiple'] = FALSE;
    }
  }
}

Чтобы выпадающий список работал возможно нужно поменять хук?

0 Thanks

Лучший ответ

Аватар пользователя fairrandir fairrandir 14 августа 2018 в 14:41
1

У хука form_alter есть второй аргумент - $form_state. В данной переменной в $form_state['term'] лежит заглушка под термин, если форма для добавления, или же существующий термин, если форма для редактирования. В $form['#term'] какие-то значения лежат только в случае формы для редактирования.

Короче - проверяйте $form_state['term'], а не $form['#term']

Комментарии

Аватар пользователя fairrandir fairrandir 14 августа 2018 в 14:41
1

У хука form_alter есть второй аргумент - $form_state. В данной переменной в $form_state['term'] лежит заглушка под термин, если форма для добавления, или же существующий термин, если форма для редактирования. В $form['#term'] какие-то значения лежат только в случае формы для редактирования.

Короче - проверяйте $form_state['term'], а не $form['#term']

Аватар пользователя Junnior Junnior 14 августа 2018 в 15:17

Пробовал заменять $form['#term'] на $form_state['term'] Список так и не выводится, когда создаёшь новый термин.

Аватар пользователя Junnior Junnior 15 августа 2018 в 9:58

Вообщем у меня получилось. Если кому-то же нужно, вот код:

function custom_form_taxonomy_form_term_alter(&$form, &$form_state) {
if ($form_state['build_info']['args'] = TRUE) {
  if (empty($form_state['term']->name)){
    $form['relations']['parent']['#multiple'] = FALSE;
  }
}