diff --git a/mod/forum/discuss.php b/mod/forum/discuss.php index 181b5a72ba5..e521c131141 100644 --- a/mod/forum/discuss.php +++ b/mod/forum/discuss.php @@ -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); diff --git a/mod/forum/lib.php b/mod/forum/lib.php index cfec0c44e4f..5bcdb1a087a 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -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