Example #1
0
 /**
  * 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;
 }