Form.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\CheckoutAgreements\Block\Adminhtml\Agreement\Edit;
  7. class Form extends \Magento\Backend\Block\Widget\Form\Generic
  8. {
  9. /**
  10. * @var \Magento\Store\Model\System\Store
  11. */
  12. protected $_systemStore;
  13. /**
  14. * @var \Magento\CheckoutAgreements\Model\AgreementModeOptions
  15. */
  16. protected $agreementModeOptions;
  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 \Magento\CheckoutAgreements\Model\AgreementModeOptions $agreementModeOptions
  23. * @param array $data
  24. * @codeCoverageIgnore
  25. */
  26. public function __construct(
  27. \Magento\Backend\Block\Template\Context $context,
  28. \Magento\Framework\Registry $registry,
  29. \Magento\Framework\Data\FormFactory $formFactory,
  30. \Magento\Store\Model\System\Store $systemStore,
  31. \Magento\CheckoutAgreements\Model\AgreementModeOptions $agreementModeOptions,
  32. array $data = []
  33. ) {
  34. $this->_systemStore = $systemStore;
  35. $this->agreementModeOptions = $agreementModeOptions;
  36. parent::__construct($context, $registry, $formFactory, $data);
  37. }
  38. /**
  39. * Init class
  40. *
  41. * @return void
  42. */
  43. protected function _construct()
  44. {
  45. parent::_construct();
  46. $this->setId('checkoutAgreementForm');
  47. $this->setTitle(__('Terms and Conditions Information'));
  48. }
  49. /**
  50. * @return $this
  51. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  52. */
  53. protected function _prepareForm()
  54. {
  55. $model = $this->_coreRegistry->registry('checkout_agreement');
  56. /** @var \Magento\Framework\Data\Form $form */
  57. $form = $this->_formFactory->create(
  58. ['data' => ['id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post']]
  59. );
  60. $fieldset = $form->addFieldset(
  61. 'base_fieldset',
  62. ['legend' => __('Terms and Conditions Information'), 'class' => 'fieldset-wide']
  63. );
  64. if ($model->getId()) {
  65. $fieldset->addField('agreement_id', 'hidden', ['name' => 'agreement_id']);
  66. }
  67. $fieldset->addField(
  68. 'name',
  69. 'text',
  70. [
  71. 'name' => 'name',
  72. 'label' => __('Condition Name'),
  73. 'title' => __('Condition Name'),
  74. 'required' => true
  75. ]
  76. );
  77. $fieldset->addField(
  78. 'is_active',
  79. 'select',
  80. [
  81. 'label' => __('Status'),
  82. 'title' => __('Status'),
  83. 'name' => 'is_active',
  84. 'required' => true,
  85. 'options' => ['1' => __('Enabled'), '0' => __('Disabled')]
  86. ]
  87. );
  88. $fieldset->addField(
  89. 'is_html',
  90. 'select',
  91. [
  92. 'label' => __('Show Content as'),
  93. 'title' => __('Show Content as'),
  94. 'name' => 'is_html',
  95. 'required' => true,
  96. 'options' => [0 => __('Text'), 1 => __('HTML')]
  97. ]
  98. );
  99. $fieldset->addField(
  100. 'mode',
  101. 'select',
  102. [
  103. 'label' => __('Applied'),
  104. 'title' => __('Applied'),
  105. 'name' => 'mode',
  106. 'required' => true,
  107. 'options' => $this->agreementModeOptions->getOptionsArray()
  108. ]
  109. );
  110. if (!$this->_storeManager->isSingleStoreMode()) {
  111. $field = $fieldset->addField(
  112. 'stores',
  113. 'multiselect',
  114. [
  115. 'name' => 'stores[]',
  116. 'label' => __('Store View'),
  117. 'title' => __('Store View'),
  118. 'required' => true,
  119. 'values' => $this->_systemStore->getStoreValuesForForm(false, true)
  120. ]
  121. );
  122. $renderer = $this->getLayout()->createBlock(
  123. \Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element::class
  124. );
  125. $field->setRenderer($renderer);
  126. } else {
  127. $fieldset->addField(
  128. 'stores',
  129. 'hidden',
  130. ['name' => 'stores[]', 'value' => $this->_storeManager->getStore(true)->getId()]
  131. );
  132. $model->setStoreId($this->_storeManager->getStore(true)->getId());
  133. }
  134. $fieldset->addField(
  135. 'checkbox_text',
  136. 'editor',
  137. [
  138. 'name' => 'checkbox_text',
  139. 'label' => __('Checkbox Text'),
  140. 'title' => __('Checkbox Text'),
  141. 'rows' => '5',
  142. 'cols' => '30',
  143. 'wysiwyg' => false,
  144. 'required' => true
  145. ]
  146. );
  147. $fieldset->addField(
  148. 'content',
  149. 'editor',
  150. [
  151. 'name' => 'content',
  152. 'label' => __('Content'),
  153. 'title' => __('Content'),
  154. 'style' => 'height:24em;',
  155. 'wysiwyg' => false,
  156. 'required' => true
  157. ]
  158. );
  159. $fieldset->addField(
  160. 'content_height',
  161. 'text',
  162. [
  163. 'name' => 'content_height',
  164. 'label' => __('Content Height (css)'),
  165. 'title' => __('Content Height'),
  166. 'maxlength' => 25,
  167. 'class' => 'validate-css-length'
  168. ]
  169. );
  170. $form->setValues($model->getData());
  171. $form->setUseContainer(true);
  172. $this->setForm($form);
  173. return parent::_prepareForm();
  174. }
  175. }