コード例 #1
0
ファイル: StoreCategory.php プロジェクト: alextravin/yupe
 /**
  *
  */
 public function afterSave()
 {
     Yii::app()->eventManager->fire(StoreEvents::CATEGORY_AFTER_SAVE, new Event($this));
     return parent::afterSave();
 }
コード例 #2
0
ファイル: Attribute.php プロジェクト: RonLab1987/43berega
 public function afterSave()
 {
     if ($this->type == Attribute::TYPE_DROPDOWN) {
         // список новых значений опций атрибута, не пустые, без лишних пробелов по бокам, уникальные
         $newOptions = array_unique(array_filter(array_map('trim', explode("\n", $this->rawOptions))));
         // в нижнем регистре, чтобы не надо было переназначать привязку атрибутов в товарах
         $newOptionsLower = array_map(function ($x) {
             return mb_strtolower($x, 'utf-8');
         }, $newOptions);
         $oldOptionsLower = [];
         // список имен опций, которые уже сохранены
         // удалим те из них, которых нет, в остальных обновим значение и позицию
         foreach ((array) $this->options as $option) {
             /* @var $option AttributeOption */
             $position = array_search(mb_strtolower($option->value), $newOptionsLower);
             // опция была удалена
             if ($position === false) {
                 $option->delete();
             } else {
                 $oldOptionsLower[] = mb_strtolower($option->value, 'utf-8');
                 $option->value = $newOptions[$position];
                 // если поменяли регистр опции
                 $option->position = $position;
                 $option->save();
             }
         }
         // добавим оставшиеся
         foreach (array_diff($newOptionsLower, $oldOptionsLower) as $position => $value) {
             $option = new AttributeOption();
             $option->attribute_id = $this->id;
             $option->value = $newOptions[$position];
             $option->position = $position;
             $option->save();
         }
     }
     parent::afterSave();
 }
コード例 #3
0
ファイル: Attribute.php プロジェクト: RexGalicie/yupe
 public function afterSave()
 {
     // удаляем старые значения
     AttributeOption::model()->deleteAllByAttributes(['attribute_id' => $this->id]);
     if (in_array($this->type, [Attribute::TYPE_DROPDOWN])) {
         $newOptions = explode("\n", $this->rawOptions);
         $newOptions = array_filter($newOptions, function ($x) {
             return strlen(trim($x));
         });
         foreach (array_values((array) $newOptions) as $key => $op) {
             $option = new AttributeOption();
             $option->attribute_id = $this->id;
             $option->value = trim($op);
             $option->position = $key;
             $option->save();
         }
     }
     parent::afterSave();
 }