[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / plugins / afficher_liste.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
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 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14 include_spip('inc/charsets');
15
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']))))));
24 }
25 asort($liste_plugins);
26 $exposed = urldecode(_request('plugin'));
27
28 $block_par_lettre = false;//count($liste_plugins)>10;
29 $fast_liste_plugins_actifs = array_flip($liste_plugins_actifs);
30 $res = '';
31 $block = '';
32 $initiale = '';
33 $block_actif = false;
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;
37 $initiale = $i;
38 $block = '';
39 $block_actif = false;
40 }
41 // le rep suivant
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";
46 }
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>" : "";
50 }
51
52
53 // http://doc.spip.org/@affiche_block_initiale
54 function affiche_block_initiale($initiale,$block,$block_actif){
55 if (strlen($block)){
56 return "<li class='item'>"
57 . bouton_block_depliable($initiale,$block_actif?true:false)
58 . debut_block_depliable($block_actif)
59 . "<ul>$block</ul>"
60 . fin_block()
61 . "</li>";
62 }
63 return "";
64 }
65
66 ?>