Esempio n. 1
0
 /**
  *
  * @param type $page_id
  * @param type $id 
  */
 public function actionShow($page_id = null, $id = null)
 {
     if (!is_null($page_id) && Pages::model()->existsPage($page_id)) {
         $link_id = ModulesInPages::model()->getLink((int) $page_id, $this->module->id);
         if (!is_null($id)) {
             // обработка input-параметров
             if (isset($_POST['ModuleYmapsParams']) && is_array($_POST['ModuleYmapsParams']) && count($_POST['ModuleYmapsParams'])) {
                 foreach ($_POST['ModuleYmapsParams'] as $key => $value) {
                     if (ModuleYmapsParams::model()->existsItem((int) $key)) {
                         $data_type_id = ModuleYmapsParams::model()->findByPk((int) $key)->data_type_id;
                         if (ModuleYmapsValues::model()->existsItem((int) $key, $id)) {
                             $params_value = ModuleYmapsValues::model()->getItem((int) $key, $id);
                             if ($data_type_id == 7) {
                                 $old_file_id = (int) $params_value->value;
                             }
                             $params_value->attributes = array('value' => $value);
                             if ($params_value->save() && $data_type_id == 7) {
                                 $file_id = (int) $value;
                                 if ($file_id > 0) {
                                     Files::model()->saveTempFile($file_id);
                                 }
                                 if ($old_file_id != $file_id) {
                                     Files::model()->deleteFile($old_file_id, $this->module->id);
                                 }
                             }
                         } else {
                             $params_value = new ModuleYmapsValues();
                             $params_value->attributes = array('param_id' => (int) $key, 'point_id' => $id, 'value' => $value);
                             if ($params_value->save() && $data_type_id == 7) {
                                 $file_id = (int) $value;
                                 if ($file_id > 0) {
                                     Files::model()->saveTempFile($file_id);
                                 }
                             }
                         }
                     }
                 }
             }
             $model = ModuleYmaps::model()->findByPk($id);
             if (isset($_POST['ModuleYmaps'])) {
                 $post = $_POST['ModuleYmaps'];
                 unset($post['category_id']);
                 $model->attributes = $post;
                 if ($model->save()) {
                     Yii::app()->user->setFlash('message', '<p style="color:green;">Сохранено</p>');
                     $this->redirect(Yii::app()->baseUrl . '?r=' . $this->module->id . '/main/show&page_id=' . $page_id . '&id=' . $id);
                 } else {
                     Yii::app()->user->setFlash('message', '<p style="color:red;">Ошибка</p>');
                 }
             }
             $point_list = ModuleYmaps::model()->getList($model->category_id);
             $params_list = ModuleYmapsParams::model()->getList();
             $params_values_list = ModuleYmapsValues::model()->getInputList($id);
             //$model = ModuleYmaps::model()->getItem($id,$link_id);
             if (ModuleYmapsCategories::model()->existsItem($link_id, $model->category_id)) {
                 $this->render('show', array('page_id' => $page_id, 'model' => $model, 'point_list' => $point_list, 'params_list' => $params_list, 'params_values_list' => $params_values_list));
             }
         } else {
             $this->redirect(Yii::app()->baseUrl . '?r=pages/update&id=' . $page_id . '&/#!/tab_' . $this->module->id);
         }
     } else {
         $this->redirect(Yii::app()->request->scriptUrl);
     }
 }