Урок - Знакомство с функцией theme() в Drupal 6.

Главная » Курсы » Курс Drupal 6, Темизация. » Урок - Знакомство с функцией theme() в Drupal 6.

Обучающий онлайн курс
Drupal 6, Темизация.

Лицензия: Копирование запрещено.

В этом уроке мы вратце познакомимся с функцией theme(). О регистрации шаблонов для использования с функцией theme() смотрите в следующих уроках.

Как уже говорилось, вызов соответсвующих шаблонов в Drupal 6 осуществляется с использованием функции theme().

Внимание: Шаблон вызываемый функцией theme() должен быть правильно зарегистрирован в Drupal 6 (об этом позже), иначе шаблон не будет найден и функция theme() вернет пустой результат.

Для демонстрации следующего примера сделайте следующее:

  • Скопируйте файл ./modules/system/page.tpl.php в директорию текущй темы.
  • Создайте в директории темы файл "page-front.tpl.php" следующего содержания:

<?php

$headers = array(

  t('Product'),

  t('Cost'),

);

$rows = array();

$rows[] = array(

  t('Orange'),

  200,

);

$rows[] = array(

  t('Aguroc'),

  100,

);

echo theme('table', $headers, $rows);
  • На странице "Производительность/Performance" нажмите "Удалить кэшированные данные/Clear cached data"
  • Перейдите на главную страницу страницу сайта.

Результатом нашей работы будет отображена таблица:

ProductCost
Orange 200
Aguroc 100

В данном примере, с помощью функции theme(), мы обратились к шаблону 'table' и передали два аргумента $headers (массив заголовков таблицы) и $rows (массив строк таблицы).

Шаблон 'table' - стандартный шаблон Drupal 6, отвечает за формирование HTML-разметки таблицы.

Несколько заметок по функции theme():

  • функция theme() принимает несколько аргументов.
  • Первый аргумент (обязателен) - это имя зарегистрированного шаблона. Количество остальных аргументов может меняться в зависимости от указаний при регистраци шаблона в теме(см. hook_theme()).
  • функция theme() вернет пустую строку, если указанный шаблон (первый аргумент) не найден.

Забегая вперед поясню:

  • page-front.tpl.php - файл-шаблон для формирования HTML-кода только главной страницы.
  • page.tpl.php - файл-шаблон для формирования HTML-кода всех страниц. В нашем примере файл page.tpl.php нужен лишь для того, что бы Drupal 6 смог обработать и шаблон page-front.tpl.php - вот такой небольшой "баг".

Более подробно о page.tpl.php и page-front.tpl.php смотрите далее.

 

Несколько вопросов для самоконтроля:

  • Для чего используется функция theme()?