Form.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Review\Block\Adminhtml\Add;
  7. /**
  8. * Adminhtml add product review form
  9. *
  10. * @author Magento Core Team <core@magentocommerce.com>
  11. */
  12. class Form extends \Magento\Backend\Block\Widget\Form\Generic
  13. {
  14. /**
  15. * Review data
  16. *
  17. * @var \Magento\Review\Helper\Data
  18. */
  19. protected $_reviewData = null;
  20. /**
  21. * Core system store model
  22. *
  23. * @var \Magento\Store\Model\System\Store
  24. */
  25. protected $_systemStore;
  26. /**
  27. * @param \Magento\Backend\Block\Template\Context $context
  28. * @param \Magento\Framework\Registry $registry
  29. * @param \Magento\Framework\Data\FormFactory $formFactory
  30. * @param \Magento\Store\Model\System\Store $systemStore
  31. * @param \Magento\Review\Helper\Data $reviewData
  32. * @param array $data
  33. */
  34. public function __construct(
  35. \Magento\Backend\Block\Template\Context $context,
  36. \Magento\Framework\Registry $registry,
  37. \Magento\Framework\Data\FormFactory $formFactory,
  38. \Magento\Store\Model\System\Store $systemStore,
  39. \Magento\Review\Helper\Data $reviewData,
  40. array $data = []
  41. ) {
  42. $this->_reviewData = $reviewData;
  43. $this->_systemStore = $systemStore;
  44. parent::__construct($context, $registry, $formFactory, $data);
  45. }
  46. /**
  47. * Prepare add review form
  48. *
  49. * @return void
  50. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  51. */
  52. protected function _prepareForm()
  53. {
  54. /** @var \Magento\Framework\Data\Form $form */
  55. $form = $this->_formFactory->create();
  56. $fieldset = $form->addFieldset('add_review_form', ['legend' => __('Review Details')]);
  57. $fieldset->addField('product_name', 'note', ['label' => __('Product'), 'text' => 'product_name']);
  58. $fieldset->addField(
  59. 'detailed-rating',
  60. 'note',
  61. [
  62. 'label' => __('Product Rating'),
  63. 'required' => true,
  64. 'text' => '<div id="rating_detail">' . $this->getLayout()->createBlock(
  65. \Magento\Review\Block\Adminhtml\Rating\Detailed::class
  66. )->toHtml() . '</div>'
  67. ]
  68. );
  69. $fieldset->addField(
  70. 'status_id',
  71. 'select',
  72. [
  73. 'label' => __('Status'),
  74. 'required' => true,
  75. 'name' => 'status_id',
  76. 'values' => $this->_reviewData->getReviewStatusesOptionArray()
  77. ]
  78. );
  79. /**
  80. * Check is single store mode
  81. */
  82. if (!$this->_storeManager->isSingleStoreMode()) {
  83. $field = $fieldset->addField(
  84. 'select_stores',
  85. 'multiselect',
  86. [
  87. 'label' => __('Visibility'),
  88. 'required' => true,
  89. 'name' => 'select_stores[]',
  90. 'values' => $this->_systemStore->getStoreValuesForForm()
  91. ]
  92. );
  93. $renderer = $this->getLayout()->createBlock(
  94. \Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element::class
  95. );
  96. $field->setRenderer($renderer);
  97. }
  98. $fieldset->addField(
  99. 'nickname',
  100. 'text',
  101. [
  102. 'name' => 'nickname',
  103. 'title' => __('Nickname'),
  104. 'label' => __('Nickname'),
  105. 'maxlength' => '50',
  106. 'required' => true
  107. ]
  108. );
  109. $fieldset->addField(
  110. 'title',
  111. 'text',
  112. [
  113. 'name' => 'title',
  114. 'title' => __('Summary of Review'),
  115. 'label' => __('Summary of Review'),
  116. 'maxlength' => '255',
  117. 'required' => true
  118. ]
  119. );
  120. $fieldset->addField(
  121. 'detail',
  122. 'textarea',
  123. [
  124. 'name' => 'detail',
  125. 'title' => __('Review'),
  126. 'label' => __('Review'),
  127. 'required' => true
  128. ]
  129. );
  130. $fieldset->addField('product_id', 'hidden', ['name' => 'product_id']);
  131. $form->setMethod('post');
  132. $form->setUseContainer(true);
  133. $form->setId('edit_form');
  134. $form->setAction($this->getUrl('review/product/post'));
  135. $this->setForm($form);
  136. }
  137. }