3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14 include_spip('inc/charsets');
16 // http://doc.spip.org/@affiche_liste_plugins
17 function plugins_afficher_liste_dist($url_page,$liste_plugins, $liste_plugins_actifs, $dir_plugins=_DIR_PLUGINS
,$afficher_un = 'afficher_plugin'){
18 $get_infos = charger_fonction('get_infos','plugins');
19 $ligne_plug = charger_fonction($afficher_un,'plugins');
20 $liste_plugins = array_flip($liste_plugins);
21 foreach(array_keys($liste_plugins) as $chemin) {
22 if ($info = $get_infos($chemin, false, $dir_plugins))
23 $liste_plugins[$chemin] = strtoupper(trim(typo(translitteration(unicode2charset(html2unicode($info['nom']))))));
25 asort($liste_plugins);
26 $exposed = urldecode(_request('plugin'));
28 $block_par_lettre = false;//count($liste_plugins)>10;
29 $fast_liste_plugins_actifs = array_flip($liste_plugins_actifs);
34 foreach($liste_plugins as $plug => $nom){
35 if (($i=substr($nom,0,1))!==$initiale){
36 $res .= $block_par_lettre ?
affiche_block_initiale($initiale,$block,$block_actif): $block;
42 $actif = @isset
($fast_liste_plugins_actifs[$plug]);
43 $block_actif = $block_actif |
$actif;
44 $expose = ($exposed AND ($exposed==$plug OR $exposed==$dir_plugins . $plug OR $exposed==substr($dir_plugins,strlen(_DIR_RACINE
)) . $plug));
45 $block .= $ligne_plug($url_page, $plug, $actif, $expose, "item", $dir_plugins)."\n";
47 $res .= $block_par_lettre ?
affiche_block_initiale($initiale,$block,$block_actif): $block;
48 $class = basename($dir_plugins);
49 return $res ?
"<ul class='liste-items plugins $class'>$res</ul>" : "";
53 // http://doc.spip.org/@affiche_block_initiale
54 function affiche_block_initiale($initiale,$block,$block_actif){
56 return "<li class='item'>"
57 . bouton_block_depliable($initiale,$block_actif?
true:false)
58 . debut_block_depliable($block_actif)