Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Region.php
Go to the documentation of this file.
1 <?php
7 
12  \Magento\Framework\Data\Form\Element\Renderer\RendererInterface
13 {
17  protected $_directoryHelper;
18 
24  public function __construct(
25  \Magento\Backend\Block\Context $context,
26  \Magento\Directory\Helper\Data $directoryHelper,
27  array $data = []
28  ) {
29  $this->_directoryHelper = $directoryHelper;
30  parent::__construct($context, $data);
31  }
32 
41  public function render(\Magento\Framework\Data\Form\Element\AbstractElement $element)
42  {
43  if ($country = $element->getForm()->getElement('country_id')) {
44  $countryId = $country->getValue();
45  } else {
46  return $element->getDefaultHtml();
47  }
48 
49  $regionId = $element->getForm()->getElement('region_id')->getValue();
50 
51  $html = '<div class="field field-state required admin__field _required">';
52  $element->setClass('input-text admin__control-text');
53  $element->setRequired(true);
54  $html .= $element->getLabelHtml() . '<div class="control admin__field-control">';
55  $html .= $element->getElementHtml();
56 
57  $selectName = str_replace('region', 'region_id', $element->getName());
58  $selectId = $element->getHtmlId() . '_id';
59  $html .= '<select id="' .
60  $selectId .
61  '" name="' .
62  $selectName .
63  '" class="select required-entry admin__control-select" style="display:none">';
64  $html .= '<option value="">' . __('Please select') . '</option>';
65  $html .= '</select>';
66 
67  $html .= '<script>' . "\n";
68  $html .= 'require(["prototype", "mage/adminhtml/form"], function(){';
69  $html .= '$("' . $selectId . '").setAttribute("defaultValue", "' . $regionId . '");' . "\n";
70  $html .= 'new regionUpdater("' .
71  $country->getHtmlId() .
72  '", "' .
73  $element->getHtmlId() .
74  '", "' .
75  $selectId .
76  '", ' .
77  $this->_directoryHelper->getRegionJson() .
78  ');' .
79  "\n";
80 
81  $html .= '});';
82  $html .= '</script>' . "\n";
83 
84  $html .= '</div></div>' . "\n";
85 
86  return $html;
87  }
88 }
__()
Definition: __.php:13
__construct(\Magento\Backend\Block\Context $context, \Magento\Directory\Helper\Data $directoryHelper, array $data=[])
Definition: Region.php:24
render(\Magento\Framework\Data\Form\Element\AbstractElement $element)
Definition: Region.php:41
$element
Definition: element.phtml:12