mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 17:27:36 +00:00
103 lines
2.5 KiB
PHP
103 lines
2.5 KiB
PHP
<?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;
|
|
}
|
|
}
|