⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.45
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
olasjoys
/
src
/
Core
/
MailTemplate
/
Layout
/
View File Name :
LayoutVariablesBuilder.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\MailTemplate\Layout; use PrestaShop\PrestaShop\Core\Hook\HookDispatcherInterface; use PrestaShop\PrestaShop\Core\Language\LanguageDefaultFontsCatalog; use PrestaShop\PrestaShop\Core\Language\LanguageInterface; /** * MailLayoutVariablesBuilder is a basic implementation of MailLayoutVariablesBuilderInterface * - it formats the variables for template * - it is able to inject default fonts for specified languages * - it includes default variables (set in the constructor) * - it dispatches a hook to allow overriding its output */ class LayoutVariablesBuilder implements LayoutVariablesBuilderInterface { /** @var array */ private $defaultVariables; /** @var HookDispatcherInterface */ private $hookDispatcher; /** * @var LanguageDefaultFontsCatalog */ private $languageDefaultFonts; /** * @param HookDispatcherInterface $hookDispatcher * @param LanguageDefaultFontsCatalog $languageDefaultFonts * @param array $defaultVariables */ public function __construct( HookDispatcherInterface $hookDispatcher, LanguageDefaultFontsCatalog $languageDefaultFonts, array $defaultVariables = [] ) { $this->hookDispatcher = $hookDispatcher; $this->languageDefaultFonts = $languageDefaultFonts; $this->defaultVariables = $defaultVariables; } /** * {@inheritdoc} */ public function buildVariables(LayoutInterface $mailLayout, LanguageInterface $language) { $languageDefaultFont = $this->languageDefaultFonts->getDefaultFontByLanguage($language); if (!empty($languageDefaultFont)) { $languageDefaultFont .= ','; } $mailLayoutVariables = array_merge($this->defaultVariables, [ 'languageIsRTL' => $language->isRTL(), 'languageDefaultFont' => $languageDefaultFont, 'templateName' => $mailLayout->getName(), 'templateModuleName' => $mailLayout->getModuleName(), 'locale' => $language->getLocale(), ]); //This hook allows to change the variables of a layout $this->hookDispatcher->dispatchWithParameters( LayoutVariablesBuilderInterface::BUILD_MAIL_LAYOUT_VARIABLES_HOOK, [ 'mailLayout' => $mailLayout, 'mailLayoutVariables' => &$mailLayoutVariables, ] ); return $mailLayoutVariables; } }