85 parent::__construct(
$name, $parameters,
$form);
104 public function __call(
string $function, array $arguments): mixed
106 if (substr($function, 0, 3) ===
'add') {
107 $type = str_replace(
'add',
'', $function);
109 foreach ($this->form->getNamespaces() as $namespace) {
110 $class = $namespace .
'\\' . $type;
111 if (class_exists(
$class)) {
112 $name = isset($arguments[0]) ? $arguments[0] :
'';
113 $parameters = isset($arguments[1]) ? $arguments[1] : [];
120 return parent::__call($function, $arguments);
141 $newElement =
new $type(
$name, $parameters, $this->form);
143 $this->elements[] = $newElement;
144 $this->elementsAndHtml[] = $newElement;
146 if ($newElement instanceof container) {
147 $newElement->addChildElements();
175 public function
getElements(bool $includeFieldsets = false): array
178 foreach ($this->elements as $element) {
180 if ($includeFieldsets) {
181 $allElements[] = $element;
183 $allElements = array_merge($allElements, $element->getElements($includeFieldsets));
185 $allElements[] = $element;
202 foreach ($this->
getElements($includeFieldsets) as $element) {
203 if (
$name === $element->getName()) {
223 $this->elementsAndHtml[] = $htmlElement;
236 $this->elementsAndHtml[] = $htmlElement;
251 $required = (bool) $required;
253 foreach ($this->elements as $element) {
254 $element->setRequired($required);
267 if (!$this->validated) {
268 $this->validated =
true;
271 foreach ($this->elements as $element) {
272 $valid = $element->validate();
273 $this->valid = $this->valid &&
$valid;
287 $element->clearValue();
container element base class
addChildElements()
Sub-element generator hook.
validate()
Validates container and its contents.
$form
Parent form object reference.
__call(string $function, array $arguments)
HTML escaping and add subelements.
clearValue()
Deletes values of all child elements.
addHtml(string $html)
Adds a new custom HTML element to the container.
__construct(string $name, array $parameters, object $form)
container class constructor
addStepNav(array $parameter=[])
Adds automatic step navigation to output.
$elementsAndHtml
Input element, fieldset and custom HTML object references.
getElement(string $name, bool $includeFieldsets=false)
Gets subelement by name.
$elements
References to input elements and fieldsets.
setRequired(bool $required=true)
Sets required-attribute.
getElements(bool $includeFieldsets=false)
Returns containers subelements.
addElement(string $type, string $name, array $parameters)
Generates sub-elements.
$valid
Contains element validation status/result.
$class
CSS class of the container element.
$log
Log object reference.
Can be used to insert custom HTML between rendered HTML elements.
Can be used to insert a step navigation.
thrown when attemting to instantiate an inexistent element class
Abstract element classes.
Classes for HTML input-elements.