AbstractTab.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * Abstract Google Experiment Tab
  4. *
  5. * Copyright © Magento, Inc. All rights reserved.
  6. * See COPYING.txt for license details.
  7. */
  8. namespace Magento\GoogleOptimizer\Block\Adminhtml;
  9. abstract class AbstractTab extends \Magento\Backend\Block\Widget\Form implements
  10. \Magento\Backend\Block\Widget\Tab\TabInterface
  11. {
  12. /**
  13. * @var \Magento\GoogleOptimizer\Helper\Data
  14. */
  15. protected $_helperData;
  16. /**
  17. * @var \Magento\Framework\Registry
  18. */
  19. protected $_registry;
  20. /**
  21. * @var \Magento\GoogleOptimizer\Helper\Code
  22. */
  23. protected $_codeHelper;
  24. /**
  25. * @var \Magento\GoogleOptimizer\Helper\Form
  26. */
  27. protected $_formHelper;
  28. /**
  29. * @param \Magento\Backend\Block\Template\Context $context
  30. * @param \Magento\GoogleOptimizer\Helper\Data $helperData
  31. * @param \Magento\Framework\Registry $registry
  32. * @param \Magento\GoogleOptimizer\Helper\Code $codeHelper
  33. * @param \Magento\GoogleOptimizer\Helper\Form $formHelper
  34. * @param \Magento\Framework\Data\FormFactory $formFactory
  35. * @param array $data
  36. */
  37. public function __construct(
  38. \Magento\Backend\Block\Template\Context $context,
  39. \Magento\GoogleOptimizer\Helper\Data $helperData,
  40. \Magento\Framework\Registry $registry,
  41. \Magento\GoogleOptimizer\Helper\Code $codeHelper,
  42. \Magento\GoogleOptimizer\Helper\Form $formHelper,
  43. \Magento\Framework\Data\FormFactory $formFactory,
  44. array $data = []
  45. ) {
  46. parent::__construct($context, $data);
  47. $this->_helperData = $helperData;
  48. $this->_registry = $registry;
  49. $this->_codeHelper = $codeHelper;
  50. $this->_formHelper = $formHelper;
  51. $this->setForm($formFactory->create());
  52. }
  53. /**
  54. * Prepare form before rendering HTML
  55. *
  56. * @return \Magento\Backend\Block\Widget\Form
  57. */
  58. protected function _prepareForm()
  59. {
  60. $this->_formHelper->addGoogleoptimizerFields($this->getForm(), $this->_getGoogleExperiment());
  61. return parent::_prepareForm();
  62. }
  63. /**
  64. * Get google experiment code model
  65. *
  66. * @return \Magento\GoogleOptimizer\Model\Code|null
  67. */
  68. protected function _getGoogleExperiment()
  69. {
  70. $entity = $this->_getEntity();
  71. if ($entity->getId()) {
  72. return $this->_codeHelper->getCodeObjectByEntity($entity);
  73. }
  74. return null;
  75. }
  76. /**
  77. * Get Entity model
  78. *
  79. * @return \Magento\Catalog\Model\AbstractModel
  80. */
  81. abstract protected function _getEntity();
  82. /**
  83. * Can show tab in tabs
  84. *
  85. * @return bool
  86. */
  87. public function canShowTab()
  88. {
  89. return $this->_helperData->isGoogleExperimentActive();
  90. }
  91. /**
  92. * Tab is hidden
  93. *
  94. * @return bool
  95. */
  96. public function isHidden()
  97. {
  98. return false;
  99. }
  100. }