示例#1
0
 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 '';
     }
 }
示例#2
0
 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]);
 }
示例#3
0
 /**
  * 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;
 }
示例#4
0
 /**
  * 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;
 }