Form.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. /**
  3. * Google Optimizer Category Tab
  4. *
  5. * Copyright © Magento, Inc. All rights reserved.
  6. * See COPYING.txt for license details.
  7. */
  8. namespace Magento\GoogleOptimizer\Block\Adminhtml;
  9. use Magento\Framework\Exception\ConfigurationMismatchException;
  10. use Magento\Framework\App\ObjectManager;
  11. use Magento\Backend\Block\Widget\Form\Generic;
  12. /**
  13. * @SuppressWarnings(PHPMD.DepthOfInheritance)
  14. */
  15. class Form extends Generic
  16. {
  17. /**
  18. * @var \Magento\GoogleOptimizer\Helper\Form
  19. */
  20. protected $formHelper;
  21. /**
  22. * @param \Magento\Backend\Block\Template\Context $context
  23. * @param \Magento\Framework\Registry $registry
  24. * @param \Magento\Framework\Data\FormFactory $formFactory
  25. * @param \Magento\GoogleOptimizer\Helper\Form $formHelper
  26. * @param array $data
  27. */
  28. public function __construct(
  29. \Magento\Backend\Block\Template\Context $context,
  30. \Magento\Framework\Registry $registry,
  31. \Magento\Framework\Data\FormFactory $formFactory,
  32. \Magento\GoogleOptimizer\Helper\Form $formHelper,
  33. array $data = []
  34. ) {
  35. parent::__construct($context, $registry, $formFactory, $data);
  36. $this->formHelper = $formHelper;
  37. $this->setForm($formFactory->create());
  38. }
  39. /**
  40. * @inheritdoc
  41. */
  42. protected function _prepareForm()
  43. {
  44. $entityClass = $this->getData('code-entity');
  45. $formName = $this->getData('form-name');
  46. if (!$entityClass) {
  47. throw new ConfigurationMismatchException(__('Data key is missing: %1', ['code-entity']));
  48. }
  49. if (!$formName) {
  50. throw new ConfigurationMismatchException(__('Data key is missing: %1', ['form-name']));
  51. }
  52. $entity = ObjectManager::getInstance()->create($entityClass);
  53. $this->formHelper->addGoogleoptimizerFields($this->getForm(), $entity->getCode(), $formName);
  54. $this->getForm()->getElement('googleoptimizer_fields')->setData(['legend' => null]);
  55. return parent::_prepareForm();
  56. }
  57. }