/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/LegacyHookSubscriber.php (4780B)
* @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 Context; use Hook; use PrestaShopBundle\Service\Hook\HookEvent; use PrestaShopBundle\Service\Hook\RenderingHookEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** * The subscriber for HookDispatcher that triggers legacy Hooks. * * This subscriber is registered into the HookDispatcher service via services.yml. * The legacy hooks are registered one by one in the dispatcher, but each corresponding * function is a magic method catched by __call(). * This ensure the listeners' count is real. */ class LegacyHookSubscriber implements EventSubscriberInterface { /** * Returns an array of event names this subscriber wants to listen to. * * The array keys are event names and the value are a function name * that will be solved by magic __call(). The function contains data to extract: hookId, moduleId * * TODO: add cache layer on $listeners * * @return array The listeners array */ public static function getSubscribedEvents() { $listeners = []; // Hack Symfony cache clear : if context not mounted, bypass legacy call $legacyContext = Context::getContext(); if (!$legacyContext || empty($legacyContext->shop) || empty($legacyContext->employee)) { return $listeners; } $hooks = Hook::getHooks(); if (is_array($hooks)) { foreach ($hooks as $hook) { $name = strtolower($hook['name']); $id = $hook['id_hook']; $moduleListeners = []; $modules = []; // Symfony cache clear bug fix : call bqSQL alias function if (function_exists('bqSQL')) { $modules = Hook::getHookModuleExecList($name); } if (is_array($modules)) { foreach ($modules as $order => $module) { $moduleId = $module['id_module']; $functionName = 'call_' . $id . '_' . $moduleId; $moduleListeners[] = [$functionName, 2000 - $order]; } } else { $moduleListeners[] = ['call_' . $id . '_0', 2000]; } $listeners[$name] = $moduleListeners; } } return $listeners; } /** * This will handle magic methods registered as listeners. * * These methods are built with the following syntax: * "call__(HookEvent $event, $hookName)" * * @param string $name The method called * @param array $args The HookEvent, and then the hook name (eventName) * * @throws \BadMethodCallException */ public function __call($name, $args) { if (strpos($name, 'call_') !== 0) { throw new \BadMethodCallException('The call to \'' . $name . '\' is not recognized.'); } $ids = explode('_', $name); array_shift($ids); // remove 'call' if (count($ids) !== 2) { throw new \BadMethodCallException('The call to \'' . $name . '\' is not recognized.'); } $moduleId = (int) $ids[1]; list($event, $hookName) = $args; $content = Hook::exec( $hookName, $event->getHookParameters(), $moduleId, ($event instanceof RenderingHookEvent) ); if ( $event instanceof RenderingHookEvent && 0 !== $moduleId && !empty($content) ) { $event->setContent([array_values($content)[0]], array_keys($content)[0]); } } }