ALite CMS
Установка плагинов
Оценка: +1|0-, сообщений: 5
Рассылка
Оценка: +1|0-, сообщений: 2
Использование хуков
Оценка: +0|0-, сообщений: 7
Создавать темы и оставлять сообщения могут только зарегистрированные пользователи.
 
+0|0-
Тема:

Добавление хуков в систему и плагины

Описание:

Предложения по добавлению хуков в ALite CMS и создание хуков в собственных плагинах и дополнениях.

АвторСообщение
Ссылка05.11.2020 15:01 (отредактировано: user, 05.11.2020 15:10)

Здесь обсуждаем вопросы по добавлению хуков в ALite CMS и вновь создаваемых плагинах и дополнениях.

ProfStudio
Ссылка13.11.2020 17:23

Как добавить собственное событие для хука в кастомном модуле или плагине?

Ссылка13.11.2020 17:39

Добавьте в модуле или плагине строку:

alc_common_add_hook_event('my_hook_name' [, $arg1[, $arg2[, ...]]]);

Если надо получить результат выполнения функции, можно использовать такую конструкцию (пример для логической переменной):

$return_result = false;
alc_common_add_hook_event('my_hook_name' [, $arg1[, $arg2[, ...]]], $return_result);
//пользовательская функция изменяет переменную  $return_result
if ($return_result) {
  ...
}

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

ProfStudio
Ссылка16.11.2020 14:42

Т.е. в пользовательской функции не надо писать типа return 'что-то'?

Ссылка16.11.2020 14:54 (отредактировано: admin, 16.11.2020 14:56)
ProfStudio

Т.е. в пользовательской функции не надо писать типа return 'что-то'?

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

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

ProfStudio
Ссылка20.11.2020 15:22

Где расположены файлы плагинов хуков и как установить новый?

Ссылка20.11.2020 15:35 (отредактировано: admin, 20.11.2020 15:24)

Файлы распологаются в папке /_modules/hooks/plugins_hooks/. Сам плагин это папка внутри этой папки. Имя папки плагина и имя стартового файла должны совпадать!

Например, /_modules/hooks/plugins_hooks/my_plugin/my_plugin.php.

Установить плагин можно через менеджер файлов, FTP или интерфейс системы Инструменты -> Хуки.

При установке через интерфейс системы загружаемый файл должен представлять собой ZIP-архив с именем плагина. Внутри архива должна находиться папка с именем плагина. Имя архива и имя папки в нем должны совпадать!

Статистика форума
Сейчас эту тему читают: всего 1, пользователей 0, гостей 1
Сообщений на форуме: 96
Зарегистрировано пользователей: 48
Рекорд посещаемости: 245, зафиксирован 30.09.2012 00:03