コード例 #1
0
ファイル: Article0.php プロジェクト: Aplay/myhistorypark_site
 /**
  * Set organization categories 
  * @param array $categories ids.
  */
 public function setCategories(array $categories, $add = false)
 {
     $dontDelete = array();
     if (!empty($categories)) {
         foreach ($categories as $c) {
             if (empty($c)) {
                 continue;
             }
             $found = ArticleCategory::model()->findByAttributes(array('category' => $c, 'article' => $this->id));
             // если не было категории - делаем
             if (!$found) {
                 $record = new ArticleCategory();
                 $record->category = (int) $c;
                 $record->article = $this->id;
                 $record->save(false);
             }
             $dontDelete[] = $c;
         }
     }
     if ($add === false) {
         // Удаляем все категории, которых не было в массиве
         if (sizeof($dontDelete) > 0) {
             $cr = new CDbCriteria();
             $cr->addNotInCondition('category', $dontDelete);
             ArticleCategory::model()->deleteAllByAttributes(array('article' => $this->id), $cr);
         } else {
             // удаляем все категории, т.к. пустой массив
             // Delete all relations
             ArticleCategory::model()->deleteAllByAttributes(array('article' => $this->id));
         }
     }
 }