protected function processForm(sfWebRequest $request, sfForm $form, $editable = true) { $formValues = array(); $requestParameters = $request->getParameterHolder()->getAll(); $formValues = sfMmwExtjsUtil::getSfParamsFromExtjs('structures', $requestParameters); $formValues = $this->prepareFormValues($formValues, $form); $files = $this->getSfFilesParamsFromExtjs($_FILES, $form->getName()); //$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); $fieldsToPost = json_decode($requestParameters['fields']); foreach ($this->form->getWidgetSchema()->getFields() as $fieldname => $widget) { if (!in_array(sfMmwExtjsUtil::getSfExtjsNameFromField('structures', $fieldname), $fieldsToPost)) { unset($form[$fieldname]); } } $form->bind($formValues, $files); if ($form->isValid()) { //$this->getUser()->setFlash('notice', $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.'); $this->json['success'] = true; $this->json['data'] = false; $structures = $form->save(); $this->prepareJsonValues($form); $data_array = $structures->toArray(); $data_array = array_merge($data_array, $structures->getMatFinsAndFinitions()); if (is_array($this->json['data'])) { $this->json['data'] = array_merge($this->json['data'], sfMmwExtjsUtil::getExtjsParamsfromArray('structures', $data_array)); } else { $this->json['data'] = sfMmwExtjsUtil::getExtjsParamsfromArray('structures', $data_array); } if (!$editable) { $displayValues = $this->getFieldsValues($structures, false, true); foreach ($displayValues as $key => $displayValue) { $this->json['data'][$key] = $displayValue; } } $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $structures))); } else { //$this->getUser()->setFlash('error', 'The item has not been saved due to some errors.'); $this->json['success'] = false; $this->json['data'] = false; if ($form->hasErrors()) { $this->json['errormsg'] = 'Data has not been saved'; // set individual error field foreach ($form->getErrorSchema() as $field => $error) { $this->json['errors'][sfMmwExtjsUtil::getSfExtjsNameFromField('structures', $field)] = $error->getMessage(); } } } $this->setRequestParameter('json', $this->json); $this->forward($this->getModuleName(), 'jsonResponse'); }
protected function processForm(sfWebRequest $request, sfForm $form) { $formValues = array(); $requestParameters = $request->getParameterHolder()->getAll(); $formValues = sfMmwExtjsUtil::getSfParamsFromExtjs('identification', $requestParameters); $formValues = $this->prepareFormValues($formValues, $form); $files = $this->getSfFilesParamsFromExtjs($_FILES, 'identification'); //$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); $fieldsToPost = isset($requestParameters['fields']) ? json_decode($requestParameters['fields']) : null; foreach ($this->form->getWidgetSchema()->getFields() as $fieldname => $widget) { if (get_class($widget) != 'sfWidgetFormSchemaDecorator' && $fieldsToPost != null && !in_array(sfMmwExtjsUtil::getSfExtjsNameFromField('identification', $fieldname), $fieldsToPost)) { unset($form[$fieldname]); } } $form->bind($formValues, $files); if ($form->isValid()) { //$this->getUser()->setFlash('notice', $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.'); $this->json['success'] = true; $this->json['data'] = false; $identification = $form->save(); $this->prepareJsonValues($form); if (is_array($this->json['data'])) { $this->json['data'] = array_merge($this->json['data'], sfMmwExtjsUtil::getExtjsParamsfromArray('identification', $identification->toArray())); } else { $this->json['data'] = sfMmwExtjsUtil::getExtjsParamsfromArray('identification', $identification->toArray()); } $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $identification))); } else { //$this->getUser()->setFlash('error', 'The item has not been saved due to some errors.'); $this->json['success'] = false; $this->json['data'] = false; if ($form->hasErrors()) { $this->json['errormsg'] = 'Data has not been saved'; // set individual error field foreach ($form->getErrorSchema() as $field => $error) { $this->json['errors'][sfMmwExtjsUtil::getSfExtjsNameFromField('identification', $field)] = $error->getMessage(); } } } // SURCHARGE $secteurCommune = $identification->getSecteurCommune(); if (!empty($secteurCommune)) { $this->json['data']['identification__secteur'] = $secteurCommune; } $this->json['list'] = $this->FormRelationsJsonEncode(); // FIN SURCHARGE $this->setRequestParameter('json', $this->json); $this->forward($this->getModuleName(), 'jsonResponse'); }
protected function setFilters($modelName, array $requestParams) { $params = sfMmwExtjsUtil::getSfParamsFromExtjs('filters', $requestParams); if (isset($params[$modelName]) && count($params[$modelName])) { $this->filters = $params[$modelName]; } }