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