⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
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
/
modules
/
ps_currencyselector
/
View File Name :
ps_currencyselector.php
<?php /* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * 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 http://www.prestashop.com for more information. * * @author PrestaShop SA <contact@prestashop.com> * @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ use PrestaShop\PrestaShop\Adapter\Presenter\Object\ObjectPresenter; use PrestaShop\PrestaShop\Core\Module\WidgetInterface; if (!defined('_PS_VERSION_')) { exit; } class Ps_Currencyselector extends Module implements WidgetInterface { private $templateFile; public function __construct() { $this->name = 'ps_currencyselector'; $this->tab = 'front_office_features'; $this->author = 'PrestaShop'; $this->version = '2.1.1'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->trans('Currency block', [], 'Modules.Currencyselector.Admin'); $this->description = $this->trans('Offer your customers the possibility to buy matching items when on a product page.', [], 'Modules.Currencyselector.Admin'); $this->ps_versions_compliancy = ['min' => '1.7.5.0', 'max' => _PS_VERSION_]; $this->templateFile = 'module:ps_currencyselector/ps_currencyselector.tpl'; } public function install() { return parent::install() && $this->registerHook('actionAdminCurrenciesControllerSaveAfter'); } public function hookActionAdminCurrenciesControllerSaveAfter() { return parent::_clearCache($this->templateFile); } public function getWidgetVariables($hookName, array $configuration) { $current_currency = null; $serializer = new ObjectPresenter(); $currencies = array_map( function ($currency) use ($serializer, &$current_currency) { $currencyArray = $serializer->present($currency); // serializer doesn't see 'sign' because it is not a regular // ObjectModel field. $currencyArray['sign'] = $currency->sign; $url = $this->context->link->getLanguageLink($this->context->language->id); $parsedUrl = parse_url($url); $urlParams = []; if (isset($parsedUrl['query'])) { parse_str($parsedUrl['query'], $urlParams); } $newParams = array_merge( $urlParams, [ 'SubmitCurrency' => 1, 'id_currency' => $currency->id, ] ); $newUrl = sprintf('%s://%s%s%s?%s', $parsedUrl['scheme'], $parsedUrl['host'], isset($parsedUrl['port']) ? ':' . $parsedUrl['port'] : '', $parsedUrl['path'], http_build_query($newParams) ); $currencyArray['url'] = $newUrl; if ($currency->id === $this->context->currency->id) { $currencyArray['current'] = true; $current_currency = $currencyArray; } else { $currencyArray['current'] = false; } return $currencyArray; }, Currency::getCurrencies(true, true) ); return [ 'currencies' => $currencies, 'current_currency' => $current_currency, ]; } public function renderWidget($hookName, array $configuration) { if (Configuration::isCatalogMode() || !Currency::isMultiCurrencyActivated()) { return false; } $this->smarty->assign($this->getWidgetVariables($hookName, $configuration)); return $this->fetch($this->templateFile); } }