From: skaldrom
Date: Sun, 6 Jun 2004 15:38:25 +0000 (+0000)
Subject: May fix Bug #1530 - Wiki diffs useless when using HTML editor.
X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=5beb559572a4fa0680d78701bb1e313967232de3;p=moodle.git
May fix Bug #1530 - Wiki diffs useless when using HTML editor.
---
diff --git a/mod/wiki/ewiki/plugins/action/diff.php b/mod/wiki/ewiki/plugins/action/diff.php
deleted file mode 100755
index bcf3a46148..0000000000
--- a/mod/wiki/ewiki/plugins/action/diff.php
+++ /dev/null
@@ -1,65 +0,0 @@
- $id, "version" => $new_ver));
- }
- else {
- $new_ver = $data["version"];
- $old_ver = $new_ver - 1;
- }
- if ($old_ver > 0) {
- $data0 = ewiki_database("GET", array("id" => $id, "version" => $old_ver));
- }
-
- $o = ewiki_make_title($id, "Differences between version $new_ver and $old_ver of »{$id}«");
-
- $txt0 = preg_split("/\s*\n/", trim($data0["content"]));
- $txt2 = preg_split("/\s*\n/", trim($data["content"]));
-
- $diff0 = array_diff($txt0, $txt2);
- $diff2 = array_diff($txt2, $txt0);
-
- foreach ($txt2 as $i => $line) {
-
- $line = htmlentities($line);
-
- $i2 = $i;
- while ($rm = $diff0[$i2++]) {
- $o .= "- $rm
\n";
- unset($diff0[$i2-1]);
- }
-
- if (in_array($line, $diff2)) {
- $o .= "+ $line
\n";
- }
- else {
- $o .= " $line
\n";
- }
-
- }
-
- foreach ($diff0 as $rm) {
- $o .= "- $rm
\n";
- }
-
- return($o);
- }
-
-
-?>
\ No newline at end of file
diff --git a/mod/wiki/ewiki/plugins/moodle/diff.php b/mod/wiki/ewiki/plugins/moodle/diff.php
new file mode 100755
index 0000000000..16747d90eb
--- /dev/null
+++ b/mod/wiki/ewiki/plugins/moodle/diff.php
@@ -0,0 +1,96 @@
+ $id, "version" => $new_ver));
+ }
+ else {
+ $new_ver = $data["version"];
+ $old_ver = $new_ver - 1;
+ }
+ if ($old_ver > 0) {
+ $data0 = ewiki_database("GET", array("id" => $id, "version" => $old_ver));
+ }
+
+ $a->new_ver=$new_ver;
+ $a->old_ver=$old_ver;
+ $a->pagename=$id;
+ $o = ewiki_make_title($id, get_string("differences","wiki",$a));
+
+ # Different handling for html: closes Bug #1530 - Wiki diffs useless when using HTML editor
+ if($wiki->htmlmode==2) {
+ $htmlendings=array("
","
","
","
","
","","");
+ $splitregexp="+\s*\n|\s*(".join("|",$htmlendings).")+";
+ $content0=preg_replace("+(".join("|",$htmlendings).")+","\n",$data0["content"]);
+ $content=preg_replace("+(".join("|",$htmlendings).")+","\n",$data["content"]);
+ } else {
+ $splitregexp="/\s*\n/";
+ $content0=$data0["content"];
+ $content=$data["content"];
+ }
+ $txt0 = preg_split($splitregexp, trim($content0));
+ $txt2 = preg_split($splitregexp, trim($content));
+
+ /// Remove empty lines in html
+ if($wiki->htmlmode==2) {
+ $html0=$txt0;
+ $html2=$txt2;
+ $txt0=array();
+ $txt2=array();
+
+ for($i=0;$i $line) {
+ if($wiki->htmlmode != 2) {
+ $line = htmlentities($line);
+ }
+ $i2 = $i;
+ while ($rm = $diff0[$i2++]) {
+ $o .= "-$rm
\n";
+ unset($diff0[$i2-1]);
+ }
+
+ if (in_array($line, $diff2)) {
+ $o .= "+ $line
\n";
+ }
+ else {
+ $o .= " $line
\n";
+ }
+
+ }
+
+ foreach ($diff0 as $rm) {
+ $o .= "- $rm
\n";
+ }
+
+ return($o);
+ }
+?>
\ No newline at end of file