Ejemplo n.º 1
0
 /**
  * @test
  */
 public function delete()
 {
     // La suppression simple se passe correctement
     /** @var Tag $tag */
     $tag = $this->tags('php');
     $this->assertTrue($tag->delete());
     // les news qui avaient le tag supprimé ne l'ont plus
     $this->assertEquals(0, TranslatedNewsHasTag::model()->countByAttributes(array('tag_id' => $tag->id)));
 }
Ejemplo n.º 2
0
 /**
  * @test
  */
 public function getTagsNames()
 {
     /** @var TranslatedNews $model */
     $model = $this->translations('n2');
     $count = TranslatedNewsHasTag::model()->countByAttributes(array('translated_news_id' => $model->id));
     $this->assertEquals($count, count($model->getTagsNames()));
 }
Ejemplo n.º 3
0
 /**
  * Associe les tags du tableau $tags avec l'actualité $this
  * @param string|array $tags Suite de tags séparés par des virgules.
  * @return bool
  */
 public function insertTags($tags)
 {
     if (is_string($tags)) {
         $tags = explode(',', $tags);
     }
     if (!is_array($tags)) {
         Yii::log(h::_(CVarDumper::dumpAsString($tags), __FILE__, __LINE__, __METHOD__), CLogger::LEVEL_ERROR);
         return false;
     }
     foreach (array_map('trim', array_unique($tags)) as $tagName) {
         /** @var $tag Tag */
         if (!($tag = Tag::model()->findByAttributes(array('name' => $tagName, 'language_id' => $this->language_id)))) {
             // Si le tag n'existe pas, on le crée
             $tag = new Tag();
             $tag->name = $tagName;
             $tag->language_id = $this->language_id;
             if (!$tag->save()) {
                 Yii::log(h::_($tag->getErrors(), __FILE__, __LINE__, __METHOD__), CLogger::LEVEL_ERROR);
                 return false;
             }
         } else {
             // S'il existe déjà, on vérifie qu'il n'est pas déjà associé à $this...
             if (TranslatedNewsHasTag::model()->countByAttributes(array('translated_news_id' => $this->id, 'tag_id' => $tag->id))) {
                 // ... et s'il l'est, RAF, on passe à la suite
                 continue;
             }
         }
         $record = new TranslatedNewsHasTag();
         $record->translated_news_id = $this->id;
         $record->tag_id = $tag->id;
         if (!$record->save()) {
             Yii::log(h::_($record->getErrors(), __FILE__, __LINE__, __METHOD__), CLogger::LEVEL_ERROR);
             return false;
         }
     }
     return true;
 }