Здравствуйте, умные люди.
Я верстальщик. Ковыряю zen.
Возник вопрос по поводу генерируемых этой темой классов у блоков.
Вот есть такой кодик в файле шаблона блоков, задание классов в зависимости от назначения блока-родителя:
Таков вопрос, как определяется какой класс, какому блоку задавать? Непонятно откуда берутся выделенные переменные и как зависят. Ткните пожалуйста в какой файл смотреть?
К примеру конкретная задача, задать разным группам блоков (группы определяются не исходя из их функционала, допустим сначала два с одник классом, потом один с другим, потом опять два с третьим, к примеру разного цвета фон у блоков чтобы был).
Как эту задачу правильно реализовывать нужно?
С друпалом я разбираюсь не так давно, с месяц потихоньку ковыряю. так что, если можно подоходчивее, пожалуйста
Комментарии
упс, а пхп кодик по умолчанию подсвечивается) тогда прошу прощения)
...
</div></div> <!-- /block-inner, /block -->
выделенные переменные это вот эти):
module . '-' . $block->delta;
$classes;
http://www.ra-don.ru/node/130 - такой вариант не подойдет?
Еще советую присмотреться к skinr. Он сложноват для освоения, документации на русском нет, но для верстальщика это находка... Помогает систематизировать все и расставить по полочкам.
ыы, сюрприз) спасибо Александр, как раз нашел самостоятельно Вашу статейку в гугле по "запросу как генерируются классы блоков zen друпал", Вы там шестой) только статейка немного не та, в смысле полистать пришлось)
а модули действительно то что надо)
кстати, а чтобы я для себя понял, может кто-нибудь объяснит сам механизм задания зеновских классов блокам?
Там все довольно просто. Block->module выводит имя модуля, который этот блок вывел (т.е. у выведенного через views блока будет ".views" к примеру).
block->delta выводит ID блока. (#block-block-4 к примеру).
А переменная $classes задана в template.php темы zen и является небольшим улучшением $body_classes - переменной, которая для тега body выводит некоторые классы, помогающие верстать (пример front logged-in page-node node-type-page one-sidebar sidebar-right). Навскидку сейчас содержимое body_classes не назову, это в апи надо покопаться...
p.s. я правильно вопрос понял, об этом была речь?
Да, именно это я и хотел понять, спасибо. А есть где-нибудь полный список стандартных названий модулей, которые выводят блоки, и список этих улучшенных зеновских боди классов можно посмотреть или у меня паранойя (: и вывод этих классов нужно смотреть в зависимости от модуля и по коду в template.php, который в главной зен темен лежит?
zen 1.0, template.php со строчки 124 - function zen_preprocess_page это оно. Он немного стилизует вывод и добавлят/убирает префиксы (типа "node-").
Название классов которые выводят модули - это определяется именем модуля.
хм.. очень классный конечно модуль Skinr, вроде понял его работу.
Поставил (распаковал папку с модулем куда нужно).
Активировал. В меню модуль появился.
В инфофайле написал следующее:
skinr[very_lage_font][type] = radios
skinr[very_lage_font][description] = Этот класс задает всему содержимому блока очень большой шрифт в 17 или 30 пикселей.
skinr[very_lage_font][features][] = block
skinr[very_lage_font][options][1][label] = очень большой
skinr[very_lage_font][options][1][class] = very-lage-font
skinr[very_lage_font][options][2][label] = огромный (:
skinr[very_lage_font][options][2][class] = very-very-lage-font
стили прописал в файле стилей соответствующие.
Захожу на страницу отображения регионов и блоков, выбираю нужный блок, который уже есть на странице, жму на "configure". Перехожу к настройкам skinr, в настройках модуля появились соответствующие две радиокнопки переключения этих двух классов.
Выбираю класс, жму на сохранить и ничего не происходит)
Смотрю в код, у блока никаких классов не добавилось.
Также никаких классов не добавляется и во вновь создаваемый блок.
И не работает добавление классов в Advanced options
по Apply additional CSS classes:
Может у меня руки кривоваты?))