12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Block\Adminhtml\Edit\Renderer;
- /**
- * Customer address region field renderer
- */
- class Region extends \Magento\Backend\Block\AbstractBlock implements
- \Magento\Framework\Data\Form\Element\Renderer\RendererInterface
- {
- /**
- * @var \Magento\Directory\Helper\Data
- */
- protected $_directoryHelper;
- /**
- * @param \Magento\Backend\Block\Context $context
- * @param \Magento\Directory\Helper\Data $directoryHelper
- * @param array $data
- */
- public function __construct(
- \Magento\Backend\Block\Context $context,
- \Magento\Directory\Helper\Data $directoryHelper,
- array $data = []
- ) {
- $this->_directoryHelper = $directoryHelper;
- parent::__construct($context, $data);
- }
- /**
- * Output the region element and javasctipt that makes it dependent from country element
- *
- * @param \Magento\Framework\Data\Form\Element\AbstractElement $element
- * @return string
- *
- * @SuppressWarnings(PHPMD.UnusedLocalVariable)
- */
- public function render(\Magento\Framework\Data\Form\Element\AbstractElement $element)
- {
- if ($country = $element->getForm()->getElement('country_id')) {
- $countryId = $country->getValue();
- } else {
- return $element->getDefaultHtml();
- }
- $regionId = $element->getForm()->getElement('region_id')->getValue();
- $html = '<div class="field field-state required admin__field _required">';
- $element->setClass('input-text admin__control-text');
- $element->setRequired(true);
- $html .= $element->getLabelHtml() . '<div class="control admin__field-control">';
- $html .= $element->getElementHtml();
- $selectName = str_replace('region', 'region_id', $element->getName());
- $selectId = $element->getHtmlId() . '_id';
- $html .= '<select id="' .
- $selectId .
- '" name="' .
- $selectName .
- '" class="select required-entry admin__control-select" style="display:none">';
- $html .= '<option value="">' . __('Please select') . '</option>';
- $html .= '</select>';
- $html .= '<script>' . "\n";
- $html .= 'require(["prototype", "mage/adminhtml/form"], function(){';
- $html .= '$("' . $selectId . '").setAttribute("defaultValue", "' . $regionId . '");' . "\n";
- $html .= 'new regionUpdater("' .
- $country->getHtmlId() .
- '", "' .
- $element->getHtmlId() .
- '", "' .
- $selectId .
- '", ' .
- $this->_directoryHelper->getRegionJson() .
- ');' .
- "\n";
- $html .= '});';
- $html .= '</script>' . "\n";
- $html .= '</div></div>' . "\n";
- return $html;
- }
- }
|