/
home
/
sharedstore
/
public_html
/
prestashop.sharedstore.ma
/
src
/
Adapter
/
/home/sharedstore/public_html/prestashop.sharedstore.ma/src/Adapter
mkdir
upload
Name
Size
Mode
Actions
Address/
-
0755
rm
Admin/
-
0755
rm
Assets/
-
0755
rm
Attachment/
-
0755
rm
Attribute/
-
0755
rm
AttributeGroup/
-
0755
rm
Backup/
-
0755
rm
BestSales/
-
0755
rm
Cache/
-
0755
rm
Carrier/
-
0755
rm
Cart/
-
0755
rm
CartRule/
-
0755
rm
CatalogPriceRule/
-
0755
rm
Category/
-
0755
rm
CMS/
-
0755
rm
Configuration/
-
0755
rm
Contact/
-
0755
rm
Container/
-
0755
rm
Converter/
-
0755
rm
Country/
-
0755
rm
CreditSlip/
-
0755
rm
Currency/
-
0755
rm
Customer/
-
0755
rm
Debug/
-
0755
rm
Domain/
-
0755
rm
Email/
-
0755
rm
Employee/
-
0755
rm
EntityTranslation/
-
0755
rm
Feature/
-
0755
rm
File/
-
0755
rm
Form/
-
0755
rm
Geolocation/
-
0755
rm
Grid/
-
0755
rm
Group/
-
0755
rm
Hook/
-
0755
rm
Hosting/
-
0755
rm
Image/
-
0755
rm
Import/
-
0755
rm
Invoice/
-
0755
rm
Kpi/
-
0755
rm
Language/
-
0755
rm
Localization/
-
0755
rm
Mail/
-
0755
rm
MailTemplate/
-
0755
rm
Manufacturer/
-
0755
rm
Media/
-
0755
rm
Meta/
-
0755
rm
Module/
-
0755
rm
NewProducts/
-
0755
rm
Notification/
-
0755
rm
Number/
-
0755
rm
OptionalFeatures/
-
0755
rm
Order/
-
0755
rm
OrderMessage/
-
0755
rm
OrderReturn/
-
0755
rm
OrderReturnState/
-
0755
rm
OrderState/
-
0755
rm
Pack/
-
0755
rm
PDF/
-
0755
rm
Preferences/
-
0755
rm
Presenter/
-
0755
rm
PricesDrop/
-
0755
rm
Product/
-
0755
rm
Profile/
-
0755
rm
Requirement/
-
0755
rm
Routes/
-
0755
rm
Routing/
-
0755
rm
Search/
-
0755
rm
SearchEngine/
-
0755
rm
Security/
-
0755
rm
Session/
-
0755
rm
Shop/
-
0755
rm
Smarty/
-
0755
rm
SpecificPrice/
-
0755
rm
SqlManager/
-
0755
rm
State/
-
0755
rm
Store/
-
0755
rm
Supplier/
-
0755
rm
Support/
-
0755
rm
System/
-
0755
rm
Tab/
-
0755
rm
Tax/
-
0755
rm
TaxRulesGroup/
-
0755
rm
Theme/
-
0755
rm
Title/
-
0755
rm
Translations/
-
0755
rm
Twig/
-
0755
rm
Upload/
-
0755
rm
Warehouse/
-
0755
rm
Webservice/
-
0755
rm
Zone/
-
0755
rm
AbstractObjectModelValidator.php
3719
0644
edit
dl
rm
AddressFactory.php
2051
0644
edit
dl
rm
CacheManager.php
1450
0644
edit
dl
rm
ClassLang.php
1716
0644
edit
dl
rm
CombinationDataProvider.php
8580
0644
edit
dl
rm
Configuration.php
13959
0644
edit
dl
rm
ContainerBuilder.php
8966
0644
edit
dl
rm
ContainerFinder.php
2398
0644
edit
dl
rm
ContextStateManager.php
10336
0644
edit
dl
rm
CoreException.php
1229
0644
edit
dl
rm
Database.php
2698
0644
edit
dl
rm
EntityMapper.php
5573
0644
edit
dl
rm
EntityMetaDataRetriever.php
2034
0644
edit
dl
rm
Environment.php
2670
0644
edit
dl
rm
GeneralConfiguration.php
4331
0644
edit
dl
rm
HookManager.php
3969
0644
edit
dl
rm
ImageManager.php
4320
0644
edit
dl
rm
LegacyContext.php
11008
0644
edit
dl
rm
LegacyContextLoader.php
4262
0644
edit
dl
rm
LegacyHookSubscriber.php
4780
0644
edit
dl
rm
LegacyLogger.php
4898
0644
edit
dl
rm
ObjectPresenter.php
1327
0644
edit
dl
rm
RoundingMapper.php
2523
0644
edit
dl
rm
ServiceLocator.php
2065
0644
edit
dl
rm
StockManager.php
7914
0644
edit
dl
rm
SymfonyContainer.php
1970
0644
edit
dl
rm
Tools.php
5932
0644
edit
dl
rm
Validate.php
3833
0644
edit
dl
rm
Edit:
/home/sharedstore/public_html/prestashop.sharedstore.ma/src/Adapter/LegacyContext.php
(11008B)
<?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\Adapter; use AdminController; use AdminLegacyLayoutControllerCore; use Context; use Currency; use Employee; use Language; use RuntimeException; use Smarty; use Symfony\Component\Process\Exception\LogicException; use Tab; /** * This adapter will complete the new architecture Context with legacy values. * A merge is done, but the legacy values will be transferred to the new Context * during legacy refactoring. */ class LegacyContext { /** @var Context */ protected static $instance = null; /** @var Currency|null */ private $employeeCurrency; /** @var string Contains the base uri for mail themes (by default https://domain.com/mails/themes/). Used for mails assets. */ private $mailThemesUri; /** @var Tools */ private $tools; /** * @param string|null $mailThemesUri * @param Tools|null $tools */ public function __construct( $mailThemesUri = null, Tools $tools = null ) { $this->mailThemesUri = $mailThemesUri; $this->tools = null !== $tools ? $tools : new Tools(); } /** * To be used only in Adapters. Should not been called by Core classes. Prefer to use Core\context class, * that will contains all you need in the Core architecture. * * @throws LogicException If legacy context is not set properly * * @return Context the Legacy context, for Adapter use only */ public function getContext() { if (null === static::$instance) { $legacyContext = Context::getContext(); if ($legacyContext && !empty($legacyContext->shop) && !isset($legacyContext->controller) && isset($legacyContext->employee)) { //init real legacy shop context $adminController = new AdminController(); $adminController->initShopContext(); } static::$instance = $legacyContext; } return static::$instance; } /** * Get smarty instance from legacy context. * * @return Smarty */ public function getSmarty() { return $this->getContext()->smarty; } /** * Gets the Admin base url (actually random directory name). * * @return string */ public function getAdminBaseUrl() { return __PS_BASE_URI__ . basename(_PS_ADMIN_DIR_) . '/'; } public function getCountryId(): int { return $this->getContext()->country->id; } /** * Adapter to get Admin HTTP link. * * @param string $controller the controller name * @param bool $withToken * @param array<string> $extraParams * * @return string */ public function getAdminLink($controller, $withToken = true, $extraParams = []) { return $this->getContext()->link->getAdminLink($controller, $withToken, $extraParams, $extraParams); } /** * Returns the controller link in its legacy form, without trying to convert it in symfony url. * * @param string $controller * @param bool $withToken * @param array $extraParams * * @return string */ public function getLegacyAdminLink($controller, $withToken = true, $extraParams = []) { return $this->getContext()->link->getLegacyAdminLink($controller, $withToken, $extraParams); } /** * Adapter to get Front controller HTTP link. * * @param string $controller the controller name * * @return string */ public function getFrontUrl($controller) { $legacyContext = $this->getContext(); return $legacyContext->link->getPageLink($controller); } /** * Adapter to get Root Url. * * @return string The lagacy root URL */ public function getRootUrl() { return __PS_BASE_URI__; } /** * Adapter to get upload directory * * @return string */ public function getUploadDirectory() { return _PS_UPLOAD_DIR_; } /** * Url to the mail themes folder * * @return string */ public function getMailThemesUrl() { return $this->tools->getShopDomainSsl(true) . __PS_BASE_URI__ . $this->mailThemesUri; } /** * This fix is used to have a ready translation in the smarty 'l' function. * Called by AutoResponseFormatTrait in beforeActionSuggestResponseFormat(). * So if you do not use this Trait, you must call this method by yourself in the action. * * @param string $legacyController */ public function setupLegacyTranslationContext($legacyController = 'AdminTab') { Context::getContext()->override_controller_name_for_translations = $legacyController; } /** * Adapter to get admin legacy layout into legacy controller context. * * @param string $controllerName The legacy controller name * @param string $title The page title to override default one * @param array $headerToolbarBtn The header toolbar to override * @param string $displayType The legacy display type variable * @param bool $showContentHeader can force header toolbar (buttons and title) to be hidden with false value * @param string $headerTabContent * @param bool $enableSidebar Allow to use right sidebar to display docs for instance * @param string $helpLink If specified, will be used instead of legacy one * @param string[] $jsRouterMetadata array to provide base_url and security token for JS Router * @param string $metaTitle * @param bool $useRegularH1Structure allows complex <h1> structure if set to false * @param string $baseLayout * * @return string The html layout */ public function getLegacyLayout( $controllerName, $title, $headerToolbarBtn, $displayType, $showContentHeader, $headerTabContent, $enableSidebar, $helpLink = '', $jsRouterMetadata = [], $metaTitle = '', $useRegularH1Structure = true, $baseLayout = 'layout.tpl' ) { $originCtrl = new AdminLegacyLayoutControllerCore( $controllerName, $title, $headerToolbarBtn, $displayType, $showContentHeader, $headerTabContent, $enableSidebar, $helpLink, $jsRouterMetadata, $metaTitle, $useRegularH1Structure ); $originCtrl->layout = $baseLayout; $originCtrl->run(); return $originCtrl->outPutHtml; } /** * Returns available languages. The first one is the employee default one. * * @param bool $active Select only active languages * @param int|bool $id_shop Shop ID * @param bool $ids_only If true, returns an array of language IDs * * @return array<int|array> Languages */ public function getLanguages($active = true, $id_shop = false, $ids_only = false) { $languages = $this->getLegacyLanguages($active, $id_shop, $ids_only); $defaultLanguageFirst = $this->getLanguage(); usort($languages, function ($a, $b) use ($defaultLanguageFirst) { if ($a['id_lang'] == $defaultLanguageFirst->id) { return -1; // $a is the default one. } if ($b['id_lang'] == $defaultLanguageFirst->id) { return 1; // $b is the default one. } return 0; }); return $languages; } /** * Returns language ISO code set for the current employee. * * @return string Languages */ public function getEmployeeLanguageIso() { return Language::getIsoById($this->getContext()->employee->id_lang); } /** * Returns Currency set for the current employee. * * @return Currency|null */ public function getEmployeeCurrency() { if (null === $this->employeeCurrency && $this->getContext()->currency) { $this->employeeCurrency = $this->getContext()->currency; } return $this->employeeCurrency; } /** * @return Language */ public function getLanguage() { $context = $this->getContext(); if ($context->language instanceof Language) { return $context->language; } return new Language(); } /** * Get employee's default tab name. * * @return string Default tab name for employee * * @throws RuntimeException Throws exception if employee does not exist in context */ public function getDefaultEmployeeTab() { $employee = $this->getContext()->employee; if (!$employee instanceof Employee) { throw new RuntimeException('Cannot retrieve default employee tab. Employee does not exist in context!'); } $idTab = $employee->default_tab; $tab = new Tab($idTab); return $tab->class_name; } /** * @return string */ public function getMailThemesUri() { return $this->mailThemesUri; } /** * @return array Returns both enabled and disabled languages */ public function getAvailableLanguages() { return $this->getLegacyLanguages(false); } /** * @param bool $active * @param bool|int $id_shop * @param bool $ids_only * * @return array */ private function getLegacyLanguages(bool $active = true, $id_shop = false, bool $ids_only = false): array { return Language::getLanguages($active, $id_shop, $ids_only); } /** * @param Context $testInstance * Unit testing purpose only */ public static function setInstanceForTesting(Context $testInstance) { static::$instance = $testInstance; } }
Save
cmd:
run