Drupal 7 встроенный пункт меню темы

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

из этого: из этого:   к этому: к этому:

Так как я обычно делаю модуль Dev и подобные задачи для Koumbit Я знал, что в Drupal уже есть встроенный класс для списков, содержащих ссылки, которые будут отображать мои ссылки встроенными. Этот класс является «встроенными ссылками». К сожалению, я не знаю, как изменить эти значения на слое темы. Поэтому я посетил страницу API theme_menu_tree () в надежде на вдохновение и нашел кое-что в этот комментарий от wgsimon , Пользовательская тема может переопределить тему определенного пункта меню в Drupal 7 с помощью шаблона THEME_menu_tree__MENU_NAME ().

Я добавил следующий код в template.php моей темы, чтобы и стандартное пользовательское меню, и наше пользовательское меню для анонимных пользователей использовали встроенную тематику Drupal для встроенных ссылок:

/ ** * Сделать пользовательское меню встроенным * / function customtheme_menu_tree__user_menu ($ variable) {return '& lt; ul class = "links inline clearfix" & gt;' , $ variable ['tree']. '& Л; / мкл & GT;' ; } / ** * Сделать анонимное пользовательское меню встроенным * / function customtheme_menu_tree__menu_user_menu_anonymous_ ($ variable) {return '& lt; ul class = "links inline clearfix" & gt;' , $ variable ['tree']. '& Л; / мкл & GT;' ; }

Просто замените customtheme на имя вашей темы и измените названия меню, чтобы использовать это самостоятельно.

Для переключателя языка я сделал нечто подобное, посоветовавшись locale_block_view () в интерфейсе API и в том, что блок переключателя языка использует тему ('links__locale_block', $ variable); предоставить его содержание. Переопределение на основе template.php выглядело так:

/ ** * Тема ссылки переключателя языка как встроенная * / function customtheme_links__locale_block ($ variable) {array_push ($ variable ['attribute'] ['class'], 'links', 'inline', 'clearfix'); возвращаемая тема ('ссылки', $ переменные); }

Итак, я узнал, что шаблон theme_function__object_name будет работать для любой функции темы, называемой таким образом. Я уверен, что это должно быть указано где-то в документации по Drupal API.

В этот момент мои меню выглядели так: В этот момент мои меню выглядели так:

Последний шаг более специфичен для темы. В моем случае я переместил содержимое <div class = "region region-header"> и окружающую разметку в моем page.tpl.php до логотипа и вставил следующие правила CSS в соответствующие файлы:

.region-header .block {display: inline-block; нижнее поле: 0; } .region-header {text-align: right; }

Результат: Результат:

Очевидно, что еще предстоит проделать определенную работу, прежде чем конечный продукт будет похож на дизайн, но до этого момента моей главной заботой было избежать загромождения моего CSS кодом, который уже присутствует в ядре Drupal.

Stylish-Portal.infO 2011
При копирование материала активная ссылка на сайт!
Copyright 2004-2016 © www.zone55.ru. All rights reserved.