Drupal → Taxonomy Menu и названия пунктов меню из поля термина

20.03.2015

При создании меню с помощью модуля Taxonomy Menu, названия пунктов формируются из имени термина, что не всегда уместно.

Способ брать названия пунктов меню из кастомного поля термина field_menu_title:

/**
 * Implements hook_taxonomy_menu_update().
 */
function MODULENAME_taxonomy_menu_update(&$item) {
  $term = taxonomy_term_load($item['tid']);
  if ($term && !empty($term->field_menu_title['und'][0]['value'])) {
    $item['name'] = $term->field_menu_title['und'][0]['value'];
  }
}

/**
 * Implements hook_taxonomy_menu_insert().
 */
function MODULENAME_taxonomy_menu_insert(&$item) {
  MODULENAME_taxonomy_menu_update($item);
}
Написанное актуально для
Taxonomy Menu 7.x-1.5
Похожие записи

Комментарии

АндрЭ
24.03.2015, 19:41

Вместо:
'und'
Лучше использовать константу:
LANGUAGE_NONE
А еще лучше не хардкодить язык поля, даже если на сайте нет мультиязычности :)

Niremizov
31.03.2015, 16:00

Ну 'und' - он же undefined, но до этого можно догадаться не сразу.
А константа LANGUAGE_NONE - сразу говорит о том, что мы обращаемся к значению поля без языковых настроек. - Или нет?

Хотя тогда, наверное, лучше вообще entity metadata wrapper использовать, чтобы совсем красиво было. =)

Чёта не работает((. или у меня руки кривые, не туда вставил. подскажи, надо. я новичок.

Гость
09.06.2015, 14:04

Подскажите можно как то сделать логическое поле в термине(checkbox) при включении которого будет выключатся пункт меню.

пробовал $item['hidden'] = $term->field_hidden['und'][0]['value'];

Добавить комментарий