Skip to content
Extraits de code Groupes Projets
Valider d3e6469d rédigé par cerdic's avatar cerdic
Parcourir les fichiers

la meta plugin est maintenant un array serialize qui contient le prefix, le...

la meta plugin est maintenant un array serialize qui contient le prefix, le dir et la version de chaque plugin
parent 80e5801e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -123,7 +123,7 @@ EOF; ...@@ -123,7 +123,7 @@ EOF;
echo generer_url_post_ecrire("admin_plugin"); echo generer_url_post_ecrire("admin_plugin");
echo "<ul>"; echo "<ul>";
affiche_arbre_plugins(liste_plugin_files(),liste_plugin_actifs()); affiche_arbre_plugins(liste_plugin_files(),liste_chemin_plugin_actifs());
echo "</ul>"; echo "</ul>";
echo "</table></div>\n"; echo "</table></div>\n";
......
...@@ -32,15 +32,43 @@ function liste_plugin_files(){ ...@@ -32,15 +32,43 @@ function liste_plugin_files(){
return $plugin_files; return $plugin_files;
} }
function liste_plugin_valides($liste_plug,&$infos){
$liste = array();
$infos = array();
if (is_array($liste_plug))
foreach($liste_plug as $plug){
$infos[$plug] = plugin_get_infos($plug);
if (!isset($infos[$plug]['erreur']) && !isset($plugin_valides[$p=strtoupper($infos[$plug]['prefix'])]))
$liste[$p] = array('dir'=>$plug,'version'=>isset($infos[$plug]['version'])?$infos[$plug]['version']:NULL);
}
return $liste;
}
// A utiliser pour initialiser ma variable globale $plugin // A utiliser pour initialiser ma variable globale $plugin
// http://doc.spip.org/@liste_plugin_actifs // http://doc.spip.org/@liste_plugin_actifs
function liste_plugin_actifs(){ function liste_plugin_actifs(){
$meta_plugin = isset($GLOBALS['meta']['plugin'])?$GLOBALS['meta']['plugin']:''; $meta_plugin = isset($GLOBALS['meta']['plugin'])?$GLOBALS['meta']['plugin']:'';
if (strlen($meta_plugin)>0) if (strlen($meta_plugin)>0){
return explode(",",$meta_plugin); // mieux avec un unserialize ? if (is_array($t=unserialize($meta_plugin)))
return $t;
else{ // compatibilite pre 1.9.2, mettre a jour la meta
$t = explode(",",$meta_plugin);
$liste = liste_plugin_valides($t,$infos);
ecrire_meta('plugin',serialize($liste));
ecrire_metas();
return $liste;
}
}
else else
return array(); return array();
} }
function liste_chemin_plugin_actifs(){
$liste = liste_plugin_actifs();
foreach ($liste as $prefix=>$infos) {
$liste[$prefix] = $infos['dir'];
}
return $liste;
}
// http://doc.spip.org/@ecrire_plugin_actifs // http://doc.spip.org/@ecrire_plugin_actifs
function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz'){ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz'){
...@@ -50,7 +78,7 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz'){ ...@@ -50,7 +78,7 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz'){
$liste_pipe_manquants[]=$pipe_recherche; $liste_pipe_manquants[]=$pipe_recherche;
if ($operation!='raz'){ if ($operation!='raz'){
$plugin_actifs = liste_plugin_actifs(); $plugin_actifs = liste_chemin_plugin_actifs();
$plugin_liste = liste_plugin_files(); $plugin_liste = liste_plugin_files();
$plugin_valides = array_intersect($plugin_actifs,$plugin_liste); $plugin_valides = array_intersect($plugin_actifs,$plugin_liste);
if ($operation=='ajoute') if ($operation=='ajoute')
...@@ -59,20 +87,8 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz'){ ...@@ -59,20 +87,8 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz'){
$plugin = array_diff($plugin_valides,$plugin); $plugin = array_diff($plugin_valides,$plugin);
} }
$plugin_valides = array(); $plugin_valides = liste_plugin_valides($plugin,$infos);
if (is_array($plugin)){ ecrire_meta('plugin',serialize($plugin_valides));
// charger les infos de plugin en memoire
$infos = array();
foreach ($plugin as $plug) {
$infos[$plug] = plugin_get_infos($plug);
if (!isset($infos[$plug]['erreur']) && !isset($plugin_valides[$p=strtoupper($infos[$plug]['prefix'])]))
$plugin_valides[$p] = $plug;
else
unset($infos[$plug]);
}
}
ecrire_meta('plugin',implode(",", $plugin_valides)); // mieux avec un serialize ?
$start_file = "<"."?php\nif (!defined('_ECRIRE_INC_VERSION')) return;\n"; $start_file = "<"."?php\nif (!defined('_ECRIRE_INC_VERSION')) return;\n";
$end_file = "\n?".">"; $end_file = "\n?".">";
...@@ -194,7 +210,7 @@ function pipeline_precompile(){ ...@@ -194,7 +210,7 @@ function pipeline_precompile(){
// pas sur que ca serve... // pas sur que ca serve...
// http://doc.spip.org/@liste_plugin_inactifs // http://doc.spip.org/@liste_plugin_inactifs
function liste_plugin_inactifs(){ function liste_plugin_inactifs(){
return array_diff (liste_plugin_files(),liste_plugin_actifs()); return array_diff (liste_plugin_files(),liste_chemin_plugin_actifs());
} }
// mise jour du meta en fonction de l'tat du rpertoire // mise jour du meta en fonction de l'tat du rpertoire
...@@ -203,7 +219,7 @@ function liste_plugin_inactifs(){ ...@@ -203,7 +219,7 @@ function liste_plugin_inactifs(){
// risque de pb en php5 cause du typage ou de null (vrifier dans la doc php) // risque de pb en php5 cause du typage ou de null (vrifier dans la doc php)
// http://doc.spip.org/@verif_plugin // http://doc.spip.org/@verif_plugin
function verif_plugin($pipe_recherche = false){ function verif_plugin($pipe_recherche = false){
$plugin_actifs = liste_plugin_actifs(); $plugin_actifs = liste_chemin_plugin_actifs();
$plugin_liste = liste_plugin_files(); $plugin_liste = liste_plugin_files();
$plugin_new = array_intersect($plugin_actifs,$plugin_liste); $plugin_new = array_intersect($plugin_actifs,$plugin_liste);
ecrire_plugin_actifs($plugin_new,$pipe_recherche); ecrire_plugin_actifs($plugin_new,$pipe_recherche);
...@@ -243,7 +259,7 @@ function enregistre_modif_plugin(){ ...@@ -243,7 +259,7 @@ function enregistre_modif_plugin(){
// http://doc.spip.org/@ordonne_plugin // http://doc.spip.org/@ordonne_plugin
function ordonne_plugin(){ function ordonne_plugin(){
$liste = liste_plugin_actifs(); $liste = liste_chemin_plugin_actifs();
$liste_triee = array(); $liste_triee = array();
$i=2; $i=2;
foreach($liste as $plug){ foreach($liste as $plug){
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter