О чём речь: дайте Друпалу знать о существовании вашего модуля.
Описываемый hook: hook_help.
Любой модуль должен иметь файл modulename.info. В этом файле содержится общая информация о модуле, поэтому, давайте в папке модуля создадим файл с названием onthisdate.info.
Общий формат этого файла такой:
; $Id$
name = Module Name
description = A description of what your module does.
core = 6.xЭтот файл даёт Друпалу знать о том, что модуль существует и содержание этого файла показывается на странице модулей: Administer →Site building → Modules. Давайте для нашего модуля внесём в этот файл следующие сведения:
; $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.
core = 6.xname (обязательная строка)
Название модуля. В соответствии со стандартами кодирования, здесь может использоваться только одна прописная буква с которой и будет начинаться название модуля. Т.е. модуль можно назвать Example module, но нельзя назвать example module или Example Module. Название которое использовали мы:
name = On this datedescription (обязательная строка)
Краткое описание модуля. Это описание будет показываться на странице модулей и предпочтительно делать это описание как можно короче, т.к. длинное описание будет мешать работать со страницей модулей в системе. Это поле ограничено 255 символами. Мы использовали следующее описание:
description = A block module that lists links to content such as blog entries or forum discussions that were created one week ago.Отметьте: если вы используете в описании специальные символы (вроде кавычек), то их нужно заменять значениями принятыми в HTML. Например, следует писать description = This is my "crazy@email.com" email address вместо description = This is my "crazy@email.com" email address.
core (обязательная строка)
Версия системы для которой предназначен модуль. Друпал откажется включать или запускать модуль для которого явно не указана версия системы. .info-файл должен явно определять совместимость любого модуля или темы с версией системы, поэтому вы обязательно должны добавить следующую запись:
core = 6.xPlease note that the drupal.org packaging script automatically sets this value based on the Drupal core compatibility setting on each release node, so people downloading packaged releases from drupal.org will always get the right thing. However, for sites that deploy Drupal directly from CVS, it helps if you commit this change to the .info files for your modules. This is also a good way to indicate to users of each module what version of core the HEAD of CVS is compatibile with at any given time.
dependencies (дополнительная строка)
Зависимости. Есть несколько дополнительных значений, которые могут быть определены в .info-файле, одно из таких значений — dependencies (зависимости). Если для работы вашего модуля ему необходимы какие-либо другие модули (кроме тех, что перечислены на странице модулей в секции Core — required), то вы можете добавить следующую запись:
dependencies[] = taxonomy
dependencies[] = commentДля нашего модуля это не требуется, мы просто упомянули о такой возможности. Если для модуля будет указана зависимость от другого модуля/других модулей, то Друпал не позволит включить этот модуль, пока не будут включены модули от которых он зависит.
package (дополнительная строка)
Пакет, секция. Если вы определите значение для этой строки, то на странице модулей будет создана секция с названием из этой строки, в противном случае, модуль будет помещён в секцию Uncategorized. Эту возможность используют для модулей которые выполняют связанную работу. Например, если вы пишите вспомогательный модуль для модуля CCK, то будет уместно поместить его в одну секцию с этим модулем. Не следует использовать эту возможность без веских оснований, т.к. это будет затруднять работу со странице модулей в Друпале.
package = "Your arbitrary grouping string"Помимо CCK можно использовать и такие секции:
.info-файлы используют .ini-формат и в них может быть помещена строка: ; $Id$. Это строка позволит автоматически использовать дополнительную информацию при работе с CVS. Дополнительную информацию о правилах форматирования .ini-файлов вы можете посмотреть в документе: PHP.net parse_ini_file documentation.
Мы можем добавить справочную информацию о нашем модуле. Т.к. мы использовали описание модуля в .info-файле, то этот hook можно назвать дополнительным. Однако, использовать этот hook при создании модулей — хорошая идея. Название hook'а — help. Итак, давайте опишем функцию onthisdate_help:
<?php
function onthisdate_help($path, $arg) {
}
?>Переменная $path обеспечивает контекстную справку: она будет определять на какой странице системы мы увидим справку. Рекомендуемый путь для использования в этой переменной — заявление её как switch. Это позволит показывать нашу справку на страницах Друпала вместе с другими модулями.
<?php
/**
* Display help and module information
* @param path which path of the site we're displaying help
* @param arg array that holds the current path as would be returned from arg() function
* @return help text for the path
*/
function onthisdate_help($path, $arg) {
$output = '';
switch ($path) {
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.
Comments
Post new comment