From 8ccfa2f3ce0e5f7b49163fa2c930d2f345b20eeb Mon Sep 17 00:00:00 2001
From: Matthieu Marcillaud <marcimat@rezo.net>
Date: Tue, 19 Feb 2013 13:14:29 +0000
Subject: [PATCH] Quelques phpDoc

---
 ecrire/inc/chercher_logo.php |  38 ++++++-
 ecrire/inc/filtres.php       |  32 +++++-
 ecrire/public/compiler.php   |  24 +++--
 ecrire/public/composer.php   |  81 +++++++++++++--
 ecrire/public/criteres.php   |   3 +
 ecrire/public/interfaces.php |   5 +
 ecrire/public/references.php | 188 +++++++++++++++++++++++++++--------
 7 files changed, 304 insertions(+), 67 deletions(-)

diff --git a/ecrire/inc/chercher_logo.php b/ecrire/inc/chercher_logo.php
index 9498bc84f0..4ed3636bad 100644
--- a/ecrire/inc/chercher_logo.php
+++ b/ecrire/inc/chercher_logo.php
@@ -10,9 +10,30 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
+/**
+ * Recherche de logo
+ *
+ * @package SPIP\Core\Logos
+**/
 if (!defined('_ECRIRE_INC_VERSION')) return;
 
