/** * @test */ public function delete() { // suppression simple $this->assertTrue($this->webPages('desactivee')->delete()); // suppression des textes en cascade $this->assertTrue($this->webPages('accueil')->delete()); $count = WebText::model()->countByAttributes(array('web_page_id' => 1)); $this->assertEquals(0, $count); }
/** * @test */ public function create() { $model = new WebText(); $model->attributes = array('web_page_id' => 1, 'language_id' => 1, 'name' => "test", 'title' => "test", 'content' => ' ', 'enabled' => 1); $this->assertTrue($model->save()); $model = new WebText(); $model->attributes = array('web_page_id' => 1, 'language_id' => 1, 'name' => "test", 'title' => "test2", 'content' => ' ', 'enabled' => 1); $this->assertFalse($model->save()); $model = new WebText(); $model->attributes = array('web_page_id' => 1, 'language_id' => 1, 'name' => "testa", 'title' => "test", 'enabled' => 1); $this->assertFalse($model->save()); $this->assertInstanceOf('WebText', WebText::model()); $this->assertNotNull($out = WebText::defaultObject()); }
/** * Renvoie le texte de nom $name. Renvoie null si la page ne contient aucun texte de ce nom. * @param string $name Code d'identification de ce texte pour la page courante $this * @param string $languageCode Si cet argument vaut null, on utilise le langage renseigné pour l'application * @param boolean $defaultText * @return WebText|null */ public function getTextByName($name, $languageCode = null, $defaultText = true) { // On cherche le texte associé au langage de code $languageCode // Par défaut ce sera le langage de l'utilisateur if (!$languageCode && !($languageCode = Yii::app()->language)) { $languageCode = Yii::app()->language; } $language = Language::findByCode($languageCode); $text = WebText::model()->findByAttributes(array('name' => $name, 'language_id' => $language->id, 'web_page_id' => $this->id)); if (!$text && $languageCode != 'fr') { // Si le texte n'existe pas dans le langage demandé, on le récupère en français $language = Language::model()->findByCode('fr'); $text = WebText::model()->findByAttributes(array('name' => $name, 'language_id' => $language->id, 'web_page_id' => $this->id)); } if (!$text && $defaultText) { $text = WebText::defaultObject(); } return $text; }
/** * Suppression du texte #$id * @param int $id */ public function actionDeleteText($id) { $webText = WebText::model()->findByPk($id); try { if ($webText->delete()) { $this->setFlash('success', Yii::t('WebPagesModule.msg', 'The text "%name%" has been deleted', array('%name%' => $webText->name))); } else { $this->setFlash('error', Yii::t('WebPagesModule.msg', 'An error has occurred while deleting the text "%name%"', array('%name%' => $webText->name))); } } catch (Exception $x) { $this->setFlash('error', Yii::t('WebPagesModule.msg', 'An error has occurred while deleting the text "%name%"', array('%name%' => $webText->name))); Yii::log(h::_($x, __FILE__, __LINE__, __METHOD__), CLogger::LEVEL_ERROR); } if (!Yii::app()->request->isAjaxRequest) { $urlReferrer = Yii::app()->request->urlReferrer; $this->redirect($urlReferrer); } }