Priorité de chargement des plugins
flipflip
Member
Bonjour, je finalise un plugin pour un thème et je suis face à un gros problème. Dans mon plugin j'utilise le hook ThemeEndHead pour charger un javascript qui nécessite jquery. Avec la version 5.1.1 j'ai activé le plugin jquery mais ça ne marche pas et la raison est simple, c'est à cause de l'ordre de chargement des plugins dans le core.
En code ça sera plus clair :
Première question : Quel est le paramètre qui définit l'ordre de chargement des plugins ?
Deuxième question : Est-ce qu'il a été prévue un système de gestion des priorités de chargement des plugins ?
En code ça sera plus clair :
<head>
(...)
<link rel="stylesheet" href="./plugins/plxcoinslider/coin-slider-styles.css" media="screen"type="text/css" />
<script type="text/javascript" src="./plugins/plxcoinslider/coin-slider.min.js"></script>
<script type="text/javascript" src="./plugins/jquery/jquery.min.js"></script>
</head>
Dans ce cas coin-slider ne démarre pas, dans la console d'erreur de firefox j'ai :
Si je mets en dur le code nécessaire pour charger jquery et coin-slider dans le bon ordre pas de soucis :Erreur : jQuery is not defined
Fichier Source : http://wwww/plugins/plxcoinslider/coin-slider.min.js
Ligne : 51
Erreur : $("#coin-slider").coinslider is not a function
Fichier Source : http://wwwwww
Ligne : 35
<head>
(...)
<script type="text/javascript" src="./plugins/jquery/jquery.min.js"></script>
<link rel="stylesheet" href="./plugins/plxcoinslider/coin-slider-styles.css" media="screen"type="text/css" />
<script type="text/javascript" src="./plugins/plxcoinslider/coin-slider.min.js"></script>
</head>
Bien sur le comportement est le même avec le thème par défaut.Première question : Quel est le paramètre qui définit l'ordre de chargement des plugins ?
Deuxième question : Est-ce qu'il a été prévue un système de gestion des priorités de chargement des plugins ?
J'ai un string de l'array
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
1) soit tu mets les déclarations en dur dans le theme
2) soit tu changes le nom du dossier du plugins pour qu'il se retrouve en debut de liste par ordre alphabétique et veillant à renomme la classe dans le fichier php qui porte le nom du dossier
exemple:
plugins/test/test.php
devient:
plugins/atest/atest.php et dans le fichier atest.php renommer la classe test en atest
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Je suis pas très bon en français mais il me semble que plxcoinslider en nom de dossier et nom de classe arrive après jquery...
Après test le nom du dossier n'a, à priori, rien à voir pour l'affichage côté admin. Par exemple pour mon plugin le nom du dossier est plxcoinslider, le nom de la class identique mais la valeur du title dans info.xml était "Créer un slideshow" donc forcement dans ce cas il était avant jquery. Après modification en plxcoinslider il passe après.
Peut être une piste pour votre ordre de priorité...
Je continue mon test après renommage. Côté admin pas de soucis il est affiché après jquery mais côté public il est toujours chargé avant jquery. Je fouille dans le fichier data/configuration/plugins.xml et je me rends compte que jquery est le dernier de la liste :
Je modifie le fichier passant mon plugin en dernier : Magie ça marche...
J'ai un string de l'array