Добавление события об удалении страницы из корзины — различия между версиями
Материал из Umicms
| Whoa (обсуждение | вклад) | Whoa (обсуждение | вклад)  | ||
| (не показаны 2 промежуточные версии 2 участников) | |||
| Строка 1: | Строка 1: | ||
| − | '''Актуально:  | + | '''Актуально: версия 18 85081''' | 
| Если Вы хотите, чтобы в модуле “События” появлялось событие об удалении страницы из корзины, можно написать кастомный обработчик событий. | Если Вы хотите, чтобы в модуле “События” появлялось событие об удалении страницы из корзины, можно написать кастомный обработчик событий. | ||
| Строка 24: | Строка 24: | ||
| public function onPageKill(iUmiEventPoint $event) { | public function onPageKill(iUmiEventPoint $event) { | ||
| 	if($event->getMode() != before) { | 	if($event->getMode() != before) { | ||
| − |              return  | + |              return; | 
|          } |          } | ||
| Строка 59: | Строка 59: | ||
| − | [[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обытия будет появляться событие об удалении страницы из корзины.
