dateTime = $dateTime; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); } /** * Core Design resource collection * * @return void */ protected function _construct() { $this->_init(\Magento\Theme\Model\Design::class, \Magento\Theme\Model\ResourceModel\Design::class); } /** * Join store data to collection * * @return \Magento\Theme\Model\ResourceModel\Design\Collection */ public function joinStore() { return $this->join(['cs' => 'store'], 'cs.store_id = main_table.store_id', ['cs.name']); } /** * Add date filter to collection * * @param null|int|string|\DateTimeInterface $date * @return $this */ public function addDateFilter($date = null) { if ($date === null) { $date = $this->dateTime->formatDate(true); } else { $date = $this->dateTime->formatDate($date); } $this->addFieldToFilter('date_from', ['lteq' => $date]); $this->addFieldToFilter('date_to', ['gteq' => $date]); return $this; } /** * Add store filter to collection * * @param int|array $storeId * @return \Magento\Theme\Model\ResourceModel\Design\Collection */ public function addStoreFilter($storeId) { return $this->addFieldToFilter('store_id', ['in' => $storeId]); } }