Example #1
0
 public function save()
 {
     $category = Category::model()->findByPk($this->id);
     if (is_null($category)) {
         // insert
         // Category
         $category = new Category();
         $category->date_added = date('Y-m-d');
         $category->date_modified = date('Y-m-d');
         $category->image = $this->image;
         $category->top = $this->top;
         $category->column = $this->columns;
         $category->sort_order = $this->sortOrder;
         $category->status = $this->status;
         $category->parent_id = $this->parent;
         $category->save();
         // Description
         $description = new CategoryDescription();
         $description->category_id = $category->category_id;
         $description->language_id = 1;
         // TODO: language must be dynamic
         $description->name = $this->name;
         $description->meta_description = $this->metaTagDescription;
         $description->meta_keyword = $this->metaTagKeywords;
         $description->description = $this->description;
         $description->save();
     } else {
         // update
         // Category
         $category->date_modified = date('Y-m-d');
         $category->image = $this->image;
         $category->top = $this->top;
         $category->column = $this->columns;
         $category->sort_order = $this->sortOrder;
         $category->status = $this->status;
         $category->parent_id = $this->parent;
         $category->save();
         // Description
         $category->description->name = $this->name;
         $category->description->meta_description = $this->metaTagDescription;
         $category->description->meta_keyword = $this->metaTagKeywords;
         $category->description->description = $this->description;
         $category->description->save();
     }
     // SEO keyword
     $category->updateSEOKeyword($this->seoKeyword);
     // Stores
     $category->clearAllStoresRelations();
     if (isset($this->stores) && count($this->stores)) {
         foreach ($this->stores as $storeId) {
             $category->addToStore($storeId);
         }
     }
     // Filters
     $category->clearAllFiltersRelations();
     if (isset($this->filters) && count($this->filters) > 0) {
         foreach ($this->filters as $filterId) {
             $category->addFilter($filterId);
         }
     }
 }