[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / inc / boutons.php
index aa8be69..14c97c3 100644 (file)
 /***************************************************************************\
  *  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());
 }
-
-
-?>