Прикрепить класс к пункту меню в зависимости от типа контента в Drupal - PullRequest
0 голосов
/ 27 января 2010

Я видел несколько функций, позволяющих прикреплять классы / идентификаторы к элементам меню; к сожалению, ни один из них не применим к моему случаю использования. То, что я хочу сделать, это назначить класс / ID для любого пункта меню на основе типа содержимого связанного элемента.

Например, у меня есть тип контента, который называется «Внутренний», который отображается только в том случае, если зритель находится в пределах допустимого диапазона IP-адресов (мой способ иметь страницы интрасети без отдельного сайта). Я хочу по-разному оформить эти ссылки.

В том же духе я хотел бы иметь возможность стилизовать внешние ссылки в меню.

Обратите внимание, я знаю о модуле Атрибуты меню (http://drupal.org/project/menu_attributes),), который позволяет мне назначать свои собственные идентификаторы для пунктов меню, но я хочу что-то автоматизировать, так как у меня уже более 100 редакторов контента на сайте. Что-то вроде этого в идеале должно быть автоматизированным процессом.

Ответы [ 2 ]

0 голосов
/ 27 января 2010

Вы можете добавить класс в theme_menu_item или theme_menu_item_link (в зависимости от того, хотите ли вы его на li или a). Затем вам понадобится метод определения типа содержимого данного пункта меню. Что-то вроде node_load(array('path' => $link['href'])) должно сработать (не проверено).

0 голосов
/ 27 января 2010

Вы можете загрузить другую тему в каталог конфигурации. Возможно, вам потребуется имя хоста для вашего диапазона IP-адресов.

сайты / по умолчанию / темы / my_theme
сайты / intranet.tld / темы / my_theme

Вы избежите дублирования, используя символическую ссылку на тему и переписывая нужный HTML / CSS.

См. Документацию в файле settings.php

.

Это только один из многих способов ...

...