→ Block Class — добавление атрибута class к блокам через админку

Не важно много или мало блоков у вас на сайте, но если вам потребовалось выделить один или несколько блоков при помощи CSS, как правило для них нужно задать class для уже существующих правил или создаваемых позднее, что, кстати тоже не важно. Так вот, чтобы не затруднять себя (как, админа) каждый раз править файл block.tpl.php добавляя классы или создавая для каждого блока отдельный файл шаблона, и, уж тем более, не допускать до этого модераторов, достаточно:

  1. Установить модуль Block Class
  2. Добавить сниппет в шаблон блока
  3. Добавлять классы через админку, т.е. при редактировании блока.

Установка модуля Block Class выполняется как и с другими модулями.

Добавление сниппета в block.tpl.php

Согласно информации на странице модуля, вам нужно добавить сниппет:

<?php print block_class($block); ?>

Однако, чуть ниже предлагается тот же сниппет, но с проверкой функции block_class — это на тот случай, чтобы избежать ошибки вызова этой функции, если вы случайно отключите модуль, ну или он сам отключится при каких-либо обстоятельствах:

<?php if (function_exists('block_class')) print block_class($block); ?>

Вот именно это, я и рекомендую добавить в ваш файл block.tpl.php. Делаем это так:

  1. Ищем, что-то наподобие (это, как правило первая стока шаблона):
     <div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="clear-block block block-<?php print $block->module ?>">
  2. Заменяем на:
     <div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="clear-block block block-<?php print $block->module ?> <?php if (function_exists('block_class')) print block_class($block); ?>">

ВАЖНО: Сниппет добавляется обязательно через пробел.

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

Использование модуля Block Class

Для добавления атрибута class к блоку достаточно перейти в Блоки и нажать на ссылку редактирования нужного блока (как правило она называется «настроить»). На странице редактирования блока вы увидите следующее:

Интерфейс модуля Block Class

Самым первым (возможны варианты других модулей) будет поле «CSS класс(ы)», куда и нужно ввести класс блока. Сохраните. Теперь вы можете изменить вид блока посредством CSS.

Доступность перевода

Пять строк модуля перевела — юзайте на здоровье! Скачать перевод.

RSS-материал

7 Комментариев [Нет новых]

Аватар пользователя KoDo

Мелкий но полезный модулек. Улыбка
Я правда обычно использую AdaptiveTheme, а там уже встроены богатые возможности управления классами.

Аватар пользователя andypost

Может перевод сразу закомитить в модуль?

Аватар пользователя EllECTRONC

Мысль хорошая, а еще было бы лучше предложить дополнить этим функционалом core block module… Я уже привыкла использовать Live Translation, так что проблема переводов у меня больше не стоит. Подмигивание

Аватар пользователя andypost

Проблема LT в том, что строки регулярно меняются!

Аватар пользователя EllECTRONC

Если вы о том, что строки меняются при обновлении, то этого можно избежать "хакнув" модуль (файл live_translation.update.inc) и изменить режим ($mode) с LOCALE_IMPORT_OVERWRITE на LOCALE_IMPORT_KEEP.

Аватар пользователя andypost

Нет, я про то, что строки меняются на drupaler и частенько не в лучшую сторону. В результате получается, что изменения в одном модуле тянут за собой именения в других.

ЗЫЖ по самому модулю - я не особо связан с темизацией, но очень многие разработчики используют skinr отчасти и с целью привязки дополнительных классов

Аватар пользователя EllECTRONC

Ну, да, собственно из-за изменения строк на drupaler не в лучшую сторону и приходится хакать модули Подмигивание, чтоб существующие переводы остались.

Со skinr еще на знакома, но в отличие от него этот модуль маленький и выполняет всего одну задачу.

Что ты об этом думаешь?

МультиВход
ИЛИ

Комментарии