Example #1
0
 /**
  * Make data transfer (set values) from Form to Model.
  *
  * @access   protected
  * @param    string     $sName
  * @param    array      $aValue
  * @param    Form\Field $oFormField
  * @return   boolean
  * @since    1.0.0-alpha
  * @version  1.0.0-alpha
  */
 protected function makeDataTransfer($sName, $aValue, Form\Field &$oFormField)
 {
     $aCheckedLanguages = $oFormField->getFormObject()->getCheckedLanguages();
     if ($oFormField->isMultilanguage()) {
         foreach (Core::getLanguages() as $sLang) {
             if (!isset($aValue[$sLang]) && in_array($sLang, $aCheckedLanguages)) {
                 $aValue[$sLang] = NULL;
             }
         }
     }
     foreach ($aValue as $sLang => $aAllValues) {
         if (!in_array($sLang, $aCheckedLanguages)) {
             continue;
         }
         if (!empty($aAllValues)) {
             $mValue = $oFormField->getQuantity() === 1 ? array_shift($aAllValues) : array_values($aAllValues);
         } else {
             $mValue = NULL;
         }
         if ($sLang === 'und') {
             if (is_array($mValue)) {
                 $mValue = array_values($mValue);
             }
             $this->getModel()->{$sName} = $mValue;
         } else {
             $this->getModel()->getLocales($sLang)->{$sName} = $mValue;
         }
     }
     return TRUE;
 }
Example #2
0
 /**
  * Add singleton field to this form.
  *
  * @access   public
  * @param    Form\Field $oField
  * @return   Form
  * @throws   Exception
  * @since    1.0.0-alpha
  * @version  1.0.0-alpha
  */
 public function addSingleton(Field $oField)
 {
     if ($oField->getFormObject()->getName() !== 'singletons') {
         throw new Exception('This field is not a singleton.');
     }
     $oField->setFormIfSingleton($this);
     $this->fields[$oField->getName()] = $oField;
     return $this;
 }