/** * 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; }
/** * 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; }