Form.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sitemap\Block\Adminhtml\Edit;
  7. /**
  8. * Sitemap edit form
  9. *
  10. * @author Magento Core Team <core@magentocommerce.com>
  11. */
  12. class Form extends \Magento\Backend\Block\Widget\Form\Generic
  13. {
  14. /**
  15. * @var \Magento\Store\Model\System\Store
  16. */
  17. protected $_systemStore;
  18. /**
  19. * @param \Magento\Backend\Block\Template\Context $context
  20. * @param \Magento\Framework\Registry $registry
  21. * @param \Magento\Framework\Data\FormFactory $formFactory
  22. * @param \Magento\Store\Model\System\Store $systemStore
  23. * @param array $data
  24. */
  25. public function __construct(
  26. \Magento\Backend\Block\Template\Context $context,
  27. \Magento\Framework\Registry $registry,
  28. \Magento\Framework\Data\FormFactory $formFactory,
  29. \Magento\Store\Model\System\Store $systemStore,
  30. array $data = []
  31. ) {
  32. $this->_systemStore = $systemStore;
  33. parent::__construct($context, $registry, $formFactory, $data);
  34. }
  35. /**
  36. * Init form
  37. *
  38. * @return void
  39. */
  40. protected function _construct()
  41. {
  42. parent::_construct();
  43. $this->setId('sitemap_form');
  44. $this->setTitle(__('Sitemap Information'));
  45. }
  46. /**
  47. * @return $this
  48. */
  49. protected function _prepareForm()
  50. {
  51. $model = $this->_coreRegistry->registry('sitemap_sitemap');
  52. /** @var \Magento\Framework\Data\Form $form */
  53. $form = $this->_formFactory->create(
  54. ['data' => ['id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post']]
  55. );
  56. $fieldset = $form->addFieldset('add_sitemap_form', ['legend' => __('Sitemap')]);
  57. if ($model->getId()) {
  58. $fieldset->addField('sitemap_id', 'hidden', ['name' => 'sitemap_id']);
  59. }
  60. $fieldset->addField(
  61. 'sitemap_filename',
  62. 'text',
  63. [
  64. 'label' => __('Filename'),
  65. 'name' => 'sitemap_filename',
  66. 'required' => true,
  67. 'note' => __('example: sitemap.xml'),
  68. 'value' => $model->getSitemapFilename()
  69. ]
  70. );
  71. $fieldset->addField(
  72. 'sitemap_path',
  73. 'text',
  74. [
  75. 'label' => __('Path'),
  76. 'name' => 'sitemap_path',
  77. 'required' => true,
  78. 'note' => __('example: "/sitemap/" or "/" for base path (path must be writeable)'),
  79. 'value' => $model->getSitemapPath()
  80. ]
  81. );
  82. if (!$this->_storeManager->hasSingleStore()) {
  83. $field = $fieldset->addField(
  84. 'store_id',
  85. 'select',
  86. [
  87. 'label' => __('Store View'),
  88. 'title' => __('Store View'),
  89. 'name' => 'store_id',
  90. 'required' => true,
  91. 'value' => $model->getStoreId(),
  92. 'values' => $this->_systemStore->getStoreValuesForForm()
  93. ]
  94. );
  95. $renderer = $this->getLayout()->createBlock(
  96. \Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element::class
  97. );
  98. $field->setRenderer($renderer);
  99. } else {
  100. $fieldset->addField(
  101. 'store_id',
  102. 'hidden',
  103. ['name' => 'store_id', 'value' => $this->_storeManager->getStore(true)->getId()]
  104. );
  105. $model->setStoreId($this->_storeManager->getStore(true)->getId());
  106. }
  107. $form->setValues($model->getData());
  108. $form->setUseContainer(true);
  109. $this->setForm($form);
  110. return parent::_prepareForm();
  111. }
  112. }