lab_revisions.php inc_suivi_revisions.php articles_versions.php3 1.2 1.16 1.11 1.3 1.17 1.12

Update of /home/spip-cvs/spip/ecrire
In directory alan:/tmp/cvs-serv11237

Modified Files:
  lab_revisions.php inc_suivi_revisions.php
  articles_versions.php3
Log Message:
nettoyage du suiv ides révisions

Index: articles_versions.php3

RCS file: /home/spip-cvs/spip/ecrire/articles_versions.php3,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- articles_versions.php3 16 Mar 2005 22:36:53 -0000 1.11
+++ articles_versions.php3 17 Mar 2005 11:32:21 -0000 1.12
@@ -254,17 +254,17 @@
   else {
     echo "<div $dir_lang><b>";
     $revision_nbsp = ($options == "avancees"); // a regler pour relecture des nbsp dans les articles
- echo justifier(propre($chapo));
+ echo justifier(propre_diff($chapo));
     echo "</b></div>\n\n";
   
     echo "<div $dir_lang>";
- echo justifier(propre($texte));
+ echo justifier(propre_diff($texte));
     echo "</div>";
   
     if ($ps) {
       echo debut_cadre_enfonce();
       echo "<div $dir_lang><font size='2' face='Verdana,Arial,Sans,sans-serif'>";
- echo justifier("<b>"._T('info_ps')."</b> ".propre($ps));
+ echo justifier("<b>"._T('info_ps')."</b> ".propre_diff($ps));
       echo "</font></div>";
       echo fin_cadre_enfonce();
     }

Index: inc_suivi_revisions.php

RCS file: /home/spip-cvs/spip/ecrire/inc_suivi_revisions.php,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- inc_suivi_revisions.php 16 Mar 2005 22:36:54 -0000 1.16
+++ inc_suivi_revisions.php 17 Mar 2005 11:32:21 -0000 1.17
@@ -92,7 +92,7 @@
         WHERE id_auteur = $id_auteur";
       $result_auteur = spip_query($query_auteur);
       if ($row_auteur = spip_fetch_array($result_auteur)) {
- $nom = propre($row_auteur["nom"]);
+ $nom = typo($row_auteur["nom"]);
         if (strlen($nom) > 0) $nom = "($nom)";
       }
   
@@ -102,7 +102,7 @@
       echo "<div class='tr_liste' style='padding: 5px; border-top: 1px solid #aaaaaa;'>";
   
       echo "<span class='arial2'>";
- if (!$court) echo bouton_block_invisible("$id_version-$id_article-$id_auteur");
+ if (!$court) echo bouton_block_visible("$id_version-$id_article-$id_auteur");
       echo "<img src='" . _DIR_IMG_PACK . "$logo_statut' border='0'>&nbsp;";
       echo "<a class='$statut' style='font-weight: bold;' href='articles_versions.php3?id_article=$id_article'>$titre</a>";
       echo "</span>";
@@ -163,12 +163,16 @@
           }
         }
         
- echo debut_block_invisible("$id_version-$id_article-$id_auteur");
+ echo debut_block_visible("$id_version-$id_article-$id_auteur");
         if (is_array($textes))
         foreach ($textes as $var => $t) {
           if (strlen($t) > 0) {
             echo "<blockquote class='serif1'>";
- echo propre($t);
+ echo propre_diff($t);
+ if ($GLOBALS['les_notes']) {
+ echo '<p>'.$GLOBALS['les_notes'];
+ $GLOBALS['les_notes'] = '';
+ }
             echo "</blockquote>";
           }
         }

Index: lab_revisions.php

RCS file: /home/spip-cvs/spip/ecrire/lab_revisions.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- lab_revisions.php 14 Feb 2005 09:02:06 -0000 1.2
+++ lab_revisions.php 17 Mar 2005 11:32:21 -0000 1.3
@@ -459,4 +459,47 @@
   return $id_version_new;
}

+// les textes "diff" ne peuvent pas passer dans propre directement,
+// car ils contiennent des <span> et <div> parfois mal places
+function propre_diff($texte) {
+
+ $span_diff = array();
+ if (preg_match_all(',</?(span|div) (class|rem)="diff-[^>]+>,', $texte, $regs, PREG_SET_ORDER)) {
+ foreach ($regs as $c => $reg)
+ $texte = str_replace($reg[0], '@@@SPIP_DIFF'.$c.'@@@', $texte);
+ }
+
+ // [ ...<span diff> -> lien ]
+ // < tag <span diff> >
+ $texte = preg_replace(',<([^>]*@@@SPIP_DIFF[0-9]+@@@),',
+ '&lt;\1', $texte);
+ # attention ici astuce seulement deux @@ finals car on doit eviter
+ # deux patterns a suivre, afin de pouvoir prendre [ mais eviter [[
+ $texte = preg_replace(',(^|[^)[([^[\]]*@@@SPIP_DIFF[0-9]+@@),',
+ '\1&#91;\2', $texte);
+
+ $texte = propre($texte);
+
+ // un blockquote mal ferme peut gener l'affichage, et title plante safari
+ $texte = preg_replace(',<(/?(blockquote|title)[^>]*)>,i', '&lt;\1>', $texte);
+
+ // Dans les <cadre> c'est un peu plus complique
+ if (preg_match_all(',<textarea (.*)</textarea>,Uims', $texte, $area, PREG_SET_ORDER)) {
+ foreach ($area as $reg) {
+ $remplace = preg_replace(',@@@SPIP_DIFF[0-9]+@@@,', '**', $reg[0]);
+ if ($remplace <> $reg[0])
+ $texte = str_replace($reg[0], $remplace, $texte);
+ }
+ }
+
+ // replacer les valeurs des <span> et <div> diff-
+ if (is_array($regs))
+ foreach ($regs as $c => $reg) {
+ $texte = str_replace('@@@SPIP_DIFF'.$c.'@@@', $reg[0], $texte);
+ $GLOBALS['les_notes'] = str_replace('@@@SPIP_DIFF'.$c.'@@@', $reg[0], $GLOBALS['les_notes']);
+ }
+
+ return $texte;
+}
+
?>