Темизация блока в D7

Главные вкладки

Аватар пользователя trololoo trololoo 21 апреля 2011 в 11:42

Приветствую!
Уже битый час бьюсь с темизацией блока, никак не могу подобрать правильное имя шаблона. Имеется блок меню, чтобы сразу было понятнее: module = menu, delta = menu-left-menu
И чтобы ещё понятнее: <div id="block-menu-menu-left-menu" class="block block-menu">
Прописываю block--menu--menu-left-menu.tpl.php, всё по стандартам — block--[region|[module|--delta]].tpl.php, и ничего не выходит.
К примеру с module = block, delta = 2 и т.п. никаких проблем, пишу block--block--2.tpl.php и всё работает, а тут такая неприятность, подскажите пожалуйста как правильно.

Комментарии

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 21 апреля 2011 в 20:03

1. devel_themer module (не знаю правда есть ли он для 7)
2. в 6-ке если шаблон использовал -[region]-, то обязан присутсвовать базвовый шаблон региона [region].tpl.php

Аватар пользователя trololoo trololoo 21 апреля 2011 в 20:53

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
1. devel_themer module (не знаю правда есть ли он для 7)
2. в 6-ке если шаблон использовал -[region]-, то обязан присутсвовать базвовый шаблон региона [region].tpl.php

1. Если я не ошибаюсь, то он теперь является частью модуля devel, который я поставил и кроме реестра функций оформления, от которого никакого толку относительно данной проблемы, ничего не нашёл (для тех кто нашёл ещё что-нибудь, прошу отписаться).
2. Я создал block--menu.tpl.php, block--sidebar_first.tpl.php, но block--menu--menu-left-menu.tpl.php всё-равно не работает.

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 22 апреля 2011 в 8:32

trololoo wrote:
2. Я создал block--menu.tpl.php, block--sidebar_first.tpl.php, но block--menu--menu-left-menu.tpl.php всё-равно не работает.

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
...обязан присутсвовать базвовый шаблон региона [region].tpl.php

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 21 апреля 2011 в 21:55

"trololoo" wrote:
1. Если я не ошибаюсь, то он теперь является частью модуля devel, который я поставил и кроме реестра функций оформления, от которого никакого толку относительно данной проблемы, ничего не нашёл (для тех кто нашёл ещё что-нибудь, прошу отписаться).

Devel Themer очпочковался в отдельный проект о чём и написано на странице модуля Devel

Аватар пользователя trololoo trololoo 21 апреля 2011 в 23:36

"RxB" wrote:
Devel Themer очпочковался в отдельный проект о чём и написано на странице модуля Devel

Вы правы, строчку на странице модуля: «Note: theme developer module has moved» я благополучно упустил. Спасибо.

UPD: Поставил, штука полезная. Посмотрел что советует в качестве названий шаблонов: block__menu__menu-left-menu < block__menu < block__sidebar_first < sites/all/themes/rikona/templates/block.tpl.php
Ничего нового к сожалению не узнал, block--menu--menu-left-menu.tpl.php не работает. Не знаете в чём может быть причина?

Аватар пользователя trololoo trololoo 22 апреля 2011 в 11:14

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
...обязан присутсвовать базвовый шаблон региона [region].tpl.php

Создал region.tpl.php и region--sidebar_first.tpl.php, бестолку.
Итого у меня в папке: region.tpl.php, region--sidebar_first.tpl.php, block.tpl.php, block--sidebar_first.tpl.php, block--menu.tpl.php, block--menu--menu-left-menu.tpl.php. При этом block--menu--menu-left-menu.tpl.php не работает, а вместо него используется block--menu.tpl.php.

Аватар пользователя trololoo trololoo 4 июня 2011 в 11:02

"Punk_UnDeaD" wrote:
модуль там system вообще-то
оно конечно не логично, но видно же, что классы генерируются именно так

Незнаю как у вас, но у меня классы генерируются вот так <div id="block-menu-menu-left-menu" class="block block-menu">, как и было указано в шапке темы. Какие тут module и delta повторяться не буду, опять же шапка темы.

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 5 июня 2011 в 10:54

http://writer.webz.com.ua/
drupal 7
<div id="block-system-main-menu" class="block block-system block-menu clearfix">

http://domiki.on-check.ru/
drupal 7.2
<nav id="block-system-main-menu" class="block block-system block-menu clearfix">

system - это имя модуля, я в препроцессор заталкивал отладочный вывод, а вы, похоже, только гадаете

Аватар пользователя trololoo trololoo 7 июня 2011 в 0:56

Punk_UnDeaD, вы меня наверное не слышите, я описываю свою ситуацию, тыкаю вас носом в свой листинг, а вы заявляете что он не такой как описано в документации. Я очень рад за вас. То что у вас всё по документации это шикарно. Но это не имеет никакого отношения к проблеме. Внимательно читайте посты.

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 8 июня 2011 в 14:17

Уважаемый, каким образом по вашему у я сменил тег у блока?
Может быть в файле block--system.tpl.php?

function base_preprocess_block(&$vars) {
  $vars['title_attributes_array']['class'][] = 'title';
  $vars['classes_array'][] = 'clearfix';
//  $vars['theme_hook_suggestions'][] = 'block__' . $vars['block']->module;
//  print_r($vars['theme_hook_suggestions']);
}

Смотрите уже иногда в отладочный вывод.

Аватар пользователя Kavoru Kavoru 7 февраля 2012 в 9:08

Поясню если вдруг кому понадобится...
Если delta = main-menu, module = menu, то файл шаблона должен называться block--menu--menu_main_menu.tpl.php
Просто друпал ко всем блокам меню в идентификаторе зачем-то добавляет в начале menu_
Также обращаю внимание, что дефис в идентификаторе заменяется на _
Как-то так.