From b8d3c433c5a70bd6666e8cfc2538b4b84bef88f9 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Tue, 16 Apr 2002 09:35:49 +0000 Subject: [PATCH] restait un petit probleme dans le cas ou une note seule dans un champ (chapo) etait suivi par une note seul dans un autre champ (texte) Du coup j'ai poli l'histoire des paragraphes fermants "<p...>xxx</p>", pour voir, et c'est archi complique.... ca meriterait un filtre a part entiere, qu'on arrete de s'embeter avec ca dans traiter_raccourcis()... a suivre peut-etre... --- ecrire/inc_texte.php3 | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3 index 83e87da374..f73eb34148 100644 --- a/ecrire/inc_texte.php3 +++ b/ecrire/inc_texte.php3 @@ -453,8 +453,8 @@ function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = ' // l'ajouter "brut" dans les notes if ($note_texte) { - if ($les_notes || $mes_notes) - $mes_notes .= "<p>"; + if ($mes_notes) + $mes_notes .= "\n\n"; $mes_notes .= $appel . $note_texte; } @@ -653,17 +653,39 @@ function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = ' $letexte = ereg_remplace($cherche1, $remplace1, $letexte); } - if (ereg("<p class=\"spip\">",$letexte)){ - $letexte = "<p class=\"spip\">".ereg_replace("<p class=\"spip\">", "</p>\n<p class=\"spip\">",$letexte)."</p>"; + if (ereg('<p class="spip">',$letexte)){ + $letexte = '<p class="spip">'.ereg_replace('<p class="spip">', "</p>\n".'<p class="spip">',$letexte).'</p>'; } // Reinserer les echappements $letexte = echappe_retour($letexte, $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"); + $fin_notes = ''; + + // "paragrapher" les anciennes notes + if ($les_notes) { + if (!ereg('<p class="spip_note">', $les_notes)) { + $les_notes = '<p class="spip_note">' . $les_notes . '</p>'; + } + $les_notes .= "\n".'<p class="spip_note">'; + $fin_notes = '</p>'; + } + + // "paragrapher les nouvelles notes + $mes_notes = traiter_raccourcis($mes_notes, $les_echap, 'non'); + if (ereg('<p class="spip">', $mes_notes)) { + $mes_notes = ereg_replace('^<p class="spip">', '', $mes_notes); + $mes_notes = ereg_replace('</p>$', '', $mes_notes); + $mes_notes = ereg_replace('<p class="spip">', '<p class="spip_note">', $mes_notes); + $fin_notes = '</p>'; + } + + // nettoyer + $mes_notes = echappe_retour($mes_notes, $les_echap, "SOURCEPROPRE"); + + // ajouter + $les_notes .= $mes_notes . $fin_notes; } return $letexte; -- GitLab