xandeadx.ru Блог музицирующего веб-девелопера

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);
}
Написанное актуально для Taxonomy Menu 7.x-1.5
Похожие записи

Комментарии RSS

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

что это даёт?

Drupal way же!

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

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

Спасибо за сниппет!

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

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

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

$item['remove'] = TRUE;

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании