Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MviewState.php
Go to the documentation of this file.
1 <?php
10 
12 {
16  protected $state;
17 
21  protected $changelog;
22 
28  protected $viewIds = [
31  ];
32 
37  public function __construct(
38  \Magento\Framework\Mview\View\StateInterface $state,
39  \Magento\Framework\Mview\View\ChangelogInterface $changelog
40  ) {
41  $this->state = $state;
42  $this->changelog = $changelog;
43  }
44 
51  public function afterSetStatus(\Magento\Framework\Mview\View\StateInterface $state)
52  {
53  if (in_array($state->getViewId(), $this->viewIds)) {
54  $viewId = $state->getViewId() ==
58 
59  $relatedViewState = $this->state->loadByView($viewId);
60 
61  // if equals nothing to change
62  if ($relatedViewState->getMode() == \Magento\Framework\Mview\View\StateInterface::MODE_DISABLED ||
63  $state->getStatus() == $relatedViewState->getStatus()
64  ) {
65  return $state;
66  }
67 
68  // suspend
69  if ($state->getStatus() == \Magento\Framework\Mview\View\StateInterface::STATUS_SUSPENDED) {
70  $relatedViewState->setStatus(\Magento\Framework\Mview\View\StateInterface::STATUS_SUSPENDED);
71  $relatedViewState->setVersionId($this->changelog->setViewId($viewId)->getVersion());
72  $relatedViewState->save();
73  } else {
74  if ($relatedViewState->getStatus() == \Magento\Framework\Mview\View\StateInterface::STATUS_SUSPENDED) {
75  $relatedViewState->setStatus(\Magento\Framework\Mview\View\StateInterface::STATUS_IDLE);
76  $relatedViewState->save();
77  }
78  }
79  }
80 
81  return $state;
82  }
83 }
__construct(\Magento\Framework\Mview\View\StateInterface $state, \Magento\Framework\Mview\View\ChangelogInterface $changelog)
Definition: MviewState.php:37
afterSetStatus(\Magento\Framework\Mview\View\StateInterface $state)
Definition: MviewState.php:51