示例#1
0
 /**
  * Add a field to the MultiField collection.
  *
  * Same as {@link \ValidFormBuilder\ValidForm::addField()} with the only difference that the `MultiField::addField()`
  * does not take a field label since that's already set when initialising the `MultiField`.
  *
  * @param string $name Field name
  * @param integer $type Field type
  * @param array $validationRules Validation rules array
  * @param array $errorHandlers Error handling array
  * @param array $meta The meta array
  * @return \ValidFormBuilder\Element
  */
 public function addField($name, $type, $validationRules = array(), $errorHandlers = array(), $meta = array())
 {
     // Creating dynamic fields inside a multifield is not supported.
     if (array_key_exists("dynamic", $meta)) {
         unset($meta["dynamic"]);
     }
     if (array_key_exists("dynamicLabel", $meta)) {
         unset($meta["dynamicLabel"]);
     }
     // Render the field and add it to the multifield field collection.
     $objField = ValidForm::renderField($name, "", $type, $validationRules, $errorHandlers, $meta);
     // *** Set the parent for the new field.
     $objField->setMeta("parent", $this, true);
     $this->__fields->addObject($objField);
     if ($this->__dynamic) {
         // *** The dynamic count can be influenced by a meta value.
         $intDynamicCount = isset($meta["dynamicCount"]) ? $meta["dynamicCount"] : 0;
         $objHiddenField = new Hidden($objField->getId() . "_dynamic", ValidForm::VFORM_INTEGER, array("default" => $intDynamicCount, "dynamicCounter" => true));
         $this->__fields->addObject($objHiddenField);
         $objField->setDynamicCounter($objHiddenField);
     }
     return $objField;
 }
示例#2
0
 /**
  * Add a field to the Area.
  *
  * See {@link \ValidFormBuilder\Area top of the page} for an example
  *
  * @param string $name
  * @param string $label
  * @param integer $type One of the ValidForm::VFORM_ field types
  * @param array $validationRules Standard validation rules array
  * @param array $errorHandlers Standard error handler array
  * @param array $meta Standard meta array
  * @return Ambigous <NULL, \ValidFormBuilder\Element> Returns an instance of the field type generated
  */
 public function addField($name, $label, $type, $validationRules = array(), $errorHandlers = array(), $meta = array())
 {
     $objField = ValidForm::renderField($name, $label, $type, $validationRules, $errorHandlers, $meta);
     $objField->setMeta("parent", $this, true);
     $this->__fields->addObject($objField);
     if ($this->__dynamic || $objField->isDynamic()) {
         // *** The dynamic count can be influenced by a meta value.
         $intDynamicCount = isset($meta["dynamicCount"]) ? $meta["dynamicCount"] : 0;
         $objHiddenField = new Hidden($objField->getId() . "_dynamic", ValidForm::VFORM_INTEGER, array("default" => $intDynamicCount, "dynamicCounter" => true));
         $this->__fields->addObject($objHiddenField);
         $objField->setDynamicCounter($objHiddenField);
     }
     return $objField;
 }
 /**
  * Add a field
  *
  * See {@link \ValidFormBuilder\ValidForm::addField()}
  *
  * @see \ValidFormBuilder\ValidForm::addField()
  */
 public function addField($name, $label, $type, $validationRules = array(), $errorHandlers = array(), $meta = array(), $blnJustRender = false)
 {
     $objField = parent::renderField($name, $label, $type, $validationRules, $errorHandlers, $meta);
     // *** Fieldset already defined?
     if ($this->__elements->count() == 0 && !$blnJustRender) {
         $objPage = $this->addPage();
     }
     $objField->setRequiredStyle($this->__requiredstyle);
     if (!$blnJustRender) {
         $objPage = $this->__elements->getLast();
         $objPage->addField($objField);
     }
     return $objField;
 }