Хуки Drupal: для чего нужны и как использовать

Итак модуль Drupal представляет собой набор функций, выполнение которых и позволяет обеспечить функциональность модуля. Drupal вызывает в нужный момент нужную функцию обеспечивая тем самым нужную функциональность.
Например, при выводе блоков Drupal обращается к функции модуля которая и выдает содержимое данного блока. При выводе формы, позволяющей редактировать настройки данного модуля вызывается функция, возвращающая данную форму.

Чтобы друпалу не запутаться используется специальная система в названиях функций. Каждая такая функция называется hook. Среди русскоязычных пользователей друпал используется обозначение хук, хотя изредка его и переводят на русский - ловушка. Полный список хуков можно увидеть на странице http://api.drupal.org/api/group/hooks/6, а пока рассмотрим применение на примере хука справки.

Реализация хука help

На каждой странице Друпала зарезервировано место для вывода справки. Это место определяется в шаблоне темы, для стандартной Garland расположено между заголовком страницы и основным текстом. Справку можно установить для любой страницы.
Чтобы его создать необходимо в файле модуля определить функцию вида имя_модуля_help($path). Параметр $path задает страницу на которой будет выводиться справка.
Для модуля simplemodule можно реализовать следующий хук справки:

<?php
function simplemodule_help($path){
switch(
$path){
    case
'admin/help#simplemodule':
   
$output='<p>Это простейший модуль для Drupal.</p>';
   
$output.='<p>В нем реализован хук справки</p>';
    return
$output;
    case
'node/add':
    return
'Это страница добавления нового материала на сайт. Выберите тип материала.';   
    case
'about':
   
$output='Страница содержит описание сайта. Прочтите ее внимательно.';
    return
$output;
    }
    return
'Для этой страницы нет справки. Думаю разберетесь сами.'
}
?>

На странице "admin/help" имеется список ссылок на страницы справки модулей. Сама справка задается в виде пути "admin/help#имя_модуля" и доступна по адресу "admin/help/имя_модуля".
Для нашего модуля текст справки описан в ветке с case "admin/help#simplemodule". Если бы ее не было ветки бы тоже не было.
Далее в хуке help задан текст справки для двух страниц: node/add (выводится на странице выбора типа добавляемого на сайт материала) и about (предполагается, что у вас на сайте есть страница с таким адресом).
И последнее. За пределами блока switch возвращается текст справки для всех остальных страниц, для которых не удосужились определить справку ранее. Возможность бессмысленная, поэтому ее нигде и не используют. Но может кому и пригодится.

Ссылки с других сайтов

Пока ничего нет
Tags:

Комментарии:

Re: Хуки Drupal: для чего нужны и как использовать

Т.е. как сделать чтобы этот код выполнился? Куда его вписать?

Re: Хуки Drupal: для чего нужны и как использовать

Этот код нужно вписать в скелет модуля описанный здесь.

Отправить комментарий

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><h2><h3><img><p><b><img>
  • Строки и параграфы переносятся автоматически.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Each email address will be obfuscated in a human readable fashion or (if JavaScript is enabled) replaced with a spamproof clickable link.

Подробнее о форматировании

КАПЧА
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Синдикация материалов