Читать «Журнал PC Magazine/RE №11/2009» онлайн - страница 93
PC Magazine/RE
Block.tpl.php – определяет внешний вид блока; как и в случае с материалами, шаблон блока может быть задан для каждого модуля (блоки, создаваемые модулем user, будут использовать один шаблон, а блоки, создаваемые модулем block, – другой) или для каждого блока в отдельности. Маски имен файлов шаблонов для блоков имеют вид: шаблон block-module_name.tpl.php и используется для всех блоков, создаваемых модулем module_name; шаблон block-module_name-delta.tpl.php может использоваться в случае, если модуль создает несколько блоков и вы хотите каждому из них задать свой шаблон. Параметр delta – это id блока, который задается создающим его модулем. Шаблон block-region.tpl.php служит для отображения блока в определенном регионе.
Каждый модуль, написанный с применением слоя темизации Drupal, должен разделять функции, генерирующие данные, и функции темизации, оформляющие эти данные в виде HTML-кода. Функции темизации регистрируются модулями через специальный хук hook_theme() и имеют имена, начинающиеся с префикса theme_, например, theme_list(). Такие функции не реализуют никакой бизнес-логики, а только получают набор данных на входе и отдают сформированный HTML-код на выходе. Функции темизации могут быть переопределены в файле template.php, т. е. разработчик может заменить стандартное оформление данных, возвращаемых модулем, по своему желанию. Для этого нужно скопировать в него соответствующую функцию темизации, заменить в ней префикс theme_ на имя используемой темы и внести в нее необходимые изменения.
Из всех перечисленных выше файлов обязательный только *.info, в случае отсутствия в папке с темой файлов page.tpl.php, node.tpl.php, block.tpl.php или template.php будут использоваться стандартные шаблоны. Ссылку на список стандартных шаблонов можно найти в конце статьи.
Обычно *.info-файл темы оформления содержит конфигурационные данные (см. листинг 1). В первых двух строчках файла обычно указывается имя и дается описание темы оформления, которое будет выводиться в интерфейсе администратора в списке доступных тем. Далее указываются версия ядра Drupal, для которой написана эта тема, и используемый шаблонизатор.
Листинг 1
name = Theme name
description = Theme description.
version = VERSION
core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[print][] = print.css
scripts[] = effects.js
scripts[] = menu.js
regions[left] = Left sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
Параметры stylesheets определяют список CSS-файлов, которые будут подключены ко всем страницам. В первой паре квадратных скобок через запятую может быть указан список параметров, присваиваемых атрибуту media HTML-тега link (подробную информацию о назначении этого атрибута можно найти по ссылке во врезке в конце статьи). Из перечисленных здесь имен файлов, а также из файлов стилей, которые подключены модулями через функцию drupal_add_css(), будет сформирован HTML-код, подключающий указанные стили и доступный в шаблоне page.tpl.php в переменной $styles. Кроме того, шаблонизатор попытается найти в папке с темой оформления файл style.css; если он есть, то он также будет подключен к странице.