Все дополнительные возможности системы Drupal, достигаются путем установки модулей. Для решения большинства задач, уже существуют готовые решения, загрузить которые можно на сайте проекта Drupal. Если-же вам надо решить специфичную задачу, для решения которой модуля нет - вы можете создать свой.
Давайте посмотрим как создать модуль в Drupal версий 7 и 8.
Drupal 7
Содаваемый модуль должен отвечать следующим требованиям:
- Сам модуль должен иметь уникальное имя
-
Иметь файл .info, содержащий:
- Человеко читаемое имя
- Описание модуля
- Версия ядра, с которой совместим модуль
- Иметь файл .module, который может быть и пустым, если модуль не выполняет никаких функций.
Для того, чтоб загрузить модули, в том числе и создаваемые вами, Drupal ищет их последовательно в следующих местах:
-
sites/all/modules/
-
sites/[example.com]/modules
-
sites/default/modules
-
profiles/[install-profile]/modules
Помимо вышеперечисленных, еще папка modules/, которую я в списке не перечислил. Сделал я это умышленно, так как в этой папке храянтся модули, являющиеся частью базовой системы - никогда не следует размещать свои модули в ней.
Давайте рассмотрим в качестве примера структуру модуля mymodule, которая будет выглядеть следюущим образом:
sites/all/modules/mymodule/mymodule.info sites/all/modules/mymodule/mymodule.module
Обратите внимание, что имя обоих файлов mymodule и это очень важно.
Как уже упоминалось выше, файл .module может быть пустым, а вот файл .info должен содержать минимальное количество информации: Имя,
Описание модуля и Версию ядра, с которой совместим модуль.
В качестве примера, содержимое .info файла модуля mymodule будет выглядет так:
name = MyModule description = "Custom module to check Drupal module building." core = 7.x
Если вы все правильно сделали, как описано в инструкции, в списке модулей вы должны увидеть созданный модуль mymodule:
Drupal 8
Drupal 8, в плане создания модулей, содержит ряд новшеств, одно из которых - это то, что конфигурация теперь хранится в yaml файлах.
Модуль должен иметь:
- Уникальное имя.
-
info yaml файл со следующим содержимым:
-
name:
Человеко понятное имя модуля -
type:
Тип, указывающий что данный проект - это модуль -
core:
Версия ядра, с кторой данны модуль совместим. В нашем случае это8.x
.
-
- Файл module, имя которого состоим из машинного имени модуля и расшинерия .module. Сам файл может быть пустым.
Для того, чтоб загрузить модули, в том числе и создаваемые вами, Drupal 8 ищет их последовательно в следующих местах:
-
modules/
-
sites/[example.com]/modules
-
sites/default/modules
-
profiles/[install-profile]/modules
Технически, Drupal ищет файл еще в папке core/modules
, но в нее никогда не следует помещать самостоятельно созданные модули - эта папка предназначена только для модулей, составляющих ядро системы.
Структура папки модуля mymodule будет выглядет следюущим образом:
/modules/mymodule/mymodule.info.yml
/modules/mymodule/mymodule.module
Обратите внимание, что имя обоих файлов mymodule, и это очень важно.
Как уже упоминалось выше, файл .module может быть пустым, а вот файл .info должен содержать минимальное количество информации: Человеко читаемое имя, парамтр, указывающий, что данный проект является модулем и версию ядра, с которой совместим модуль:
name: 'MyModule'
description: 'Custom module to check Drupal module building'
core: 8.x
type: module
Если вы все правильно сделали, как описано в инструкции, в списке модулей вы должны увидеть созданный модуль mymodule.
Добавить комментарий