Skip to content
Browse files

Better fix for Bug #1530 - Wiki diffs useless when using HTML editor

  • Loading branch information...
1 parent 269f7a3 commit bc1f9c7349c23eb36f26a9d8d5257dfe921c7161 skaldrom committed
Showing with 34 additions and 18 deletions.
  1. +1 −0 lang/en/wiki.php
  2. +2 −1 mod/wiki/TODO.txt
  3. +2 −2 mod/wiki/admin.php
  4. +1 −1 mod/wiki/ewiki/ewiki.php
  5. +28 −14 mod/wiki/ewiki/plugins/moodle/diff.php
View
1 lang/en/wiki.php
@@ -172,6 +172,7 @@
$string['pageslinkingto']="Pages linking to this page";
$string['viewsmfor']="View sitemap for";
$string['smfor']="Sitemap for";
+$string['uplinsect']="Upload into";
$string['invalidroot']="You are not authorized to access the current root page so no sitemap can be created.";
$string['thispageisntlinkedfromanywhereelse'] = 'This page isn\'t linked from anywhere else.';
View
3 mod/wiki/TODO.txt
@@ -8,7 +8,8 @@ Mike:
- Grading
Michael:
- - More Logging
+ - Upload: There is an error when having a bin html-wiki: File does not show up
+ - Log when up- or download
- Notify when page changes
Unassigned or not ready:
View
4 mod/wiki/admin.php
@@ -78,7 +78,7 @@
# Check for dangerous events (hacking) !
if(in_array($action,array("removepages","strippages","revertpages"))) {
if(!($wiki->wtype=="student" || isteacher($course->id))) {
- add_to_log($course->id, "wiki", "hack", "", $wiki->name.": Tried to trick admin.php with $action.");
+ add_to_log($course->id, "wiki", "hack", "", $wiki->name.": Tried to trick admin.php with action=$action.");
error("Hack attack detected !");
}
}
@@ -151,7 +151,7 @@
// No additional info
break;
}
- add_to_log($course->id, "wiki", $action, "admin.php?action=$action&userid=$userid&groupid=$groupid&id=$id", $wiki->name.($addloginfo?" ".$addloginfo:""));
+ add_to_log($course->id, "wiki", $action, "admin.php?action=$action&userid=$userid&groupid=$groupid&id=$id", $wiki->name.($addloginfo?": ".$addloginfo:""));
$link="admin.php?action=$action&userid=$userid&groupid=$groupid&id=$id&wikipage=$wikipage";
switch($action) {
case "removepages":
View
2 mod/wiki/ewiki/ewiki.php
@@ -1144,7 +1144,7 @@ function ewiki_page_info($id, &$data, $action) {
##### BEGIN MOODLE ADDITION #####
$o .= '<a href="' .
ewiki_script($action, $id, array("version"=>$current["version"])) .
- '">' . get_string($title,"wiki") . '</a> ';
+ '">' . get_string($title,"wiki") . '</a>&nbsp;';
##### END MOODLE ADDITION #####
}
$o .= "</td></tr>\n";
View
42 mod/wiki/ewiki/plugins/moodle/diff.php
@@ -34,17 +34,29 @@ function ewiki_page_stupid_diff($id, $data, $action) {
# Different handling for html: closes Bug #1530 - Wiki diffs useless when using HTML editor
if($wiki->htmlmode==2) {
- $htmlendings=array("<br />","<br>","</p>","<hr />","<hr>","</li>","</tr>");
- $splitregexp="+\s*\n|\s*(".join("|",$htmlendings).")+";
- $content0=preg_replace("+(".join("|",$htmlendings).")+","\n",$data0["content"]);
- $content=preg_replace("+(".join("|",$htmlendings).")+","\n",$data["content"]);
+ $htmlendings=array("<br />","<br>","<p>","</p>","<p />","<hr />","<hr>","</li>","</tr>");
+ /// Replace <p>&nbsp;</p>
+ $content0=preg_replace("+<p>&nbsp;</p>+i","\n",$data0["content"]);
+ $content0=preg_replace("+(".join("|",$htmlendings).")+","\n",$content0);
+ $content=preg_replace("+<p>&nbsp;</p>+i","\n",$data["content"]);
+ $content=preg_replace("+(".join("|",$htmlendings).")+","\n",$content);
} else {
- $splitregexp="/\s*\n/";
$content0=$data0["content"];
$content=$data["content"];
}
- $txt0 = preg_split($splitregexp, trim($content0));
- $txt2 = preg_split($splitregexp, trim($content));
+ $txt0 = preg_split("+\s*\n+", trim($content0));
+ $txt2 = preg_split("+\s*\n+", trim($content));
+ ///print "<pre>\n";
+ ///print "\$data0[content]:\n $data0[content]\n";
+ ///print "\n\n-----------\n\n";
+ ///print "\$data[content]:\n $data[content]\n";
+ ///print "\n\n-----------\n\n";
+ ///print "\$content0:\n $content0\n";
+ ///print "\n\n-----------\n\n";
+ ///print "\$content:\n $content\n";
+ ///print "\n\n-----------\n\n";
+ ///print "</pre>";
+ ///exit;
/// Remove empty lines in html
if($wiki->htmlmode==2) {
@@ -54,14 +66,16 @@ function ewiki_page_stupid_diff($id, $data, $action) {
$txt2=array();
for($i=0;$i<count($html0);$i++) {
- if(trim(strip_tags($html0[$i]))) { // There is something !
+# $linecontent=trim(strip_tags(preg_replace("+&nbsp;+","",$html0[$i])));
+# if($linecontent) { // There is something !
$txt0[]=$html0[$i];
- }
+# }
}
for($i=0;$i<count($html2);$i++) {
- if(trim(strip_tags($html2[$i]))) { // There is something !
+# $linecontent=trim(strip_tags(preg_replace("+&nbsp;+","",$html2[$i])));
+# if($linecontent) { // There is something !
$txt2[]=$html2[$i];
- }
+# }
}
}
@@ -75,7 +89,7 @@ function ewiki_page_stupid_diff($id, $data, $action) {
$i2 = $i;
while ($rm = $diff0[$i2++]) {
if($wiki->htmlmode == 2) {
- $o .= "<br><b>-</b><font color=\"#990000\">$rm</font><br>\n";
+ $o .= "<b>-</b><font color=\"#990000\">$rm</font><br>\n";
} else {
$o .= "<b>-</b><font color=\"#990000\"><tt>$rm</tt></font><br>\n";
}
@@ -84,14 +98,14 @@ function ewiki_page_stupid_diff($id, $data, $action) {
if (in_array($line, $diff2)) {
if($wiki->htmlmode == 2) {
- $o .= "<br><b>+</b><font color=\"#009900\">$line</font>\n";
+ $o .= "<b>+</b><font color=\"#009900\">$line</font><br>\n";
} else {
$o .= "<b>+</b><font color=\"#009900\"><tt>$line</tt></font><br>\n";
}
}
else {
if($wiki->htmlmode == 2) {
- $o .= "$line\n";
+ $o .= "$line<br>\n";
} else {
$o .= "&nbsp; $line<br>\n";
}

0 comments on commit bc1f9c7

Please sign in to comment.
Something went wrong with that request. Please try again.