Почему то не срабатывает кастомное событие, или возможно я не правильно определяю точку.
Задача что бы при смене статуса заказа оповещение пользователю приходило только при определенных кодах статуса. Для этого делаю events, на которую вешаю кастомную функцию.
Я сделал следующее:
1. в файле /templates/mytepl/classes/modules/emarket/events.php прописал своё событие на смену статуса
<?php
new umiEventListener("order_refresh", "emarket", "OnActualPrice");
new umiEventListener("order-status-changed ", "emarket", "testingEvents");
?>
2. В той же папке в файле class.php добавил саму функцию testingEvents (для примера просто изменяю имя пользователя, что бы проверить срабатывает ли событие вообще)
public function testingEvents() {
$permissions = permissionsCollection::getInstance();
$currentUserId = "59";
$objects = umiObjectsCollection::getInstance();
$userObject = $objects->getObject($currentUserId);
if($userObject instanceof umiObject) {
$userObject->setValue("fname", "Проверка");
}
}
Но ничего не срабатывает почему то ... Точка вроде бы верно определена, не знаю может нужно testingEvents в permissions.php, если да, то в какую секцию их там 5 штук (purchasing, control, order_editing ... т.д.) пробовал все .... не выходит всеравно ...
для начала, добавьте команду подтверждение на сохранение изменений данных пользователя иначе вы ничего не увидите при изменении
if($userObject instanceof umiObject) {
$userObject->setValue("fname", "Проверка");
$userObject->commit();
}
P.S. Если не заработает, попробуйте перенести event и обработчик в основную папку (то есть расположить код по старой схеме в папке /classes/modules/emarket/...)
возможно вы вспоминате упоминание такого метода
throw new breakException()
в описание нового формата расширения функционала (http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/razrabotka_sobstvennyh_makrosov_i_modulej/novyj_format_rasshireniya_funkcionala/#events)