_init(\Magento\Cms\Model\Page::class, \Magento\Cms\Model\ResourceModel\Page::class); $this->_map['fields']['page_id'] = 'main_table.page_id'; $this->_map['fields']['store'] = 'store_table.store_id'; } /** * Set first store flag * * @param bool $flag * @return $this */ public function setFirstStoreFlag($flag = false) { $this->_previewFlag = $flag; return $this; } /** * Add filter by store * * @param int|array|\Magento\Store\Model\Store $store * @param bool $withAdmin * @return $this */ public function addStoreFilter($store, $withAdmin = true) { if (!$this->getFlag('store_filter_added')) { $this->performAddStoreFilter($store, $withAdmin); } return $this; } /** * Perform operations after collection load * * @return $this */ protected function _afterLoad() { $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class); $this->performAfterLoad('cms_page_store', $entityMetadata->getLinkField()); $this->_previewFlag = false; return parent::_afterLoad(); } /** * Perform operations before rendering filters * * @return void */ protected function _renderFiltersBefore() { $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class); $this->joinStoreRelationTable('cms_page_store', $entityMetadata->getLinkField()); } }