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

Quand on recherche tous les plugins d'un repertoire, en profiter pour lire les...

Quand on recherche tous les plugins d'un repertoire, en profiter pour lire les xml et nettoyer le cache des anciens plugins qui ne sont plus la
parent 3af73320
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -42,6 +42,10 @@ function liste_plugin_files($dir_plugins = null){ ...@@ -42,6 +42,10 @@ function liste_plugin_files($dir_plugins = null){
} }
} }
sort($plugin_files[$dir_plugins]); sort($plugin_files[$dir_plugins]);
// et on lit le XML de tous les plugins pour le mettre en cache
// et en profiter pour nettoyer ceux qui n'existent plus du cache
$get_infos = charger_fonction('get_infos','plugins');
$get_infos($plugin_files[$dir_plugins],false,$dir_plugins,true);
} }
return $plugin_files[$dir_plugins]; return $plugin_files[$dir_plugins];
} }
......
...@@ -22,7 +22,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return; ...@@ -22,7 +22,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
* @param string $dir * @param string $dir
* @return array * @return array
*/ */
function plugins_get_infos_dist($plug=false, $reload=false, $dir = _DIR_PLUGINS){ function plugins_get_infos_dist($plug=false, $reload=false, $dir = _DIR_PLUGINS, $clean_old=false){
static $cache=''; static $cache='';
static $filecache = ''; static $filecache = '';
...@@ -50,6 +50,12 @@ function plugins_get_infos_dist($plug=false, $reload=false, $dir = _DIR_PLUGINS) ...@@ -50,6 +50,12 @@ function plugins_get_infos_dist($plug=false, $reload=false, $dir = _DIR_PLUGINS)
if (!$reload) $reload = -1; if (!$reload) $reload = -1;
foreach($plug as $nom) foreach($plug as $nom)
$res |= plugins_get_infos_un($nom, $reload, $dir, $cache); $res |= plugins_get_infos_un($nom, $reload, $dir, $cache);
// Nettoyer le cache des vieux plugins qui ne sont plus la
if ($clean_old){
foreach(array_keys($cache[$dir]) as $p)
if (!in_array($p,$plug))
unset($cache[$dir][$p]);
}
} }
if ($res) { if ($res) {
ecrire_fichier($filecache, serialize($cache)); ecrire_fichier($filecache, serialize($cache));
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter