Поддерживаемые события
Здесь перечислены все события, генерируемые Optimus, которые можно перехватить аддонами:
Событие | Описание |
---|---|
AddonInterface::HOOK_EVENT | универсальное событие для работы с хуками SMF |
AddonInterface::ROBOTS_RULES | событие для работы с генератором правил `robots.txt |
AddonInterface::SITEMAP_LINKS | событие для работы с генератором xml-карты |
AddonInterface::SITEMAP_CONTENT | специальное событие для обработки контента xml-карты сразу после формирования её структуры |
AddonInterface::CREATE_SEF_URLS | специальное событие для обработки ссылок в xml-карте до формирования её структуры |
Для реализации связи с выбранным событием в классе аддона нужно заполнить поле $events
и создать метод __invoke
. На примере аддона LightPortal
это выглядит так:
Затем мы создаем соответствующие методы changeRobots
и changeSitemap
(названия вы регулируете сами):
Как видите, в качестве объекта события self::ROBOTS_RULES
передается класс RobotsGenerator
для работы с генератором robots.txt
.
Соответственно, в качестве объекта события self::SITEMAP_LINKS
передается класс SitemapGenerator
для работы с генератором xml-карты.
А дальше уже всё зависит от полёта вашей фантазии и конкретных целей. Примеры реализаций встроенных аддонов можно увидеть на GitHub.
Если событий вам мало или они вас пугают, в качестве альтернативы можно использовать встроенные хуки Optimus.