62 parent::__construct(
$name, $parameters,
$form);
72 $this->propsMaxLength = [
81 if (isset($parameters[
'props'])) {
82 $this->props = $parameters[
'props'];
84 foreach ($this->props as $prop) {
85 if (isset($parameters[
"default$prop"])) {
86 $this->defaults[
"default$prop"] = $parameters[
"default$prop"];
90 $this->defaults[
'priorityCountries'] = isset($parameters[
'priorityCountries'])
91 ? $parameters[
'priorityCountries']
94 $this->prefix = isset($parameters[
'prefix'])
95 ? rtrim($parameters[
'prefix'],
'_') .
'_'
110 parent::setDefaults();
112 $this->defaults[
'required'] =
false;
113 $this->defaults[
'labelAddress1'] = _(
"Address 1");
114 $this->defaults[
'labelAddress2'] = _(
"Address 2");
115 $this->defaults[
'labelCity'] = _(
"City");
116 $this->defaults[
'labelState'] = _(
"State");
117 $this->defaults[
'labelZip'] = _(
"Zip");
118 $this->defaults[
'labelCountry'] = _(
"Country");
128 parent::addChildElements();
130 foreach ($this->props as $prop) {
131 if (isset($this->defaults[
"default$prop"])) {
132 $labelVar =
"label$prop";
134 if ($prop ==
"State") {
135 $this->addState($this->prefix .
"state", [
136 'label' => $this->labelState,
137 'defaultValue' => $this->defaults[
'defaultState'],
140 } elseif ($prop ==
"Country") {
141 $this->addCountry($this->prefix .
"country", [
142 'label' => $this->labelCountry,
143 'priorityCountries' => $this->defaults[
'priorityCountries'],
144 'defaultValue' => $this->defaults[
'defaultCountry'],
145 'required' => $this->required,
148 $this->addText($this->prefix . strtolower($prop), [
149 'label' => $this->$labelVar,
150 'maxlength' => $this->propsMaxLength[$prop],
151 'defaultValue' => $this->defaults[
"default$prop"],
152 'required' => $prop !=
"Address2" && $this->required,
166 if (parent::validate() && isset($this->defaultCountry) && isset($this->defaultState)) {
168 $country_states = state::getStates();
169 $country = $this->
getElement(
"{$this->prefix}country");
170 $state = $this->
getElement(
"{$this->prefix}state");
171 $this->valid = isset($country_states[$country->getValue()][$state->getValue()]);
173 $state->errorMessage = _(
"State and Country do not match");
174 $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.