Wiki

Clone wiki

CMS / Хуки

Если не указано иного, будем считать, что на вход подаётся текст (вся страница или сообщение пользователя), её можно изменить и отдать функцией. Дополнительно передается еще 1 или 2 параметра: название выполняемого хука и (для некоторых хуков) дополнительная информация.

before_pather - После инициализации ядра, но до разбора URL. В качестве параметра, принимает пустой массив. Этот хук удобно использовать для перенаправления.

before_call_module - URL разобран и мы готовы вызвать модуль и action. На вход хука приходят параметры, полученные из URL. Какой модуль и действие будет вызвано, зависит именно от того, что вернет плагин. В идеале он должен вернуть массив типа:

#!php

array('module', 'action', 'param1', 'param2');

before_parse_layout - Перед парсингом (подстановкой меток) основного шаблона. На вход передается объект, в котором содержится все переменные, которые будут подставляться вместо глобальных меток. На самом деле, это объект модуля, так что он содержит не только данные меток, но и все остальные переменные окружения. На выход что-либо передавать нет нужды, так как все манипуляции будут происходить с объектом и изменения будут сразу же отражены в данном объекте. Вот некоторые свойства объекта:

#!php

<?php
    $obj->page_title;
    $obj->page_meta_description;
    $obj->page_meta_keywords;
    $obj->module_title;
    $obj->categories;
    $obj->comments;
?>

Полный список меток можно посмотреть, например с помощью

print_r($params);

где $params - принятый объект

before_parse_text - текст материала перед парсингом BB кодов и прочего. На данном этапе, мы получаем текст материала в таком виде, в каком он хранится в базе данных. В качестве третьего параметра передается true, если обрабатываются комментарии.

before_smiles_parse - текст материала перед парсингом смайлов.

after_parse_text - текст материала перед парсингом BB кодов и прочего. На данном этапе, мы получаем текст материала в таком виде, в каком он хранится в базе данных. В качестве третьего параметра передается true, если обрабатываются комментарии.

before_view - вся страница перед выводом. Из-за особенностей движка плагин вызывается несколько раз, для каждого из отображаемых файлов шаблона (например, main.html и material.html). В качестве третьего параметра передается название обрабатываемого файла шаблона. (❌ Atom-M 6)

after_view - вся HTML страница перед выводом. (🆕 Atom-M 8)

after_pather - После полной отработки системы. Страница сформирована и отдана на вывод. Закончены все манипуляции. После этого хука не происходит ничего, кроме того, что будет в плагине, работающем с данным хуком. В качестве параметра, принимает пустой массив.

new_entity - Вызывается при добавлении материала на сайт. На вход хука приходит массив, содержащий элемент entity с объектом нового материала и module с названием текущего модуля.

markers_data - Принимает массив всех меток сразу перед обработкой шаблона шаблонизатором. (🆕 Atom-M 4)

after_parse_global_markers - Вызывается сразу после генерации глобальных меток. Принимает массив глобальных(и только!) меток. (🆕 Atom-M 5)

before_add_comment - Вызывается перед тем, как добавить комментарий на сайт. На вход хука приходит ассоциативный массив, содержащий элемент comment с объектом нового комментария, элемент entity с объектом материала (или темы форума), к которому добавляется комментарий и module с названием текущего модуля, хук должен вернуть такой же или изменённый массив.

new_comment - Вызывается при добавлении комментария на сайт. На вход хука приходит массив, содержащий элемент comment с объектом нового комментария, элемент entity с объектом материала (или темы форума), к которому добавляется комментарий и module с названием текущего модуля. (🆕 Atom-M 6)

after_merge_css - Вызывается после получения списка подключаемых CSS. Принимает на вход массив и ожидает вернуть тот же или изменённый массив. (🆕 Atom-M 7)

after_merge_js - Вызывается после получения списка подключаемых JS. Принимает на вход массив и ожидает вернуть тот же или изменённый массив. (🆕 Atom-M 7)

Updated