From f3f3fad38d1a92f4258ba4de3682461a036f8490 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sat, 10 Jun 2023 13:33:31 +0200
Subject: [PATCH] refactor: caster les arguments de phraser_champs_etendus() +
 phpdoc

---
 ecrire/public/phraser_html.php | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php
index 47d0ad2a2e..01c0c18492 100644
--- a/ecrire/public/phraser_html.php
+++ b/ecrire/public/phraser_html.php
@@ -313,21 +313,28 @@ function phraser_champs(string $texte, int $ligne, array $result): array {
 	return $result;
 }
 
-// Gestion des imbrications:
-// on cherche les [..] les plus internes et on les remplace par une chaine
-// %###N@ ou N indexe un tableau comportant le resultat de leur analyse
-// on recommence tant qu'il y a des [...] en substituant a l'appel suivant
-
-function phraser_champs_etendus($texte, $ligne, $result) {
+/**
+ * Phraser les champs etendus : c'est phraser_champs_interieurs qui va le faire
+ * on lui fournir un marqueur $sep qui n'est pas contenu dans le texte et qu'il peut utiliser de manière sure
+ * pour remplacer au fur et a mesure les champs imbriques qu'il va trouver
+ *
+ * @param $texte
+ * @param $ligne
+ * @param $result
+ * @return array|mixed
+ */
+function phraser_champs_etendus(string $texte, int $ligne, array $result): array {
 	if ($texte === '') {
 		return $result;
 	}
+
 	$sep = '##';
-	while (str_contains((string) $texte, (string) $sep)) {
+	while (str_contains($texte, $sep)) {
 		$sep .= '#';
 	}
 
-	return array_merge($result, phraser_champs_interieurs((string)$texte, $ligne, $sep));
+	$champs = phraser_champs_interieurs($texte, $ligne, $sep);
+	return array_merge($result, $champs);
 }
 
 /**
@@ -538,7 +545,8 @@ function phraser_champs_exterieurs(string $texte, int $ligne, string $sep, array
 /**
  * Parser un texte pour trouver toutes les balises complètes [...(#TRUC)...] en gérant les imbrications possibles
  * Pour cela on commence par les plus profondes, sans rien dedans,
- * on les remplace par un placehoder inactif et on recommence jusqu'à ce qu'on ne trouve plus rien
+ * on les remplace par un placehoder inactif %###N@ ou N indexe un tableau comportant le resultat de leur analyse
+ * et on recommence jusqu'à ce qu'on ne trouve plus rien
  *
  * @param string $texte
  * @param int $no_ligne
-- 
GitLab