/home/sharedstore/public_html/prestashop.sharedstore.ma/src/Adapter
NameSizeModeActions
Address/-0755rm
Admin/-0755rm
Assets/-0755rm
Attachment/-0755rm
Attribute/-0755rm
AttributeGroup/-0755rm
Backup/-0755rm
BestSales/-0755rm
Cache/-0755rm
Carrier/-0755rm
Cart/-0755rm
CartRule/-0755rm
CatalogPriceRule/-0755rm
Category/-0755rm
CMS/-0755rm
Configuration/-0755rm
Contact/-0755rm
Container/-0755rm
Converter/-0755rm
Country/-0755rm
CreditSlip/-0755rm
Currency/-0755rm
Customer/-0755rm
Debug/-0755rm
Domain/-0755rm
Email/-0755rm
Employee/-0755rm
EntityTranslation/-0755rm
Feature/-0755rm
File/-0755rm
Form/-0755rm
Geolocation/-0755rm
Grid/-0755rm
Group/-0755rm
Hook/-0755rm
Hosting/-0755rm
Image/-0755rm
Import/-0755rm
Invoice/-0755rm
Kpi/-0755rm
Language/-0755rm
Localization/-0755rm
Mail/-0755rm
MailTemplate/-0755rm
Manufacturer/-0755rm
Media/-0755rm
Meta/-0755rm
Module/-0755rm
NewProducts/-0755rm
Notification/-0755rm
Number/-0755rm
OptionalFeatures/-0755rm
Order/-0755rm
OrderMessage/-0755rm
OrderReturn/-0755rm
OrderReturnState/-0755rm
OrderState/-0755rm
Pack/-0755rm
PDF/-0755rm
Preferences/-0755rm
Presenter/-0755rm
PricesDrop/-0755rm
Product/-0755rm
Profile/-0755rm
Requirement/-0755rm
Routes/-0755rm
Routing/-0755rm
Search/-0755rm
SearchEngine/-0755rm
Security/-0755rm
Session/-0755rm
Shop/-0755rm
Smarty/-0755rm
SpecificPrice/-0755rm
SqlManager/-0755rm
State/-0755rm
Store/-0755rm
Supplier/-0755rm
Support/-0755rm
System/-0755rm
Tab/-0755rm
Tax/-0755rm
TaxRulesGroup/-0755rm
Theme/-0755rm
Title/-0755rm
Translations/-0755rm
Twig/-0755rm
Upload/-0755rm
Warehouse/-0755rm
Webservice/-0755rm
Zone/-0755rm
AbstractObjectModelValidator.php37190644editdlrm
AddressFactory.php20510644editdlrm
CacheManager.php14500644editdlrm
ClassLang.php17160644editdlrm
CombinationDataProvider.php85800644editdlrm
Configuration.php139590644editdlrm
ContainerBuilder.php89660644editdlrm
ContainerFinder.php23980644editdlrm
ContextStateManager.php103360644editdlrm
CoreException.php12290644editdlrm
Database.php26980644editdlrm
EntityMapper.php55730644editdlrm
EntityMetaDataRetriever.php20340644editdlrm
Environment.php26700644editdlrm
GeneralConfiguration.php43310644editdlrm
HookManager.php39690644editdlrm
ImageManager.php43200644editdlrm
LegacyContext.php110080644editdlrm
LegacyContextLoader.php42620644editdlrm
LegacyHookSubscriber.php47800644editdlrm
LegacyLogger.php48980644editdlrm
ObjectPresenter.php13270644editdlrm
RoundingMapper.php25230644editdlrm
ServiceLocator.php20650644editdlrm
StockManager.php79140644editdlrm
SymfonyContainer.php19700644editdlrm
Tools.php59320644editdlrm
Validate.php38330644editdlrm
Edit: /home/sharedstore/public_html/prestashop.sharedstore.ma/src/Adapter/Configuration.php (13959B)
* @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 Combination; use Configuration as ConfigurationLegacy; use Feature; use Language; use PrestaShop\PrestaShop\Core\Domain\Configuration\ShopConfigurationInterface; use PrestaShop\PrestaShop\Core\Domain\Shop\Exception\ShopException; use PrestaShop\PrestaShop\Core\Domain\Shop\ValueObject\ShopConstraint; use PrestaShopBundle\Exception\NotImplementedException; use Shop; use Symfony\Component\HttpFoundation\ParameterBag; use Traversable; /** * Adapter of Configuration ObjectModel. */ class Configuration extends ParameterBag implements ShopConfigurationInterface { /** * @var Shop */ private $shop; public function __construct(array $parameters = []) { // Do nothing if (!empty($parameters)) { throw new \LogicException('No parameter can be handled in constructor. Use method set() instead.'); } } /** * @throws NotImplementedException */ public function all() { throw new NotImplementedException(); } /** * {@inheritdoc} */ public function keys() { return array_keys($this->all()); } /** * {@inheritdoc} */ public function replace(array $parameters = []) { $this->add($parameters); } /** * {@inheritdoc} */ public function add(array $parameters = []) { foreach ($parameters as $key => $value) { $this->set($key, $value); } } /** * Returns constant defined by given $key if exists or check directly into PrestaShop * \Configuration. * * @param string $key * @param mixed $default The default value if the parameter key does not exist * @param ShopConstraint|null $shopConstraint This parameter should always be given, if not, a ShopConstraint will * be built based on the current shop context * * @return mixed */ public function get($key, $default = null, ShopConstraint $shopConstraint = null) { if (null === $shopConstraint) { $shopConstraint = $this->buildShopConstraintFromContext(); } if (defined($key)) { return constant($key); } $shopId = $this->getShopId($shopConstraint); $shopGroupId = $this->getShopGroupId($shopConstraint); //If configuration has never been accessed it is still empty and hasKey/isLangKey will always return false if (!ConfigurationLegacy::configurationIsLoaded()) { ConfigurationLegacy::loadConfiguration(); } // if the key is multi lang related, we return an array with the value per language. if (ConfigurationLegacy::isLangKey($key)) { return $this->getLocalized($key, $shopId, $shopGroupId); } if ($shopConstraint->isStrict()) { return $this->getStrictValue($key, $shopConstraint); } // Since hasKey doesn't manage the fallback shop > shop group > global, we handle it manually if (null !== $shopId && ConfigurationLegacy::hasKey($key, null, null, $shopId)) { return ConfigurationLegacy::get($key, null, null, $shopId); } if (null !== $shopGroupId && ConfigurationLegacy::hasKey($key, null, $shopGroupId)) { return ConfigurationLegacy::get($key, null, $shopGroupId); } if (ConfigurationLegacy::hasKey($key)) { return ConfigurationLegacy::get($key); } return $default; } /** * Set configuration value. * * @param string $key * @param mixed $value * @param ShopConstraint|null $shopConstraint If this parameter is not given, a ShopConstraint will * be built based on the current shop context, except if $this->shop is set * @param array $options Options @deprecated Will be removed in next major * * @return $this * * @throws \Exception */ public function set($key, $value, ShopConstraint $shopConstraint = null, array $options = []) { if ($this->shop instanceof Shop && null === $shopConstraint) { $shopGroupId = $this->shop->id_shop_group; $shopId = $this->shop->id; } else { $shopConstraint = $shopConstraint ?: $this->buildShopConstraintFromContext(); $shopId = $this->getShopId($shopConstraint); $shopGroupId = $this->getShopGroupId($shopConstraint); } $html = isset($options['html']) ? (bool) $options['html'] : false; $success = ConfigurationLegacy::updateValue( $key, $value, $html, $shopGroupId ?: 0, $shopId ?: 0 ); if (!$success) { throw new \Exception('Could not update configuration'); } return $this; } /** * @param string $key * @param ShopConstraint|null $shopConstraint This parameter should always be given, if not, a ShopConstraint will * be built based on the current shop context * * @return bool */ public function has($key, ShopConstraint $shopConstraint = null) { if (null === $shopConstraint) { $shopConstraint = $this->buildShopConstraintFromContext(); } $shopId = $this->getShopId($shopConstraint); $shopGroupId = $this->getShopGroupId($shopConstraint); if (ConfigurationLegacy::isLangKey($key)) { return $this->hasMultilang($key, $shopId, $shopGroupId, $shopConstraint->isStrict()); } $hasKey = ConfigurationLegacy::hasKey($key, null, $shopGroupId, $shopId); if (null !== $shopId && ($hasKey || $shopConstraint->isStrict())) { return $hasKey; } $hasKey = ConfigurationLegacy::hasKey($key, null, $shopGroupId); if (null !== $shopGroupId && ($shopConstraint->isStrict() || $hasKey)) { return $hasKey; } return ConfigurationLegacy::hasKey($key); } /** * Same as 'has' method, but for multilang configuration keys * * @param string $key * @param int|null $shopId * @param int|null $shopGroupId * @param bool $isStrict * * @return bool */ private function hasMultilang(string $key, ?int $shopId, ?int $shopGroupId, bool $isStrict): bool { $langIds = Language::getIDs(false, $shopId ?: false); // check that we have a key for at least one of the used languages for given constraints foreach ($langIds as $langId) { if (ConfigurationLegacy::hasKey($key, $langId, $shopGroupId, $shopId)) { return true; } // If strict mode is enable, only rely on the first check if ($isStrict) { continue; } if (ConfigurationLegacy::hasKey($key, $langId, $shopGroupId) || ConfigurationLegacy::hasKey($key, $langId)) { return true; } } return false; } /** * Removes a configuration key. * * @param string $key * * @return self */ public function remove($key) { $success = \Configuration::deleteByName( $key ); if (!$success) { throw new \Exception('Could not delete configuration'); } return $this; } /** * Unset configuration value. * * @param string $key * * @return void * * @throws \Exception * * @deprecated since version 1.7.4.0 */ public function delete($key) { $this->remove($key); } /** * {@inheritdoc} */ public function getIterator(): Traversable { return new \ArrayIterator($this->all()); } /** * {@inheritdoc} */ public function count(): int { return count($this->all()); } /** * Return if Feature feature is active or not. * * @return bool */ public function featureIsActive() { return Feature::isFeatureActive(); } /** * Return if Combination feature is active or not. * * @return bool */ public function combinationIsActive() { return Combination::isFeatureActive(); } /** * Restrict updates of a piece of configuration to a single shop. * * @param Shop $shop */ public function restrictUpdatesTo(Shop $shop) { $this->shop = $shop; } /** * Get localized configuration in all languages * * @param string $key * @param int|null $shopId * @param int|null $shopGroupId * * @return array Array of langId => localizedConfiguration */ private function getLocalized($key, ?int $shopId = null, ?int $shopGroupId = null) { $configuration = []; foreach (Language::getIDs(false, $shopId ?: false) as $langId) { $configuration[$langId] = ConfigurationLegacy::get($key, $langId, $shopGroupId, $shopId); } return $configuration; } /** * @param ShopConstraint $shopConstraint * * @return int|null */ private function getShopId(ShopConstraint $shopConstraint): ?int { return null !== $shopConstraint->getShopId() ? $shopConstraint->getShopId()->getValue() : null ; } /** * @param ShopConstraint $shopConstraint * * @return int|null */ private function getShopGroupId(ShopConstraint $shopConstraint): ?int { if (null !== $shopConstraint->getShopGroupId()) { return $shopConstraint->getShopGroupId()->getValue(); } elseif (null !== $shopConstraint->getShopId()) { $shopGroupId = Shop::getGroupFromShop((int) $shopConstraint->getShopId()->getValue(), true); // $shopGroupId can not be false, it would mean that the shop group was not found for the given shop if ($shopGroupId === false) { throw new ShopException( sprintf( 'Shop group was not found for the shop with id %d.', $shopConstraint->getShopId()->getValue() ) ); } return (int) $shopGroupId; } return null; } /** * @param string $key * @param ShopConstraint $shopConstraint * * @throws ShopException */ public function deleteFromContext(string $key, ShopConstraint $shopConstraint): void { if ($shopConstraint->forAllShops()) { throw new ShopException( sprintf('This method can not be used for all shops, if you want to completely delete a configuration use %s::remove() instead', static::class) ); } $shopId = $shopConstraint->getShopId(); $shopGroupId = $shopConstraint->getShopGroupId(); ConfigurationLegacy::deleteFromGivenContext( $key, !empty($shopGroupId) ? $shopGroupId->getValue() : null, !empty($shopId) ? $shopId->getValue() : null ); } /** * @return ShopConstraint */ private function buildShopConstraintFromContext(): ShopConstraint { @trigger_error( 'Not specifying the optional ShopConstraint parameter is deprecated since version 1.7.8.0', E_USER_DEPRECATED ); if (Shop::getContext() === Shop::CONTEXT_SHOP) { return ShopConstraint::shop(Shop::getContextShopID()); } elseif (Shop::getContext() === Shop::CONTEXT_GROUP) { return ShopConstraint::shopGroup(Shop::getContextShopGroupID()); } return ShopConstraint::allShops(); } /** * @param string $key * @param ShopConstraint $shopConstraint * * @return mixed */ private function getStrictValue(string $key, ShopConstraint $shopConstraint) { if (null !== $shopConstraint->getShopId()) { $hasKey = ConfigurationLegacy::hasKey($key, null, null, $shopConstraint->getShopId()->getValue()); return $hasKey ? ConfigurationLegacy::get($key, null, null, $shopConstraint->getShopId()->getValue()) : null; } if (null !== $shopConstraint->getShopGroupId()) { $hasKey = ConfigurationLegacy::hasKey($key, null, $shopConstraint->getShopGroupId()->getValue()); return $hasKey ? ConfigurationLegacy::get($key, null, $shopConstraint->getShopGroupId()->getValue()) : null; } if (ConfigurationLegacy::hasKey($key)) { return ConfigurationLegacy::get($key); } return null; } }