From 933e13f9d28820990eddd70017b9a60887446d5c Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Sat, 16 Feb 2013 15:18:21 +0000 Subject: [PATCH] Autre PHPDoc sur des balises --- ecrire/inc/filtres.php | 78 ++++++++++++++++----- ecrire/public/balises.php | 141 ++++++++++++++++++++++++++++++-------- 2 files changed, 175 insertions(+), 44 deletions(-) diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index 8d5ffd0a3a..d258274e5e 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -1549,16 +1549,48 @@ function extraire_trads($bloc) { return $trads; } -// -// Ce filtre retourne la donnee si c'est la premiere fois qu'il la voit ; -// possibilite de gerer differentes "familles" de donnees |unique{famille} -# |unique{famille,1} affiche le nombre d'elements affiches (preferer toutefois #TOTAL_UNIQUE) -# ameliorations possibles : -# 1) si la donnee est grosse, mettre son md5 comme cle -# 2) purger $mem quand on change de squelette (sinon bug inclusions) -// -// http://www.spip.net/@unique -// http://doc.spip.org/@unique + +/** + * Retourne la donnée si c'est la première fois qu'il la voit + * + * Il est possible de gérer différentes "familles" de données avec + * le second paramètre. + * + * @filtre unique + * @link http://www.spip.net/4320 + * @used-by balise_TOTAL_UNIQUE_dist() + * @example + * ``` + * [(#ID_SECTEUR|unique)] + * [(#ID_SECTEUR|unique{tete})] n'a pas d'incidence sur + * [(#ID_SECTEUR|unique{pied})] + * [(#ID_SECTEUR|unique{pied,1})] affiche le nombre d'éléments. + * Préférer totefois #TOTAL_UNIQUE{pied} + * ``` + * + * @todo + * Ameliorations possibles : + * + * 1) si la donnée est grosse, mettre son md5 comme clé + * 2) purger $mem quand on change de squelette (sinon bug inclusions) + * + * @param string $donnee + * Donnée que l'on souhaite unique + * @param string $famille + * Famille de stockage (1 unique donnée par famille) + * + * - _spip_raz_ : (interne) Vide la pile de mémoire et la retourne + * - _spip_set_ : (interne) Affecte la pile de mémoire avec la donnée + * @param bool $cpt + * True pour obtenir le nombre d'éléments différents stockés + * @return string|int|array|null|void + * + * - string : Donnée si c'est la première fois qu'elle est vue + * - void : si la donnée a déjà été vue + * - int : si l'on demande le nombre d'éléments + * - array (interne) : si on dépile + * - null (interne) : si on empile +**/ function unique($donnee, $famille='', $cpt = false) { static $mem = array(); // permettre de vider la pile et de la restaurer @@ -2455,12 +2487,26 @@ function filtre_foreach_dist($balise_deserializee, $modele = 'foreach') { return $texte; } -// renvoie la liste des plugins actifs du site -// si le premier parametre est un prefix de cette liste, renvoie vrai, faux sinon -// la valeur du second parametre si celui-ci renvoie a une information connue -// cf liste_plugin_actifs() pour connaitre les informations affichables -// appelee par la balise #PLUGIN -// http://doc.spip.org/@filtre_info_plugin_dist + +/** + * Obtient des informations sur les plugins actifs + * + * @filtre info_plugin + * @used-by balise_PLUGIN_dist() Appelé par la balise #PLUGN + * @uses liste_plugin_actifs() Voir liste_plugin_actifs() pour connaître les informations affichables + * + * @param string $plugin + * Préfixe du plugin ou chaîne vide + * @param string $type_info + * Type d'info demandée + * @return array|string|bool + * + * - Liste sérialisée des préfixe de plugins actifs (si $plugin = '') + * - Suivant $type_info, avec $plugin un préfixe + * - est_actif : renvoie true s'il est actif, false sinon + * - x : retourne l'information x du plugin si présente (et plugin actif) + * - tout : retourne toutes les informations du plugin actif +**/ function filtre_info_plugin_dist($plugin, $type_info) { include_spip('inc/plugin'); $plugin = strtoupper($plugin); diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index 151f727978..a2eec31fb0 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -2018,13 +2018,25 @@ function balise_DOUBLONS_dist($p) { } -// -// #PIPELINE -// pour permettre aux plugins d'inserer des sorties de pipeline dans un squelette -// #PIPELINE{insert_body} -// #PIPELINE{insert_body,flux} -// -// http://doc.spip.org/@balise_PIPELINE_dist + +/** + * Compile la balise `#PIPELINE` pour permettre d'insérer des sorties de + * pipeline dans un squelette + * + * @balise PIPELINE + * @see pipeline() + * @example + * ``` + * #PIPELINE{nom} + * #PIPELINE{nom,données} + * #PIPELINE{boite_infos,#ARRAY{data,'',args,#ARRAY{type,rubrique,id,#ENV{id_rubrique}}}} + * ``` + * + * @param Champ $p + * Pile au niveau de la balise + * @return Champ + * Pile complétée par le code à générer +**/ function balise_PIPELINE_dist($p) { $_pipe = interprete_argument_balise(1,$p); if (!$_pipe) { @@ -2039,11 +2051,27 @@ function balise_PIPELINE_dist($p) { return $p; } -// -// #EDIT -// une balise qui ne fait rien, pour surcharge par le plugin widgets -// -// http://doc.spip.org/@balise_EDIT_dist + +/** + * Compile la balise `#EDIT` qui ne fait rien dans SPIP + * + * Cette balise ne retourne rien mais permet d'indiquer, pour certains plugins + * qui redéfinissent cette balise, le nom du champ SQL (ou le nom d'un contrôleur) + * correspondant à ce qui est édité. Cela sert particulièrement au plugin Crayons. + * Ainsi en absence du plugin, la balise est toujours reconnue (mais n'a aucune action). + * + * @balise EDIT + * @link http://www.spip.net/4584 + * @example + * ``` + * [<div class="#EDIT{texte} texte">(#TEXTE)</div>] + * ``` + * + * @param Champ $p + * Pile au niveau de la balise + * @return Champ + * Pile complétée par le code à générer +**/ function balise_EDIT_dist($p) { $p->code = "''"; $p->interdire_scripts = false; @@ -2051,15 +2079,25 @@ function balise_EDIT_dist($p) { } -// -// #TOTAL_UNIQUE -// pour recuperer le nombre d'elements affiches par l'intermediaire du filtre -// |unique -// usage: -// #TOTAL_UNIQUE afiche le nombre de #BALISE|unique -// #TOTAL_UNIQUE{famille} afiche le nombre de #BALISE|unique{famille} -// -// http://doc.spip.org/@balise_TOTAL_UNIQUE_dist + +/** + * Compile la balise `#TOTAL_UNIQUE` qui récupère le nombre d'éléments + * différents affichés par le filtre `unique` + * + * @balise TOTAL_UNIQUE + * @link http://www.spip.net/4374 + * @see unique() + * @example + * ``` + * #TOTAL_UNIQUE affiche le nombre de #BALISE|unique + * #TOTAL_UNIQUE{famille} afiche le nombre de #BALISE|unique{famille} + * ``` + * + * @param Champ $p + * Pile au niveau de la balise + * @return Champ + * Pile complétée par le code à générer +**/ function balise_TOTAL_UNIQUE_dist($p) { $_famille = interprete_argument_balise(1,$p); $_famille = $_famille ? $_famille : "''"; @@ -2167,9 +2205,26 @@ function balise_AUTORISER_dist($p) { return $p; } -// Appelle la fonction info_plugin -// Afficher des informations sur les plugins dans le site public -// http://doc.spip.org/@balise_PLUGIN_dist + +/** + * Compile la balise `#PLUGIN` qui permet d’afficher les informations d'un plugin actif + * + * @balise PLUGIN + * @see filtre_info_plugin_dist() + * @link http://www.spip.net/4591 + * @example + * ``` + * #PLUGIN Retourne la liste sérialisée des préfixes de plugins actifs + * #PLUGIN{prefixe} Renvoie true si le plugin avec ce préfixe est actif + * #PLUGIN{prefixe, x} Renvoie l'information x du plugin (s'il est actif) + * #PLUGIN{prefixe, tout} Renvoie toutes les informations du plugin (s'il est actif) + * ``` + * + * @param Champ $p + * Pile au niveau de la balise + * @return Champ + * Pile complétée par le code à générer +**/ function balise_PLUGIN_dist($p) { $plugin = interprete_argument_balise(1,$p); $plugin = isset($plugin) ? str_replace('\'', '"', $plugin) : '""'; @@ -2290,16 +2345,46 @@ function balise_BOUTON_ACTION_dist($p){ +/** + * Compile la balise `#SLOGAN_SITE_SPIP` qui retourne le slogan du site + * + * @balise SLOGAN_SITE_SPIP + * @example + * ``` + * [<p id="slogan">(#SLOGAN_SITE_SPIP)</p>] + * ``` + * + * @param Champ $p + * Pile au niveau de la balise + * @return Champ + * Pile complétée par le code à générer + */ function balise_SLOGAN_SITE_SPIP_dist($p) { $p->code = "\$GLOBALS['meta']['slogan_site']"; #$p->interdire_scripts = true; return $p; } -// #HTML5 -// Renvoie ' ' si le webmestre souhaite que SPIP genere du code (X)HTML5 sur -// le site public, et '' si le code doit etre strictement compatible HTML4 -// http://doc.spip.org/@balise_HTML5_dist + +/** + * Compile la balise `#HTML5` indiquant si l'espace public peut utiliser du HTML5 + * + * Renvoie `' '` si le webmestre souhaite que SPIP génère du code (X)HTML5 sur + * le site public, et `''` si le code doit être strictement compatible HTML4 + * + * @balise HTML5 + * @uses html5_permis() + * @example + * ``` + * [(#HTML5) required="required"] + * <input[ (#HTML5|?{type="email",type="text"})] ... /> + * ``` + * + * @param Champ $p + * Pile au niveau de la balise + * @return Champ + * Pile complétée par le code à générer + */ function balise_HTML5_dist($p) { $p->code = html5_permis() ? "' '" : "''"; $p->interdire_scripts = false; -- GitLab