13 class Form extends \Magento\Backend\Block\Widget\Form\Generic
70 \
Magento\Framework\Data\FormFactory $formFactory,
72 \
Magento\UrlRewrite\Model\UrlRewriteFactory $rewriteFactory,
73 \
Magento\Store\Model\System\Store $systemStore,
74 \
Magento\Backend\Helper\Data $adminhtmlData,
78 $this->_rewriteFactory = $rewriteFactory;
79 $this->_systemStore = $systemStore;
80 $this->_adminhtmlData = $adminhtmlData;
92 $this->setId(
'urlrewrite_form');
93 $this->setTitle(
__(
'Block Information'));
105 $this->_formValues = [
106 'store_id' =>
$model->getStoreId(),
107 'entity_type' =>
$model->getEntityType(),
108 'entity_id' =>
$model->getEntityId(),
109 'request_path' =>
$model->getRequestPath(),
110 'target_path' =>
$model->getTargetPath(),
111 'redirect_type' =>
$model->getRedirectType(),
112 'description' =>
$model->getDescription(),
117 foreach (array_keys($this->_formValues) as $key) {
118 if (isset($sessionData[$key])) {
119 $this->_formValues[$key] = $sessionData[$key];
139 $form = $this->_formFactory->create(
140 [
'data' => [
'id' =>
'edit_form',
'use_container' =>
true,
'method' =>
'post']]
143 $fieldset = $form->addFieldset(
'base_fieldset', [
'legend' =>
__(
'URL Rewrite Information')]);
149 'name' =>
'entity_type',
150 'value' => $this->_formValues[
'entity_type']
158 'name' =>
'entity_id',
159 'value' => $this->_formValues[
'entity_id']
163 $this->_prepareStoreElement($fieldset);
169 'label' =>
__(
'Request Path'),
170 'title' =>
__(
'Request Path'),
171 'name' =>
'request_path',
173 'value' => $this->_formValues[
'request_path']
181 'label' =>
__(
'Target Path'),
182 'title' =>
__(
'Target Path'),
183 'name' =>
'target_path',
186 'value' => $this->_formValues[
'target_path']
194 'label' =>
__(
'Redirect Type'),
195 'title' =>
__(
'Redirect Type'),
196 'name' =>
'redirect_type',
197 'options' => $this->optionProvider->toOptionArray(),
198 'value' => $this->_formValues[
'redirect_type']
206 'label' =>
__(
'Description'),
207 'title' =>
__(
'Description'),
208 'name' =>
'description',
211 'value' => $this->_formValues[
'description'],
219 return parent::_prepareForm();
228 protected function _prepareStoreElement($fieldset)
230 if ($this->_storeManager->isSingleStoreMode()) {
234 [
'name' =>
'store_id',
'value' => $this->_storeManager->getStore(
true)->getId()]
237 $storeElement = $fieldset->addField(
241 'label' =>
__(
'Store'),
242 'title' =>
__(
'Store'),
243 'name' =>
'store_id',
245 'value' => $this->_formValues[
'store_id']
250 }
catch (\
Magento\Framework\Exception\LocalizedException $e) {
252 $storeElement->setAfterElementHtml($e->getMessage());
254 $storeElement->setValues(
$stores);
255 if ($this->
_getModel()->getIsAutogenerated()) {
256 $storeElement->setReadonly(
true);
259 $renderer = $this->
getLayout()->createBlock(
260 \
Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element::class
262 $storeElement->setRenderer($renderer);
275 $this->_adminhtmlData->getUrl(
'adminhtml/*/save', [
'id' => $this->_getModel()->getId()])
287 if ($this->_sessionData ===
null) {
288 $this->_sessionData = $this->_backendSession->getData(
'url_rewrite_data',
true);
300 if (!$this->
hasData(
'url_rewrite')) {
301 $this->setUrlRewrite($this->_rewriteFactory->create());
303 return $this->getUrlRewrite();
313 if ($this->_allStores ===
null) {
314 $this->_allStores = $this->_systemStore->getStoreValuesForForm();
338 private function _getStoresListRestrictedByEntityStores(array $entityStores)
341 if ($this->_requireStoresFilter) {
345 foreach (
$store[
'value'] as $k => $v) {
346 if (isset($v[
'value']) && in_array($v[
'value'], $entityStores)) {