public function run() { $tags = NewsTag::find()->language()->orderBy(['frequency' => SORT_DESC])->limit(10)->all(); if (!empty($tags)) { return $this->render('NewsTags', ['tags' => $tags]); } else { return ''; } }
public function actionView($name) { $tag = NewsTag::find()->language()->andWhere(['name' => $name])->one(); if (!$tag) { throw new NotFoundHttpException(); } $query = News::find()->active()->language()->tag($tag); $pages = new Pagination(['totalCount' => $query->count(), 'defaultPageSize' => Yii::t('f/news', 'defaultPageSize'), 'forcePageParam' => false]); $news = $query->order()->offset($pages->offset)->limit($pages->limit)->all(); return $this->render('view', ['tag' => $tag, 'news' => $news, 'pages' => $pages]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = NewsTag::find(); $query->language(); $query->orderBy(['name' => SORT_ASC]); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['like', 'name', $this->name]); return $dataProvider; }
/** * Tag list * @return array */ public function actionTagsList($query) { $items = []; if ($query) { $models = NewsTag::find([['like', 'name', $query]])->with('translations')->all(); foreach ($models as $model) { $items[] = ['id' => $model->id, 'name' => $model->name]; } Yii::$app->response->format = Response::FORMAT_JSON; } return $items; }