[spip-dev] Ordre de chargement des plugin et find_in_path

Avant, pour gérer l'ordre de chargement des plugins, il fallait les nommer de manière alphabétique.
En 1.9.3, dixit Cédric sur IRC, c'est <necessite> dans plugin.xml qui déciderait de l'ordre.

Mais en pratique, j'ai un plugin A qui nécessite B.
Tout les 2 surchargent un fichier du core de SPIP.

Pour que ça marche, il faudrait que ce soit la surcharge de A qui soit prise en compte.

Autre cas :
<necessite id="boutonstexte" version="[0.3.0;]" />
Et surcharge dans le plugin qui a ce necessite des css et js de boutonstexte.
Actuellement, et de manière assez aléatoire, c'est soit mon plugin, soit boutonstexte qui est utilisé pour les CSS.

Plutôt génant.

Mais en pratique, j'ai un plugin A qui nécessite B.
Tout les 2 surchargent un fichier du core de SPIP.

Je me disais justement qu'il serait pas mal que le descriptif XML d'un plugin indique s'il surcharge ou non le core, et que si c'est le cas, un message d'avertissement particulier soit présent dans la liste de sélection.

-Nicolas

* RealET tapotait, le 27/07/2007 00:50:
Je n'y comprend rien : 2 serveurs différents avec la même version de SPIP.
Squelette qui fait :
[(#EVAL{print_r(_chemin())})]
Sur l'un (en local, sous windows, sans eaccelerator, php 5.2.3) :
Array
(
     [0] => sites/maison.pyrat.net/squelettes/
     [1] => plugins/__soyezcreateurs/
     [2] => plugins/_soyezcreateurs/
     [3] => plugins/agenda/
     [4] => plugins/acronymes/
     [5] => plugins/sitemap/
     [6] => plugins/forms_et_tables_1_9_1/
     [7] => plugins/enluminures_typographiques_v2/
     [8] => plugins/couteau_suisse/
     [9] => plugins/cfg/
     [10] => plugins/boutonstexte/
     [11] => plugins/barre_typo_v2/
     [12] => plugins/barre_typo_generalisee/
     [13] => plugins/balise_session/
     [14] => plugins/acces_restreint/
     [15] => sites/maison.pyrat.net/
     [16] =>
     [17] => dist/
     [18] => ecrire/
)
C'est le BON ordre.

Sur l'autre (Dedian Etch, eaccelerator 0.9.5.1, php 5.2.0) :
Array
(
     [0] => sites/famille.pyrat.net/squelettes/
     [1] => plugins/sitemap/
     [2] => plugins/forms_et_tables_1_9_1/
     [3] => plugins/enluminures_typographiques_v2/
     [4] => plugins/couteau_suisse/
     [5] => plugins/cfg/
     [6] => plugins/boutonstexte/
     [7] => plugins/barre_typo_v2/
     [8] => plugins/barre_typo_generalisee/
     [9] => plugins/balise_session/
     [10] => plugins/agenda/
     [11] => plugins/acronymes/
     [12] => plugins/acces_restreint/
     [13] => plugins/_soyezcreateurs/
     [14] => plugins/__soyezcreateurs/
     [15] => sites/famille.pyrat.net/
     [16] =>
     [17] => dist/
     [18] => ecrire/
)

Autant dire que j'ai vérifié le fichier tmp/charger_plugins_options.php
Les appels à _chemin(_DIR_PLUGIN_ACCESRESTREINT);
sont dans le *même* ordre dans les 2 cas.

C'est donc la fonction _chemin qui selon le serveur place les chemins des plugins dans un sens ou dans l'autre.

Pour corser la sauce :
- j'ai effacé le fichier tmp/charger_plugins_options.php
- et le _chemin s'est retrouvé dans le bon sens sur le serveur fautif (vérifié sur 3 sites, tous en SPIP mutualisé).

Mystère !?!