Файл «Block.tpl.php» - отвечает за вывод блоков на сайте и он не является обязательным при создании шаблона, но тем не менее присутствует практически всегда. Благодаря этому файлу, все блоки, которые мы будем выводить в каком либо регионе, будут принимать общее для всех значение и применяемые стили. (Замечу, что в Drupal есть возможность темизации каждого блока отдельно, т.е. каждый блок будет выглядеть по разному, этот момент мы разберём чуть ниже в статье) Например у меня на сайте файл «Block.tpl.php» представлен вот в таком варианте:

Список доступных переменных для файла «Block.tpl.php»:
- $block->subject – заголовок (название) блока
- $content - содержимое блока
- $block->module - название модуля, с помощью которого был создан блок.
- $block->delta – id блока (является уникальным)
- $block->region - название региона, в котором выводится блок
- $block_zebra - вывод класса 'odd' или 'even' в зависимости от чётности блока внутри региона
- $zebra добавляет класс 'odd' или 'even' в зависимости от чётности блока, но теперь считается не от начала блока, а глобально
- $block_id - показывает уникальный идентификатор блока внутри региона
- $id - показывает глобальный уникальный идентификатор блока
- $is_front - возвращает "ИСТИНА", если блок находится на главной странице
- $logged_in - возвращает "ИСТИНА", если пользователь авторизован
- $is_admin - возвращает "ИСТИНА", если пользователь – является администратором
Для того, что бы переопределить вывод конкретного блока, можно воспользоваться шаблонами, например блок с ссылками пользователя должен принимать вид:
block--user.tpl.php
Для темизации блоков конкретного региона, необходимо использовать шаблон вида:
block--название региона.tpl.php
Для темизации конкретного блока, необходимо использовать шаблон:
block--block--id_блока.tpl.php
Для темизации блоков, создаваемые модулями шаблон примет вид:
block--название_модуля.tpl.php
Не забываем при этом чистить кеш сайта.
Комментарии (15)
При создании нового документа block.tpl.php все содержимое сайта куда то девается, остается только шапка, и содержимое block.tpl.php. Как исправить?
Так так и должно быть, данным файлом вы переопределили вывод всех блоков на сайте. Вывод контента в 7м Drupale так же происходит через блоки. поэтому вам необходимо использовать еще название блока, который хотите переопределить.
спасибо огромное!) а то долго искал и ничего не нашел
при очистке кеша выдает кучу таких ошибок:
Warning: include(Z:\home\tehnology.ua\www/sites/all/themes/tehnology/block.tpl.php) [function.include]: failed to open stream: No such file or directory in theme_render_template() (line 1505 of Z:\home\tehnology.ua\www\includes\theme.inc).
Warning: include() [function.include]: Failed opening 'Z:\home\tehnology.ua\www/sites/all/themes/tehnology/block.tpl.php' for inclusion (include_path='.;C:\php\pear') in theme_render_template() (line 1505 of Z:\home\tehnology.ua\www\includes\theme.inc).
Warning: include(Z:\home\tehnology.ua\www/sites/all/themes/tehnology/block.tpl.php) [function.include]: failed to open stream: No such file or directory in theme_render_template() (line 1505 of Z:\home\tehnology.ua\www\includes\theme.inc).
Warning: include() [function.include]: Failed opening 'Z:\home\tehnology.ua\www/sites/all/themes/tehnology/block.tpl.php' for inclusion (include_path='.;C:\php\pear') in theme_render_template() (line 1505 of Z:\home\tehnology.ua\www\includes\theme.inc).
еще проблема: не ывобит содержимое блоков, а только заголовки.
Решил проблему. Кому интересно нужно выводить не $block->content а просто $content
спасиб, поправил в статье.
мы разберём чуть ниже в стаье (поправь опечатку)
Здравствуйте.
Вы можете подсказать какие переменные использовать для вывода данных импортированных через модуль aggregator в блоках.
Я создала в папке шаблона файл block--aggregator.tpl.php.
Дело в том, что с помощью модуля aggregator я импортирую данные со ссылкой на другой ресурс. Но ссылка выводится без rel="nofollow". Хочу добавить rel="nofollow" к ссылкам, которые выводятся в блоке aggregator в моем сайте.
Вместо этого кода
, какой код мне использовать в файле block--aggregator.tpl.php чтобы ссылки стали nofollow?
Павел, порекомендуйте пожалуйста какой нибудь ресурс, где я могу получить ответ на мой вопрос. Вопрос очень важный, поэтому я должна найти ответ на него. Спасибо.
ресурс только один - drupal.org. А здесь по вашему вопросу
Доброго времени суток!
Такая проблема: не могу переопределить заголовок блока!
Есть файл block.tpl.php c содержимым:
Есть вьюха под названием "additional_goods_output".
Создаю файл с названием "views-view--additional-goods-output.tpl.php" с содержимым:
В итоге получаю следующее, - Заголовок блока выводится в
из файла block.tpl.php, а контент из переменной $rows из файла "views-view--additional-goods-output.tpl.php".
Не могу понять в чем дело...
Извиняюсь за кривой коммент.
То есть заголовок выводится как указано в файле block.tpl.php.
Здравствуйте!
Проблема следующего характера: не могу переопределить вывод заголовка блока, созданного во views. Какой бы файл не создавал, предлагаемый во views в "Информация темизации", все равно заголовок выводтся как определено в файле block.tpl.php.
Пытаюсь темизировать одним файлом блоки одной вьюхи.