From e3f58dfb4eb0e5e0712fb51997f315194caa11b5 Mon Sep 17 00:00:00 2001 From: mattc-catalyst <mattc-catalyst> Date: Mon, 16 Apr 2007 21:12:29 +0000 Subject: [PATCH] Breadcrumbs: mod/forum changes - Modified to use build_navigation() for breadcrumb generation. Author: Matt Clarkson <mattc@catalyst.net.nz> --- mod/forum/discuss.php | 36 ++++++-------------- mod/forum/index.php | 12 +++---- mod/forum/markposts.php | 16 ++++----- mod/forum/post.php | 72 +++++++++++++++++++-------------------- mod/forum/search.php | 27 ++++++++------- mod/forum/settracking.php | 16 ++++----- mod/forum/subscribe.php | 19 +++++------ mod/forum/subscribers.php | 11 +++--- mod/forum/user.php | 21 ++++++------ mod/forum/view.php | 9 +++-- 10 files changed, 107 insertions(+), 132 deletions(-) diff --git a/mod/forum/discuss.php b/mod/forum/discuss.php index 171d4098e1..400b1a3055 100644 --- a/mod/forum/discuss.php +++ b/mod/forum/discuss.php @@ -97,6 +97,11 @@ unset($SESSION->fromdiscussion); + $crumbs[] = array('name' => get_string("forums", "forum"), 'link' => "../forum/index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($forum->name,true), 'link' => "../forum/view.php?f=$forum->id", 'type' => 'activityinstance'); + $crumbs[] = array('name' => format_string($discussion->name,true), 'link' => "discuss.php?d=$discussion->id", 'type' => 'title'); + + if ($mode) { set_user_preference('forum_displaymode', $mode); } @@ -107,10 +112,8 @@ if (abs($displaymode) == 1) { // If flat AND parent, then force nested display this time $displaymode = 3; } - $navtail = ''; } else { $parent = $discussion->firstpost; - $navtail = '-> '.format_string($discussion->name); } if (!forum_user_can_view_post($parent, $course, $cm, $forum, $discussion)) { @@ -131,31 +134,12 @@ } - if (empty($navtail)) { - $navtail = "-> <a href=\"discuss.php?d=$discussion->id\">". - format_string($discussion->name,true)."</a> -> ". - format_string($post->subject); - } - if ($forum->type == 'single') { - $navforum = ''; - } else { - $navforum = "<a href=\"../forum/view.php?f=$forum->id\">". - format_string($forum->name,true)."</a> "; - } - $navmiddle = "<a href=\"../forum/index.php?id=$course->id\">". - get_string("forums", "forum").'</a> -> '.$navforum; - $searchform = forum_search_form($course); - - if ($course->id != SITEID) { - print_header("$course->shortname: ".format_string($discussion->name), $course->fullname, - "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> -> - $navmiddle $navtail", "", "", true, $searchform, navmenu($course, $cm)); - } else { - print_header("$course->shortname: ".format_string($discussion->name), $course->fullname, - "$navmiddle $navtail", "", "", true, $searchform, navmenu($course, $cm)); - } - + + $navigation = build_navigation($crumbs, $course); + print_header("$course->shortname: ".format_string($discussion->name), $course->fullname, + $navigation, "", "", true, $searchform, navmenu($course, $cm)); + /// Check to see if groups are being used in this forum /// If so, make sure the current person is allowed to see this discussion diff --git a/mod/forum/index.php b/mod/forum/index.php index 1ed6565f9f..38a38c6564 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -451,15 +451,11 @@ /// Output the page - - if ($course->id != SITEID) { - print_header("$course->shortname: $strforums", $course->fullname, - "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> -> $strforums", - "", "", true, $searchform, navmenu($course)); - } else { - print_header("$course->shortname: $strforums", $course->fullname, "$strforums", + $crumbs[] = array('name' => $strforums, 'link' => '', 'type' => 'activity'); + + print_header("$course->shortname: $strforums", $course->fullname, + build_navigation($crumbs, $course), "", "", true, $searchform, navmenu($course)); - } if (!isguest()) { print_box_start('subscription'); diff --git a/mod/forum/markposts.php b/mod/forum/markposts.php index 7537506971..3fff3ddbc9 100644 --- a/mod/forum/markposts.php +++ b/mod/forum/markposts.php @@ -33,16 +33,12 @@ } $strforums = get_string('modulenameplural', 'forum'); - if ($course->id != SITEID) { - print_header($course->shortname, $course->fullname, - "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> -> - <a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a>", '', '', true, "", navmenu($course, $cm)); - } else { - print_header($course->shortname, $course->fullname, - "<a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a>", '', '', true, "", navmenu($course, $cm)); - } + $crumbs[] = array('name' => $strforums, 'link' => "index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($forum->name), 'link' => "view.php?f=$forum->id", 'type' => 'activityinstance'); + + $navigation = build_navigation($crumbs, $course, $cm); + + print_header($course->shortname, $course->fullname, $navigation, '', '', true, "", navmenu($course, $cm)); notice_yesno(get_string('noguesttracking', 'forum').'<br /><br />'.get_string('liketologin'), $wwwroot, $_SERVER['HTTP_REFERER']); print_footer($course); diff --git a/mod/forum/post.php b/mod/forum/post.php index c81c4f5e42..cfc4ca36bb 100644 --- a/mod/forum/post.php +++ b/mod/forum/post.php @@ -53,21 +53,19 @@ } $strforums = get_string('modulenameplural', 'forum'); + if (!get_referer()) { // No referer - probably coming in via email See MDL-9052 require_login(); } - if ($course->id != SITEID) { - print_header($course->shortname, $course->fullname, - "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> -> - <a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name, true)."</a>", - '', '', true, "", navmenu($course, $cm)); - } else { - print_header($course->shortname, $course->fullname, - "<a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name)."</a>", - '', '', true, "", navmenu($course, $cm)); - } + + $crumbs[] = array('name' => get_string("forums", "forum"), 'link' => "../forum/view.php?f=$forum->id", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($forum->name,true), 'link' => '../forum/index.php?id=$course->id', 'type' => 'activityinstance'); + + $navigation = build_navigation($crumbs, $course); + + + print_header($course->shortname, $course->fullname, $navigation, '' , '', true, "", navmenu($course, $cm)); + notice_yesno(get_string('noguestpost', 'forum').'<br /><br />'.get_string('liketologin'), $wwwroot, get_referer(false)); print_footer($course); @@ -404,11 +402,15 @@ $course = get_record('course', 'id', $forum->course); $strforums = get_string("modulenameplural", "forum"); - print_header_simple(format_string($discussion->name).": ".format_string($post->subject), "", - "<a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name, true)."</a> -> - <a href=\"discuss.php?d=$discussion->id\">".format_string($post->subject, true)."</a> -> ". - get_string("prune", "forum"), '', "", true, "", navmenu($course, $cm)); + + $crumbs[] = array('name' => $strforums, 'link' => "../forum/index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => $forum->name, 'link' => "view.php?f=$forum->id", 'type' => 'activityinstance'); + $crumbs[] = array('name' => format_string($post->subject, true), 'link' => "discuss.php?d=$discussion->id", 'type' => 'title'); + $crumbs[] = array('name' => get_string("prune", "forum"), 'link' => '', 'type' => 'title'); + + $navigation = build_navigation($crumbs, $course); + + print_header_simple(format_string($discussion->name).": ".format_string($post->subject), "", $navigation, '', "", true, "", navmenu($course, $cm)); print_heading(get_string('pruneheading', 'forum')); echo '<center>'; @@ -623,24 +625,25 @@ get_string("addanewdiscussion", "forum"); } + $strforums = get_string("modulenameplural", "forum"); + + + $crumbs[] = array('name' => $strforums, 'link' => "../forum/index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => $forum->name, 'link' => "view.php?f=$forum->id", 'type' => 'activityinstance'); if ($post->parent) { - $navtail = ' -> <a href="discuss.php?d='.$discussion->id.'">'.format_string($toppost->subject, true).'</a> -> '. - get_string('editing', 'forum'); - } else { - $navtail = ' -> '.format_string($toppost->subject); + $crumbs[] = array('name' => format_string($toppost->subject, true), 'link' => "discuss.php?d=$discussion->id", 'type' => 'activityinstance'); + $crumbs[] = array('name' => get_string('editing', 'forum'), 'link' => '', 'type' => 'action'); + } else { + $crumbs[] = array('name' => format_string($toppost->subject), 'link' => '', 'type' => 'action'); } if (empty($post->edit)) { $post->edit = ''; } - $strforums = get_string("modulenameplural", "forum"); - - - $navmiddle = "<a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> <a href=\"view.php?f=$forum->id\">".format_string($forum->name, true).'</a> '; - + if (empty($discussion->name)) { if (empty($discussion)) { $discussion = new object; @@ -660,19 +663,14 @@ $forcefocus = empty($reply) ? NULL : 'message'; - if ($course->id != SITEID) { - print_header("$course->shortname: $strdiscussionname ". - format_string($toppost->subject), $course->fullname, - "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> -> - $navmiddle $navtail", $mform_post->focus($forcefocus), "", true, "", navmenu($course, $cm)); - } else { - print_header("$course->shortname: $strdiscussionname ". - format_string($toppost->subject), $course->fullname, - "$navmiddle $navtail", $mform_post->focus($forcefocus), "", true, "", navmenu($course, $cm)); - - } + $navigation = build_navigation($crumbs, $course); + + print_header("$course->shortname: $strdiscussionname ". + format_string($toppost->subject), $course->fullname, + $navigation, $mform_post->focus($forcefocus), "", true, "", navmenu($course, $cm)); + // checkup if (!empty($parent) && !forum_user_can_see_post($forum, $discussion, $post)) { error("You cannot reply to this post"); diff --git a/mod/forum/search.php b/mod/forum/search.php index 6f6bd3bd0f..76c416394f 100644 --- a/mod/forum/search.php +++ b/mod/forum/search.php @@ -97,9 +97,14 @@ $strsearchresults = get_string("searchresults", "forum"); $strpage = get_string("page"); + $crumbs[] = array('name' => $strforums, 'link' => "index.php?id=$course->id", 'type' => 'activity'); + if (!$search || $showform) { - print_header_simple("$strsearch", "", - "<a href=\"index.php?id=$course->id\">$strforums</a> -> $strsearch", 'search.words', + + $crumns[] = array('name' => $strsearch, 'link' => '', 'type' => 'title'); + $navigation = build_navigation($crumbs, $course); + + print_header_simple("$strsearch", "", $navigation, 'search.words', "", "", " ", navmenu($course)); forum_print_big_search_form($course); @@ -114,13 +119,13 @@ $searchform = forum_search_form($course, $search); + $crumbs[] = array('name' => $strsearch, 'link' => "search.php?id=$course->id", 'type' => 'activityinstance'); + $crumbs[] = array('name' => s($search, true), 'link' => '', 'type' => 'link'); + $navigation = build_navigation($crumbs, $course); - if (!$posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, $totalcount)) { - print_header_simple("$strsearchresults", "", - "<a href=\"index.php?id=$course->id\">$strforums</a> -> - <a href=\"search.php?id=$course->id\">$strsearch</a> -> ".s($search, true), 'search.words', - "", "", " ", navmenu($course)); + if (!$posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, $totalcount)) { + print_header_simple("$strsearchresults", "", $navigation, 'search.words', "", "", " ", navmenu($course)); print_heading(get_string("nopostscontaining", "forum", $search)); if (!$individualparams) { @@ -132,11 +137,9 @@ print_footer($course); exit; } - - print_header_simple("$strsearchresults", "", - "<a href=\"index.php?id=$course->id\">$strforums</a> -> - <a href=\"search.php?id=$course->id\">$strsearch</a> -> ".s($search, true), '', - "", "", $searchform, navmenu($course)); + + + print_header_simple("$strsearchresults", "", $navigation, '', "", "", $searchform, navmenu($course)); echo '<div class="reportlink">'; echo '<a href="search.php?id='.$course->id. diff --git a/mod/forum/settracking.php b/mod/forum/settracking.php index 20754c3a98..81f4864c13 100644 --- a/mod/forum/settracking.php +++ b/mod/forum/settracking.php @@ -31,16 +31,12 @@ } $strforums = get_string('modulenameplural', 'forum'); - if ($course->id != SITEID) { - print_header($course->shortname, $course->fullname, - "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> -> - <a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a>", '', '', true, "", navmenu($course, $cm)); - } else { - print_header($course->shortname, $course->fullname, - "<a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a>", '', '', true, "", navmenu($course, $cm)); - } + $crumbs[] = array('name' => $strforums, 'link' => "index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($forum->name), 'link' => "view.php?f=$forum->id", 'type' => 'activityinstance'); + + $navigation = build_navigation($crumbs, $course, $cm); + + print_header($course->shortname, $course->fullname, $navigation, '', '', true, "", navmenu($course, $cm)); notice_yesno(get_string('noguesttracking', 'forum').'<br /><br />'.get_string('liketologin'), $wwwroot, $_SERVER['HTTP_REFERER']); print_footer($course); diff --git a/mod/forum/subscribe.php b/mod/forum/subscribe.php index d807d8d851..2a856986c4 100644 --- a/mod/forum/subscribe.php +++ b/mod/forum/subscribe.php @@ -50,18 +50,15 @@ if (!empty($CFG->loginhttps)) { $wwwroot = str_replace('http','https', $wwwroot); } - + $strforums = get_string('modulenameplural', 'forum'); - if ($course->id != SITEID) { - print_header($course->shortname, $course->fullname, - "<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> -> - <a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a>", '', '', true, "", navmenu($course, $cm)); - } else { - print_header($course->shortname, $course->fullname, - "<a href=\"../forum/index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a>", '', '', true, "", navmenu($course, $cm)); - } + $crumbs[] = array('name' => $strforums, 'link' => "index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($forum->name), 'link' => "view.php?f=$forum->id", 'type' => 'activityinstance'); + + $navigation = build_navigation($crumbs, $course, $cm); + + print_header($course->shortname, $course->fullname, $navigation, '', '', true, "", navmenu($course, $cm)); + notice_yesno(get_string('noguestsubscribe', 'forum').'<br /><br />'.get_string('liketologin'), $wwwroot, $_SERVER['HTTP_REFERER']); print_footer($course); diff --git a/mod/forum/subscribers.php b/mod/forum/subscribers.php index d5de7fb8b3..f8a98c86f6 100644 --- a/mod/forum/subscribers.php +++ b/mod/forum/subscribers.php @@ -36,17 +36,20 @@ $strsubscribers = get_string("subscribers", "forum"); $strforums = get_string("forums", "forum"); - $navigation = "<a href=\"index.php?id=$course->id\">$strforums</a> -> - <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a> -> $strsubscribers"; + $crumbs[] = array('name' => $strforums, 'link' => "index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($forum->name), 'link' => "view.php?f=$forum->id", 'type' => 'activityinstance'); + $crumbs[] = array('name' => $strsubscribers, 'link' => '', 'type' => 'title'); + + $navigation = build_navigation($crumbs, $course); if (has_capability('mod/forum:managesubscriptions', $context)) { - print_header_simple("$strsubscribers", "", "$navigation", + print_header_simple("$strsubscribers", "", $navigation, "", "", true, forum_update_subscriptions_button($course->id, $id)); if ($edit != -1) { $USER->subscriptionsediting = $edit; } } else { - print_header_simple("$strsubscribers", "", "$navigation", "", "", true, ''); + print_header_simple("$strsubscribers", "", $navigation, "", "", true, ''); unset($USER->subscriptionsediting); } diff --git a/mod/forum/user.php b/mod/forum/user.php index b7e87c7198..adf67daa0c 100644 --- a/mod/forum/user.php +++ b/mod/forum/user.php @@ -39,17 +39,16 @@ $strmode = get_string($mode, 'forum'); $fullname = fullname($user, has_capability('moodle/site:viewfullnames', $syscontext)); - if ($course->id != SITEID) { - print_header("$course->shortname: $fullname: $strmode", $course->fullname, - "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> -> - <a href=\"$CFG->wwwroot/user/index.php?id=$course->id\">$strparticipants</a> -> - <a href=\"$CFG->wwwroot/user/view.php?id=$user->id&course=$course->id\">$fullname</a> -> - $strforumposts -> $strmode"); - } else { - print_header("$course->shortname: $fullname: $strmode", $course->fullname, - "<a href=\"$CFG->wwwroot/user/view.php?id=$user->id&course=$course->id\">$fullname</a> -> - $strforumposts -> $strmode"); - } + // TODO: add new cookie tail here! + $crumbs[] = array('name' => $strparticipants, 'link' => "$CFG->wwwroot/user/index.php?id=$course->id", 'type' => 'core'); + $crumbs[] = array('name' => $fullname, 'link' => "$CFG->wwwroot/user/view.php?id=$user->id&course=$course->id", 'type' => 'title'); + $crumbs[] = array('name' => $strforumposts, 'link' => '', 'type' => 'title'); + $crumbs[] = array('name' => $strmode, 'link' => '', 'type' => 'title'); + + $navigation = build_navigation($crumbs, $course); + + print_header("$course->shortname: $fullname: $strmode", $course->fullname,$navigation); + $currenttab = $mode; $showroles = 1; diff --git a/mod/forum/view.php b/mod/forum/view.php index 00fcf70ffc..cb11bc83bb 100644 --- a/mod/forum/view.php +++ b/mod/forum/view.php @@ -50,7 +50,6 @@ $cm->course = $course->id; $buttontext = ""; } - } else { error('Must specify a course module or a forum ID'); } @@ -65,9 +64,13 @@ /// Print header. - $navigation = "<a href=\"index.php?id=$course->id\">$strforums</a> ->"; + $crumbs[] = array('name' => $strforums, 'link' => "index.php?id=$course->id", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($forum->name), 'link' => "view.php?f=$forum->id", 'type' => 'activityinstance'); + + $navigation = build_navigation($crumbs, $course, $cm); + print_header_simple(format_string($forum->name), "", - "$navigation ".format_string($forum->name), "", "", true, $buttontext, navmenu($course, $cm)); + $navigation, "", "", true, $buttontext, navmenu($course, $cm)); /// Some capability checks. -- 2.39.5