optional_variable($id); // Course Module ID, or
- optional_variable($wikipage); // Pagename
+ optional_variable($page, false); // Pagename
optional_variable($confirm, "");
optional_variable($action,""); // Admin Action
- optional_variable($userid); // User wiki.
- optional_variable($groupid); // Group wiki.
+ optional_variable($userid, 0); // User wiki.
+ optional_variable($groupid, 0); // Group wiki.
if ($id) {
if (! $cm = get_record("course_modules", "id", $id)) {
/// Build the ewsiki script constant
$ewbase = 'view.php?id='.$id;
- if (isset($userid)) $ewbase .= '&userid='.$userid;
- if (isset($groupid)) $ewbase .= '&groupid='.$groupid;
- $ewscript = $ewbase.'&wikipage=';
+ if (isset($userid) && $userid!=0) $ewbase .= '&userid='.$userid;
+ if (isset($groupid) && $groupid!=0) $ewbase .= '&groupid='.$groupid;
+ $ewscript = $ewbase.'&page=';
define("EWIKI_SCRIPT", $ewscript);
if($wiki->ewikiacceptbinary) {
define("EWIKI_UPLOAD_MAXSIZE", get_max_upload_file_size());
break;
}
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";
+ $link="admin.php?action=$action".($userid?"&userid=".$userid:"").($groupid?"&groupid=".$groupid:"")."&id=$id&page=$page";
switch($action) {
case "removepages":
if($form->proceed) {
}
/// Actions which need a confirmation. If confirmed, do the action
- $redirect="view.php?userid=$userid&groupid=$groupid&id=$id&wikipage=$wikipage";
+ $redirect="view.php?".($groupid?"&groupid=".$groupid:"").($userid?"&userid=".$userid:"")."&id=$id&page=$page";
if($confirm && !$err) {
switch($action) {
case "removepages":
/// Administrative Links
echo '<td align="center">';
- wiki_print_administration_actions($wiki, $cm->id, $userid, $groupid, $wikipage, $wiki->htmlmode!=2, $course);
+ wiki_print_administration_actions($wiki, $cm->id, $userid, $groupid, $page, $wiki->htmlmode!=2, $course);
echo '</td>';
# if($wiki->htmlmode!=2) {
-<?PHP // $Id$\r //This function provides automatic linking to\r //wiki pages when its page title is found inside every Moodle text\r //It's based in the glosssary filter by Williams Castillo\r //Modifications by mchurch. Enjoy! :-)\r\r require_once($CFG->dirroot.'/mod/wiki/lib.php');\r\r function wiki_filter($courseid, $text) {\r\r global $CFG;\r\r if (empty($courseid)) {\r if ($site = get_site()) {\r $courseid = $site->id;\r }\r }\r\r if (!($course = get_record('course', 'id', $courseid))) {\r return $text;\r }\r\r// Get all wikis for this course.\r $wikis = wiki_get_course_wikis($courseid);\r if (empty($wikis)) {\r return $text;\r }\r\r// Walk through each wiki, and get entries.\r foreach ($wikis as $wiki) {\r if ($wiki_entries = wiki_get_entries($wiki)) {\r\r// Walk through each entry and get the pages.\r foreach ($wiki_entries as $wiki_entry) {\r if ($wiki_pages = get_records('wiki_pages', 'wiki', $wiki_entry->id)) {\r\r// Walk through each page and filter.\r foreach ($wiki_pages as $wiki_page) {\r $startlink = '<a class="autolink" title="Wiki" href="'\r .$CFG->wwwroot.'/mod/wiki/view.php?wid='.$wiki->id\r .'&userid='.$wiki_entry->userid\r .'&groupid='.$wiki_entry->groupid\r .'&wikipage='.$wiki_page->pagename.'">';\r $text = wiki_link_names($text, $wiki_page->pagename, $startlink, '</a>');\r }\r }\r }\r }\r }\r\r return $text;\r }\r\r function wiki_link_names($text,$name,$href_tag_begin,$href_tag_end = "</a>") {\r\r $list_of_words_cp = strip_tags($name);\r\r $list_of_words_cp = trim($list_of_words_cp,'|');\r\r $list_of_words_cp = trim($list_of_words_cp);\r\r $list_of_words_cp = preg_quote($list_of_words_cp,'/');\r\r $invalidprefixs = "([a-zA-Z0-9])";\r $invalidsufixs = "([a-zA-Z0-9])";\r\r //Avoid seaching in the string if it's inside invalidprefixs and invalidsufixs\r $words = array();\r $regexp = '/'.$invalidprefixs.'('.$list_of_words_cp.')|('.$list_of_words_cp.')'.$invalidsufixs.'/is';\r preg_match_all($regexp,$text,$list_of_words);\r\r foreach (array_unique($list_of_words[0]) as $key=>$value) {\r $words['<*'.$key.'*>'] = $value;\r }\r\r if (!empty($words)) {\r $text = str_replace($words,array_keys($words),$text);\r }\r\r //Now avoid searching inside the <nolink>tag\r $excludes = array();\r preg_match_all('/<nolink>(.+?)<\/nolink>/is',$text,$list_of_excludes);\r foreach (array_unique($list_of_excludes[0]) as $key=>$value) {\r $excludes['<+'.$key.'+>'] = $value;\r }\r\r if (!empty($excludes)) {\r $text = str_replace($excludes,array_keys($excludes),$text);\r }\r\r //Now avoid searching inside links\r $links = array();\r preg_match_all('/<A[\s](.+?)>(.+?)<\/A>/is',$text,$list_of_links);\r foreach (array_unique($list_of_links[0]) as $key=>$value) {\r $links['<@'.$key.'@>'] = $value;\r }\r\r if (!empty($links)) {\r $text = str_replace($links,array_keys($links),$text);\r }\r\r //Now avoid searching inside every tag\r $final = array();\r preg_match_all('/<(.+?)>/is',$text,$list_of_tags);\r foreach (array_unique($list_of_tags[0]) as $key=>$value) {\r $final['<|'.$key.'|>'] = $value;\r }\r\r if (!empty($final)) {\r $text = str_replace($final,array_keys($final),$text);\r }\r\r $text = preg_replace('/('.$list_of_words_cp.')/is', $href_tag_begin.'$1'.$href_tag_end,$text);\r\r //Now rebuild excluded areas\r if (!empty($final)) {\r $text = str_replace(array_keys($final),$final,$text);\r }\r\r if (!empty($links)) {\r $text = str_replace(array_keys($links),$links,$text);\r }\r\r if (!empty($excludes)) {\r $text = str_replace(array_keys($excludes),$excludes,$text);\r }\r\r if (!empty($words)) {\r $text = str_replace(array_keys($words),$words,$text);\r }\r\r return $text;\r }\r?>
\ No newline at end of file
+<?PHP // $Id$\r //This function provides automatic linking to\r //wiki pages when its page title is found inside every Moodle text\r //It's based in the glosssary filter by Williams Castillo\r //Modifications by mchurch. Enjoy! :-)\r\r require_once($CFG->dirroot.'/mod/wiki/lib.php');\r\r function wiki_filter($courseid, $text) {\r\r global $CFG;\r\r if (empty($courseid)) {\r if ($site = get_site()) {\r $courseid = $site->id;\r }\r }\r\r if (!($course = get_record('course', 'id', $courseid))) {\r return $text;\r }\r\r// Get all wikis for this course.\r $wikis = wiki_get_course_wikis($courseid);\r if (empty($wikis)) {\r return $text;\r }\r\r// Walk through each wiki, and get entries.\r foreach ($wikis as $wiki) {\r if ($wiki_entries = wiki_get_entries($wiki)) {\r\r// Walk through each entry and get the pages.\r foreach ($wiki_entries as $wiki_entry) {\r if ($wiki_pages = get_records('wiki_pages', 'wiki', $wiki_entry->id)) {\r\r// Walk through each page and filter.\r foreach ($wiki_pages as $wiki_page) {\r $startlink = '<a class="autolink" title="Wiki" href="'\r .$CFG->wwwroot.'/mod/wiki/view.php?wid='.$wiki->id\r .'&userid='.$wiki_entry->userid\r .'&groupid='.$wiki_entry->groupid\r .'&page='.$wiki_page->pagename.'">';\r $text = wiki_link_names($text, $wiki_page->pagename, $startlink, '</a>');\r }\r }\r }\r }\r }\r\r return $text;\r }\r\r function wiki_link_names($text,$name,$href_tag_begin,$href_tag_end = "</a>") {\r\r $list_of_words_cp = strip_tags($name);\r\r $list_of_words_cp = trim($list_of_words_cp,'|');\r\r $list_of_words_cp = trim($list_of_words_cp);\r\r $list_of_words_cp = preg_quote($list_of_words_cp,'/');\r\r $invalidprefixs = "([a-zA-Z0-9])";\r $invalidsufixs = "([a-zA-Z0-9])";\r\r //Avoid seaching in the string if it's inside invalidprefixs and invalidsufixs\r $words = array();\r $regexp = '/'.$invalidprefixs.'('.$list_of_words_cp.')|('.$list_of_words_cp.')'.$invalidsufixs.'/is';\r preg_match_all($regexp,$text,$list_of_words);\r\r foreach (array_unique($list_of_words[0]) as $key=>$value) {\r $words['<*'.$key.'*>'] = $value;\r }\r\r if (!empty($words)) {\r $text = str_replace($words,array_keys($words),$text);\r }\r\r //Now avoid searching inside the <nolink>tag\r $excludes = array();\r preg_match_all('/<nolink>(.+?)<\/nolink>/is',$text,$list_of_excludes);\r foreach (array_unique($list_of_excludes[0]) as $key=>$value) {\r $excludes['<+'.$key.'+>'] = $value;\r }\r\r if (!empty($excludes)) {\r $text = str_replace($excludes,array_keys($excludes),$text);\r }\r\r //Now avoid searching inside links\r $links = array();\r preg_match_all('/<A[\s](.+?)>(.+?)<\/A>/is',$text,$list_of_links);\r foreach (array_unique($list_of_links[0]) as $key=>$value) {\r $links['<@'.$key.'@>'] = $value;\r }\r\r if (!empty($links)) {\r $text = str_replace($links,array_keys($links),$text);\r }\r\r //Now avoid searching inside every tag\r $final = array();\r preg_match_all('/<(.+?)>/is',$text,$list_of_tags);\r foreach (array_unique($list_of_tags[0]) as $key=>$value) {\r $final['<|'.$key.'|>'] = $value;\r }\r\r if (!empty($final)) {\r $text = str_replace($final,array_keys($final),$text);\r }\r\r $text = preg_replace('/('.$list_of_words_cp.')/is', $href_tag_begin.'$1'.$href_tag_end,$text);\r\r //Now rebuild excluded areas\r if (!empty($final)) {\r $text = str_replace(array_keys($final),$final,$text);\r }\r\r if (!empty($links)) {\r $text = str_replace(array_keys($links),$links,$text);\r }\r\r if (!empty($excludes)) {\r $text = str_replace(array_keys($excludes),$excludes,$text);\r }\r\r if (!empty($words)) {\r $text = str_replace(array_keys($words),$words,$text);\r }\r\r return $text;\r }\r?>
\ No newline at end of file
$pagename = $defpagename;
}
- $key = $ME.'?id='.$id.'&userid='.$student->id.'&wikipage='.$pagename;
+ $key = $ME.'?id='.$id.'&userid='.$student->id.'&page='.$pagename;
$wikis[$key] = fullname($student).':'.$pagename;
}
}
$pagename = $defpagename;
}
- $key = $ME.'?id='.$id.'&userid='.$student->id.'&wikipage='.$pagename;
+ $key = $ME.'?id='.$id.'&userid='.$student->id.'&page='.$pagename;
$wikis[$key] = fullname($student).':'.$pagename;
}
}
else {
$pagename = $defpagename;
}
- $key = $ME.'?id='.$id.'&userid='.$student->id.'&wikipage='.$pagename;
+ $key = $ME.'?id='.$id.'&userid='.$student->id.'&page='.$pagename;
$wikis[$key] = fullname($student).':'.$pagename;
}
}
$wiki_entries = get_records_sql($sql);
$wiki_entries=is_array($wiki_entries)?$wiki_entries:array();
foreach ($wiki_entries as $wiki_entry) {
- $key = $ME.'?id='.$id.'&userid='.$wiki_entry->userid.'&wikipage='.$wiki_entry->pagename;
+ $key = $ME.'?id='.$id.'&userid='.$wiki_entry->userid.'&page='.$wiki_entry->pagename;
$wikis[$key] = fullname($wiki_entry).':'.$wiki_entry->pagename;
if ($currentid == $wiki_entry->id) {
$wikis['selected'] = $key;
$wiki_entries=is_array($wiki_entries)?$wiki_entries:array();
foreach ($wiki_entries as $wiki_entry) {
if (($viewall === true) or ismember($viewall, $wiki_entry->userid)) {
- $key = $ME.'?id='.$id.'&userid='.$wiki_entry->userid.'&wikipage='.$wiki_entry->pagename;
+ $key = $ME.'?id='.$id.'&userid='.$wiki_entry->userid.'&page='.$wiki_entry->pagename;
$wikis[$key] = fullname($wiki_entry).':'.$wiki_entry->pagename;
if ($currentid == $wiki_entry->id) {
$wikis['selected'] = $key;
$pagename = $defpagename;
}
- $key = $ME.'?id='.$id.'&groupid='.$group->id.'&wikipage='.$pagename;
+ $key = $ME.'?id='.$id.($group->id?"&groupid=".$group->id:"").'&page='.$pagename;
$wikis[$key] = $group->name.':'.$pagename;
}
}
$wiki_entries = get_records_sql($sql);
$wiki_entries=is_array($wiki_entries)?$wiki_entries:array();
foreach ($wiki_entries as $wiki_entry) {
- $key = $ME.'?id='.$id.'&groupid='.$wiki_entry->groupid.'&wikipage='.$wiki_entry->pagename;
+ $key = $ME.'?id='.$id.($wiki_entry->groupid?"&groupid=".$wiki_entry->groupid:"").'&page='.$wiki_entry->pagename;
$wikis[$key] = $wiki_entry->gname.':'.$wiki_entry->pagename;
if ($currentid == $wiki_entry->id) {
$wikis['selected'] = $key;
$pagename = $defpagename;
}
- $key = $ME.'?id='.$id.'&groupid='.$group->id.'&wikipage='.$pagename;
+ $key = $ME.'?id='.$id.($group->id?"&groupid=".$group->id:"").'&page='.$pagename;
$wikis[$key] = $group->name.':'.$pagename;
}
}
$wiki_entries = get_records_sql($sql);
$wiki_entries=is_array($wiki_entries)?$wiki_entries:array();
foreach ($wiki_entries as $wiki_entry) {
- $key = $ME.'?id='.$id.'&groupid='.$wiki_entry->groupid.'&wikipage='.$wiki_entry->pagename;
+ $key = $ME.'?id='.$id.($wiki_entry->groupid?"&groupid=".$wiki_entry->groupid:"").'&page='.$wiki_entry->pagename;
$wikis[$key] = $wiki_entry->gname.':'.$wiki_entry->pagename;
if ($currentid == $wiki_entry->id) {
$wikis['selected'] = $key;
$wiki_entries=is_array($wiki_entries)?$wiki_entries:array();
foreach ($wiki_entries as $wiki_entry) {
if (($viewall === true) or $viewall == $wiki_entry->groupid) {
- $key = $ME.'?id='.$id.'&groupid='.$wiki_entry->groupid.'&wikipage='.$wiki_entry->pagename;
+ $key = $ME.'?id='.$id.($wiki_entry->groupid?"&groupid=".$wiki_entry->groupid:"").'&page='.$wiki_entry->pagename;
$wikis[$key] = $wiki_entry->gname.':'.$wiki_entry->pagename;
if ($currentid == $wiki_entry->id) {
$wikis['selected'] = $key;
$output = $output.($userid?"<input name=\"userid\" type=\"hidden\" value=\"$userid\">":"");
$output .= "<input name=\"q\" type=\"text\" size=\"20\" value=\"$search\">".' ';
$output .= "</font>";
- $output .= "<input name=\"wikipage\" type=\"hidden\" value=\"SearchPages\">";
+ $output .= "<input name=\"page\" type=\"hidden\" value=\"SearchPages\">";
$output .= "</form>";
if ($return) {
}
function wiki_print_wikilinks_block($cmid, $binary=false, $return=false) {
-/// Prints a lin-list of special wiki-pages
+/// Prints a link-list of special wiki-pages
global $CFG, $ewiki_title;
$links=array();
popup_form(EWIKI_SCRIPT, $links, "wikilinks", "", get_string("choosewikilinks", "wiki"), "", "", $return);
}
-function wiki_print_page_actions($cmid, $specialpages, $wikipage, $action, $binary=false, $canedit=true) {
+function wiki_print_page_actions($cmid, $specialpages, $page, $action, $binary=false, $canedit=true) {
/// Displays actions which can be performed on the page
$page=array();
// Edit this Page
if (in_array($action, array("edit", "links", "info", "attachments"))) {
- $page["view/$wikipage"]=get_string("viewpage","wiki");
+ $page["view/$page"]=get_string("viewpage","wiki");
}
- if ($canedit && !in_array($wikipage, $specialpages) && $action != "edit") {
- $page["edit/$wikipage"]=get_string("editthispage","wiki");
+ if ($canedit && !in_array($page, $specialpages) && $action != "edit") {
+ $page["edit/$page"]=get_string("editthispage","wiki");
}
if ($action != "links") {
- $page["links/$wikipage"]=get_string("backlinks","wiki");
+ $page["links/$page"]=get_string("backlinks","wiki");
}
- if ($canedit && !in_array($wikipage, $specialpages) && $action!="info") {
- $page["info/$wikipage"]=get_string("pageinfo","wiki");
+ if ($canedit && !in_array($page, $specialpages) && $action!="info") {
+ $page["info/$page"]=get_string("pageinfo","wiki");
}
- if($canedit && $binary && !in_array($wikipage, $specialpages) && $action != "attachments") {
- $page["attachments/$wikipage"]=get_string("attachments","wiki");
+ if($canedit && $binary && !in_array($page, $specialpages) && $action != "attachments") {
+ $page["attachments/$page"]=get_string("attachments","wiki");
}
popup_form(EWIKI_SCRIPT, $page, "wikiactions", "", get_string("action", "wiki"), "", "", false);
}
-function wiki_print_administration_actions($wiki, $cmid, $userid, $groupid, $wikipage, $noeditor, $course) {
+function wiki_print_administration_actions($wiki, $cmid, $userid, $groupid, $page, $noeditor, $course) {
/// Displays actions which can be performed on the page
global $ME;
/// Create the URL
$ewscript = 'admin.php?id='.$cmid;
- if (isset($userid)) $ewscript .= '&userid='.$userid;
- if (isset($groupid)) $ewscript .= '&groupid='.$groupid;
- if (isset($wikipage)) $ewscript .= '&wikipage='.$wikipage;
+ if (isset($userid) && $userid!=0) $ewscript .= '&userid='.$userid;
+ if (isset($groupid) && $groupid!=0) $ewscript .= '&groupid='.$groupid;
+ if (isset($page)) $ewscript .= '&page='.$page;
$ewscript.="&action=";
optional_variable($ewiki_action,""); // Action on Wiki-Page
optional_variable($id); // Course Module ID, or
optional_variable($wid); // Wiki ID
- optional_variable($wikipage, false); // Wiki Page Name
+ optional_variable($page, false); // Wiki Page Name
optional_variable($q,""); // Search Context
- optional_variable($userid); // User wiki.
- optional_variable($groupid); // Group wiki.
+ optional_variable($userid, 0); // User wiki.
+ optional_variable($groupid, 0); // Group wiki.
optional_variable($canceledit,""); // Editing has been cancelled
if($canceledit) {
- @$wikipage=$ewiki_id;
+ @$page=$ewiki_id;
}
if ($id) {
define("EWIKI_PAGE_INDEX",$wiki_entry->pagename);
/// If the page has a ' in it, it may have slashes added to it. Remove them if it does.
- $wikipage = ($wikipage === false) ? stripslashes(EWIKI_PAGE_INDEX) : stripslashes($wikipage);
+ $page = ($page === false) ? stripslashes(EWIKI_PAGE_INDEX) : stripslashes($page);
-/// ### Prevent ewiki getting id as PageID...
+/// # Prevent ewiki getting id as PageID...
unset($_REQUEST["id"]);
unset($_GET["id"]);
unset($_POST["id"]);
/// Build the ewsiki script constant
/// ewbase will also be needed by EWIKI_SCRIPT_BINARY
$ewbase = $ME.'?id='.$moodleID;
- if (isset($userid)) $ewbase .= '&userid='.$userid;
- if (isset($groupid)) $ewbase .= '&groupid='.$groupid;
- $ewscript = $ewbase.'&wikipage=';
+ if (isset($userid) && $userid!=0) $ewbase .= '&userid='.$userid;
+ if (isset($groupid) && $groupid!=0) $ewbase .= '&groupid='.$groupid;
+ $ewscript = $ewbase.'&page=';
define("EWIKI_SCRIPT", $ewscript);
define("EWIKI_SCRIPT_URL", $ewscript);
global $ewiki_author, $USER;
$ewiki_author=fullname($USER);
- $content=ewiki_page($wikipage);
+ $content=ewiki_page($page);
$content2='';
### RESTORE ID from Moodle
}
- # Group wiki, ...: No wikipage and no ewiki_title
+ # Group wiki, ...: No page and no ewiki_title
if(!isset($ewiki_title)) {
$ewiki_title="";
}
/// Moodle Log
- add_to_log($course->id, "wiki", $ewiki_action, "view.php?id=$cm->id&groupid=$groupid&userid=$userid&wikipage=$wikipage", $wiki->name." ".$ewiki_title);
+ add_to_log($course->id, "wiki", $ewiki_action, "view.php?id=$cm->id&groupid=$groupid&userid=$userid&page=$page", $wiki->name." ".$ewiki_title);
/// Print the page header
}
foreach ($tabs as $tab) {
$tabname = get_string("tab$tab", 'wiki');
- if ($ewiki_action != "$tab" && !in_array($wikipage, $specialpages)) {
+ if ($ewiki_action != "$tab" && !in_array($page, $specialpages)) {
echo '<td class="generaltab" '.$tabstyle.' bgcolor="'.$THEME->cellheading.'">';
- echo '<a href="'.$ewbase.'&wikipage='.$tab.'/'.$ewiki_id.'">'.$tabname.'</a>';
+ echo '<a href="'.$ewbase.'&page='.$tab.'/'.$ewiki_id.'">'.$tabname.'</a>';
echo '</td>';
} else {
echo '<td class="generaltabselected" '.$tabstyle.' bgcolor="'.$THEME->cellcontent.'">'.$tabname.'</td>';
/// 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);
+ $actions = explode('/', $page);
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))) {
+ (count($actions) == 1 && !record_exists('wiki_pages', 'pagename', $page, 'wiki', $wiki_entry->id))) {
print $content;
}
else {