[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / inc / filtres_boites.php
index 51feb3a..6e88b58 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;
+/**
+ * Ce fichier regroupe la gestion des filtres et balises gérant des
+ * boîtes de contenu
+ *
+ * @package SPIP\Core\Compilateur\Filtres
+ **/
 
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 
 /**
- * #BOITE_OUVRIR{titre[,type]}
- * Racourci pour ouvrir une boite (info, simple, pour noisette ...)
+ * Compile la balise `#BOITE_OUVRIR` ouvrant une boîte de contenu
+ *
+ * Racourci pour ouvrir une boîte (info, simple, pour noisette ...)
  *
- * @param <type> $p
- * @return <type>
+ * @package SPIP\Core\Compilateur\Balises
+ * @balise
+ * @see balise_BOITE_PIED_dist() Pour passer au pied de boîte
+ * @see balise_BOITE_FERMER_dist() Pour fermer une boîte
+ * @example
+ *   ```
+ *   #BOITE_OUVRIR{titre[,type]}
+ *   [(#BOITE_OUVRIR{<:titre_cadre_interieur_rubrique:>,simple})]
+ *   #BOITE_OUVRIR{'',raccourcis}
+ *   ```
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
  */
 function balise_BOITE_OUVRIR_dist($p) {
-       $_titre = interprete_argument_balise(1,$p);
-       $_class = interprete_argument_balise(2,$p);
-       $_head_class = interprete_argument_balise(3,$p);
-       $_titre = ($_titre?$_titre:"''");
-       $_class = ($_class?", $_class":", 'simple'");
-       $_head_class = ($_head_class?", $_head_class":"");
+       $_titre = interprete_argument_balise(1, $p);
+       $_class = interprete_argument_balise(2, $p);
+       $_head_class = interprete_argument_balise(3, $p);
+       $_titre = ($_titre ? $_titre : "''");
+       $_class = ($_class ? ", $_class" : ", 'simple'");
+       $_head_class = ($_head_class ? ", $_head_class" : '');
 
        $f = chercher_filtre('boite_ouvrir');
        $p->code = "$f($_titre$_class$_head_class)";
        $p->interdire_scripts = false;
+
        return $p;
 }
 
 /**
- * #BOITE_PIED{class}
- * Racourci pour passer au pied de la boite, avant sa fermeture
+ * Compile la balise `#BOITE_PIED` cloturant une boîte de contenu
+ *
+ * Racourci pour passer au pied de la boite, avant sa fermeture. On peut
+ * lui transmettre une classe CSS avec `#BOITE_PIED{class}`
  *
- * @param <type> $p
- * @return <type>
+ * @package SPIP\Core\Compilateur\Balises
+ * @balise
+ * @see balise_BOITE_OUVRIR_dist() Pour ouvrir une boîte
+ * @see balise_BOITE_FERMER_dist() Pour fermer une boîte
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
  */
 function balise_BOITE_PIED_dist($p) {
-       $_class = interprete_argument_balise(1,$p);
-       $_class = ($_class?"$_class":"");
+       $_class = interprete_argument_balise(1, $p);
+       $_class = ($_class ? "$_class" : '');
 
        $f = chercher_filtre('boite_pied');
        $p->code = "$f($_class)";
        $p->interdire_scripts = false;
+
        return $p;
 }
 
+
 /**
- * #BOITE_FERMER
- * Racourci pour fermer une boite ouverte
+ * Compile la balise `#BOITE_FERMER` clôturant une boîte de contenu
  *
- * @param <type> $p
- * @return <type>
+ * Racourci pour fermer une boîte ouverte
+ *
+ * @package SPIP\Core\Compilateur\Balises
+ * @balise
+ * @see balise_BOITE_OUVRIR_dist() Pour ouvrir une boîte
+ * @see balise_BOITE_PIED_dist() Pour passer au pied de boîte
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
  */
 function balise_BOITE_FERMER_dist($p) {
        $f = chercher_filtre('boite_fermer');
        $p->code = "$f()";
        $p->interdire_scripts = false;
+
        return $p;
 }
 
 /**
- * Ouvrir une boite
- * peut etre surcharge par filtre_boite_ouvrir_dist, filtre_boite_ouvrir
+ * Ouvrir une boîte
  *
+ * Peut-être surchargé par `filtre_boite_ouvrir_dist` ou `filtre_boite_ouvrir`
+ *
+ * @filtre
+ * @see balise_BOITE_OUVRIR_dist() qui utilise ce filtre
  * @param string $titre
+ *     Titre de la boîte
  * @param string $class
- * @return <type>
+ *     Classes CSS de la boîte
+ * @param string $head_class
+ *     Classes CSS sur l'entête
+ * @param string $id
+ *     Identifiant HTML de la boîte
+ * @return string
+ *     HTML du début de la boîte
  */
-function boite_ouvrir($titre, $class='', $head_class='', $id=""){
+function boite_ouvrir($titre, $class = '', $head_class = '', $id = '') {
        $class = "box $class";
-       $head_class = "hd $head_class";
+       $head_class = "clearfix hd $head_class";
        // dans l'espace prive, titrer en h3 si pas de balise <hn>
-       if (test_espace_prive() AND strlen($titre) AND strpos($titre,'<h')===false)
+       if (test_espace_prive() and strlen($titre) and strpos($titre, '<h') === false) {
                $titre = "<h3>$titre</h3>";
-       return '<div class="'.$class.($id?"\" id=\"$id":"").'">'
-       .'<b class="top"><b class="tl"></b><b class="tr"></b></b>'
-       .'<div class="inner">'
-       .($titre?'<div class="'.$head_class.'">'.$titre.'<div class="nettoyeur"></div><!--/hd--></div>':'')
-       .'<div class="bd">';
+       }
+
+       return '<div class="' . $class . ($id ? "\" id=\"$id" : '') . '">'
+       . '<b class="top"><b class="tl"></b><b class="tr"></b></b>'
+       . '<div class="inner">'
+       . ($titre ? '<div class="clearfix ' . $head_class . '">' . $titre . '<!--/hd--></div>' : '')
+       . '<div class="clearfix bd">';
 }
 
+
 /**
- * Passer au pied d'une boite
- * peut etre surcharge par filtre_boite_pied_dist, filtre_boite_pied
+ * Passer au pied d'une boîte
  *
- * @param <type> $class
- * @return <type>
+ * Peut-être surchargé par `filtre_boite_pied_dist` ou `filtre_boite_pied`
+ *
+ * @filtre
+ * @see balise_BOITE_PIED_dist() qui utilise ce filtre
+ * @param string $class
+ *     Classes CSS de la boîte
+ * @return string
+ *     HTML de transition vers le pied de la boîte
  */
-function boite_pied($class='act'){
+function boite_pied($class = 'act') {
        $class = "ft $class";
-       return  '<div class="nettoyeur"></div></div>'
-       .'<div class="'.$class.'">';
+
+       return '</div>'
+       . '<div class="cleafix ' . $class . '">';
 }
 
+
 /**
- * Fermer une boite
- * peut etre surcharge par filtre_boite_fermer_dist, filtre_boite_fermer
+ * Fermer une boîte
+ *
+ * Peut-être surchargé par `filtre_boite_fermer_dist` ou `filtre_boite_fermer`
  *
- * @return <type>
+ * @filtre
+ * @see balise_BOITE_FERMER_dist() qui utilise ce filtre
+ * @return string
+ *     HTML de fin de la boîte
  */
-function boite_fermer(){
-       return '<div class="nettoyeur"></div></div></div>'
-       .'<b class="bottom"><b class="bl"></b><b class="br"></b></b>'
-       .'</div>';
+function boite_fermer() {
+       return '</div></div>'
+       . '<b class="bottom"><b class="bl"></b><b class="br"></b></b>'
+       . '</div>';
 }
-
-
-
-
-?>