Отключить индексирование модификации товаров при создании

#
Отключить индексирование модификации товаров при создании
Когда добавляется по одному:

  1. Пишем класс наблюдателя, размещаем его в modules/shop/item/observer.php
    class Shop_Item_Observer
    {
       static public function onAfterApplyObjectProperty($controller, $args)
        {
            list($Admin_Form_Controller) = $args;

            switch (get_class($controller))
            {
                case 'Shop_Item_Controller_Edit':
                    $object = $controller->getObject();

                    if($object->modification_id > 0)
                    {
                        $object->indexing = 0;
                        $object->save();
                    }
                    break;
            }
        }
    }

  2. Добавляем наблюдателя в bootstrap.php
    Core_Event::attach('Admin_Form_Action_Controller_Type_Edit.onAfterApplyObjectProperty', array('Shop_Item_Observer', 'onAfterApplyObjectProperty'));


Когда добавляются мастером создания модификации:

  1. Пишем класс наблюдателя, размещаем его в modules/shop/item/observer.php
    class Shop_Item_Observer
    {
       static public function onAfterExecute($controller, $args)
        {
            $item = $args[0];

            $aModificationsItems = $item->Modifications->getByindexing(1, FALSE);

            foreach ($aModificationsItems as $oModification_Item)
            {
                $oModification_Item->indexing = 0;
                $oModification_Item->save();
            }
        }
    }

  2. Добавляем наблюдателя в bootstrap.php
    Core_Event::attach('Shop_Item_Modification_Create_Controller.onAfterExecute', array('Shop_Item_Observer', 'onAfterExecute'));

E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Отключить индексирование модификации товаров при создании
Seri,
легче через shop_item.onBeforeCreate всего один хук, и без разницы как создается модификация, хоть в админке, хоть через мастер, хоть CSV, хоть свой ORM
class Shop_Item_Observer
{
   static public function onBeforeCreate($object)
   {
      $object->modification_id && $object->indexing = 0;
   }
}

Core_Event::attach('shop_item.onBeforeCreate', array('Shop_Item_Observer', 'onBeforeCreate'));

www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Отключить индексирование модификации товаров при создании
тогда уж перед сохранением в базу, мало

class Shop_Item_Observer
{
   static public function onBeforeSave($object)
   {
      $object->modification_id && $object->indexing = 0;
   }
}


Core_Event::attach('shop_item.onBeforeSave', array('Shop_Item_Observer', 'onBeforeSave'));

HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Отключить индексирование модификации товаров при создании
да shop_item.onBeforeCreate срабатывает только 1 раз при создании товара, shop_item.onBeforeSave срабатывает всегда при обновлении товара
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
Авторизация