theme → Создаем свою тему вывода
Для создания своей темы вывода контента в нашем модуле нам понадобиться объявить нашу тему воспользовавшись хуком hook_theme:
function example_module_theme ($existing, $type, $theme, $path) {
return array(
//Вариант 1 выводим все в шаблон
'block_one' => array(
//переменные которые будем передавать в шаблон
'variables' => array('days' => NULL, 'link' => NULL, 'descrip' => NULL ),
//имя шаблона без tpl.php
'template' => 'event_block_field',
//путь к шаблону
'path' => drupal_get_path('module', 'example_module') . '/theme',
),
//Вариант 2 выводим через функцию
'block_two' => array(
//переменные которые будем передавать в функцию
'variables' => array('days' => NULL, 'link' => NULL, 'descrip' => NULL ),
),
)
}
Наши темы объявлены создадим обработчики для них.
Для вывода в шаблон нам понадобиться создать тот самый шаблон. Создадим его в поддиректории theme нашего модуля (куда мы указали путь до нашего шаблона в объявлении) block_one.tpl.php
Для вывода через функцию создадим функцию:
function theme_block_two($variables) {
$output = '';
$output .= ''. $variables['days'] .'';
$output .= ''. $variables['link'] .'';
$output .= ''. $variables['descrip'] .'';
$output .= '';
return $output;
}
Для применения нашей темы вызовем функцию:
$output = theme('block_two', array('days' => $days, 'link' => $link, 'descrip' =>$descrip));
Чем удобна создание темы вывода контента? В темизации! Человек захотевший использовать ваш мега модуль не будет испытывать проблем с темизацией, если нужно он просто переопределит вашу функцию вывода в template.php или скопирует шаблон в папку своей темы и отредактирует как душе угодно.