示例#1
0
 /**
  * Manages all models.
  */
 public function actionAdmin()
 {
     $session = $this->setAdminGridViewSessionVariables('TranslatedNews');
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     // clear any default values
     $model->attributes = $session->get('admin_current_filter');
     $activeLanguage = Language::findByCode(Yii::app()->language);
     $model->language_id = $activeLanguage->id;
     $pager = new CPagination();
     /** @var NewsModule $newsModule */
     $newsModule = Yii::app()->getModule('news');
     $pager->pageSize = $newsModule->adminPageSize;
     if ($page = $session->get('admin_current_page')) {
         $pager->currentPage = $page - 1;
         // la numérotation commence à 0...
     }
     $this->render('admin', array('model' => $model, 'pager' => $pager, 'availableTags' => Tag::model()->findAllByAttributes(array('language_id' => $activeLanguage->id))));
 }
 /**
  * @test
  */
 public function search()
 {
     // recherche par news_id
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->news_id = 1;
     $data = $model->search()->data;
     $count = TranslatedNews::model()->countByAttributes(array('news_id' => 1));
     $this->assertEquals($count, count($data));
     // recherche par language_id
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->language_id = 2;
     $data = $model->search()->data;
     $count = TranslatedNews::model()->countByAttributes(array('language_id' => 2));
     $this->assertEquals($count, count($data));
     // recherche par title
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->title = "News 1";
     $data = $model->search()->data;
     $this->assertEquals(2, count($data));
     // recherche par description
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->description = "desc news 1";
     $data = $model->search()->data;
     $this->assertEquals(2, count($data));
     // recherche par keywords
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->keywords = "kw news 1";
     $data = $model->search()->data;
     $this->assertEquals(2, count($data));
     // recherche par content
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->content = "avec tags";
     $data = $model->search()->data;
     $this->assertEquals(2, count($data));
     // recherche par news.event_date
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->eventDate = "2013-06-01";
     $data = $model->search()->data;
     $this->assertEquals(2, count($data));
     // recherche par news.enabled
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->enabled = 1;
     $data = $model->search()->data;
     $query = "SELECT COUNT(*) cpt FROM translated_news t\n\t\t\tINNER JOIN news n ON n.id = t.news_id\n\t\t\tWHERE n.enabled = 1";
     $count = Yii::app()->db->createCommand($query)->queryScalar();
     $this->assertEquals($count, count($data));
     // recherche par tagString
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->tagsString = "php";
     $data = $model->search()->data;
     $this->assertEquals(4, count($data));
     // recherche par tagIdFilter
     $model = new TranslatedNews('search');
     $model->unsetAttributes();
     $model->tagIdFilter = 1;
     $data = $model->search()->data;
     $query = "SELECT COUNT(*) cpt FROM translated_news tn\n\t\t\tINNER JOIN translated_news_has_tag  asso ON tn.id = asso.translated_news_id\n\t\t\tINNER JOIN tag t ON t.id = asso.tag_id\n\t\t\tWHERE t.id = 1";
     $count = Yii::app()->db->createCommand($query)->queryScalar();
     $this->assertEquals($count, count($data));
 }