Esempio n. 1
0
 function SaveParamsAction()
 {
     $request = Project::getRequest();
     /*echo '<pre>';
     		print_r($request -> getKeys());*/
     // TODO:: this id is id from params_group table!
     if (is_array($request->ids) && count($request->ids)) {
         foreach ($request->ids as $id) {
             $id = (int) $id;
             $model = new ParamModel();
             if ($id === 0) {
                 if (isset($request->param_name[$id]) && strlen($request->param_name[$id]) && isset($request->param_value[$id]) && strlen($request->param_value[$id])) {
                     // New param
                     $data = array();
                 } else {
                     // Data for new params is not valid
                     continue;
                 }
             } else {
                 $data = $model->load($id);
             }
             $tmp = $model->exists($request->param_group_id, $request->param_name[$id]);
             if ($tmp !== false) {
                 if (isset($data['id'])) {
                     if ((int) $data['id'] === (int) $tmp['id']) {
                         // Exists param is current item: so ok, we can update it
                         $can_update = true;
                     } else {
                         // Param with the same name alrady exists
                         $can_update = false;
                     }
                 } else {
                     // It's new parameter, but name already busy
                     $can_update = false;
                 }
             } else {
                 // Param is not exists, we can add it
                 $can_update = true;
             }
             if ($can_update) {
                 $model->param_group_id = $request->param_group_id;
                 $model->name = $request->param_name[$id];
                 $model->value = $request->param_value[$id];
                 $model->php_type = $request->php_type[$id];
                 $model->casting();
                 $model->save();
             } else {
                 // TODO:: Flash message that parameter already exists
                 $this->_view->addFlashMessage(FM::ERROR, "Параметр с таким названием уже существует:" . $request->param_name[$id]);
             }
         }
     }
     $this->EditGroupAction($request->controller_id);
     //Project::getResponse() -> redirect($request -> createUrl(null, 'EditGroup', array('id' => $request -> controller_id)));
 }