УрокНеобходимые файлы для создания шаблона. Block.tpl.php

Ещё один файл, который в 99% темах присутствует - это block.tpl.php. Он отвечает за общую структуру вывода блоков. Я надеюсь, вы используете какую-нибудь программу для просмотра стилей страницы, поскольку без неё будет трудно. Блоки добавляются в регионах через /admin/build/block. Создаваться они могут где угодно (на странице /admin/build/block, через модули, через пхп-код и т.д.), поэтому иногда надо будет узнать - блок это или нет. Обычно если это блок, то контент обёрнут в класс с названием block + другие названия (имя модуля, дополнительные классы и прочее).

Первоначальная структура файла block.tpl.php довольна проста, поэтому я просто приведу её и объясню:

<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="block block-<?php print $block->module ?>">
    <?php if ($block->subject): ?>
        <h2><?php print $block->subject; ?></h2>
    <?php endif;?>
 
    <div class="content">
        <?php print $block->content; ?>
    </div>
</div>

Следующие строки проверяют, задан ли в настройках блока заголовок, и если задан - выводят его, обернув в тэг H2:

<?php if ($block->subject): ?>
    <h2><?php print $block->subject; ?></h2>
<?php endif;?>

А эти строки уже сразу выводят содержимое блока не проверяя, пустое ли оно, т.к. если блок создан, то у него уже есть контент, хотя и пустой. И если контента не будет, то просто выведется класс content:

<div class="content">
    <?php print $block->content; ?>
</div>

Теперь я приведу стандартные переменные, которые могут использоваться в этом файле:

Общие переменные:

  • $block->subject - заголовок блока
  • $block->content - содержимое блока
  • $block->module - имя модуля, с помощью которого был создан блок. Если он был создан не модулем, то переменная будет пустая
  • $block->delta - уникальный идентификатор, который имеет каждый блок
  • $block->region - название региона, в который поместили блок

Вспомогательные переменные:

  • $block_zebra - добавляет класс 'odd' или 'even' в зависимости от чётности блока внутри региона
  • $zebra добавляет класс 'odd' или 'even' в зависимости от чётности блока, но теперь считается не от начала блока, а глобально
  • $block_id - показывает уникальный идентификатор блока внутри региона
  • $id - показывает глобальный уникальный идентификатор блока
  • $is_front - возвращает "ИСТИНА", если блок находится на главной странице
  • $logged_in - возвращает "ИСТИНА", если пользователь залогинен
  • $is_admin - возвращает "ИСТИНА", если пользователь - администратор

По большому счёту, файлы page.tpl.php и block.tpl.php хоть и являются необязательными, но находятся внутри практически каждого шаблона. Бывают исключения, но они крайне редкие.

Комментарии

Аватар пользователя Тайный поклонник
Тайный поклонник написал:

>> По большому счёту, файлы page.tpl.php и block.tpl.php хоть и являются обязательными, но находятся внутри практически каждого шаблона.

Имелось в виду - "хоть и НЕ являются обязательными, но находятся внутри"?

16.08.2010 10:14
Аватар пользователя Spleshka
Spleshka написал:

Именно это и имелось ввиду :) Спасибо, исправил

16.08.2010 11:12
Аватар пользователя Тайный поклонник
Тайный поклонник написал:

хоть и не являются необязательными, но находятся внутри

некошерно.

26.11.2010 10:36
Аватар пользователя Гость
Гость написал:

А какую программу можно исспользовать для просмотра стилей страницы?

28.10.2011 00:47
Аватар пользователя Spleshka
Spleshka написал:

Например firebug для браузера firefox. На мой взгляд - лучший.

28.10.2011 02:37
Аватар пользователя LIQ-media
LIQ-media написал:

Спасибо!
Пригодилось!

18.03.2013 20:11

Комментировать