Пример #1
0
 /**
  * Save attribute options
  * @param StoreAttribute $model
  */
 protected function saveOptions($model)
 {
     $dontDelete = array();
     if (!empty($_POST['options'])) {
         $position = 0;
         foreach ($_POST['options'] as $key => $val) {
             if (isset($val[0]) && $val[0] != '') {
                 $index = 0;
                 $attributeOption = StoreAttributeOption::model()->findByAttributes(array('id' => $key, 'attribute_id' => $model->id));
                 if (!$attributeOption) {
                     $attributeOption = new StoreAttributeOption();
                     $attributeOption->attribute_id = $model->id;
                 }
                 $attributeOption->position = $position;
                 $attributeOption->save(false);
                 foreach (Yii::app()->languageManager->languages as $lang) {
                     $attributeOption = StoreAttributeOption::model()->language($lang->id)->findByAttributes(array('id' => $attributeOption->id));
                     $attributeOption->value = $val[$index];
                     $attributeOption->save(false);
                     ++$index;
                 }
                 array_push($dontDelete, $attributeOption->id);
                 $position++;
             }
         }
     }
     if (sizeof($dontDelete)) {
         $cr = new CDbCriteria();
         $cr->addNotInCondition('t.id', $dontDelete);
         $optionsToDelete = StoreAttributeOption::model()->findAllByAttributes(array('attribute_id' => $model->id), $cr);
     } else {
         // Clear all attribute options
         $optionsToDelete = StoreAttributeOption::model()->findAllByAttributes(array('attribute_id' => $model->id));
     }
     if (!empty($optionsToDelete)) {
         foreach ($optionsToDelete as $o) {
             $o->delete();
         }
     }
 }
Пример #2
0
 /**
  * @param $attribute_id
  * @param $value
  * @return StoreAttributeOption
  */
 public function addOptionToAttribute($attribute_id, $value)
 {
     // Add option
     $option = new StoreAttributeOption();
     $option->attribute_id = $attribute_id;
     $option->value = $value;
     $option->save();
     return $option;
 }
Пример #3
0
 /**
  * Add option to store attribute
  *
  * @throws CHttpException
  */
 public function actionAddOptionToAttribute()
 {
     $attribute = StoreAttribute::model()->findByPk($_GET['attr_id']);
     if (!$attribute) {
         throw new CHttpException(404, Yii::t('StoreModule.admin', 'Ошибка загрузки атрибута'));
     }
     $attributeOption = new StoreAttributeOption();
     $attributeOption->attribute_id = $attribute->id;
     $attributeOption->value = $_GET['value'];
     $attributeOption->save(false);
     echo $attributeOption->id;
 }