-// http://doc.spip.org/@inc_chercher_logo_dist
+/**
+ * Cherche le logo d'un élément d'objet
+ *
+ * @global formats_logos Extensions possibles des logos
+ * @uses type_du_logo()
+ * 
+ * @param int $id
+ *     Identifiant de l'objet
+ * @param string $_id_objet
+ *     Nom de la clé primaire de l'objet
+ * @param string $mode
+ *     Mode de survol du logo désiré (on ou off)
+ * @return array
+ *
+ *     - Liste (chemin du fichier, répertoire de logos, extension du logo, date de modification)
+ *     - array vide aucun logo trouvé.
+**/
 function inc_chercher_logo_dist($id, $_id_objet, $mode='on') {
 	global $formats_logos;
 	# attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
@@ -29,7 +50,20 @@ function inc_chercher_logo_dist($id, $_id_objet, $mode='on') {
 	return array();
 }
 
-// http://doc.spip.org/@type_du_logo
+/**
+ * Retourne le type de logo tel que `art` depuis le nom de clé primaire
+ * de l'objet
+ *
+ * C'est par défaut le type d'objet, mais il existe des exceptions historiques
+ * déclarées par la globale `$table_logos`
+ *
+ * @global table_logos Exceptions des types de logo
+ * 
+ * @param string $_id_objet
+ *     Nom de la clé primaire de l'objet
+ * @return string
+ *     Type du logo
+**/
 function type_du_logo($_id_objet) {
 	return isset($GLOBALS['table_logos'][$_id_objet])
 		? $GLOBALS['table_logos'][$_id_objet]
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 199d1ea647..a1481c2cd3 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -28,23 +28,47 @@ include_spip('public/parametrer'); // charger les fichiers fonctions
  * - on inclue tous les fichiers fonctions des plugins et du skel
  * - on appelle chercher_filtre
  *
- * @param string $fonc
- * @param string $default
- * @return string
+ * Pour éviter de perdre le texte si le filtre demandé est introuvable,
+ * on transmet `filtre_identite_dist` en filtre par défaut.
+ *
+ * @uses filtre_identite_dist() Comme fonction par défaut
+ * 
+ * @param string $fonc Nom du filtre
+ * @param string $default Filtre par défaut
+ * @return string Fonction PHP correspondante du filtre
  */
 function charger_filtre($fonc, $default='filtre_identite_dist') {
 	include_spip('public/parametrer'); // inclure les fichiers fonctions
 	return chercher_filtre($fonc, $default);
 }
 
+/**
+ * Retourne le texte tel quel
+ *
+ * @param string $texte Texte
+ * @return string Texte
+**/
 function filtre_identite_dist($texte){return $texte;}
 
 /**
- * http://doc.spip.org/@chercher_filtre
+ * Cherche un filtre
+ *
+ * Pour une filtre `F` retourne la première fonction trouvée parmis :
  *
+ * - filtre_F
+ * - filtre_F_dist
+ * - F
+ *
+ * Peut gérer des appels par des fonctions statiques de classes tel que `Foo::Bar`
+ * 
+ * En absence de fonction trouvée, retourne la fonction par défaut indiquée.
+ * 
  * @param string $fonc
+ *     Nom du filtre
  * @param null $default
+ *     Nom du filtre appliqué par défaut si celui demandé n'est pas trouvé
  * @return string
+ *     Fonction PHP correspondante du filtre demandé
  */
 function chercher_filtre($fonc, $default=NULL) {
 	if (!$fonc) return $default;
diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index d2f93a438a..21c17c8ef5 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -371,14 +371,15 @@ function calculer_boucle_rec($id_boucle, &$boucles, $trace) {
  * Compilation d'une boucle non recursive.
  * 
  * La constante donne le cadre systématique du code:
- * %s1: initialisation des arguments de calculer_select
- * %s2: appel de calculer_select en donnant un contexte pour les cas d'erreur
- * %s3: initialisation du sous-tableau Numrows[id_boucle]
- * %s4: sauvegarde de la langue et calcul des invariants de boucle sur elle
- * %s5: boucle while sql_fetch ou str_repeat si corps monotone
- * %s6: restauration de la langue
- * %s7: liberation de la ressource, en tenant compte du serveur SQL 
- * %s8: code de trace eventuel avant le retour
+ *
+ * - %s1: initialisation des arguments de calculer_select
+ * - %s2: appel de calculer_select en donnant un contexte pour les cas d'erreur
+ * - %s3: initialisation du sous-tableau Numrows[id_boucle]
+ * - %s4: sauvegarde de la langue et calcul des invariants de boucle sur elle
+ * - %s5: boucle while sql_fetch ou str_repeat si corps monotone
+ * - %s6: restauration de la langue
+ * - %s7: liberation de la ressource, en tenant compte du serveur SQL 
+ * - %s8: code de trace eventuel avant le retour
 **/
 define('CODE_CORPS_BOUCLE', '%s
 	$t0 = "";
@@ -562,12 +563,12 @@ function calculer_boucle_nonrec($id_boucle, &$boucles, $trace) {
  * Calcule le code PHP d'une boucle contenant les informations qui produiront une requête SQL
  *
  * Le code produit est un tableau associatif $command contenant les informations
- * pour que la boucle produise ensuite sa requête, tel que $command['from'] = 'spip_articles';
+ * pour que la boucle produise ensuite sa requête, tel que `$command['from'] = 'spip_articles';`
  *
  * @param Boucle $boucle
- * 		AST de la boucle 
+ *     AST de la boucle 
  * @return string
- * 		Code PHP compilé définissant les informations de requête
+ *     Code PHP compilé définissant les informations de requête
 **/
 function calculer_requete_sql($boucle)
 {
@@ -673,6 +674,7 @@ function reconstruire_contexte_compil($context_compil)
  * @param string $val
  *    Code PHP décrivant la valeur à affecter
  * @return array
+ * 
  *    - index 0 : Code pour une affectation statique. Si non rempli, la propriété devra
  *                être ré-affectée à chaque appel de la boucle.
  *    - index 1 : Code de l'affectation
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index 7a55052121..64d5abf5cb 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -242,7 +242,7 @@ function analyse_resultat_skel($nom, $cache, $corps, $source='') {
  * L'introduction est prise dans le descriptif s'il est renseigné,
  * sinon elle est calculée depuis le texte : à ce moment là,
  * l'introduction est prise dans le contenu entre les balises
- * <intro> et </intro> si présentes, sinon en coupant le
+ * `<intro>` et `</intro>` si présentes, sinon en coupant le
  * texte à la taille indiquée.
  * 
  * Cette fonction est utilisée par la balise #INTRODUCTION
@@ -318,9 +318,7 @@ function filtre_introduction_dist($descriptif, $texte, $longueur, $connect) {
 // Balises dynamiques
 //
 
-// elles sont traitees comme des inclusions
-// http://doc.spip.org/@synthetiser_balise_dynamique
-
+/** Code PHP pour inclure une balise dynamique à l'exécution d'une page */
 define('CODE_INCLURE_BALISE', '<' . '?php 
 include_once("./" . _DIR_RACINE . "%s");
 if ($lang_select = "%s") $lang_select = lang_select($lang_select);
@@ -329,7 +327,23 @@ if ($lang_select) lang_select();
 ?'
        .'>');
 
-
+/**
+ * Synthétise une balise dynamique : crée l'appel à l'inclusion
+ * en transmettant les arguments calculés et le contexte de compilation.
+ *
+ * @uses argumenter_squelette() Pour calculer les arguments de l'inclusion
+ * 
+ * @param string $nom
+ *     Nom de la balise dynamique
+ * @param array $args
+ *     Liste des arguments calculés
+ * @param string $file
+ *     Chemin du fichier de squelette à inclure
+ * @param array $context_compil
+ *     Tableau d'informations sur la compilation
+ * @return string
+ *     Code PHP pour inclure le squelette de la balise dynamique
+**/
 function synthetiser_balise_dynamique($nom, $args, $file, $context_compil) {
 	$r = sprintf(CODE_INCLURE_BALISE,
 	       $file,
@@ -340,7 +354,19 @@ function synthetiser_balise_dynamique($nom, $args, $file, $context_compil) {
 	return $r;
 }
 
-// http://doc.spip.org/@argumenter_squelette
+/**
+ * Crée le code PHP pour transmettre des arguments (généralement pour une inclusion)
+ *
+ * @param array|string $v
+ *     Arguments à transmettre :
+ *
+ *    - string : un simple texte à faire écrire
+ *    - array : couples ('nom' => 'valeur') liste des arguments et leur valeur
+ * @return string
+ *
+ *    - Code PHP créant le tableau des arguments à transmettre,
+ *    - ou texte entre quote `'` (si `$v` était une chaîne)
+**/
 function argumenter_squelette($v) {
 
 	if (!is_array($v))
@@ -353,8 +379,33 @@ function argumenter_squelette($v) {
 	}
 }
 
-// verifier leurs arguments et filtres, et calculer le code a inclure
-// http://doc.spip.org/@executer_balise_dynamique
+
+/**
+ * Calcule et retourne le code PHP retourné par l'exécution d'une balise
+ * dynamique.
+ *
+ * Vérifier les arguments et filtres et calcule le code PHP à inclure.
+ *
+ * - charge le fichier PHP de la balise dynamique dans le répertoire
+ *   `balise/`, soit du nom complet de la balise, soit d'un nom générique
+ *    (comme 'formulaire_.php'). Dans ce dernier cas, le nom de la balise
+ *    est ajouté en premier argument.
+ * - appelle une éventuelle fonction de traitement des arguments `balise_NOM_stat()`
+ * - crée le code PHP de la balise si une fonction `balise_NOM_dyn()` (ou variantes)
+ *   est effectivement trouvée.
+ *
+ * @uses synthetiser_balise_dynamique()
+ *     Pour calculer le code PHP d'inclusion produit
+ *
+ * @param string $nom
+ *     Nom de la balise dynamique
+ * @param array $args
+ *     Liste des arguments calculés de la balise
+ * @param array $context_compil
+ *     Tableau d'informations sur la compilation
+ * @return string
+ *     Code PHP d'exécutant l'inclusion du squelette (ou texte) de la balise dynamique
+**/
 function executer_balise_dynamique($nom, $args, $context_compil) {
 	$p = strpos($nom,"_");
 	$nomfonction = $nom;
@@ -401,7 +452,16 @@ function executer_balise_dynamique($nom, $args, $context_compil) {
 	return synthetiser_balise_dynamique($nomfonction, $r, $file, $context_compil);
 }
 
-// http://doc.spip.org/@lister_objets_avec_logos
+/**
+ * Retourne pour une clé primaire d'objet donnée les identifiants ayant un logo
+ *
+ * @uses type_du_logo() Pour calculer le nom du logo
+ * 
+ * @param string $type
+ *     Nom de la clé primaire de l'objet
+ * @return string
+ *     Liste des identifiants ayant un logo (séparés par une virgule)
+**/
 function lister_objets_avec_logos ($type) {
 	global $formats_logos;
 	$logos = array();
@@ -429,7 +489,7 @@ function lister_objets_avec_logos ($type) {
  * Fonction appelée par la balise `#NOTES`
  * 
  * @see balise_NOTES_dist()
- * @see inc_notes_dist()
+ * @uses inc_notes_dist()
  *
  * @return string
  *     Code HTML des notes
@@ -540,6 +600,7 @@ function remplace_sous_requete($w,$sousrequete){
  *     Description d'une condition WHERE de boucle
  * @return array
  *     Liste de 2 tableaux :
+ * 
  *     - Conditions simples (ne possédant pas de sous requêtes)
  *     - Conditions avec des sous requêtes
 **/
diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index b6570b208f..518fda660b 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -496,6 +496,9 @@ function critere_branche_dist($idb, &$boucles, $crit){
  * Compile le critère {logo} 
  *
  * Liste les objets qui ont un logo
+ *
+ * @uses lister_objets_avec_logos()
+ *     Pour obtenir les éléments qui ont un logo
  * 
  * @param string $idb     Identifiant de la boucle
  * @param array $boucles  AST du squelette
diff --git a/ecrire/public/interfaces.php b/ecrire/public/interfaces.php
index 85fa4105fd..74f531fc65 100644
--- a/ecrire/public/interfaces.php
+++ b/ecrire/public/interfaces.php
@@ -38,6 +38,7 @@ class Contexte {
 	 * Sert pour la gestion d'erreur et la production de code dependant du contexte
 	 *
 	 * Peut contenir les index :
+	 * 
 	 * - nom : Nom du fichier de cache
 	 * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
 	 * - sourcefile : Chemin du squelette
@@ -343,6 +344,7 @@ class Boucle {
 	 * 
 	 * Ces 3 valeurs sont des expressions PHP. L'index 0 désigne l'opérateur
 	 * à réaliser tel que :
+	 * 
 	 * - "'='" , "'>='", "'<'", "'IN'", "'REGEXP'", "'LIKE'", ... :
 	 *    val1 et val2 sont des champs et valeurs à utiliser dans la comparaison
 	 *    suivant cet ordre : "val1 operateur val2".
@@ -426,6 +428,7 @@ class Boucle {
 	 * Sert pour la gestion d'erreur et la production de code dependant du contexte
 	 *
 	 * Peut contenir les index :
+	 * 
 	 * - nom : Nom du fichier de cache
 	 * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
 	 * - sourcefile : Chemin du squelette
@@ -543,6 +546,7 @@ class Champ {
 
 	/**
 	 * Arguments et filtres explicites sur la balise
+	 * 
 	 * - $param[0] contient les arguments de la balise
 	 * - $param[1..n] contient les filtres à appliquer à la balise
 	 * @var array */
@@ -587,6 +591,7 @@ class Champ {
 	 * Sert pour la gestion d'erreur et la production de code dependant du contexte
 	 *
 	 * Peut contenir les index :
+	 * 
 	 * - nom : Nom du fichier de cache
 	 * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
 	 * - sourcefile : Chemin du squelette
diff --git a/ecrire/public/references.php b/ecrire/public/references.php
index dab4013a53..473f0853ec 100644
--- a/ecrire/public/references.php
+++ b/ecrire/public/references.php
@@ -23,16 +23,20 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
  * Retrouve à quelle boucle appartient une balise, utile dans le cas
  * où une référence explicite est demandée
  * 
- * #MABALISE : l'index est celui de la première boucle englobante
- * #_autreboucle:MABALISE : l'index est celui de la boucle _autreboucle si elle est bien englobante
- * 
- * Dans une balise dynamique ou calculée :
- * $idb = index_boucle($p);
+ * - `#MABALISE` : l'index est celui de la première boucle englobante
+ * - `#_autreboucle:MABALISE` : l'index est celui de la boucle _autreboucle si elle est bien englobante
+ *
+ * @example
+ *     Dans une balise dynamique ou calculée :
+ *     ```
+ *     $idb = index_boucle($p);
+ *     ```
  *
  * @param Champ $p    AST au niveau de la balise
  * @return string
- *     Identifiant de la boucle possédant ce champ.
- *     '' si une référence explicite incorrecte est envoyée
+ *
+ *     - Identifiant de la boucle possédant ce champ.
+ *     - '' si une référence explicite incorrecte est envoyée
  */
 function index_boucle($p){
 
@@ -156,6 +160,7 @@ function index_compose($conditionnel,$defaut) {
  * Cherche un champ dans une boucle
  *
  * Le champ peut être :
+ * 
  * - un alias d'un autre : il faut alors le calculer, éventuellement en
  *   construisant une jointure.
  * - présent dans la table : on l'utilise
@@ -256,7 +261,8 @@ function index_tables_en_pile($idb, $nom_champ, &$boucles, &$joker) {
  * @param array  $desc       Description de la table SQL de la boucle
  * @param string $nom_champ  Nom du champ original demandé
  * @param array  $excep
- *     Description de l'exception pour ce champ. Peut être
+ *     Description de l'exception pour ce champ. Peut être :
+ * 
  *     - string : nom du champ véritable dans la table
  *     - array :
  *         - liste (table, champ) indique que le véritable champ
@@ -334,24 +340,59 @@ function champ_sql($champ, $p, $defaut = null, $remonte_pile = true) {
 	return index_pile($p->id_boucle, $champ, $p->boucles, $p->nom_boucle, $defaut, $remonte_pile);
 }
 
-// cette fonction sert d'API pour demander une balise Spip avec filtres
 
-// http://doc.spip.org/@calculer_champ
+/**
+ * Calcule et retourne le code PHP d'exécution d'une balise SPIP et des ses filtres
+ *
+ * Cette fonction qui sert d'API au compilateur demande à calculer
+ * le code PHP d'une balise, puis lui applique les filtres (automatiques
+ * et décrits dans le squelette)
+ *
+ * @uses calculer_balise()
+ * @uses applique_filtres()
+ * 
+ * @param Champ $p
+ *     AST au niveau de la balise
+ * @return string
+ *     Code PHP pour d'exécution de la balise et de ses filtres
+**/
 function calculer_champ($p) {
 	$p = calculer_balise($p->nom_champ, $p);
 	return applique_filtres($p);
 }
 
-// Cette fonction sert d'API pour demander une balise SPIP sans filtres.
-// Pour une balise nommmee NOM, elle demande a charger_fonction de chercher
-// s'il existe une fonction balise_NOM ou balise_NOM_dist
-// eventuellement en chargeant le fichier balise/NOM.php.
-// Si la balise est de la forme PREFIXE_SUFFIXE (cf LOGO_* et URL_*)
-// elle fait de meme avec juste le PREFIXE.
-// Si pas de fonction, c'est une reference a une colonne de table SQL connue.
-// Les surcharges des colonnes SQL via charger_fonction sont donc possibles.
 
-// http://doc.spip.org/@calculer_balise
+/**
+ * Calcule et retourne le code PHP d'exécution d'une balise SPIP
+ *
+ * Cette fonction qui sert d'API au compilateur demande à calculer
+ * le code PHP d'une balise (cette fonction ne calcule pas les éventuels
+ * filtres de la balise).
+ *
+ * Pour une balise nommmée `NOM`, elle demande à `charger_fonction()` de chercher
+ * s'il existe une fonction `balise_NOM` ou `balise_NOM_dist`
+ * éventuellement en chargeant le fichier `balise/NOM.php.`
+ *
+ * Si la balise est de la forme `PREFIXE_SUFFIXE` (cf `LOGO_*` et `URL_*`)
+ * elle fait de même avec juste le `PREFIXE`.
+ *
+ * S'il n'y a pas de fonction trouvée, on considère la balise comme une référence
+ * à une colonne de table SQL connue, sinon à l'environnement (cf. `calculer_balise_DEFAUT_dist()`).
+ *
+ * Les surcharges des colonnes SQL via charger_fonction sont donc possibles.
+ *
+ * @uses calculer_balise_DEFAUT_dist()
+ *     Lorsqu'aucune fonction spécifique n'est trouvée.
+ * @see charger_fonction()
+ *     Pour la recherche des fonctions de balises
+ * 
+ * @param string $nom
+ *     Nom de la balise
+ * @param Champ $p
+ *     AST au niveau de la balise
+ * @return string
+ *     Code PHP pour d'exécution de la balise et de ses filtres
+**/
 function calculer_balise($nom, $p) {
 
 	// S'agit-t-il d'une balise_XXXX[_dist]() ?
@@ -375,6 +416,29 @@ function calculer_balise($nom, $p) {
 	return $f($nom, $p);
 }
 
+
+/**
+ * Calcule et retourne le code PHP d'exécution d'une balise SPIP non déclarée
+ *
+ * Cette fonction demande à calculer le code PHP d'une balise qui
+ * n'a pas de fonction spécifique.
+ * 
+ * On considère la balise comme une référence à une colonne de table SQL
+ * connue, sinon à l'environnement.
+
+ * @uses index_pile()
+ *     Pour la recherche de la balise comme colonne SQL ou comme environnement
+ * @note
+ *     Le texte de la balise est retourné si il ressemble à une couleur
+ *     et qu'aucun champ correspondant n'a été trouvé, comme `#CCAABB`
+ * 
+ * @param string $nom
+ *     Nom de la balise
+ * @param Champ $p
+ *     AST au niveau de la balise
+ * @return string
+ *     Code PHP pour d'exécution de la balise et de ses filtres
+**/
 function calculer_balise_DEFAUT_dist($nom, $p) {
 
 	// ca pourrait etre un champ SQL homonyme,
@@ -408,20 +472,44 @@ function calculer_balise_DEFAUT_dist($nom, $p) {
 }
 
 
-//
-// Traduction des balises dynamiques, notamment les "formulaire_*"
-// Inclusion du fichier associe a son nom, qui contient la fonction homonyme
-// donnant les arguments a chercher dans la pile, et qui sont donc compiles.
-// On leur adjoint les arguments explicites de la balise (cf #LOGIN{url})
-// et d'eventuelles valeurs transmises d'autorite par la balise.
-// (cf http://trac.rezo.net/trac/spip/ticket/1728)
-// La fonction nommee ci-dessous recevra a l'execution la valeur de tout ca.
 
+/** Code PHP d'exécution d'une balise dynamique */
 define('CODE_EXECUTER_BALISE', "executer_balise_dynamique('%s',
 	array(%s%s),
 	array(%s%s))");
 
-// http://doc.spip.org/@calculer_balise_dynamique
+
+/**
+ * Calcule le code PHP d'exécution d'une balise SPIP dynamique
+ *
+ * Calcule les balises dynamiques, notamment les `formulaire_*`.
+ * 
+ * Inclut le fichier associé à son nom, qui contient la fonction homonyme
+ * donnant les arguments à chercher dans la pile, et qui sont donc compilés.
+ *
+ * On leur adjoint les arguments explicites de la balise (cf `#LOGIN{url}`)
+ * et d'éventuelles valeurs transmises d'autorité par la balise.
+ * (cf http://core.spip.org/issues/1728)
+ * 
+ * La fonction `executer_balise_dynamique()` définie par la
+ * constante `CODE_EXECUTER_BALISE` recevra à l'exécution la valeur de tout ca.
+ *
+ * @uses collecter_balise_dynamique()
+ *     Qui calcule le code d'exécution de chaque argument de la balise
+ * @see executer_balise_dynamique()
+ *     Code PHP produit qui chargera les fonctions de la balise dynamique à l'exécution,
+ *     appelée avec les arguments calculés.
+ * @param Champ $p
+ *     AST au niveau de la balise
+ * @param string $nom
+ *     Nom de la balise dynamique
+ * @param array $l
+ *     Liste des noms d'arguments (balises) à collecter
+ * @param array $supp
+ *     Liste de données supplémentaires à transmettre au code d'exécution.
+ * @return Champ
+ *     Balise complétée de son code d'exécution
+**/
 function calculer_balise_dynamique($p, $nom, $l, $supp=array()) {
 
 	if (!balise_distante_interdite($p)) {
@@ -452,13 +540,32 @@ function calculer_balise_dynamique($p, $nom, $l, $supp=array()) {
 	return $p;
 }
 
-// Construction du tableau des arguments d'une balise dynamique.
-// Ces arguments peuvent etre eux-meme des balises (cf FORMULAIRE_SIGNATURE)
-// mais gare au bouclage (on peut s'aider de $nom pour le reperer au besoin)
-// En revanche ils n'ont pas de filtres, donc on appelle calculer_balise qui
-// ne s'occupe pas de ce qu'il y a dans $p (mais qui va y ecrire le code)
 
-// http://doc.spip.org/@collecter_balise_dynamique
+/**
+ * Construction du tableau des arguments d'une balise dynamique.
+ *
+ * Pour chaque argument (un nom de balise), crée le code PHP qui le calculera.
+ * 
+ * @note
+ *     Ces arguments peuvent être eux-même des balises (cf FORMULAIRE_SIGNATURE)
+ *     mais gare au bouclage (on peut s'aider de `$nom` pour le réperer au besoin)
+ * 
+ *     En revanche ils n'ont pas de filtres, donc on appelle `calculer_balise()` qui
+ *     ne s'occupe pas de ce qu'il y a dans `$p` (mais qui va y ecrire le code)
+ *
+ * @uses calculer_balise()
+ *     Pour obtenir le code d'éxécution de chaque argument.
+ * 
+ * @param array $l
+ *     Liste des noms d'arguments (balises) à collecter (chaque argument
+ *     de la balise dynamique est considéré comme étant un nom de balise)
+ * @param Champ $p
+ *     AST au niveau de la balise
+ * @param string $nom
+ *     Nom de la balise
+ * @return array
+ *     Liste des codes PHP d'éxecution des balises collectées
+**/
 function collecter_balise_dynamique($l, &$p, $nom) {
 	$args = array();
 	foreach($l as $c) { $x = calculer_balise($c, $p); $args[] = $x->code;}
@@ -471,7 +578,7 @@ function collecter_balise_dynamique($l, &$p, $nom) {
 /**
  * Récuperer le nom du serveur
  * 
- * Mais pas si c'est un serveur specifique derogatoire
+ * Mais pas si c'est un serveur spécifique dérogatoire
  * 
  * @param Champ $p
  *     AST positionné sur la balise
@@ -499,15 +606,16 @@ function trouver_nom_serveur_distant($p) {
  * La fonction loge une erreur si la balise est utilisée sur une
  * base distante et retourne false dans ce cas.
  * 
- * Note :
- * Il faudrait savoir traiter les formulaires en local
- * tout en appelant le serveur SQL distant.
- * En attendant, cette fonction permet de refuser une authentification
- * sur qqch qui n'a rien a voir.
+ * @note
+ *     Il faudrait savoir traiter les formulaires en local
+ *     tout en appelant le serveur SQL distant.
+ *     En attendant, cette fonction permet de refuser une authentification
+ *     sur quelque-chose qui n'a rien a voir.
  * 
  * @param Champ $p
  *     AST positionné sur la balise
  * @return bool
+ * 
  *     - true : La balise est autorisée
  *     - false : La balise est interdite car le serveur est distant
 **/
-- 
GitLab