+ 'version' => $i['version'],
+ 'dir' => $plug,
+ 'dir_type' => $dir_type
+ );
+ }
+}
+
+/**
+ * Completer la liste des plugins avec les eventuels procure
+ *
+ * les <procure> sont consideres comme des plugins proposes,
+ * mais surchargeables (on peut activer un plugin qui procure ca pour l'ameliorer,
+ * donc avec le meme prefixe, qui sera pris en compte si il a une version plus grande)
+ *
+ * @param array $liste
+ * @param array $infos
+ */
+function plugin_fixer_procure(&$liste, &$infos){
+ foreach($liste as $p=>$resume){
+ $i = $infos[$resume['dir_type']][$resume['dir']];
+ if (isset($i['procure']) AND $i['procure']){
+ foreach($i['procure'] as $procure){
+ $p = strtoupper($procure['nom']);
+ $dir = $resume['dir'];
+ if ($dir) $dir .= "/";
+ $dir .= "procure:".$procure['nom'];
+
+ $procure['etat'] = '?';
+ $procure['dir_type'] = $resume['dir_type'];
+ $procure['dir'] = $dir;
+
+ // si ce plugin n'est pas deja procure, ou dans une version plus ancienne
+ // on ajoute cette version a la liste
+ if (!isset($liste[$p])
+ OR spip_version_compare($procure['version'], $liste[$p]['version'], '>')
+ ){
+ $liste[$p] = $procure;
+
+ // on fournit une information minimale pour ne pas perturber la compilation
+ $infos[$resume['dir_type']][$dir] = array(
+ 'prefix' => $procure['nom'],
+ 'nom' => $procure['nom'],
+ 'etat' => $procure['etat'],
+ 'version' => $procure['version'],
+ 'chemin' => array(),
+ 'necessite' => array(),
+ 'utilise' => array(),
+ 'lib' => array(),
+ 'menu' => array(),
+ 'onglet' => array(),
+ 'procure' => array(),
+ );
+ }
+ }