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

Использование хуков

Описание:

Способы и проблемы использования хуков.

АвторСообщение
Ссылка05.11.2020 15:07

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

Ссылка14.04.2021 11:20

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

Ссылка14.04.2021 11:39 (отредактировано: user, 14.04.2021 11:44)

В общем случае так:

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) {
 ...
}

Ссылка03.05.2021 12:52

Как запретить изменение языка на сайте?

Ссылка03.05.2021 13:00

Проще всего через хук. Например так

if (!isset($alc_admin_part)) die('Access denied '.basename(__FILE__));
if (!isset($alc_controller)) die('Failed to load controller. Work program aborted '.basename(__FILE__));

//запрет переключения языка в пользовательской части
alc_common_add_hook('alc_hook_language_select', 'my_language_fix');
function my_language_fix(&$cur_lang, &$sel_lang) {
  /*
  $cur_lang - текущая локализация
  $sel_lang - локализация, полученная из параметра alc_language_select
  */

  global $alc_admin_part;
  if (!$alc_admin_part) {
    if ($cur_lang != 'ru' or ($sel_lang and $sel_lang != 'ru')) {
      $sel_lang = 'ru';
    }
  }
}
?>

ProfStudio
Ссылка10.08.2022 11:08

А в чем разница между хуками, плагинами и модулями?

Ссылка19.08.2022 12:37 (отредактировано: admin, вчера 19:24)

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

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

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

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

 

Ссылка16.11.2024 14:03

Написал свой модуль и сделал в нём обработку хука alc_common_add_hook('alc_hook_...', 'my_function') и он не работает.frown

Ссылка16.11.2024 14:18 (отредактировано: user, 16.11.2024 14:19)
programmer

Написал свой модуль и сделал в нём обработку хука alc_common_add_hook('alc_hook_...', 'my_function') и он не работает.frown

Если вы используете хуки в обход типового размещения файла хука в папке root/_modules/hooks/plugins_hooks/, то вам необходимо самостоятельно отслеживать последовательность выполнения операций. Добавление обработчика хука alc_common_add_hook('alc_hook_...', 'my_function') обязательно должно быть выполнено раньше, чем объявление события хука alc_common_add_hook_event(('alc_hook_...', ...).

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