/**
  * Creates data provider instance with search query applied
  * @param array $params
  * @return ActiveDataProvider
  */
 public function search($params = null)
 {
     $query = WidgetCarouselItem::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'carousel_id' => $this->carousel_id, 'status' => $this->status, 'order' => $this->order]);
     $query->andFilterWhere(['like', 'path', $this->path])->andFilterWhere(['like', 'url', $this->url])->andFilterWhere(['like', 'caption', $this->caption]);
     return $dataProvider;
 }
Example #2
-1
 /**
  * @throws InvalidConfigException
  */
 public function init()
 {
     if (!$this->key) {
         throw new InvalidConfigException();
     }
     $cacheKey = [WidgetCarousel::className(), $this->key];
     $items = \Yii::$app->cache->get($cacheKey);
     if ($items === false) {
         $items = [];
         $query = WidgetCarouselItem::find()->joinWith('carousel')->where(['{{%widget_carousel_item}}.status' => 1, '{{%widget_carousel}}.status' => WidgetCarousel::STATUS_ACTIVE, '{{%widget_carousel}}.key' => $this->key])->orderBy(['order' => SORT_ASC]);
         foreach ($query->all() as $k => $item) {
             /** @var $item \common\models\WidgetCarouselItem */
             if ($item->path) {
                 $items[$k]['content'] = Html::img($item->getImageUrl());
             }
             if ($item->url) {
                 $items[$k]['content'] = Html::a($items[$k]['content'], $item->url, ['target' => '_blank']);
             }
             if ($item->caption) {
                 $items[$k]['caption'] = $item->caption;
             }
         }
         \Yii::$app->cache->set($cacheKey, $items, 60 * 60 * 24 * 365);
     }
     $this->items = $items;
     parent::init();
 }