示例#1
0
 /**
  * Return related state object
  *
  * @return View\StateInterface
  */
 public function getState()
 {
     if (!$this->state->getViewId()) {
         $this->state->loadByView($this->getId());
     }
     return $this->state;
 }
示例#2
0
 /**
  * Synchronize status for view
  *
  * @param \Magento\Framework\Mview\View\StateInterface $state
  * @return \Magento\Framework\Mview\View\StateInterface
  */
 public function afterSetStatus(\Magento\Framework\Mview\View\StateInterface $state)
 {
     if (in_array($state->getViewId(), $this->viewIds)) {
         $viewId = $state->getViewId() == \Magento\Catalog\Model\Indexer\Category\Product::INDEXER_ID ? \Magento\Catalog\Model\Indexer\Product\Category::INDEXER_ID : \Magento\Catalog\Model\Indexer\Category\Product::INDEXER_ID;
         $relatedViewState = $this->state->loadByView($viewId);
         // if equals nothing to change
         if ($relatedViewState->getMode() == \Magento\Framework\Mview\View\StateInterface::MODE_DISABLED || $state->getStatus() == $relatedViewState->getStatus()) {
             return $state;
         }
         // suspend
         if ($state->getStatus() == \Magento\Framework\Mview\View\StateInterface::STATUS_SUSPENDED) {
             $relatedViewState->setStatus(\Magento\Framework\Mview\View\StateInterface::STATUS_SUSPENDED);
             $relatedViewState->setVersionId($this->changelog->setViewId($viewId)->getVersion());
             $relatedViewState->save();
         } else {
             if ($relatedViewState->getStatus() == \Magento\Framework\Mview\View\StateInterface::STATUS_SUSPENDED) {
                 $relatedViewState->setStatus(\Magento\Framework\Mview\View\StateInterface::STATUS_IDLE);
                 $relatedViewState->save();
             }
         }
     }
     return $state;
 }