geekweb Posted January 22, 2021 Share Posted January 22, 2021 Bonjour, est ce vous pouvez m'aider a résoudre cette erreur: as4Plugin is not defined aux niveaux de console pour le module advanced serach 4. version prestashop: 1.7.5.0 Merci pour votre réponse. Cordialement. Link to comment Share on other sites More sharing options...
web_unknown Posted February 24, 2021 Share Posted February 24, 2021 On 1/22/2021 at 9:41 AM, geekweb said: Bonjour, est ce vous pouvez m'aider a résoudre cette erreur: as4Plugin is not defined aux niveaux de console pour le module advanced serach 4. version prestashop: 1.7.5.0 Merci pour votre réponse. Cordialement. Bonjour, avez vous résolu ce problème? Si oui comment? Merci Link to comment Share on other sites More sharing options...
Quentin Fahrner Posted June 24, 2021 Share Posted June 24, 2021 Bonjour, J'ai le même problème après installation de plusieurs modules dont : Super Speed (v1.3.9 - par ETS-Soft) SeoPro - All-In-One SEO (v1.6.5 - par Areama) Link to comment Share on other sites More sharing options...
Quentin Fahrner Posted June 24, 2021 Share Posted June 24, 2021 J'ai trouvé une solution à ce problème de Javascript, il ne reste plus qu'à espérer que le développeur du module se penche sur le problème. Le problème se produit car l'ordre de chargement des librairies JS n'est pas tout à fait correct. Plusieurs étapes sont nécessaires. 1. Mettre en ordre les fichiers Javascript Dans le fichier "modules/pm_advancedsearch4/pm_advancedsearch4.php" modifier le contenu de la fonction "includeAssets" lignes 3909 : $this->context->controller->registerJavascript('modules-'.$this->name.'-js-5', 'modules/'.$this->name.'/views/js/pm_advancedsearch.js', array('position' => 'bottom', 'priority' => 150)); $this->context->controller->registerJavascript('modules-'.$this->name.'-js-6', 'modules/'.$this->name.'/views/js/as4_plugin-17.js', array('position' => 'bottom', 'priority' => 160)); L'important étant de donner une priorité plus haute au fichier "as4_plugin-17.js" car il a une dépendance sur le fichier "pm_advancedsearch.js". 2. Mettre en place un événement sur le chargement du composant as4Plugin Dans le fichier "modules/pm_advancedsearch4/views/js/as4_plugin-17.js" Ajouter tout à la fin du fichier les lignes suivantes : // Create the event const as4PluginEventReady = new CustomEvent('as4_plugin_ready', {'detail': as4Plugin}); document.dispatchEvent(as4PluginEventReady); Ceci va mettre en place un événement JS qui pourra être capté pour savoir quand le composant sera chargé et disponible. 3. Écouter l'événement pour mettre en place le comportement adéquat Dans les fichiers : modules/pm_advancedsearch4/views/templates/hook/1.7/pm_advancedsearch_js.tpl modules/pm_advancedsearch4/views/templates/hook/pm_advancedsearch.tpl modules/pm_advancedsearch4/views/templates/hook/pm_advancedsearch_results.tpl Modifier le code se trouvant dans la balise script de la sorte : <script type="text/javascript"> // Listen to the AS4 Plugin Ready event. document.addEventListener('as4_plugin_ready', function(e) { var as4Plugin = e.detail; // AJOUTER ICI LE CODE QUI SE TROUVAIT DANS LA BALISE SCRIPT. // LE COMPOSANT as4Plugin EST MAINTENANT CHARGÉ ET UTILISABLE. }); </script> Remplacer les commentaires par le code qui se trouvait dans la balise script auparavant. Ainsi, ce code sera "wrappé" dans un code qui sera uniquement lancé quand le composant as4Plugin sera disponible. En espérant que cela puisse être utile à certains. Bonne journée Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now