3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
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 \***************************************************************************/
14 * Ce fichier regroupe la gestion des filtres et balises gérant des
17 * @package SPIP\Core\Compilateur\Filtres
20 if (!defined('_ECRIRE_INC_VERSION')) {
26 * Compile la balise `#BOITE_OUVRIR` ouvrant une boîte de contenu
28 * Racourci pour ouvrir une boîte (info, simple, pour noisette ...)
30 * @package SPIP\Core\Compilateur\Balises
32 * @see balise_BOITE_PIED_dist() Pour passer au pied de boîte
33 * @see balise_BOITE_FERMER_dist() Pour fermer une boîte
36 * #BOITE_OUVRIR{titre[,type]}
37 * [(#BOITE_OUVRIR{<:titre_cadre_interieur_rubrique:>,simple})]
38 * #BOITE_OUVRIR{'',raccourcis}
42 * Pile au niveau de la balise
44 * Pile complétée par le code à générer
46 function balise_BOITE_OUVRIR_dist($p) {
47 $_titre = interprete_argument_balise(1, $p);
48 $_class = interprete_argument_balise(2, $p);
49 $_head_class = interprete_argument_balise(3, $p);
50 $_titre = ($_titre ?
$_titre : "''");
51 $_class = ($_class ?
", $_class" : ", 'simple'");
52 $_head_class = ($_head_class ?
", $_head_class" : '');
54 $f = chercher_filtre('boite_ouvrir');
55 $p->code
= "$f($_titre$_class$_head_class)";
56 $p->interdire_scripts
= false;
62 * Compile la balise `#BOITE_PIED` cloturant une boîte de contenu
64 * Racourci pour passer au pied de la boite, avant sa fermeture. On peut
65 * lui transmettre une classe CSS avec `#BOITE_PIED{class}`
67 * @package SPIP\Core\Compilateur\Balises
69 * @see balise_BOITE_OUVRIR_dist() Pour ouvrir une boîte
70 * @see balise_BOITE_FERMER_dist() Pour fermer une boîte
73 * Pile au niveau de la balise
75 * Pile complétée par le code à générer
77 function balise_BOITE_PIED_dist($p) {
78 $_class = interprete_argument_balise(1, $p);
79 $_class = ($_class ?
"$_class" : '');
81 $f = chercher_filtre('boite_pied');
82 $p->code
= "$f($_class)";
83 $p->interdire_scripts
= false;
90 * Compile la balise `#BOITE_FERMER` clôturant une boîte de contenu
92 * Racourci pour fermer une boîte ouverte
94 * @package SPIP\Core\Compilateur\Balises
96 * @see balise_BOITE_OUVRIR_dist() Pour ouvrir une boîte
97 * @see balise_BOITE_PIED_dist() Pour passer au pied de boîte
100 * Pile au niveau de la balise
102 * Pile complétée par le code à générer
104 function balise_BOITE_FERMER_dist($p) {
105 $f = chercher_filtre('boite_fermer');
107 $p->interdire_scripts
= false;
115 * Peut-être surchargé par `filtre_boite_ouvrir_dist` ou `filtre_boite_ouvrir`
118 * @see balise_BOITE_OUVRIR_dist() qui utilise ce filtre
119 * @param string $titre
121 * @param string $class
122 * Classes CSS de la boîte
123 * @param string $head_class
124 * Classes CSS sur l'entête
126 * Identifiant HTML de la boîte
128 * HTML du début de la boîte
130 function boite_ouvrir($titre, $class = '', $head_class = '', $id = '') {
131 $class = "box $class";
132 $head_class = "clearfix hd $head_class";
133 // dans l'espace prive, titrer en h3 si pas de balise <hn>
134 if (test_espace_prive() and strlen($titre) and strpos($titre, '<h') === false) {
135 $titre = "<h3>$titre</h3>";
138 return '<div class="' . $class . ($id ?
"\" id=\"$id" : '') . '">'
139 . '<b class="top"><b class="tl"></b><b class="tr"></b></b>'
140 . '<div class="inner">'
141 . ($titre ?
'<div class="clearfix ' . $head_class . '">' . $titre . '<!--/hd--></div>' : '')
142 . '<div class="clearfix bd">';
147 * Passer au pied d'une boîte
149 * Peut-être surchargé par `filtre_boite_pied_dist` ou `filtre_boite_pied`
152 * @see balise_BOITE_PIED_dist() qui utilise ce filtre
153 * @param string $class
154 * Classes CSS de la boîte
156 * HTML de transition vers le pied de la boîte
158 function boite_pied($class = 'act') {
159 $class = "ft $class";
162 . '<div class="cleafix ' . $class . '">';
169 * Peut-être surchargé par `filtre_boite_fermer_dist` ou `filtre_boite_fermer`
172 * @see balise_BOITE_FERMER_dist() qui utilise ce filtre
174 * HTML de fin de la boîte
176 function boite_fermer() {
177 return '</div></div>'
178 . '<b class="bottom"><b class="bl"></b><b class="br"></b></b>'