/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2016 *
+ * Copyright (c) 2001-2017 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
-if (!defined('_ECRIRE_INC_VERSION')) return;
+/**
+ * Gestion des boutons de l'interface privée
+ *
+ * @package SPIP\Core\Boutons
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+ return;
+}
/**
- * une classe definissant un bouton dans la barre du haut de l'interface
- * privee ou dans un de ses sous menus
+ * Classe définissant un bouton dans la barre du haut de l'interface
+ * privée ou dans un de ses sous menus
*/
-// http://doc.spip.org/@Bouton
class Bouton {
- var $icone; /* l'icone a mettre dans le bouton */
- var $libelle; /* le nom de l'entree d'i18n associe */
- var $url= null; /* l'url de la page (null => ?exec=nom) */
- var $urlArg= null; /* arguments supplementaires de l'url */
- var $url2= null; /* url jscript */
- var $target= null; /* pour ouvrir dans une fenetre a part */
- var $sousmenu= null;/* sous barre de boutons / onglets */
-
-// http://doc.spip.org/@Bouton
- function Bouton($icone, $libelle, $url=null, $urlArg=null,
- $url2=null, $target=null) {
- $this->icone = $icone;
- $this->libelle= $libelle;
- $this->url = $url;
- $this->urlArg = $urlArg;
- $this->url2 = $url2;
- $this->target = $target;
- }
+ /** @var string L'icone à mettre dans le bouton */
+ public $icone;
+
+ /** @var string Le nom de l'entrée d'i18n associé */
+ public $libelle;
+
+ /** @var null|string L'URL de la page (null => ?exec=nom) */
+ public $url = null;
+
+ /** @var null|string|array Arguments supplementaires de l'URL */
+ public $urlArg = null;
+
+ /** @var null|string URL du javascript */
+ public $url2 = null;
+
+ /** @var null|string Pour ouvrir dans une fenetre a part */
+ public $target = null;
+
+ /** @var null|mixed Sous-barre de boutons / onglets */
+ public $sousmenu = null;
+
+ /**
+ * Définit un bouton
+ *
+ * @param string $icone
+ * L'icone à mettre dans le bouton
+ * @param string $libelle
+ * Le nom de l'entrée i18n associé
+ * @param null|string $url
+ * L'URL de la page
+ * @param null|string|array $urlArg
+ * Arguments supplémentaires de l'URL
+ * @param null|string $url2
+ * URL du javascript
+ * @param null|mixed $target
+ * Pour ouvrir une fenêtre à part
+ */
+ public function __construct($icone, $libelle, $url = null, $urlArg = null, $url2 = null, $target = null) {
+ $this->icone = $icone;
+ $this->libelle = $libelle;
+ $this->url = $url;
+ $this->urlArg = $urlArg;
+ $this->url2 = $url2;
+ $this->target = $target;
+ }
}
/**
- * definir la liste des onglets dans une page de l'interface privee
- * on passe la main au pipeline "ajouter_onglets".
+ * Définir la liste des onglets dans une page de l'interface privée.
+ *
+ * On passe la main au pipeline "ajouter_onglets".
+ *
+ * @see plugin_ongletbouton() qui crée la fonction `onglets_plugins()`
+ * @pipeline_appel ajouter_onglets
+ *
+ * @param string $script
+ * @return array
*/
-// http://doc.spip.org/@definir_barre_onglets
function definir_barre_onglets($script) {
- $onglets=array();
+ $onglets = array();
$liste_onglets = array();
- // ajouter les onglets issus des plugin via plugin.xml
- if (function_exists('onglets_plugins'))
+ // ajouter les onglets issus des plugin via paquet.xml
+ if (function_exists('onglets_plugins')) {
$liste_onglets = onglets_plugins();
+ }
- foreach($liste_onglets as $id => $infos){
+ foreach ($liste_onglets as $id => $infos) {
if (($parent = $infos['parent'])
&& $parent == $script
- && autoriser('onglet',"_$id")) {
- $onglets[$id] = new Bouton(
- find_in_theme($infos['icone']), // icone
- $infos['titre'], // titre
- (isset($infos['action']) and $infos['action'])
- ? generer_url_ecrire($infos['action'],(isset($infos['parametres']) AND $infos['parametres'])?$infos['parametres']:'')
- : null
- );
+ && autoriser('onglet', "_$id")
+ ) {
+ $onglets[$id] = new Bouton(
+ isset($infos['icone']) ? find_in_theme($infos['icone']) : '', // icone
+ $infos['titre'], // titre
+ (isset($infos['action']) and $infos['action'])
+ ? generer_url_ecrire($infos['action'],
+ (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : '')
+ : null
+ );
}
}
- return pipeline('ajouter_onglets', array('data'=>$onglets,'args'=>$script));
+ return pipeline('ajouter_onglets', array('data' => $onglets, 'args' => $script));
}
-// http://doc.spip.org/@barre_onglets
-function barre_onglets($rubrique, $ongletCourant, $class="barre_onglet"){
+/**
+ *
+ * Création de la barre d'onglets
+ *
+ * @uses definir_barre_onglets()
+ * @uses onglet()
+ * @uses debut_onglet()
+ * @uses fin_onglet()
+ *
+ * @param string $rubrique
+ * @param string $ongletCourant
+ * @param string $class
+ * @return string
+ */
+function barre_onglets($rubrique, $ongletCourant, $class = "barre_onglet") {
include_spip('inc/presentation');
$res = '';
- foreach(definir_barre_onglets($rubrique) as $exec => $onglet) {
- $url= $onglet->url ? $onglet->url : generer_url_ecrire($exec);
+ foreach (definir_barre_onglets($rubrique) as $exec => $onglet) {
+ $url = $onglet->url ? $onglet->url : generer_url_ecrire($exec);
$res .= onglet(_T($onglet->libelle), $url, $exec, $ongletCourant, $onglet->icone);
}
- return !$res ? '' : (debut_onglet($class) . $res . fin_onglet());
+ return !$res ? '' : (debut_onglet($class) . $res . fin_onglet());
}
-
-
-?>