コード例 #1
0
ファイル: DefaultController.php プロジェクト: fobihz/cndiesel
 public function actionUpdate($pid, $id, $Stre_page = 1)
 {
     $cs = Yii::app()->clientScript;
     $cs->registerScriptFile("/js/admin/url.js");
     $model = Stre::model()->findByPk($id);
     $root = Stre::model()->roots()->findByPk($pid);
     if (empty($model) || empty($root)) {
         $this->redirect($this->createUrl('default/viewcatalog', array('id' => $pid, 'Stre_page' => $Stre_page, 'msg' => '[!] Не существует такого элемента!', 'msgtype' => 'error')));
     }
     $this->performAjaxValidation($model);
     if (!empty($_POST['Stre']['name'])) {
         $model->name = $_POST['Stre']['name'];
         $model->alias = $_POST['Stre']['alias'];
         $old_view = $model->view;
         $new_view = $_POST['Stre']['view'];
         $model->view = $_POST['Stre']['view'];
         $model->title = $_POST['Stre']['title'];
         $model->keywords = $_POST['Stre']['keywords'];
         $model->description = $_POST['Stre']['description'];
         try {
             $model->saveNode();
             if ($old_view != $new_view) {
                 foreach ($model->descendants()->findAll() as $des) {
                     $des->view = $new_view;
                     $des->saveNode();
                 }
             }
             foreach ($model->type->attrs as $attr) {
                 unset($attr_val);
                 $attr_val = AttrVal::model()->findByPk(array('id_attr' => $attr->id, 'id_elem' => $model->id));
                 if (empty($attr_val)) {
                     $attr_val = new AttrVal();
                     $attr_val->id_attr = $attr->id;
                     $attr_val->id_elem = $model->id;
                 }
                 $old_value = $attr_val->value;
                 $new_value = $_POST['AttrVal'][$attr->id];
                 if ($attr->mytype->mytype == 'photo') {
                     if ($old_value != '' && $old_value != $new_value) {
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/original/' . $old_value);
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/large/' . $old_value);
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/medium/' . $old_value);
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/small/' . $old_value);
                     }
                     if ($new_value != '' && $old_value != $new_value) {
                         $photo = $_POST['AttrVal'][$attr->id];
                         $img = Yii::app()->image->load($_SERVER['DOCUMENT_ROOT'] . '/userfiles/editor/images/' . $photo);
                         $pname = 'catalog_' . $model->id . '_' . $photo;
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/original/' . $pname);
                         $img->resize(600, 600);
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/large/' . $pname);
                         $img->resize(200, 200);
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/medium/' . $pname);
                         $img->resize(100, 100);
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/small/' . $pname);
                         $attr_val->value = $pname;
                     } else {
                         $attr_val->value = $new_value;
                     }
                 } else {
                     $attr_val->value = $_POST['AttrVal'][$attr->id];
                     if ($attr->fk > 0) {
                         if (!empty($attr_val->value)) {
                             $attr_val->value = implode(',', $_POST['AttrVal'][$attr->id]);
                         } else {
                             $attr_val->value = '';
                         }
                     }
                 }
                 if ($attr_val->isNewRecord) {
                     $attr_val->insert();
                 } else {
                     $attr_val->update();
                 }
             }
         } catch (CDbException $e) {
             $this->redirect($this->createUrl('default/viewcatalog', array('id' => $pid, 'Stre_page' => $Stre_page, 'msg' => $e->getMessage(), 'msgtype' => 'error')));
         }
         if (isset($_POST['savebutton'])) {
             $this->redirect($this->createUrl('default/viewcatalog', array('id' => $pid, 'Stre_page' => $Stre_page, 'msg' => '[!] Элемент успешно обновлен', 'msgtype' => 'success')));
         } else {
             $this->redirect($this->createUrl('default/update', array('id' => $model->id, 'pid' => $pid, 'Stre_page' => $Stre_page, 'msg' => '[!] Элемент успешно обновлен', 'msgtype' => 'success')));
         }
     }
     $this->render('update', array('root' => $root, 'model' => $model, 'pid' => $pid, 'Stre_page' => $Stre_page));
 }