Изменение внешнего вида отдельных пунктов меню возможно следущим способом:
Для начала каждому пункту меню требуется присвоить уникальный ID. Для этого добавьте функцию в template.php
function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) {
$link = menu_item_link($mid);
$css_id = strtolower(str_replace(' ', '_', strip_tags($link)));
return '<li id="' . $css_id . '" class="' . ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. $link . $children ."</li>\n";
}
?>
Функция присваивает каждому пункту каждого меню текстовый идентификатор по имени ссылки. Т.е. пункту меню Administer будет присвоен id="administer"
Теперь необходимо задать стиль идентификатора в файле style.css:
font-weight: bold; //здесь может быть любое свойство CSS для ссылки
}
).
Теперь пункт My account станет жирным. Закономерный вопрос, как изменить стиль для пункта, написанного на русском? Ответ: идентификатор русского пункта будет таким же, как при просмотре UTF-8 в кодировке Windows-1251. (самый простой способ - посмотреть сайт в Windows-1251)
Комментарии
жуткая каша - содержимое мешать с разметкой. дикость полная ... несколько проблем, на вскидку:
1) Что делать, если кто-то сменит ссылки при перемещении материала?
2) Как быть при дублировании ссылок?
3) Что будет при ссылке с именем, которым нельзя называть ID? URL и ID не совпадают по запрещенным словам...
1)Если речь о title ссылки - то опять менять код в CSS
2)При дублировании title свойство СSS применится ко всем
3)Каким именм нельзя называть ID?
А можно переделать код так, чтобы присваивался не текстовый id, а цифровой, типа второй пункт сверху - id 2 или дата создания меню? Тогда будет проще меня если что.
2 Oboggy,
1) У вас все редакторы имеют доступ к CSS и умеют его править? (каждый гасконец с детства...(с)Боярский)
2) ID дублировать?
3) Geldora вам показал... сложность с &, пробелами, цифрами и - в начале... да много чего...
2 Geldora, ID 2 - нельзя
$css_id = $mid;
и грамотные стили
function phptemplate_menu_item_link($item, $link_item) {
return l($item['title'], $link_item['path'],
!empty($item['description']) ? array('title' => $item['description'],'id'=>$item["pid"]) : array('id'=>$item["pid"]),
isset($item['query']) ? $item['query'] : NULL);
}
установка id тэгу линка
2 PVasili
Вам не нравится решение? Мне тоже) Его можно использовать только для статичных ссылок. В конце-концов, Вы можете предложить свое.
2)Еще раз: если у Вас есть 2 пункта меню с одинаковыми названиями, то выглядеть они будут одинаково (это просто констатация факта)
2 Гость
id дублируются
решение не универсальное, но интересное и если приложить голову то можно сделать как надо. Спасибо.