52 parent::__construct(
$name, $parameters,
$form);
62 $this->propsMaxLength = [
71 if (isset($parameters[
'props'])) {
72 $this->props = $parameters[
'props'];
74 foreach ($this->props as $prop) {
75 if (isset($parameters[
"default$prop"])) {
76 $this->defaults[
"default$prop"] = $parameters[
"default$prop"];
80 $this->defaults[
'priorityCountries'] = isset($parameters[
'priorityCountries'])
81 ? $parameters[
'priorityCountries']
84 $this->prefix = isset($parameters[
'prefix'])
85 ? rtrim($parameters[
'prefix'],
'_') .
'_'
100 parent::setDefaults();
102 $this->defaults[
'required'] =
false;
103 $this->defaults[
'labelAddress1'] = _(
"Address 1");
104 $this->defaults[
'labelAddress2'] = _(
"Address 2");
105 $this->defaults[
'labelCity'] = _(
"City");
106 $this->defaults[
'labelState'] = _(
"State");
107 $this->defaults[
'labelZip'] = _(
"Zip");
108 $this->defaults[
'labelCountry'] = _(
"Country");
118 parent::addChildElements();
120 foreach ($this->props as $prop) {
121 if (isset($this->defaults[
"default$prop"])) {
122 $labelVar =
"label$prop";
124 if ($prop ==
"State") {
125 $this->addState($this->prefix .
"state", [
126 'label' => $this->labelState,
127 'defaultValue' => $this->defaults[
'defaultState'],
130 } elseif ($prop ==
"Country") {
131 $this->addCountry($this->prefix .
"country", [
132 'label' => $this->labelCountry,
133 'priorityCountries' => $this->defaults[
'priorityCountries'],
134 'defaultValue' => $this->defaults[
'defaultCountry'],
135 'required' => $this->required,
138 $this->addText($this->prefix . strtolower($prop), [
139 'label' => $this->$labelVar,
140 'maxlength' => $this->propsMaxLength[$prop],
141 'defaultValue' => $this->defaults[
"default$prop"],
142 'required' => $prop !=
"Address2" && $this->required,
156 if (parent::validate() && isset($this->defaultCountry) && isset($this->defaultState)) {
158 $country_states = state::getStates();
159 $country = $this->
getElement(
"{$this->prefix}country");
160 $state = $this->
getElement(
"{$this->prefix}state");
161 $this->valid = isset($country_states[$country->getValue()][$state->getValue()]);
163 $state->errorMessage = _(
"State and Country do not match");
164 $state->valid =
false;
getElement(string $name, bool $includeFieldsets=false)
Gets subelement by name.
$valid
Contains element validation status/result.
Default address fieldset.
addChildElements()
adds address-inputs to fieldset
validate()
Validate the address data.
__construct(string $name, array $parameters, object $form)
multiple class constructor
setDefaults()
collects initial values across subclasses.
The fieldset class holds HTML-fieldset specific attributes and methods.
Classes for HTML input-elements.