Вы здесь

Пункт меню не являющийся ссылкой — 1

Версия системы: 
Друпал 7
Друпал 6
Друпал 5

Меню Друпала позволяет определять любое количество пунктов, каждый из которых является ссылкой. Но иногда нужно сделать дерево пунктов, первый из которых ссылкой бы не являлся. Это нам поможет сделать приведенный ниже код.

Для начала определим волшебное значение <notlink>, которое будет определять «путь в никуда», также как <front> определяет первую страницу. Решающее значение здесь имеет функция theme_menu_item_link(). Поместите следующий код в файл template.tpl.php:

function НАЗВАНИЕ-ТЕМЫ_menu_item_link($item, $link_item) {
  if ($item['path'] == '<notlink>') {
    $attributes['title'] = $link['description'];
    return '<span'. drupal_attributes($attributes) .'>'. $item['title'] .'</span>';
  }
  else {
    return l($item['title'], $link_item['path'], !empty($item['description']) ? array('title' => $item['description']) : array(), isset($item['query']) ? $item['query'] : NULL);
  }
}

Теперь любой пункт меню для которого мы укажем путь <notlink>, не будет ссылкой. Отметьте, что на этот пункт не получиться нажать мышкой, поэтому для него надо отметить поле «Развернуть», чтобы его подменю было доступно.

Дополнительные модули

  • DHTML Menu — перемещение по меню без перезагрузки страниц
  • Menu Firstchild — пункт меню не являющийся ссылкой
  • Menu item container — контейнер для пунктов меню
  • Special menu items module — добавление разделителей в списки пунктов меню