示例#1
0
 public function testLoadByIndexer()
 {
     $indexerId = 'indexer_id';
     $this->_resourceMock->expects($this->once())->method('load')->with($this->model, $indexerId)->willReturnSelf();
     $this->model->loadByIndexer($indexerId);
     $this->assertEquals($indexerId, $this->model->getIndexerId());
 }
示例#2
0
 /**
  * Synchronize status for indexers
  *
  * @param \Magento\Indexer\Model\Indexer\State $state
  * @return \Magento\Indexer\Model\Indexer\State
  */
 public function afterSetStatus(\Magento\Indexer\Model\Indexer\State $state)
 {
     if (in_array($state->getIndexerId(), $this->indexerIds)) {
         $indexerId = $state->getIndexerId() == \Magento\Catalog\Model\Indexer\Category\Product::INDEXER_ID ? \Magento\Catalog\Model\Indexer\Product\Category::INDEXER_ID : \Magento\Catalog\Model\Indexer\Category\Product::INDEXER_ID;
         $relatedIndexerState = $this->state->loadByIndexer($indexerId);
         $relatedIndexerState->setData('status', $state->getStatus());
         $relatedIndexerState->save();
     }
     return $state;
 }
示例#3
0
文件: Mode.php 项目: nja78/magento2
 /**
  * Process flat enabled mode change
  *
  * @return void
  */
 public function processValue()
 {
     if ((bool) $this->getValue() != (bool) $this->getOldValue()) {
         if ((bool) $this->getValue()) {
             $this->indexerState->loadByIndexer(\Magento\Catalog\Model\Indexer\Category\Flat\State::INDEXER_ID);
             $this->indexerState->setStatus(\Magento\Indexer\Model\Indexer\State::STATUS_INVALID);
             $this->indexerState->save();
         } else {
             $this->indexerRegistry->get(\Magento\Catalog\Model\Indexer\Category\Flat\State::INDEXER_ID)->setScheduled(false);
         }
     }
 }
示例#4
0
 /**
  * Process flat enabled mode change
  *
  * @return void
  */
 public function processValue()
 {
     if ((bool) $this->getValue() != (bool) $this->getOldValue()) {
         if ((bool) $this->getValue()) {
             $this->indexerState->loadByIndexer(\Magento\Catalog\Model\Indexer\Product\Flat\Processor::INDEXER_ID);
             $this->indexerState->setStatus(\Magento\Framework\Indexer\StateInterface::STATUS_INVALID);
             $this->indexerState->save();
         } else {
             $this->_productFlatIndexerProcessor->getIndexer()->setScheduled(false);
         }
     }
 }
示例#5
0
 /**
  * Synchronize status for indexers
  *
  * @param State $state
  * @return State
  */
 public function afterSave(State $state)
 {
     if (in_array($state->getIndexerId(), $this->indexerIds)) {
         $indexerId = $state->getIndexerId() === Product::INDEXER_ID ? Category::INDEXER_ID : Product::INDEXER_ID;
         $relatedIndexerState = $this->state->loadByIndexer($indexerId);
         if ($relatedIndexerState->getStatus() !== $state->getStatus()) {
             $relatedIndexerState->setData('status', $state->getStatus());
             $relatedIndexerState->save();
         }
     }
     return $state;
 }
示例#6
0
 /**
  * Return related state object
  *
  * @return Indexer\State
  */
 public function getState()
 {
     if (!$this->state) {
         $this->state = $this->stateFactory->create();
         $this->state->loadByIndexer($this->getId());
     }
     return $this->state;
 }
示例#7
0
 /**
  * {@inheritdoc}
  */
 public function loadByIndexer($indexerId)
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'loadByIndexer');
     if (!$pluginInfo) {
         return parent::loadByIndexer($indexerId);
     } else {
         return $this->___callPlugins('loadByIndexer', func_get_args(), $pluginInfo);
     }
 }