/** * If form is submitted and valid, send new data (from Form) to database. * * @access public * @param Form $oForm * @return boolean * @since 1.0.0-alpha * @version 1.0.0-alpha */ public function sendDataToModel(Form &$oForm) { if (!$oForm->isSubmittedAndValid()) { return FALSE; } // transfer data from Form to Model foreach ($oForm->getFields() as $oFormField) { /* @var $oFormField Form\Field */ if ($oFormField->isDisabled()) { continue; } $oModel = $this->getModel(); $oMetadata = $oModel->getMetadata(); $oMetadataLocales = $oModel->getLocalesMetadata(); $sName = $oFormField->getName(); $sFieldModel = $oMetadata->getFieldName($sName); $sFieldLocales = $oMetadataLocales !== FALSE ? $oMetadataLocales->getFieldName($sName) : NULL; $sField = NULL; if ($oMetadata->hasField($sFieldModel) || $oMetadata->hasAssociation($sFieldModel)) { $sField = $sFieldModel; } elseif ($oModel->hasLocales() && ($oMetadataLocales->hasField($sFieldLocales) || $oMetadataLocales->hasAssociation($sFieldLocales))) { $sField = $sFieldLocales; } if ($sField !== NULL) { $aValue = $this->getValueAfterValidation($oFormField); $this->makeDataTransfer($sField, $aValue, $oFormField); // $oFormField->afterValidationModelOperations($this->getModel()); } } // make data save if (!$this->getConfig()->isManualSave()) { $this->makeSave($oForm); } return TRUE; }