![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-newsletter/Block/Adminhtml/Template/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Newsletter\Block\Adminhtml\Template; /** * Newsletter template preview block * * @api * @since 100.0.2 */ class Preview extends \Magento\Backend\Block\Widget { /** * Name for profiler * * @var string */ protected $profilerName = "newsletter_template_proccessing"; /** * @var \Magento\Newsletter\Model\TemplateFactory */ protected $_templateFactory; /** * @var \Magento\Newsletter\Model\SubscriberFactory */ protected $_subscriberFactory; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Newsletter\Model\TemplateFactory $templateFactory * @param \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Newsletter\Model\TemplateFactory $templateFactory, \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory, array $data = [] ) { $this->_templateFactory = $templateFactory; $this->_subscriberFactory = $subscriberFactory; parent::__construct($context, $data); } /** * Get html code * * @return string */ protected function _toHtml() { /* @var $template \Magento\Newsletter\Model\Template */ $template = $this->_templateFactory->create(); if ($id = (int)$this->getRequest()->getParam('id')) { $this->loadTemplate($template, $id); } else { $previewData = $this->getPreviewData(); $template->setTemplateType($previewData['type']); $template->setTemplateText($previewData['text']); $template->setTemplateStyles($previewData['styles']); } \Magento\Framework\Profiler::start($this->profilerName); $vars = []; $vars['subscriber'] = $this->_subscriberFactory->create(); if ($this->getRequest()->getParam('subscriber')) { $vars['subscriber']->load($this->getRequest()->getParam('subscriber')); } $vars['subscriber_data']['unsubscription_link'] = $vars['subscriber'] ? $vars['subscriber']->getUnsubscriptionLink() : null; $template->emulateDesign($this->getStoreId()); $templateProcessed = $this->_appState->emulateAreaCode( \Magento\Newsletter\Model\Template::DEFAULT_DESIGN_AREA, [$template, 'getProcessedTemplate'], [$vars] ); $template->revertDesign(); if ($template->isPlain()) { $templateProcessed = "<pre>" . $this->escapeHtml($templateProcessed) . "</pre>"; } \Magento\Framework\Profiler::stop($this->profilerName); return $templateProcessed; } /** * Return template preview data * * @return array */ private function getPreviewData() { $previewData = []; $previewParams = ['type', 'text', 'styles']; $sessionData = []; if ($this->_backendSession->hasPreviewData()) { $sessionData = $this->_backendSession->getPreviewData(); } foreach ($previewParams as $param) { if (isset($sessionData[$param])) { $previewData[$param] = $sessionData[$param]; } else { $previewData[$param] = $this->getRequest()->getParam($param); } } return $previewData; } /** * Get Store Id from request or default * * @return int|null */ protected function getStoreId() { $storeId = (int)$this->getRequest()->getParam('store'); if ($storeId) { return $storeId; } $defaultStore = $this->_storeManager->getDefaultStoreView(); if (!$defaultStore) { $allStores = $this->_storeManager->getStores(); if (isset($allStores[0])) { $defaultStore = $allStores[0]; } } return $defaultStore ? $defaultStore->getId() : null; } /** * Return template * * @param \Magento\Newsletter\Model\Template $template * @param string $id * @return $this */ protected function loadTemplate(\Magento\Newsletter\Model\Template $template, $id) { $template->load($id); return $this; } }