В интернете можно найти много статей о том как написать модуль для друпала, где-то написано хорошо, где-то сумбурно, а где-то и вовсе обрывки кусков кода. В этой серии статей напишу как сделать модуль для друпала, учитывая тот самый drupal way ;)
Основа для создания Друпал модуля.
- Название модуля. Название модуля будет использоваться в функциях, в названии каталога, в .info и .module файлах модуля
- Хранилище модулей. Разрабатываемые модули, можно хранить как и обычные модули в sites/all/modules или в sites/all/modules/custom, так и в sites/default/modules. Каталог с файлами модуля должен называться также как модуль, для модуля mymodule каталог будет sites/all/modules/custom/mymodule
- Обязательные файлы. Для каждого модуля обязательно должно быть 2 файла: .info и .module
.info файл модуля
.info файл, должен называться так же как и модуль, т.е. для модуля mymodule, файл должен называться mymodule.info. Этот файл информирует друпал, о файлах модуля и выводит информацию о модуле на странице администратора admin/modules.
Минимальное содержимое .info файла:
name = mymodule description = my super module core = 7.x
- name- читабельное название модуля, может отличаться от машинописного названия
- description- на странице администратора, показывает описание модуля
- core- версия ядра друпала
Дополнительные параметры для .info файла можно прочитать тут или прочитать в моем вольном переводе:
-
подключение .css файла к модулю
stylesheets[all][] = node.css
-
подключение .js файла к модулю
scripts[] = somescript.js
-
подключение файла к модулю
files[] = tests/example.test
-
зависимости модуля от других модулей
dependencies[] = taxonomy dependencies[] = comment
-
категоря модуля
package = Views
-
версия пхп
php = 5.3
-
страница конфигурации модуля
configure = admin/config/content/mymodule
-
необходимый модуль, при значении TRUE, модуль нельзя будет отключить
required = TRUE
-
скрытый модуль
hidden = TRUE
Считается хорошим стилем подключать .css и .js файлы только там где они используется, для этого лучше подключать их не в .info файле, а используя drupal_add_js.
Файл .module
Второй обязательный файл для модуля- это файл .module, системное имя которого, так же как и имя .info файла должно совпадать с именем папки где находятся файлы.
Файл должен начинаться с
<?php
закрывающий тег не нужен.
Затем в файл модуля добавляется комментарий с пояснением предназначения модуля:
/** * @file * my syper module */
Резюме:
Для того ,чтобы создать заготовку для модуля с названием mymodule надо сделать:
- в sites/all/modules/custom создать папку mymodule
-
в sites/all/modules/custom/mymodule создать mymodule.info и вствить туда:
name = mymodule description = my super module core = 7.x
-
в sites/all/modules/custom/mymodule создать mymodule.module и вствить туда:
/** * @file * my syper module */
На этом заготовка для друпал модуля готова.