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'> ";
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]+@@@),',
+ '<\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[\2', $texte);
+
+ $texte = propre($texte);
+
+ // un blockquote mal ferme peut gener l'affichage, et title plante safari
+ $texte = preg_replace(',<(/?(blockquote|title)[^>]*)>,i', '<\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;
+}
+
?>