Предлагаем воспользоваться купоном - cvkyp05r1n1jrdwvefclqwkz6lwx28db - на 10% скидку при покупке GOLD-аккаунта DepositFiles с периодом действия 6 месяцев или 1 год. Купон действителен до 2010-10-19.
Каждый кодовый файл модуля помимо функций, созданных разработчиком для реализации назначения модуля, может и должен содержать набор функций, имеющих специальное название — так называемых hook’ов. Такие функции выполняют более тесную интеграцию вашего модуля с CMS Drupal и другими модулями этой системы.
Функция имяМодуля_help($path, $arg). Данная функция предназначена для того, чтобы сопроводить ваш модуль справочной
информацией. В лучших традициях профессиональных разработчиков информация, указанная в этой функции, будет отображаться в разделе Управление/Помощь вашего сайта (после того как вы включите свой модуль).
Основной синтаксис данной функции следующий:
function имяМодуля_help($path, $arg) { $output = ''; switch ($path) { case "admin/help#<имяМодуля>": $output = '<p>'. t("Displays links to nodes created on this date") .'</p>';
break; } return $output; }
Функция t() используется для создания описания.
Читатель, который знаком с языком PHP, сразу заметит, что вся справочная информация о вашем модуле хранится в переменной $output, и после вызова данной функции содержимое этой переменной будет выведено на экран. Однако не следует присваивать переменной $output непосредственно справочный текст — для этого необходимо использовать оператор switch,
как это было указано в примере выше. Вы не должны забывать, что помимо вас модули для CMS Drupal создает еще огромное количество разработчиков, и они также хотят отобразить в разделе Управление/Помощь справочную информацию о своих модулях. Именно для гарантии отсутствия конфликтов между справочной информацией модулей различных разработчиков и используется оператор switch.
Функция имяМодуля_perm(). Основное назначение данной функции — перечисление прав доступа,
которые будет разрешено предоставлять ролям. Она просто возвращает названия этих прав доступа (которые будут отображаться в списке раздела Управление/Управление пользователями/Управление доступом (в шестой версии CMS Drupal Разрешения)) в виде массива.
Названия прав доступа, которые вы возвращаете в виде массива, должны быть уникальны. Иначе говоря, ни один другой установленный у вас модуль не должен использовать то же самое название. Для соответствия этому правилу разработчики CMS
Drupal рекомендуют указывать в именах прав доступа имя вашего модуля. Например, «access имяМодуля content».
Основной синтаксис функции:
function имяМодуля_perm() { return array('мое первое право доступа', 'еще одно возможное право доступа', 'и еще право доступа'); }
Функция имяМодуля_block(). С помощью данной функции можно создать блок, который будет добавляться при включении вашего модуля, а также определить содержимое этого
блока. Функция должна принимать два входящих параметра:
$op — операция с блоком; параметр может принимать следующие значения: list (определить параметры блока, которые после включения модуля будут использоваться для отображения блока в списке блоков), view (вывести содержимое блока);
$delta — номер данного блока по отношению к другим блокам модуля, если ваш модуль создает сразу несколько блоков.
Итак,
основной синтаксис функции следующий:
function имяМодуля_block($op='list', $delta=0) { if ($op == "list") { $block[0]["info"] = t('Название блока'); return $block; } else if ($op == 'view') { <пользовательский код, формирующий содержимое блока в переменной $block> return $block; } }
Функция имямодуля_menu(). Эта функция одна из самых интересных — она позволяет создавать собственные страницы сайта
(например, страницу для настройки модуля), а также размещать в меню ссылки на созданные страницы.
Чтобы лучше понять механизм работы данной функции, рассмотрим ее основной синтаксис, используемый для создания одной страницы сайта (чтобы сразу создать несколько страниц, просто определите в функции несколько элементов массива $items):
function onthisdate_menu() {
$items = array();
$items['адрес новой страницы'] = array( 'title' => 'заголовок страницы', 'description' => 'описание назначения страницы', 'page callback' => 'имя функции, которая возвращает содержимое страницы', 'page arguments' => array('onthisdate_admin'), 'access arguments' => array('массив прав доступа, которыми должна обладать роль посетителя, чтобы ему было разрешено открыть данную страницу'), 'type' => MENU_NORMAL_ITEM, );
return $items; }
Обратите внимание на элемент type массива
$items. Он позволяет определить, какие именно действия будут выполняться для новой страницы вашего сайта. Данный элемент может принимать следующие значения:
MENU_NORMAL_ITEM — создать новую страницу и добавить ссылку на нее в меню (в стандартном блоке навигации, то есть в меню Навигация);
MENU_CALLBACK — создать новую страницу, а ссылку в меню добавлять не нужно.