Drupal → Taxonomy Menu и названия пунктов меню из поля термина
При создании меню с помощью модуля 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); }
Комментарии
Вместо:
'und'
Лучше использовать константу:
LANGUAGE_NONE
А еще лучше не хардкодить язык поля, даже если на сайте нет мультиязычности :)
что это даёт?
Drupal way же!
Ну 'und' - он же undefined, но до этого можно догадаться не сразу.
А константа LANGUAGE_NONE - сразу говорит о том, что мы обращаемся к значению поля без языковых настроек. - Или нет?
Хотя тогда, наверное, лучше вообще entity metadata wrapper использовать, чтобы совсем красиво было. =)
Спасибо за сниппет!
Чёта не работает((. или у меня руки кривые, не туда вставил. подскажи, надо. я новичок.
Подскажите можно как то сделать логическое поле в термине(checkbox) при включении которого будет выключатся пункт меню.
пробовал $item['hidden'] = $term->field_hidden['und'][0]['value'];
Оставить комментарий