[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / ecrire / inc / boutons.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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
15 /**
16 * une classe definissant un bouton dans la barre du haut de l'interface
17 * privee ou dans un de ses sous menus
18 */
19 // http://doc.spip.org/@Bouton
20 class Bouton {
21 var $icone; /* l'icone a mettre dans le bouton */
22 var $libelle; /* le nom de l'entree d'i18n associe */
23 var $url= null; /* l'url de la page (null => ?exec=nom) */
24 var $urlArg= null; /* arguments supplementaires de l'url */
25 var $url2= null; /* url jscript */
26 var $target= null; /* pour ouvrir dans une fenetre a part */
27 var $sousmenu= null;/* sous barre de boutons / onglets */
28
29 // http://doc.spip.org/@Bouton
30 function Bouton($icone, $libelle, $url=null, $urlArg=null,
31 $url2=null, $target=null) {
32 $this->icone = $icone;
33 $this->libelle= $libelle;
34 $this->url = $url;
35 $this->urlArg = $urlArg;
36 $this->url2 = $url2;
37 $this->target = $target;
38 }
39 }
40
41
42 /**
43 * definir la liste des onglets dans une page de l'interface privee
44 * on passe la main au pipeline "ajouter_onglets".
45 */
46 // http://doc.spip.org/@definir_barre_onglets
47 function definir_barre_onglets($script) {
48
49 $onglets=array();
50 $liste_onglets = array();
51
52 // ajouter les onglets issus des plugin via plugin.xml
53 if (function_exists('onglets_plugins'))
54 $liste_onglets = onglets_plugins();
55
56
57 foreach($liste_onglets as $id => $infos){
58 if (($parent = $infos['parent'])
59 && $parent == $script
60 && autoriser('onglet',"_$id")) {
61 $onglets[$id] = new Bouton(
62 find_in_theme($infos['icone']), // icone
63 $infos['titre'], // titre
64 (isset($infos['action']) and $infos['action'])
65 ? generer_url_ecrire($infos['action'],(isset($infos['parametres']) AND $infos['parametres'])?$infos['parametres']:'')
66 : null
67 );
68 }
69 }
70
71 return pipeline('ajouter_onglets', array('data'=>$onglets,'args'=>$script));
72 }
73
74
75 // http://doc.spip.org/@barre_onglets
76 function barre_onglets($rubrique, $ongletCourant, $class="barre_onglet"){
77 include_spip('inc/presentation');
78
79 $res = '';
80
81 foreach(definir_barre_onglets($rubrique) as $exec => $onglet) {
82 $url= $onglet->url ? $onglet->url : generer_url_ecrire($exec);
83 $res .= onglet(_T($onglet->libelle), $url, $exec, $ongletCourant, $onglet->icone);
84 }
85
86 return !$res ? '' : (debut_onglet($class) . $res . fin_onglet());
87 }
88
89
90 ?>