3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2016 *
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;
16 * une classe definissant un bouton dans la barre du haut de l'interface
17 * privee ou dans un de ses sous menus
19 // http://doc.spip.org/@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 */
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;
35 $this->urlArg
= $urlArg;
37 $this->target
= $target;
43 * definir la liste des onglets dans une page de l'interface privee
44 * on passe la main au pipeline "ajouter_onglets".
46 // http://doc.spip.org/@definir_barre_onglets
47 function definir_barre_onglets($script) {
50 $liste_onglets = array();
52 // ajouter les onglets issus des plugin via plugin.xml
53 if (function_exists('onglets_plugins'))
54 $liste_onglets = onglets_plugins();
57 foreach($liste_onglets as $id => $infos){
58 if (($parent = $infos['parent'])
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']:'')
71 return pipeline('ajouter_onglets', array('data'=>$onglets,'args'=>$script));
75 // http://doc.spip.org/@barre_onglets
76 function barre_onglets($rubrique, $ongletCourant, $class="barre_onglet"){
77 include_spip('inc/presentation');
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
);
86 return !$res ?
'' : (debut_onglet($class) . $res . fin_onglet());