◆ __construct()
- Parameters
-
\Magento\Directory\Model\CountryFactory | $countryFactory | |
\Magento\Directory\Helper\Data | $directoryHelper | |
\Magento\Framework\Escaper | $escaper | |
Definition at line 46 of file Region.php.
51 $this->_countryFactory = $countryFactory;
52 $this->_directoryHelper = $directoryHelper;
53 $this->_escaper = $escaper;
◆ render()
- Parameters
-
- Returns
- string @SuppressWarnings(PHPMD.CyclomaticComplexity) @SuppressWarnings(PHPMD.NPathComplexity)
Definition at line 62 of file Region.php.
65 $isRegionRequired =
false;
66 if ($country =
$element->getForm()->getElement(
'country_id')) {
67 $countryId = $country->getValue();
68 $isRegionRequired = $this->_directoryHelper->isRegionRequired($countryId);
71 $html =
'<div class="field field-region ' . ($isRegionRequired ?
'required' :
'') .
'">' .
"\n";
73 $regionCollection =
false;
75 if (!isset(self::$_regionCollections[$countryId])) {
76 self::$_regionCollections[$countryId] = $this->_countryFactory->create()->setId(
78 )->getLoadedRegionCollection()->toOptionArray();
80 $regionCollection = self::$_regionCollections[$countryId];
83 $regionId = intval(
$element->getForm()->getElement(
'region_id')->getValue());
85 $htmlAttributes =
$element->getHtmlAttributes();
86 foreach ($htmlAttributes as $key =>
$attribute) {
88 unset($htmlAttributes[$key]);
97 $regionHtmlName =
$element->getName();
98 $regionIdHtmlName = str_replace(
'region',
'region_id', $regionHtmlName);
99 $regionHtmlId =
$element->getHtmlId();
100 $regionIdHtmlId = str_replace(
'region',
'region_id', $regionHtmlId);
102 if ($isRegionRequired) {
103 $element->addClass(
'required-entry');
106 if ($regionCollection && count($regionCollection) > 0) {
107 $elementClass =
$element->getClass();
108 $html .=
'<label class="label" for="' .
114 $html .=
'<div class="control">';
116 $html .=
'<select id="' . $regionIdHtmlId .
'" name="' . $regionIdHtmlName .
'" ' .
$element->serialize(
119 foreach ($regionCollection as $region) {
120 $selected = $regionId == $region[
'value'] ?
' selected="selected"' :
'';
121 $regionVal = 0 == $region[
'value'] ?
'' : (int)$region[
'value'];
122 $html .=
'<option value="' . $regionVal .
'"' . $selected .
'>' . $this->_escaper->escapeHtml(
126 $html .=
'</select>' .
"\n";
128 $html .=
'<input type="hidden" name="' . $regionHtmlName .
'" id="' . $regionHtmlId .
'" value=""/>';
133 $html .=
'<label class="label" for="' .
138 $html .=
'<div class="control">';
139 $html .=
'<input id="' .
149 $html .=
'<input type="hidden" name="' . $regionIdHtmlName .
'" id="' . $regionIdHtmlId .
'" value=""/>';
150 $html .=
'</div>' .
"\n";
152 $html .=
'</div>' .
"\n";
◆ $_countryFactory
◆ $_escaper
◆ $_regionCollections
The documentation for this class was generated from the following file:
- vendor/magento/module-customer/Model/Renderer/Region.php