mod-forum MDL-25113 Fixed up navigation for forum when browsing a discussion.

This commit is contained in:
Sam Hemelryk
2010-11-09 08:59:53 +00:00
parent 99fa98899b
commit 01d0aceb64
2 changed files with 20 additions and 39 deletions
+18 -38
View File
@@ -37,35 +37,13 @@
if ($parent !== 0) {
$url->param('parent', $parent);
}
if ($mode !== 0) {
$url->param('mode', $mode);
}
if ($move !== 0) {
$url->param('move', $move);
}
if ($mark !== '') {
$url->param('mark', $mark);
}
if ($postid !== 0) {
$url->param('postid', $postid);
}
$PAGE->set_url($url);
if (!$discussion = $DB->get_record('forum_discussions', array('id' => $d))) {
print_error('invaliddiscussionid', 'forum');
}
$discussion = $DB->get_record('forum_discussions', array('id' => $d), '*', MUST_EXIST);
$course = $DB->get_record('course', array('id' => $discussion->course), '*', MUST_EXIST);
$forum = $DB->get_record('forum', array('id' => $discussion->forum), '*', MUST_EXIST);
$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id, false, MUST_EXIST);
if (!$course = $DB->get_record('course', array('id' => $discussion->course))) {
print_error('invalidcourseid');
}
if (!$forum = $DB->get_record('forum', array('id' => $discussion->forum))) {
echo $OUTPUT->notification("Bad forum ID stored in this discussion");
}
if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
print_error('invalidcoursemodule');
}
require_course_login($course, true, $cm);
/// Add ajax-related libs
@@ -74,7 +52,7 @@
$PAGE->requires->yui2_lib('json');
// move this down fix for MDL-6926
require_once('lib.php');
require_once($CFG->dirroot.'/mod/forum/lib.php');
$modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
require_capability('mod/forum:viewdiscussion', $modcontext, NULL, true, 'noviewdiscussionspermission', 'forum');
@@ -116,8 +94,7 @@
print_error('cannotmovenotvisible', 'forum', $return);
}
require_capability('mod/forum:startdiscussion',
get_context_instance(CONTEXT_MODULE,$cmto->id));
require_capability('mod/forum:startdiscussion', get_context_instance(CONTEXT_MODULE,$cmto->id));
if (!forum_move_attachments($discussion, $forum->id, $forumto->id)) {
echo $OUTPUT->notification("Errors occurred while moving attachment directories - check your file permissions");
@@ -127,7 +104,7 @@
add_to_log($course->id, 'forum', 'move discussion', "discuss.php?d=$discussion->id", $discussion->id, $cmto->id);
require_once($CFG->libdir.'/rsslib.php');
require_once('rsslib.php');
require_once($CFG->dirroot.'/mod/forum/rsslib.php');
// Delete the RSS files for the 2 forums to force regeneration of the feeds
forum_rss_delete_file($forum);
@@ -136,12 +113,7 @@
redirect($return.'&moved=-1&sesskey='.sesskey());
}
$logparameters = "d=$discussion->id";
if ($parent) {
$logparameters .= "&parent=$parent";
}
add_to_log($course->id, 'forum', 'view discussion', "discuss.php?$logparameters", $discussion->id, $cm->id);
add_to_log($course->id, 'forum', 'view discussion', $PAGE->url->out(false), $discussion->id, $cm->id);
unset($SESSION->fromdiscussion);
@@ -182,9 +154,17 @@
$searchform = forum_search_form($course);
if ($parent != $discussion->firstpost) {
$PAGE->navbar->add(format_string($post->subject));
$forumnode = $PAGE->navigation->find($cm->id, navigation_node::TYPE_ACTIVITY);
if (empty($forumnode)) {
$forumnode = $PAGE->navbar;
} else {
$forumnode->display = false;
}
$node = $forumnode->add(format_string($discussion->name), new moodle_url('/mod/forum/discuss.php', array('d'=>$discussion->id)));
if ($node && $post->id != $discussion->firstpost) {
$node->add(format_string($post->subject), $PAGE->url);
}
$PAGE->set_title("$course->shortname: ".format_string($discussion->name));
$PAGE->set_heading($course->fullname);
$PAGE->set_button($searchform);
+2 -1
View File
@@ -7405,7 +7405,7 @@ function forum_get_extra_capabilities() {
* @param stdClass $module
* @param stdClass $cm
*/
/*************************************************
function forum_extend_navigation($navref, $course, $module, $cm) {
global $CFG, $OUTPUT, $USER;
@@ -7457,6 +7457,7 @@ function forum_extend_navigation($navref, $course, $module, $cm) {
}
}
}
*************************/
/**
* Adds module specific settings to the settings block