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))); }