Form.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Adminhtml tag edit form
  8. *
  9. */
  10. namespace Magento\Search\Block\Adminhtml\Term\Edit;
  11. class Form extends \Magento\Backend\Block\Widget\Form\Generic
  12. {
  13. /**
  14. * @var \Magento\Store\Model\System\Store
  15. */
  16. protected $_systemStore;
  17. /**
  18. * @param \Magento\Backend\Block\Template\Context $context
  19. * @param \Magento\Framework\Registry $registry
  20. * @param \Magento\Framework\Data\FormFactory $formFactory
  21. * @param \Magento\Store\Model\System\Store $systemStore
  22. * @param array $data
  23. */
  24. public function __construct(
  25. \Magento\Backend\Block\Template\Context $context,
  26. \Magento\Framework\Registry $registry,
  27. \Magento\Framework\Data\FormFactory $formFactory,
  28. \Magento\Store\Model\System\Store $systemStore,
  29. array $data = []
  30. ) {
  31. $this->_systemStore = $systemStore;
  32. parent::__construct($context, $registry, $formFactory, $data);
  33. }
  34. /**
  35. * Init Form properties
  36. *
  37. * @return void
  38. */
  39. protected function _construct()
  40. {
  41. parent::_construct();
  42. $this->setId('search_term_form');
  43. $this->setTitle(__('Search Information'));
  44. }
  45. /**
  46. * Prepare form fields
  47. *
  48. * @return $this
  49. * @throws \Magento\Framework\Exception\LocalizedException
  50. * @throws \Magento\Framework\Exception\NoSuchEntityException
  51. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  52. */
  53. protected function _prepareForm()
  54. {
  55. $model = $this->_coreRegistry->registry('current_catalog_search');
  56. /* @var $model \Magento\Search\Model\Query */
  57. /** @var \Magento\Framework\Data\Form $form */
  58. $form = $this->_formFactory->create(
  59. ['data' => ['id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post']]
  60. );
  61. $fieldset = $form->addFieldset('base_fieldset', ['legend' => __('General Information')]);
  62. $yesno = [['value' => 0, 'label' => __('No')], ['value' => 1, 'label' => __('Yes')]];
  63. if ($model->getId()) {
  64. $fieldset->addField('query_id', 'hidden', ['name' => 'query_id']);
  65. }
  66. $fieldset->addField(
  67. 'query_text',
  68. 'text',
  69. [
  70. 'name' => 'query_text',
  71. 'label' => __('Search Query'),
  72. 'title' => __('Search Query'),
  73. 'required' => true
  74. ]
  75. );
  76. if (!$this->_storeManager->isSingleStoreMode()) {
  77. $field = $fieldset->addField(
  78. 'store_id',
  79. 'select',
  80. [
  81. 'name' => 'store_id',
  82. 'label' => __('Store'),
  83. 'title' => __('Store'),
  84. 'values' => $this->_systemStore->getStoreValuesForForm(true, false),
  85. 'required' => true
  86. ]
  87. );
  88. $renderer = $this->getLayout()->createBlock(
  89. \Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element::class
  90. );
  91. $field->setRenderer($renderer);
  92. } else {
  93. $fieldset->addField('store_id', 'hidden', ['name' => 'store_id']);
  94. $model->setStoreId($this->_storeManager->getStore(true)->getId());
  95. }
  96. if ($model->getId()) {
  97. $fieldset->addField(
  98. 'num_results',
  99. 'text',
  100. [
  101. 'name' => 'num_results',
  102. 'label' => __('Number of results'),
  103. 'title' => __('Number of results (For the last time placed)'),
  104. 'note' => __('For the last time placed.'),
  105. 'required' => true
  106. ]
  107. );
  108. $fieldset->addField(
  109. 'popularity',
  110. 'text',
  111. [
  112. 'name' => 'popularity',
  113. 'label' => __('Number of Uses'),
  114. 'title' => __('Number of Uses'),
  115. 'required' => true
  116. ]
  117. );
  118. }
  119. $fieldset->addField(
  120. 'redirect',
  121. 'text',
  122. [
  123. 'name' => 'redirect',
  124. 'label' => __('Redirect URL'),
  125. 'title' => __('Redirect URL'),
  126. 'class' => 'validate-url',
  127. 'note' => __('ex. http://domain.com')
  128. ]
  129. );
  130. $fieldset->addField(
  131. 'display_in_terms',
  132. 'select',
  133. [
  134. 'name' => 'display_in_terms',
  135. 'label' => __('Display in Suggested Terms'),
  136. 'title' => __('Display in Suggested Terms'),
  137. 'values' => $yesno
  138. ]
  139. );
  140. $form->setValues($model->getData());
  141. $form->setUseContainer(true);
  142. $this->setForm($form);
  143. return parent::_prepareForm();
  144. }
  145. }