1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\CatalogUrlRewrite\Block;
- use Magento\Store\Model\ScopeInterface;
- /**
- * Renderer for URL key input
- * Allows to manage and overwrite URL Rewrites History save settings
- */
- class UrlKeyRenderer extends \Magento\Catalog\Block\Adminhtml\Form\Renderer\Fieldset\Element
- {
- const XML_PATH_SEO_SAVE_HISTORY = 'catalog/seo/save_rewrites_history';
- /**
- * @var \Magento\Framework\Data\Form\Element\Factory
- */
- protected $_elementFactory;
- /**
- * @param \Magento\Backend\Block\Template\Context $context
- * @param \Magento\Framework\Data\Form\Element\Factory $elementFactory
- * @param array $data
- */
- public function __construct(
- \Magento\Backend\Block\Template\Context $context,
- \Magento\Framework\Data\Form\Element\Factory $elementFactory,
- array $data = []
- ) {
- $this->_elementFactory = $elementFactory;
- parent::__construct($context, $data);
- }
- /**
- * @return string
- */
- public function getElementHtml()
- {
- /** @var \Magento\Framework\Data\Form\Element\AbstractElement $element */
- $element = $this->getElement();
- if (!$element->getValue()) {
- return parent::getElementHtml();
- }
- $element->setOnkeyup("onUrlkeyChanged('" . $element->getHtmlId() . "')");
- $element->setOnchange("onUrlkeyChanged('" . $element->getHtmlId() . "')");
- $data = ['name' => $element->getData('name') . '_create_redirect', 'disabled' => true];
- /** @var \Magento\Framework\Data\Form\Element\Hidden $hidden */
- $hidden = $this->_elementFactory->create('hidden', ['data' => $data]);
- $hidden->setForm($element->getForm());
- $storeId = $element->getForm()->getDataObject()->getStoreId();
- $data['html_id'] = $element->getHtmlId() . '_create_redirect';
- $data['label'] = __('Create Permanent Redirect for old URL');
- $data['value'] = $element->getValue();
- $data['checked'] = $this->_scopeConfig->isSetFlag(
- self::XML_PATH_SEO_SAVE_HISTORY,
- ScopeInterface::SCOPE_STORE,
- $storeId
- );
- /** @var \Magento\Framework\Data\Form\Element\Checkbox $checkbox */
- $checkbox = $this->_elementFactory->create('checkbox', ['data' => $data]);
- $checkbox->setForm($element->getForm());
- return parent::getElementHtml() . '<br/>' . $hidden->getElementHtml() . $checkbox->getElementHtml()
- . $checkbox->getLabelHtml();
- }
- }
|