изменяет элемент.
Если я его запускаю со страницы, то всё прекрасно отрабатывает, но если ставлю на событие изменения элемента, то Fatal Error и ругает компиляцию сущности,
Fatal error: Cannot declare class idea\CATALOG_PRODUCTSTable, because the name is already in use...
На странице -
$action = new ToggleActivateProduct(42538);
$action->RunActionElements(); - Всё гуд.
По событию:
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("ElementsUpdate", "UpdateProductActiveHandler"));
class ElementsUpdate
{
public static function UpdateProductActiveHandler(&$arFields)
{
if($arFields['ID'] > 0)
{
$action = new ToggleActivateProduct($arFields['ID']);
$action->RunActionElements();
}
}
}
Так не пашет
А вы пробовали просто через функцию, без класса? Ну и скрин скиньте из init.php, мало ли, может чтото не так :)
В тексте ошибке же явно указано, что такой класс уже есть)
А почему его нет при запуске этого же кода со страницы?
Так у вас же совершенно разные способы запуска :)
Имею ввиду на странице и через событие :)
покажите внутренности ToggleActivateProduct
Он там жирненький)
Без класса та же беда
Скиньте скрин как пробовали :)
Странно вроде все правильно, пробовали логировать вызов события через вот это: https://dev.1c-bitrix.ru/api_help/main/functions/debug/addmessage2log.php
А стоп, а класс ToggleActivateProduct у вас в отдельном файле или там же в init.php?
в отдельном. В ините Loader::registerAutoLoadClasses подключает его
Попробуйте вот по такому принципу подключить, там помоему в событиях вроде бы не хватает только стандартной регистрации класса в системе.
Придумывать не буду, давно такого не делал, но там какието проблемы точно есть с подключением своего класса в событие :)
нету там проблем инфа 100%
А, блин я фигню спорол :)))
Это если хочешь использовать событие из своего класса, прошу прощение
Вы в init.php, свой класс через use, подключили?
да нет там проблемы с подключением у него, проблема в самом коде
Я тож так думаю.. где только в коде
Может быть вы и правы, дебага то мы не видели :)
Судя по логу событие срабатывает как надо.
Понял тогда извиняюсь за недоверие :)
Обсуждают сегодня