Основы плагинов¶
Совет
Совместимость с Grav 1.8: если вы пишете плагины, добавьте в blueprints.yaml новое свойство compatibility:, чтобы объявить, на каких версиях Grav ваш плагин протестирован. Его использует система безопасного обновления, чтобы убедиться, что все плагины готовы к мажорному обновлению Grav. Подробности — в документации по совместимости плагинов.
Grav задуман простым и сфокусированным на работе только со страницами. Идея в том, что сам Grav очень лёгкий и предоставляет ровно столько возможностей, сколько нужно для базовых задач: маршрутизации, компиляции Markdown в HTML, шаблонизации Twig и кэширования.
Однако мы хотели, чтобы Grav мог расти и при необходимости давать мощные возможности, поэтому построили хуки событий по всей системе, чтобы всё можно было расширять с помощью плагинов.
Мощно!¶
Все ключевые объекты Grav доступны через мощный контейнер внедрения зависимостей. Благодаря хукам событий на протяжении всего жизненного цикла Grav вы можете получить доступ ко всему, что знает Grav, и управлять этим как нужно. С этой системой у вас есть полный контроль, чтобы добавить столько возможностей, сколько требуется.
Плагины оказались настолько простыми в написании, гибкими и мощными, что мы не можем остановиться в их создании! У нас уже есть более 300 бесплатных плагинов для скачивания, которые делают всё: от отображения карты сайта, хлебных крошек, архивов блога и простого поисковика до полнофункциональной корзины покупок на JavaScript!
Лучший способ узнать, что можно делать с плагинами, — скачать некоторые из них и посмотреть, что и как они делают. В следующей главе мы создадим простой плагин с нуля!
Самое необходимое¶
Все плагины находятся в папке user/plugins. В базовой установке Grav есть только два плагина: error и problems.
Плагин error обрабатывает HTTP-ошибки, например 404 Page Not Found.
Плагин problems полезен для новых установок Grav: он обнаруживает проблемы с хостингом, отсутствующими папками или правами доступа, которые могут вызвать сбои в Grav. Для нормальной работы действительно необходим только плагин error.
У каждого плагина в папке user/plugins должно быть уникальное имя, которое точно описывает его назначение. Пожалуйста, не используйте в имени плагина пробелы, подчёркивания и заглавные буквы.
Доступ к значениям конфигурации плагина через Twig¶
Чтобы получить доступ к настройкам конфигурации плагина через Twig (то есть внутри темы), используйте общий формат:
Если имя плагина содержит дефисы, обращайтесь к его свойствам так:
Использование Flex в плагинах¶
Рекомендуемый способ начать использовать Flex в плагине — взять devtools и создать плагин с уже сгенерированной базовой поддержкой Flex: https://learn.getgrav.org/17/basics/installation#option-1-install-from-zip-package