/** * 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)); }