/**
  * Finds the WidgetCarouselItem model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return WidgetCarouselItem the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = WidgetCarouselItem::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 /**
  * 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;
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getItems()
 {
     return $this->hasMany(WidgetCarouselItem::className(), ['carousel_id' => 'id']);
 }
Ejemplo n.º 4
-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();
 }