Как создать свой аддон
Написать собственный аддон может любой желающий. Главное правило — знать хотя бы основы работы с PHP кодом (в идеале — ООП). В репозитории есть пример простого аддона, разберём его:
Класс аддона должен расширять существующий абстрактный класс AbstractAddon
, иметь константу PACKAGE_ID
с указанием идентификатора пакета. Если аддон планируется для связи с существующей модификацией, её ID можно посмотреть в package-info.xml
в узле id
— например, <id>Bugo:Optimus</id>
.
Если это встроенный аддон Optimus, идентификатор начинается с Optimus:
, а дальше идёт имя текущего класса. Если ваш аддон не связан с какой-либо существующей модификацией, но вы хотите, чтобы он работал с Optimus, используйте аналогичный идентификатор.
Далее, в статическом свойстве $events
указывается массив, возвращающий поддерживаемые конкретно этим аддоном события. self::HOOK_EVENT
— универсальное событие, предназначенное для взаимодействия с хуками SMF. Пример работы с ним указан в методе __invoke
.
С помощью IntegrationHook::add
мы указываем нужный нам хук и связываем его с методом внутри класса аддона.
Затем связанный метод выполняет свою работу. Конкретно в данном аддоне — ExampleAddon
— происходит добавление мета-тега <meta name="robots" content="noindex,nofollow">
на страницах заблокированных тем, а также тем с количеством ответов меньше двух. Если вам такой аддон нужен, сохраните его код в соответствующий файл ExampleAddon.php
и разместите в директории Sources/Optimus/Addons
. Ничего нигде отдельно включать не придётся, он заработает сразу.
По такому же принципу работают все доступные аддоны.