_storeManager = $storeManager; $this->carouselDataFactory = $carouselDataFactory; $this->slideFactory = $slideFactory; $this->dataObjectHelper = $dataObjectHelper; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } /** * Retrieve carousel model with carousel data * @return CarouselInterface */ public function getDataModel() { $carouselData = $this->getData(); $carouselDataObject = $this->carouselDataFactory->create(); $this->dataObjectHelper->populateWithArray( $carouselDataObject, $carouselData, CarouselInterface::class ); return $carouselDataObject; } public function beforeSave() { if ($this->hasDataChanges()) { $this->setUpdateTime(date('Y-m-d H:i:s')); } parent::beforeSave(); } public function setUpdateTime($updateTime) { return $this->setData(self::UPDATE_TIME, $updateTime); } public function getSlide($store_id = null) { return $this->getAllActiveSlide() ->addStoreFilter($store_id ? $this->_storeManager->getStore($store_id) : null); } public function getAllActiveSlide() { return $this->getAllSlide() ->addFieldToFilter('is_active', '1'); } public function getAllSlide() { return $this->slideFactory->create()->addFieldToSelect('*') ->addFieldToFilter('carousel', $this->getData('identifier')) ->setOrder('sort_order', 'asc'); } /** * Return current store id * * @return int */ protected function getStoreId() { return $this->_storeManager->getStore()->getId(); } /** * Model construct that should be used for object initialization * * @return void */ protected function _construct() { $this->_init(ResourceModel\Carousel::class); } }