From a93a28bc14634f0fa4f27353578a2e3106fa1696 Mon Sep 17 00:00:00 2001
From: Matthieu Marcillaud <marcimat@rezo.net>
Date: Sun, 10 Feb 2013 21:25:53 +0000
Subject: [PATCH] Du PHPDoc encore sur quelques balises.

---
 ecrire/inc/filtres.php     |  70 ++++++++++++----
 ecrire/public/balises.php  | 168 +++++++++++++++++++++++++++++++------
 ecrire/public/criteres.php |  24 ++++--
 3 files changed, 212 insertions(+), 50 deletions(-)

diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 19eb051dd3..db26a9dd94 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -495,8 +495,9 @@ function recuperer_numero($texte) {
 }
 
 /**
- * Suppression basique et brutale de tous les tags `<...>`
+ * Suppression basique et brutale de tous les tags
  *
+ * Supprime tous les tags `<...>`.
  * Utilisé fréquemment pour écrire des RSS.
  * 
  * @filtre supprimer_tags
@@ -525,7 +526,9 @@ function supprimer_tags($texte, $rempl = "") {
 }
 
 /**
- * Convertit les chevrons `<...>` en la version lisible en HTML
+ * Convertit les chevrons de tag en version lisible en HTML
+ *
+ * Transforme les chevrons de tag `<...>` en entité HTML.
  *
  * @filtre echapper_tags
  * @link http://www.spip.net/5515
@@ -534,8 +537,6 @@ function supprimer_tags($texte, $rempl = "") {
  *     <pre>[(#TEXTE|echapper_tags)]</pre>
  *     ```
  *
- * 
- * 
  * @param string $texte
  *     Texte à échapper
  * @param string $rempl
@@ -1988,12 +1989,36 @@ function filtre_find($array, $val) {
 }
 
 
-//
-// fonction standard de calcul de la balise #PAGINATION
-// on peut la surcharger en definissant filtre_pagination dans mes_fonctions
-//
-
-// http://doc.spip.org/@filtre_pagination_dist
+/**
+ * Filtre calculant une pagination, utilisé par la balise `#PAGINATION`
+ *
+ * Le filtre cherche le modèle `pagination.html` par défaut, mais peut
+ * chercher un modèle de pagination particulier avec l'argument `$modele`.
+ * S'il `$modele='prive'`, le filtre cherchera le modèle `pagination_prive.html`.
+ * 
+ * @filtre pagination
+ * @see balise_PAGINATION_dist()
+ * 
+ * @param int $total
+ *     Nombre total d'éléments
+ * @param string $nom
+ *     Nom identifiant la pagination
+ * @param int $position
+ *     Page à afficher (tel que la 3è page)
+ * @param int $pas
+ *     Nombre d'éléments par page
+ * @param bool $liste
+ *     - True pour afficher toute la liste des éléments,
+ *     - False pour n'afficher que l'ancre
+ * @param string $modele
+ *     Nom spécifique du modèle de pagination
+ * @param string $connect
+ *     Nom du connecteur à la base de données
+ * @param array $env
+ *     Environnement à transmettre au modèle
+ * @return string
+ *     Code HTML de la pagination
+**/
 function filtre_pagination_dist($total, $nom, $position, $pas, $liste = true, $modele='', $connect='', $env=array()) {
 	static $ancres = array();
 	if ($pas<1) return '';
@@ -3268,14 +3293,25 @@ function filtre_chercher_rubrique_dist($titre,$id_objet, $id_parent, $objet, $id
 /**
  * Rediriger une page suivant une autorisation,
  * et ce, n'importe où dans un squelette, même dans les inclusions.
- * Exemple :
- * [(#AUTORISER{non}|sinon_interdire_acces)]
- * [(#AUTORISER{non}|sinon_interdire_acces{#URL_PAGE{login}, 401})]
  *
- * @param bool $ok Indique si l'on doit rediriger ou pas
- * @param string $url Adresse vers laquelle rediriger
- * @param int $statut Statut HTML avec lequel on redirigera
- * @return string
+ * En l'absence de redirection indiquée, la fonction redirige par défaut
+ * sur une 403 dans l'espace privé et 404 dans l'espace public.
+ * 
+ * @example
+ *     ```
+ *     [(#AUTORISER{non}|sinon_interdire_acces)]
+ *     [(#AUTORISER{non}|sinon_interdire_acces{#URL_PAGE{login}, 401})]
+ *     ```
+ *
+ * @filtre sinon_interdire_acces
+ * @param bool $ok
+ *     Indique si l'on doit rediriger ou pas
+ * @param string $url
+ *     Adresse vers laquelle rediriger
+ * @param int $statut
+ *     Statut HTML avec lequel on redirigera
+ * @return string|void
+ *     Chaîne vide si l'accès est autorisé
  */
 function sinon_interdire_acces($ok=false, $url='', $statut=0){
 	if ($ok) return '';
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index e7e264a8ee..c26f6d7a8a 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -592,19 +592,49 @@ function balise_POPULARITE_dist ($p) {
 	return $p;
 }
 
-// #PAGINATION
-// Le code produit est trompeur, car les modeles ne fournissent pas Pile[0].
-// On produit un appel a _request si on ne l'a pas, mais c'est inexact:
-// l'absence peut etre due a une faute de frappe dans le contexte inclus.
-
+/**
+ * Code de compilation pour la balise `#PAGINATION`
+ *
+ * Le code produit est trompeur, car les modèles ne fournissent pas Pile[0].
+ * On produit un appel à `_request` si on ne l'a pas, mais c'est inexact:
+ * l'absence peut-être due à une faute de frappe dans le contexte inclus.
+ */
 define('CODE_PAGINATION',
 	'%s($Numrows["%s"]["grand_total"],
  		%s,
 		isset($Pile[0][%4$s])?$Pile[0][%4$s]:intval(_request(%4$s)),
 		%5$s, %6$s, %7$s, %8$s, array(%9$s))');
 
-// http://www.spip.net/fr_article3367.html
-// http://doc.spip.org/@balise_PAGINATION_dist
+/**
+ * Compile la balise `#PAGINATION` chargée d'afficher une pagination
+ *
+ * Elle charge le modèle `pagination.html` (par défaut), mais un paramètre
+ * permet d'indiquer d'autres modèles. `#PAGINATION{nom}` utilisera le
+ * modèle `pagination_nom.html`.
+ *
+ * Cette balise nécessite le critère `pagination` sur la boucle où elle
+ * est utilisée.
+ *
+ * @balise PAGINATION
+ * @link http://www.spip.net/3367 Le système de pagination
+ * @see filtre_pagination_dist()
+ * @see critere_pagination_dist()
+ * @see balise_ANCRE_PAGINATION_dist()
+ * @example
+ *    ```
+ *    [<p class="pagination">(#PAGINATION{prive})</p>]
+ *    ```
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @param string $liste
+ *     Afficher ou non les liens de pagination (variable de type `string`
+ *     car code à faire écrire au compilateur) :
+ *     - `true` pour les afficher
+ *     - `false` pour afficher uniquement l'ancre.
+ * @return Champ
+ *     Pile complétée par le code à générer
+ */
 function balise_PAGINATION_dist($p, $liste='true') {
 	$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
 
@@ -662,9 +692,29 @@ function balise_PAGINATION_dist($p, $liste='true') {
 }
 
 
-// N'afficher que l'ancre de la pagination (au-dessus, par exemple, alors
-// qu'on mettra les liens en-dessous de la liste paginee)
-// http://doc.spip.org/@balise_ANCRE_PAGINATION_dist
+
+/**
+ * Compile la balise `#ANCRE_PAGINATION` chargée d'afficher l'ancre
+ * de la pagination
+ *
+ * Cette ancre peut ainsi être placée au-dessus la liste des éléments
+ * de la boucle alors qu'on mettra les liens de pagination en-dessous de
+ * cette liste paginée.
+ * 
+ * Cette balise nécessite le critère `pagination` sur la boucle où elle
+ * est utilisée.
+ * 
+ * @balise ANCRE_PAGINATION
+ * @link http://www.spip.net/3367 Le système de pagination
+ * @link http://www.spip.net/4328 Balise ANCRE_PAGINATION
+ * @see critere_pagination_dist()
+ * @see balise_PAGINATION_dist()
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_ANCRE_PAGINATION_dist($p) {
 	if ($f = charger_fonction('PAGINATION', 'balise', true))
 		return $f($p, $liste='false');
@@ -1342,12 +1392,25 @@ function balise_TOTAL_UNIQUE_dist($p) {
 	return $p;
 }
 
-//
-// #ARRAY
-// pour creer un array php a partir d'arguments calcules
-// #ARRAY{key1,val1,key2,val2 ...} retourne array(key1=>val1,...)
-//
-// http://doc.spip.org/@balise_ARRAY_dist
+/**
+ * Compile la balise `#ARRAY` créant un tableau PHP associatif
+ *
+ * Crée un `array` PHP à partir d'arguments calculés.
+ * Chaque paire d'arguments représente la clé et la valeur du tableau.
+ * 
+ * @balise ARRAY
+ * @link http://www.spip.net/4009
+ * @example
+ *     ```
+ *     #ARRAY{key1,val1,key2,val2 ...} retourne
+ *     array( key1 => val1, key2 => val2, ...)
+ *     ```
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_ARRAY_dist($p) {
 	$_code = array();
 	$n=1;
@@ -1364,6 +1427,8 @@ function balise_ARRAY_dist($p) {
 /**
  * Compile la balise `#LISTE` qui crée un tableau PHP avec les valeurs, sans préciser les clés
  *
+ * @balise LISTE
+ * @link http://www.spip.net/5547
  * @example
  *    ```
  *    #LISTE{a,b,c,d,e} 
@@ -1384,10 +1449,34 @@ function balise_LISTE_dist($p) {
 	return $p;
 }
 
-// Appelle la fonction autoriser et renvoie ' ' si OK, '' si niet
-// A noter : la priorite des operateurs exige && plutot que AND
-// Cette balise cree un cache par session
-// http://doc.spip.org/@balise_AUTORISER_dist
+
+/**
+ * Compile la balise `#AUTORISER` qui teste une autorisation
+ *
+ * Appelle la fonction `autoriser()` avec les mêmes arguments,
+ * et renvoie un espace ' ' si OK (l'action est autorisée),
+ * sinon une chaine vide '' (l'action n'est pas autorisée).
+ *
+ * Cette balise créée un cache par session.
+ * 
+ * @note
+ *     La priorité des opérateurs exige && plutot que AND
+ * 
+ * @balise AUTORISER
+ * @link http://www.spip.net/3896
+ * @see autoriser()
+ * @see sinon_interdire_acces()
+ * @example
+ *    ```
+ *    [(#AUTORISER{modifier,rubrique,#ID_RUBRIQUE}) ... ]
+ *    [(#AUTORISER{voir,rubrique,#ID_RUBRIQUE}|sinon_interdire_acces)]
+ *    ```
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_AUTORISER_dist($p) {
 	$_code = array();
 	$p->descr['session'] = true; // faire un cache par session
@@ -1415,8 +1504,23 @@ function balise_PLUGIN_dist($p) {
 	return $p;
 }
 
-// Appelle la fonction inc_aider_dist
-// http://doc.spip.org/@balise_AIDER_dist
+/**
+ * Compile la balise `#AIDER` qui permet d’afficher l’icone de l’aide
+ * au sein des squelettes.
+ *
+ * @balise ACTION_FORMULAIRE
+ * @see inc_aider_dist()
+ * @link http://www.spip.net/4733
+ * @example
+ *     ```
+ *     #AIDER{titre}
+ *     ```
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_AIDER_dist($p) {
 	$_motif = interprete_argument_balise(1,$p);
 	$s = "'" . addslashes($p->descr['sourcefile']) . "'";
@@ -1425,9 +1529,23 @@ function balise_AIDER_dist($p) {
 	return $p;
 }
 
-// Insertion du contexte des formulaires charger/verifier/traiter
-// avec les hidden de l'url d'action
-// http://doc.spip.org/@balise_ACTION_FORMULAIRE
+/**
+ * Compile la balise `#ACTION_FORMULAIRE` qui insère le contexte
+ * des formulaires charger / vérifier / traiter avec les hidden de
+ * l'URL d'action
+ *
+ * @balise ACTION_FORMULAIRE
+ * @example
+ *     ```
+ *     <form method='post' action='#ENV{action}'><div>
+ *     #ACTION_FORMULAIRE{#ENV{action}}
+ *     ```
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_ACTION_FORMULAIRE($p){
 	if (!$_url = interprete_argument_balise(1,$p))
 		$_url = "@\$Pile[0]['action']";
diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 648d2069bd..c9ff7312f9 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -218,7 +218,7 @@ function critere_debut_dist($idb, &$boucles, $crit){
 
 
 /**
- * Compile le critère {pagination}
+ * Compile le critère `pagination` qui demande à paginer une boucle.
  *
  * Demande à paginer la boucle pour n'afficher qu'une partie des résultats,
  * et gère l'affichage de la partie de page demandée par debut_xx dans
@@ -226,13 +226,19 @@ function critere_debut_dist($idb, &$boucles, $crit){
  *
  * Le premier paramètre indique le nombre d'éléments par page, le second,
  * rarement utilisé permet de définir le nom de la variable désignant la
- * page demandée (debut_xx), qui par défaut utilise l'identifiant de la boucle.
- * 
+ * page demandée (`debut_xx`), qui par défaut utilise l'identifiant de la boucle.
+ *
+ * @critere pagination
+ * @see balise_PAGINATION_dist()
+ * @link http://www.spip.net/3367 Le système de pagination
+ * @link http://www.spip.net/4867 Le critère pagination
  * @example
+ *     ```
  *     {pagination}
  *     {pagination 20}
  *     {pagination #ENV{pages,5}} etc
  *     {pagination 20 #ENV{truc,chose}} pour utiliser la variable debut_#ENV{truc,chose}
+ *     ```
  * 
  * @param string $idb     Identifiant de la boucle
  * @param array $boucles  AST du squelette
@@ -285,12 +291,14 @@ function critere_pagination_dist($idb, &$boucles, $crit){
 
 
 /**
- * Compile le critère {recherche}
- *
- * Permet de sélectionner des résultats d'une recherche.
+ * Compile le critère `recherche` qui permet de sélectionner des résultats
+ * d'une recherche.
  * 
- * Le texte cherché est pris dans le premier paramètre {recherche xx}
- * ou à défaut dans la clé 'recherche' de l'environnement du squelette.
+ * Le texte cherché est pris dans le premier paramètre `{recherche xx}`
+ * ou à défaut dans la clé `recherche` de l'environnement du squelette.
+ *
+ * @critere recherche
+ * @link http://www.spip.net/3878
  * 
  * @param string $idb     Identifiant de la boucle
  * @param array $boucles  AST du squelette
-- 
GitLab