Добавление события об удалении страницы из корзины — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Актуально: Версия 18 85081''' Если Вы хотите чтобы в модуле “События” появлялось событие об …»)
 
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
'''Актуально: Версия 18 85081'''
+
'''Актуально: версия 18 85081'''
  
Если Вы хотите чтобы в модуле “События” появлялось событие об удалении страницы из корзины, то для этого можно написать кастомный обработчик событий.
+
Если Вы хотите, чтобы в модуле “События” появлялось событие об удалении страницы из корзины, можно написать кастомный обработчик событий.
  
Для этого создадим файл '''custom_events.php''' в папку /classes/components/events/
+
Для этого создадим файл '''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 false;
+
             return;
 
         }
 
         }
  
Строка 40: Строка 40:
 
</source>
 
</source>
  
Так же создадим файл с языковыми константами '''i18n.ru.php'''
+
Также создадим файл с языковыми константами '''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обытия будет появляться событие об удалении страницы из корзины.