Example #1
0
 /**
  * Register data required by process in event object
  *
  * @param \Magento\Index\Model\Event $event
  * @return $this
  */
 protected function _registerEvent(\Magento\Index\Model\Event $event)
 {
     $event->addNewData(self::EVENT_MATCH_RESULT_KEY, true);
     $entity = $event->getEntity();
     switch ($entity) {
         case \Magento\Catalog\Model\Product::ENTITY:
             $this->_registerProductEvent($event);
             break;
         case \Magento\Catalog\Model\Category::ENTITY:
             $this->_registerCategoryEvent($event);
             break;
         case \Magento\Store\Model\Store::ENTITY:
         case \Magento\Store\Model\Store::ENTITY:
         case \Magento\Framework\App\Config\ValueInterface::ENTITY:
             $process = $event->getProcess();
             $process->changeStatus(\Magento\Index\Model\Process::STATUS_REQUIRE_REINDEX);
             break;
     }
     return $this;
 }
Example #2
0
 /**
  * Try dynamicly detect and call event handler from resource model.
  * Handler name will be generated from event entity and type code
  *
  * @param   Event $event
  * @return  $this
  */
 public function callEventHandler(Event $event)
 {
     if ($event->getEntity()) {
         $method = $event->getEntity() . '_' . $event->getType();
     } else {
         $method = $event->getType();
     }
     $method = str_replace(' ', '', ucwords(str_replace('_', ' ', $method)));
     $resourceModel = $this->_getResource();
     if (method_exists($resourceModel, $method)) {
         $resourceModel->{$method}($event);
     }
     return $this;
 }
Example #3
0
 /**
  * Register data required by process in event object
  *
  * @param Event $event
  * @return void
  */
 protected function _registerEvent(Event $event)
 {
     $event->addNewData(self::EVENT_MATCH_RESULT_KEY, true);
     switch ($event->getEntity()) {
         case Product::ENTITY:
             $this->_registerCatalogProductEvent($event);
             break;
         case ValueInterface::ENTITY:
         case Store::ENTITY:
         case Attribute::ENTITY:
         case Group::ENTITY:
             $event->addNewData('catalogsearch_fulltext_skip_call_event_handler', true);
             $process = $event->getProcess();
             $process->changeStatus(Process::STATUS_REQUIRE_REINDEX);
             break;
         case Category::ENTITY:
             $this->_registerCatalogCategoryEvent($event);
             break;
         default:
             break;
     }
 }