123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /**
- * Google Optimizer Scripts Block
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\GoogleOptimizer\Block;
- abstract class AbstractCode extends \Magento\Framework\View\Element\Template
- {
- /**
- * @var Entity name in registry
- */
- protected $_registryName;
- /**
- * @var \Magento\Framework\Registry
- */
- protected $_registry;
- /**
- * @var \Magento\GoogleOptimizer\Helper\Data
- */
- protected $_helper;
- /**
- * @var \Magento\GoogleOptimizer\Helper\Code
- */
- protected $_codeHelper;
- /**
- * @param \Magento\Framework\View\Element\Template\Context $context
- * @param \Magento\GoogleOptimizer\Helper\Data $helper
- * @param \Magento\Framework\Registry $registry
- * @param \Magento\GoogleOptimizer\Helper\Code $codeHelper
- * @param array $data
- */
- public function __construct(
- \Magento\Framework\View\Element\Template\Context $context,
- \Magento\GoogleOptimizer\Helper\Data $helper,
- \Magento\Framework\Registry $registry,
- \Magento\GoogleOptimizer\Helper\Code $codeHelper,
- array $data = []
- ) {
- $this->_helper = $helper;
- $this->_registry = $registry;
- $this->_codeHelper = $codeHelper;
- parent::__construct($context, $data);
- }
- /**
- * Get google experiment code model
- *
- * @return \Magento\GoogleOptimizer\Model\Code
- * @throws \RuntimeException
- */
- protected function _getGoogleExperiment()
- {
- return $this->_codeHelper->getCodeObjectByEntity($this->_getEntity());
- }
- /**
- * Render block HTML
- *
- * @return string
- */
- protected function _toHtml()
- {
- return parent::_toHtml() . $this->_getScriptCode();
- }
- /**
- * Return script code
- *
- * @return string
- */
- protected function _getScriptCode()
- {
- $result = '';
- if ($this->_helper->isGoogleExperimentActive() && $this->_getGoogleExperiment()) {
- $result = $this->_getGoogleExperiment()->getData('experiment_script');
- }
- return $result;
- }
- /**
- * Get entity from registry
- *
- * @return mixed
- * @throws \RuntimeException
- */
- protected function _getEntity()
- {
- $entity = $this->_registry->registry($this->_registryName);
- if (!$entity) {
- throw new \RuntimeException('Entity is not found in registry.');
- }
- return $entity;
- }
- }
|