mod-forum MDL-25113 Fixed up navigation for forum when browsing a discussion.
This commit is contained in:
+18
-38
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user