Пишем модуль для Друпала. Часть вторая - Как сказать Друпалу о вашем модуле

Изображение пользователя andyceo.

Основная затронутая тема: Как дать знать Друпалу о существовании нового модуля
Описанный хук: hook_help

В Друпал 5.х основная информация о вашем модуле, его имя и описание, больше не предоставляются хуком hook_help. Вместо этого, все модули должны иметь файл modulename.info, содержащем мета информацию о модуле (детали смотрите в документе Writing .info files (Drupal 5.x)). В нашем примере, этот файл должен называться "onthisdate.info".

Основной формат такой:

; $Id$
name = Module Name
description = "A description of what your module does."

Помните, что без этого файла, ваш модуль не будет показан в списке модулей на странице администрирования!

для нашего примера, файл должен содержать следующее:

; $Id$
name = On this date
description = "A block module that lists links to content such as blog entries or forum discussions that were created one week ago."

Добавьте этот исходный код в файл, названный onthisdate.info, перед тем как записать его в папку модуля sites/all/modules/onthisdate.

Также в файле .info могут присутствовать две необязательные строки:

dependencies = module1 module2 module3
package = "Ваша произвольная строка символов для группировки"

Для нашего модуля, эта возможность никак не применяется и мы просто опустим их. Если вы присваиваете своему модули зависимости, Друпал не позволит ему стать активированным до тех пор, пока необходимые зависимые модули не будут включены.

Если вы присваиваете строку для группировки в ваш модуль, на странице admin/build/modules он будет отображаться вместе с модулями той же категории. Если же вы не присваиваете зависимостей, он будет отображён как 'Uncategorized' ("Другое"). Неприсваивание строки для группировки абсолютно нормально, в общем случае, пакетная группировка хороша для модулей, которые поставляются вместе, или подразумевается, что они будут использоваться совместно. Если у вас есть какие-либо сомнения по поводу этого, оставьте это поле пустым.

Предложенные примеры некоторых разделов для группировки:

  • Audio
  • Bot
  • CCK
  • Chat
  • E-Commerce
  • Event
  • Feed Parser
  • Organic groups
  • Station
  • Video
  • Views
  • Voting (если модуль использует VotingAPI)

Эти файлы (.info) пишутся в ini-формате, и могут содержать строку ; $Id$ для того, чтобы позволить CVS вставить информацию о файле.

Для получения дополнительной информации о формате файлов ini, смотрите документ PHP.net parse_ini_file documentation.

Мы также можем предоставить помощь и другую дополнительную информацию о нашем модуле. Вследствие использования файла .info, как это описано выше, хук hook_help теперь необязателен. Тем не менее, хорошая идея включить его. Имя хука для этой функции - 'help', поэтому начнём с объявления функции onthisdate_help:

<?php
function onthisdate_help($section='') {

}
?>

Переменная $section предоставляет контекст, в котором используется помощь, т.е. где именно в Друпале, в каком месте модуля мы смотрим помощь. Рекомендуется обработать эту переменную оператором switch. Вы можете увидеть шаблон такого кода в других модулях.

<?php
/**
* Display help and module information
* @param section which section of the site we're displaying help
* @return help text for section
*/
function onthisdate_help($section='') {

 
$output = '';

  switch (
$section) {
    case
"admin/help#onthisdate":
     
$output = '<p>'t("Displays links to nodes created on this date"). '</p>';
      break;
  }

  return
$output;
}
// function onthisdate_help
?>

Ветка с условием admin/help#modulename используется ядром Друпала для связи с основной страницей помощи (/admin/help или ?q=admin/help). В конечном счёте, вы захотите добавить ещё текста, чтобы обеспечить более качественное сообщение для пользователя.

Дополнительная информация о hook_help: Drupal HEAD

Добавьте показанный выше исходный код в файл с именем onthisdate.module прежде чем сохраните и установите его.

Добавьте страницу в закладки. Перейти к верху страницы
Синдикация материалов