Зачастую в Drupal 7 при написании собственных модулей необходимо отделить логику от представления.
Перейдем сразу к практике и напишем простой модуль, который будет выводить три фиктивные ссылки на странице /mymodule.
В CMS Drupal логика работы скриптов очень хорошо отделена от представления. Повсеместно используются .tpl.php шаблоны. Например для тех же страниц,блоков,нод и т.д.
Создать свой шаблон совсем нетрудно. Если вы уже умеете писать модули-то легко освоите материал, а если нет, то можете почитать о создании модуля для Drupal
тут и
тут и там же скачать исходник.
А также более углублённо почитать
об использовании Drupal API.
Я же сразу приведу пример с использованием своего шаблона.
Создадим модуль tema_module.
В tema_module.module пишем
function tema_module_menu() {
$items['tema_module'] = array( 'title' => 'Заголовок тестовой страницы',
'page callback' => 'tema_module_info',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function tema_module_info() {
'link_1' => '/node/1',
'link_2' => '/node/2',
'link_3' => '/node/3',
);
return theme
('tema_module_menu', array('links' => $links));
}
function tema_module_theme() {
'tema_module_menu' => array( 'links' => NULL),
'template' => 'tema_module',)
);
}
В главной калбэчной функции были задействованы функции theme() и хук hook_theme().
Функция theme($hook, $variables = array()) принимает два аргумента(название используемого хука и переменная в виде массива, значения который будут использоваться в tpl шаблоне нашего представления.
В hook_theme обязательно нужно передать созданные переменные.Они будут доступны в шаблоне. Значение переменной template - это и есть имя будущего шаблона. Его мы создаем в папке модуля.
В tema_module_menu.tpl.php напишем следующий код.
<div id = "tema_module-menu-pager">
<?php
foreach ($links as $k => $v){
?>
<p><a href="<?php echo $v; ?>"><?php echo $k; ?></?php></a></p>
<?php
}
?>
</?php></?php></div>
Вот и всё.