diff --git a/mod/wiki/ewiki/ewiki.php b/mod/wiki/ewiki/ewiki.php
index 91f5d20d264..073069beff7 100644
--- a/mod/wiki/ewiki/ewiki.php
+++ b/mod/wiki/ewiki/ewiki.php
@@ -594,6 +594,7 @@ function ewiki_page($id=false) {
$pf($o, $id, $data, $action);
}
}
+
(EWIKI_ESCAPE_AT) && ($o = str_replace("@", "@", $o));
return($o);
diff --git a/mod/wiki/view.php b/mod/wiki/view.php
index b11ad4f9d34..b5681c027e2 100644
--- a/mod/wiki/view.php
+++ b/mod/wiki/view.php
@@ -299,7 +299,7 @@
if ($canedit) { /// Print tabs with commands for this page
$tabstyle = ' style="padding-left: 5px;padding-right: 5px" ';
- echo "
";
+ echo "";
echo "";
$tabs = array('view', 'edit','links','info');
if ($binary) {
@@ -319,14 +319,19 @@
echo "
";
}
print_simple_box_start( "right", "100%", "$THEME->cellcontent", "20");
- if($ewiki_action=="edit") {
- # When editing, the filters shall not interfere the wiki-source
- print $content.$content2;
- } else {
- //print(format_text($content, $moodle_format)); /// DISABLED UNTIL IT CAN BE FIXED
- print $content;
- print $content2;
+
+ /// Don't filter any pages containing wiki actions (except view). A wiki page containing
+ /// actions will have the form [action]/[pagename]. If the '/' isn't there, or the action
+ /// is 'view', filter it. Also, if the page doesn't exist, it will default to 'edit'.
+ $actions = explode('/', $wikipage);
+ if ($ewiki_action == "edit" || ($actions !== false && count($actions) > 1 && $actions[0] != 'view') ||
+ (count($actions) == 1 && !record_exists('wiki_pages', 'pagename', $wikipage, 'wiki', $wiki_entry->id))) {
+ print $content;
}
+ else {
+ print(format_text($content, $moodle_format)); /// DISABLED UNTIL IT CAN BE FIXED
+ }
+ print $content2;
print_simple_box_end();
echo "
";