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