Создаем свою тему вывода

Для создания своей темы вывода контента в нашем модуле нам понадобиться объявить нашу тему воспользовавшись хуком 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

<div class="block-wrapper">
    <div class='day'><?php print $variables['days']; ?></div>
    <div class='title'><?php print $variables['link']; ?></div>
     <p><?php print $variables['descrip']; ?></p>
</div>

Для вывода через функцию создадим функцию:

function theme_block_two($variables) {
    $output = '<div class="block-wrapper">';
    $output .= '<div class="day">'. $variables['days'] .'</div>';
    $output .= '<div class="title">'. $variables['link'] .'</div>';
    $output .= '<p>'. $variables['descrip'] .'</p>';
    $output .= '</div>';
    return $output;
}

Для применения нашей темы вызовем функцию:

$output = theme('block_two', array('days' => $days, 'link' => $link, 'descrip' =>$descrip));

Чем удобна создание темы вывода контента? В темизации! Человек захотевший использовать ваш мега модуль не будет испытывать проблем с темизацией, если нужно он просто переопределит вашу функцию вывода в template.php или скопирует шаблон в папку своей темы и отредактирует как душе угодно.