Drupal 8: Модули

Drupal 8: Модули Электронная цифровая подпись

Начало разработки модуля

Я покажу как создать модуль, позволяющий добавлять RSS ленты и выводить их контент на отдельной странице.

Для начала необходимо выбрать «краткое имя» модуля. Оно будет использоваться во всех файлах и именах функций модуля. Оно должно начинаться только с буквы и содержать только символы нижнего регистра и знак “_”. Я назвал свой модуль «rss_feeds».

Создаем папку: sites/all/modules/rss_feeds (все новые модули, которые Вы хотите добавить, должны находиться в этой папке). В ней создаем файл rss_feeds.info, который содержит META-информацию о нашем модуле:

/config/install/loremipsum.settings.yml

loremipsum:page_title: ‘Lorem ipsum’source_text: “Lorem ipsum dolor sit amet, consitteur adipisci elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua”. в представлении в завитке велит esse cillum dolore eu fugiat nulla pariatur. nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est labour. “

В этом файле хранятся настройки по умолчанию, которые назначаются правильным полям через следующий файл:

loremipsum:
  page_title: 'Lorem ipsum'
  source_text: "Lorem ipsum dolor sit amet, consectetur adipisci elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. "

В этом файле хранятся настройки по умолчанию, которые назначаются правильным полям через следующий файл:

Читайте также:  Что такое открытый конкурс в электронной форме? Где проводится голосование и как он проходит

¶загрузка модулей

Модули для Drupal, как правило, находятся на ecpexpert.ru. Для их загрузки вы можете воспользоваться страницей проекта, либо Composer.

При загрузке архива с модулем, вам необходимо самостоятельно распаковать файлы модуля в нужную директорию. При использовании Composer, всё будет сделано автоматически.

¶местоположение модулей

Модули располагаются в директории /modules проекта. Drupal умеет анализировать весь проект и находить модули при любом уровне вложенности.

Примерная структура данной папки на проекте:

└─ modules/
     ├─ module_name/
     ├─ example_module/
     └─ another_module/

У данного подхода есть недостатки:

  1. Со временем, на реальном проекте, становится невозможным отличить contrib модули от custom модулей. В связи с чем, появляются трудности с поддержкой проекта.
  2. При работе с VCS, вам придется в ручном режиме отделять contrib модули от custom, чтобы они не попадали в репозиторий.

В связи с этим, в сообществе имеется best practice по работе с данной директорией. В ней создаются две дополнительные папки, в которые уже и складываются модули: contrib и custom, соответственно. Модули, которые в них находятся, должны полностью соответствовать их названиям в соответствии с типами модулей.

При таком подходе, структура начинает выглядеть следующим образом:

└─ modules/
     ├─ contrib/
     │  ├─ module_name/
     │  ├─ example_module/
     │  └─ another_module/
     └─ custom/
        └─ my_custom_module/

Это решает множество проблем и облегчает поддержку проекта. Многие инструменты также учитывают данный best practice. Например, Composer в ядре настроен таким образом, что все модули, запрошенные с ecpexpert.ru, будут автоматически устанавливаться в modules/contrib.

¶удаление (отключение) модулей

Если какой-то модуль вам больше не нужен, вы можете отключить его, путем запуска процесса удаления. Данная операция находится на административной странице “Расширения” во вкладке “Удалить”.

Читайте также:  Аксиком | Удостоверяющий центр | Безопасность информации

На странице удаления, вы можете выбрать модули для удаления из списка активных (установленных) модулей. Для этого вам необходимо выбрать ненужные модули при помощи галочек и нажать на кнопку удаления.

Данная страница не позволит вам удалить модуль, если он является зависимостью для другого модуля, до тех пор, пока зависимость также не будет удалена.

В процессе удаления будут вызваны соответствующие события и операции, в результате которых модуль будет удалён с сайта, а все данные, которые модуль хранил, будут утеряны.

Обратите внимание на то, что удаление не влечет за собой физическое удаление файлов модуля, эта задача производится в ручном режиме.

¶удаление (файлов) модулей

После того как вы отключили ненужные вам модули, вы можете их удалить, если они больше не нужны.

Удаление файлов модулей должно производится тем же способом, который был использован для их загрузки. Если вы загружали модуль руками с ecpexpert.ru, то файлы необходимо удалять также руками, если вы загружали зависимость при помощи Composer, то удалять необходимо его командами.

¶установка (включение) модулей

Для установки модулей, необходимо перейти на соответствующую административную страницу – “Расширения”.

На данной странице вы можете отметить галочками все интересующие вас модули, после чего, нажать кнопку “Установка”, которая произведёт инсталяцию модулей на сайт.

License.txt

Не включайте файл LICENSE.txt (или аналогичный). Скрипт упаковки добавит это.

Loremipsum.info.yml

name: Lorem ipsum
type: module
description: 'Lorem ipsum generator for Drupal'
package: Development
core: 8.x
configure: loremipsum.form

Loremipsum.libraries.yml

Используется для записи зависимостей для библиотек CSS и Javascript. Подробнее в соответствующем разделе.

Определения для создания дополнительных локальных действий (кнопок) для определенного маршрута.

Определения для создания дополнительных контекстных действий для определенного элемента пользовательского интерфейса.

Читайте также:  Электронная подпись от ФНС. Как получить и настроить ЭЦП от налоговой

Определения для создания дополнительных локальных задач (вкладок) для определенного маршрута.

Loremipsum.permissions.yml

generate lorem ipsum:
  title: 'Generate Lorem ipsum'

Как видите, это намного проще, чем вызов hook_permission (). Полный синтаксис находится в документации PermissionHandler.

Loremipsum.services.yml

Позволяет объявить таможенный сервис.

Предисловие

Совсем недавно получил задание научиться писать модули под Drupal 7. Начал рыскать в поисках различных статей и мануалов, и понял, что их довольно мало, и информация совсем минимальная. Официальная документация так же не дала мне исчерпывающей информации. С горем пополам собрал некоторую информацию с нескольких источников и решил поделиться ей с Вами.

Не буду рассказывать, что такое Drupal, его структуру. Статья рассчитана на тех, кто минимально знает принцип работы хуков и отображения Drupal. Все это можно прочитать на официальном сайте API Drupal.

Создание файла .module


Далее создаем непосредственно файл модуля –

rss_feeds.module

Заключение

Вот собственно и получился готовый модуль. Если Вам понравилась данная статья, я напишу как добавлять js-файлы к модулям и делать файлы-локализации. Надеюсь кому-нибудь она поможет.

Спасибо за внимание!

Оцените статью
ЭЦП Эксперт
Добавить комментарий