Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.
Форум  ->   Разработка плагинов, вопросы по API  ->  Обработка событий каталога


Показать все сообщения в этой ветке


Добавлено: 24.03.14 14:01:31  



Регистрация: 22.10.12
Сообщений: 73


Обратиться по имени

Evgeney S.:
1. Опытном путем установлено (сейчас еще раз проверил с использованием флага из примера), что событие 'v5_on_generate_eshop_item_keywords' возникает после события 'v5_on_item_prepare'.
Поэтому в обработчике события v5_on_item_prepare не доступен флаг, установленный при обработке события v5_on_generate_eshop_item_keywords (его еще просто не установили).
Наоборот - да, доступен.


Событие v5_on_generate_eshop_item_keywords на данный момент действительно генерируется позже v5_on_item_prepare.

Evgeney S.:

2. В обработчике события 'v5_on_item_prepare' не удается изменить значения кастомных полей.
Т.е. конструкция вида
$aEvent['aData']['custom_field_XXX'] = YYY;
не дает никакого результата. Данные, которые есть в массиве $aEvent['aData'] - да, можно изменить. Но кастомных полей там нет...


Как вариант решения, можно подменять полученные с формы данные внутри обработчика события v5_on_item_prepare, например -

AMI_Event::addHandler('v5_on_item_prepare', 'cstItemPrepareHandler', AMI_Event::MOD_ANY);
function cstItemPrepareHandler($name, array $aEvent, $handlerModId, $srcModId){
    if($aEvent['modId'] == 'eshop_item') {
        $oRequest = AMI::getSingleton('env/request');
        $oRequest->
            set('html_description', $oRequest->get('description', 'p'), 'p')->
            set('custom_field_36', date('d-m-Y H:i:s'), 'p');
        }
    return $aEvent;
}



0


Создать новую тему Ответить