Добавление события об удалении страницы из корзины — различия между версиями
Материал из Umicms
Kublan (обсуждение | вклад) (Новая страница: «'''Актуально: Версия 18 85081''' Если Вы хотите чтобы в модуле “События” появлялось событие об …») |
Whoa (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Актуально: | + | '''Актуально: версия 18 85081''' |
− | Если Вы хотите чтобы в модуле “События” появлялось событие об удалении страницы из корзины, | + | Если Вы хотите, чтобы в модуле “События” появлялось событие об удалении страницы из корзины, можно написать кастомный обработчик событий. |
− | Для этого создадим файл '''custom_events.php''' в | + | Для этого создадим файл '''custom_events.php''' в папке /classes/components/events/ |
В файл добавим код: | В файл добавим код: | ||
Строка 18: | Строка 18: | ||
</source> | </source> | ||
− | Теперь добавим код обработчика в файл /public_html/classes/components/events/customAdmin.php (после строки public $module;) | + | Теперь добавим код обработчика в файл /public_html/classes/components/events/customAdmin.php (после строки public $module;): |
<source lang="php"> | <source lang="php"> | ||
Строка 24: | Строка 24: | ||
public function onPageKill(iUmiEventPoint $event) { | public function onPageKill(iUmiEventPoint $event) { | ||
if($event->getMode() != before) { | if($event->getMode() != before) { | ||
− | return | + | return; |
} | } | ||
Строка 40: | Строка 40: | ||
</source> | </source> | ||
− | + | Также создадим файл с языковыми константами '''i18n.ru.php''' | |
в папке /public_html/classes/components/events/ и добавим в него следующий код: | в папке /public_html/classes/components/events/ и добавим в него следующий код: | ||
Строка 57: | Строка 57: | ||
Теперь в модуле Cобытия будет появляться событие об удалении страницы из корзины. | Теперь в модуле Cобытия будет появляться событие об удалении страницы из корзины. | ||
− | |||
− | [[category:Модуль События]][[ | + | [[category:Модуль События]][[category:Написание кастомных макросов]] |
Текущая версия на 08:42, 2 июля 2018
Актуально: версия 18 85081
Если Вы хотите, чтобы в модуле “События” появлялось событие об удалении страницы из корзины, можно написать кастомный обработчик событий.
Для этого создадим файл custom_events.php в папке /classes/components/events/
В файл добавим код:
<?php
use UmiCms\Service;
if (!Service::Registry()->get('//modules/events/collect-events')) {
new umiEventListener('systemKillElement ', 'events', 'onPageKill');
}
Теперь добавим код обработчика в файл /public_html/classes/components/events/customAdmin.php (после строки public $module;):
public function onPageKill(iUmiEventPoint $event) {
if($event->getMode() != before) {
return;
}
if(!$event->getRef('element') instanceof umiHierarchyElement){
return;
}
$pageId = $event->getRef('element')->getId();
$hierarchy = umiHierarchy::getInstance();
$page = $hierarchy->getElement($pageId);
$this->module->registerEvent('systemKillElement',[$page->getName()], null, null);
}
Также создадим файл с языковыми константами i18n.ru.php в папке /public_html/classes/components/events/ и добавим в него следующий код:
<?php
$i18n = [
…
'systemKillElement' => 'Удаление страницы из корзины',
'systemKillElement_msg' => 'Пользователь <a href="%s">%s</a> удалил страницу "%s" из корзины',
'systemKillElement_new' => 'Удаление страницы из корзины',
'systemKillElement_img' => '/images/cms/admin/mac/icons/medium/trash.png',
……
];
Теперь в модуле Cобытия будет появляться событие об удалении страницы из корзины.