public function getList($point_id) { $data = array(); $criteria = new CDbCriteria(); $criteria->condition = 'point_id = :point_id'; $criteria->params = array('point_id' => $point_id); foreach ($this->findAll($criteria) as $value) { $data[$value->param_id] = $value; $data_type_id = ModuleYmapsParams::model()->findByPk($value->param_id)->data_type_id; $data[$value->param_id]->data_type_id = $data_type_id; $title = ModuleYmapsParams::model()->findByPk($value->param_id)->title; $data[$value->param_id]->title = $title; if ($data_type_id == 7) { $img_id = (int) $value['value']; if ($img_id > 0 && Files::model()->existsFile($img_id)) { $data[$value->param_id]->img = $this->getImageById($img_id); } else { $data[$value->param_id]->img = $this->img_default; } } } return $data; }
/** * * @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); } }