Немного разобрался с разработкой модулей под Drupal, спешу поделится впечатлениями и опытом. Для начала - общая структура файлов модуля и информация о том, что вообще из себя представляет модуль.
Модуль Drupal - набор файлов (PHP-скриптов, CSS, javascript и т.д.) названных и сгруппированных специальным образом, предназначенный для решения какой-либо задачи основываясь на инструментарий Drupal, расширения или модификации функциональности системы.
Все модули, которые могут быть использованы Drupal хранятся в каталогах:
sites/all/modules,
sites/sitename/modules
Здесь sitename - название сайта при использовании многосайтовой конфигурации drupal. Модули, расположенные в каталоге sites/all/modules будут доступны всем сайтам под управлением данной инсталляции системы.
Существует также каталог modules в корневом каталоге инсталляции, но в нем располагаются модули ядра Drupal, и располагать там свой код настоятельно не рекомендуется.
Для названия модуля можно использовать латинские буквы, цифры, символ подчеркивания и знак вычитания. Если вы используете в названии модуля верхний регистр букв, то имя каталога модуля должно быть записано в нижнем регистре. Допустим, мы хотим создать модуль с названием TinyPages. Для этого в каталоге sites/all/modules создадим каталог "tinypages".
Структура файлов модуля.
Для того, чтобы Drupal смог распознать набор файлов как модуль, должен присутствовать обязательный набор файлов с заданными именами и содержанием. Минимальный набор файлов модуля включает в себя:
Вместо modulename нужно подставить название модуля, который вы разрабатываете. Для примера, в случае модуля tinypages имена файлов будут следующие: tinypages.info, tinypages.module. Теперь подробнее о каждом из файлов:
Файл .info является описанием модуля и содержит информацию о названии модуля, его версии, авторе, зависимостях от других модулей и т.д.По своей структуре данный файл соответствует файлам инициализации php (php.ini)
Файл .module содержит основной код модуля и является обычным php-скриптом, который реализует функциональность модуля используя API Drupal.
В следующих статьях я подробнее распишу структуру и особенности каждого из этих файлов и расскажу о других файлах в составе модуля, которые позволяют автоматизировать процесс установки и удаления модуля.