Пишем модуль для друпал, часть 1

В интернете можно найти много статей о том как написать модуль для друпала, где-то написано хорошо, где-то сумбурно, а где-то и вовсе обрывки кусков кода. В этой серии статей напишу как сделать модуль для друпала, учитывая тот самый drupal way ;)

Основа для создания Друпал модуля.

  1. Название модуля. Название модуля будет использоваться в функциях, в названии каталога, в .info и .module файлах модуля
  2. Хранилище модулей. Разрабатываемые модули, можно хранить как и обычные модули в sites/all/modules или в sites/all/modules/custom, так и в sites/default/modules. Каталог с файлами модуля должен называться также как модуль, для модуля mymodule каталог будет sites/all/modules/custom/mymodule
  3. Обязательные файлы. Для каждого модуля обязательно должно быть 2 файла: .info и .module

.info файл модуля

.info файл, должен называться так же как и модуль, т.е. для модуля mymodule, файл должен называться mymodule.info. Этот файл информирует друпал, о файлах модуля и выводит информацию о модуле на странице администратора admin/modules.

Минимальное содержимое .info файла:

name = mymodule
description = my super module
core = 7.x
  1. name- читабельное название модуля, может отличаться от машинописного названия
  2. description- на странице администратора, показывает описание модуля
  3. core- версия ядра друпала

Дополнительные параметры для .info файла можно прочитать тут или прочитать в моем вольном переводе:

  1. подключение .css файла к модулю

    stylesheets[all][] = node.css 
  2. подключение .js файла к модулю

    scripts[] = somescript.js 
  3. подключение файла к модулю

    files[] = tests/example.test 
  4. зависимости модуля от других модулей

    dependencies[] = taxonomy
    dependencies[] = comment 
  5. категоря модуля

    package = Views 
  6. версия пхп

    php = 5.3 
  7. страница конфигурации модуля

    configure = admin/config/content/mymodule
  8. необходимый модуль, при значении TRUE, модуль нельзя будет отключить

    required = TRUE 
  9. скрытый модуль

    hidden = TRUE 

Считается хорошим стилем подключать .css и .js файлы только там где они используется, для этого лучше подключать их не в .info файле, а используя drupal_add_js.

Файл .module

Второй обязательный файл для модуля- это файл .module, системное имя которого, так же как и имя .info файла должно совпадать с именем папки где находятся файлы.

Файл должен начинаться с

<?php

закрывающий тег не нужен.

Затем в файл модуля добавляется комментарий с пояснением предназначения модуля:

/**
 * @file
 * my syper module 
 */

Резюме:

Для того ,чтобы создать заготовку для модуля с названием mymodule надо сделать:

  1. в sites/all/modules/custom создать папку mymodule
  2. в sites/all/modules/custom/mymodule создать mymodule.info и вствить туда:

    name = mymodule
    description = my super module
    core = 7.x
  3. в sites/all/modules/custom/mymodule создать mymodule.module и вствить туда:

    /**
     * @file
     * my syper module 
     */

На этом заготовка для друпал модуля готова.