From a66ec6759d6b3ab3d88334243a3bcafe6efb3cce Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Mon, 15 Apr 2002 21:21:21 +0000
Subject: [PATCH] une gestion assainie de $les_notes

---
 ecrire/inc_texte.php3 | 37 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3
index 0c8807aa14..1c9ebd9c1a 100644
--- a/ecrire/inc_texte.php3
+++ b/ecrire/inc_texte.php3
@@ -401,7 +401,7 @@ function typo($letexte) {
 }
 
 // Nettoie un texte, traite les raccourcis spip, la typo, etc.
-function traiter_raccourcis($letexte, $les_echap = false) {
+function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = 'oui') {
 	global $puce;
 	global $debut_intertitre, $fin_intertitre;
 	global $compt_note;
@@ -432,27 +432,33 @@ function traiter_raccourcis($letexte, $les_echap = false) {
 	while (ereg($regexp, $letexte, $regs)){
 		$note_texte = $regs[1];
 		$num_note = false;
-		if (ereg("^ *<([^>]*)>",$note_texte,$regs)){ // note pas auto ?
+
+		// note auto ou pas ?
+		if (ereg("^ *<([^>]*)>",$note_texte,$regs)){
 			$num_note=$regs[1];
 			$note_texte = ereg_replace ("^ *<([^>]*)>","",$note_texte);
-		} else { // note auto
+		} else {
 			$compt_note++;
 			$num_note=$compt_note;
 		}
+
+		// preparer la note
 		if ($num_note) {
 			$insert = "$ouvre_ref<a href='#nb$num_note' name='nh$num_note' class='spip_note'>$num_note</a>$ferme_ref";
-			if ($note_texte) {
-				if ($les_notes)
-					$les_notes .= "\n<p class='spip_note'>";
-				$les_notes .= traiter_raccourcis("<HTML>$ouvre_note<a href='#nh$num_note' name='nb$num_note' class='spip_note'>$num_note</a>$ferme_note</HTML> $note_texte");
-			}
+			$appel = "<html>$ouvre_note<a href='#nh$num_note' name='nb$num_note' class='spip_note'>$num_note</a>$ferme_note</html>";
 		} else {
 			$insert = '';
-			if ($les_notes)
-				$les_notes .= "\n<p class='spip_note'>";
-			if ($note_texte)
-				$les_notes .= traiter_raccourcis(trim($note_texte), $les_echap)."<p class='spip_note'>\n";
+			$appel = '';
 		}
+
+		// l'ajouter "brut" dans les notes
+		if ($note_texte) {
+			if ($les_notes || $mes_notes)
+				$mes_notes .= "<p>";
+			$mes_notes .= $appel . $note_texte;
+		}
+
+		// dans le texte, mettre l'appel de note a la place de la note
 		$letexte = implode($insert, split($regexp, $letexte, 2));
 	}
 
@@ -650,7 +656,12 @@ function traiter_raccourcis($letexte, $les_echap = false) {
 
 	// Reinserer les echappements
 	$letexte = echappe_retour($letexte, $les_echap, "SOURCEPROPRE");
-	$les_notes = echappe_retour($les_notes, $les_echap, "SOURCEPROPRE");
+
+	if ($mes_notes) {
+		$mes_notes = ereg_replace("<p class=\"spip\">", "<p class=\"spip_note\">",
+			traiter_raccourcis($mes_notes, $les_echap, 'non'));
+		$les_notes .= echappe_retour($mes_notes, $les_echap, "SOURCEPROPRE");
+	}
 
 	return $letexte;
 }
-- 
GitLab