Выдано 126277 лицензий

События (хуки)

Re: События (хуки)
d-ze
Уважаемые участники форума, у меня такой вопрос:
Каким образом можно перехватить момент изменения заказа (добавление/удаление товаров, или изменение их количества) из панели администрирования (оформленные заказы -> заказ -> товары) ?
В классе Shop_Order_Model нужного хука я не нашел!
Благодарю за внимание.

01.07.2015 20:18:44 • Сообщений: 12
Re: События (хуки)
EugenyP
d-ze,
у всех объектов с родительским классом Core_Entity есть такие хуки

$function = 'my_function';
Core_Event::attach('Shop_Order_Model.onBeforeSave', $function);
Core_Event::attach('Shop_Order_Model.onAfterSave', $function);
HostDev.pw - модули для HostCMS

02.07.2015 06:17:51 • Сообщений: 769
Re: События (хуки)
hostcms
Модератор
Если речь о товарах заказа, то модель будет Shop_Order_Item_Model
Также посмотрите события в Admin_Form_Action_Controller_Type_Edit
http://www.hostcms.ru/forums/2/10300/
http://www.hostcms.ru/forums/2/9082/

02.07.2015 08:58:19 • Сообщений: 16287
Re: События (хуки)
d-ze
Благодарю! Shop_Order_Model.onAfterSave - то что нужно!

02.07.2015 14:31:52 • Сообщений: 12
Re: События (хуки)
ARTATOM
Добрый день
Как в ЦА в форме "Информационные группы и элементы" (id = 12) программно убрать определенные столбцы для, опять же, определенной ИС.
Это понадобилось для следующего:
с помощью хука несуществующего метода модели (informationsystem_item.onCallMyFlag, см. гл. Добавление обработчиков несуществующих методов модели) и доп. поля на указанной форме для определенной ИС я вывожу столбец доп.свойства элементов ИС типа "флажок". Однако доп.столбец на форме выводится всегда - вне зависимости от выводимой ИС.
Через хук admin_form_field.onAfterFindAll я могу убрать "ненужный" столбец, но в этот хук не передается информация о выводимой на форме ИС, поэтому хуком я убираю нужный мне столбец сразу для всех ИС . В общем непонятно куда копать.
Надеюсь на помощь сообщества.

p.s. поправочка через хук admin_form_field.onAfterFindAll нельзя убрать столбцы, т.к. в хук не передается ссылка на результаты запроса полей формы (когда я пытался убрать поля, то я поленился написать хук и дебажил непосредственно в findAll() в orm.php)
ARTatom

07.09.2015 08:05:48 • Сообщений: 84
Авторизация