MDL-14113 patch for multiple issues - see tracker for subtasks
This commit is contained in:
+8
-14
@@ -942,7 +942,7 @@ function print_recent_activity($course) {
|
||||
$content = $print_recent_activity($course, $viewfullnames, $timestart) || $content;
|
||||
}
|
||||
} else {
|
||||
debugging("Missing lib.php in lib/{$mod->name} - please reinstall files or uninstall the module");
|
||||
debugging("Missing lib.php in lib/{$modname} - please reinstall files or uninstall the module");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1255,7 +1255,6 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
|
||||
static $strmovehere;
|
||||
static $strmovefull;
|
||||
static $strunreadpostsone;
|
||||
static $untracked;
|
||||
static $usetracking;
|
||||
static $groupings;
|
||||
|
||||
@@ -1272,7 +1271,6 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
|
||||
include_once($CFG->dirroot.'/mod/forum/lib.php');
|
||||
if ($usetracking = forum_tp_can_track_forums()) {
|
||||
$strunreadpostsone = get_string('unreadpostsone', 'forum');
|
||||
$untracked = forum_tp_get_untracked_forums($USER->id, $course->id);
|
||||
}
|
||||
$initialised = true;
|
||||
}
|
||||
@@ -1391,18 +1389,14 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
|
||||
}
|
||||
}
|
||||
if ($usetracking && $mod->modname == 'forum') {
|
||||
if ($usetracking and !isset($untracked[$mod->instance])) {
|
||||
$groupid = groups_get_activity_group($mod);
|
||||
$unread = forum_tp_count_forum_unread_posts($USER->id, $mod->instance, $groupid);
|
||||
if ($unread) {
|
||||
echo '<span class="unread"> <a href="'.$CFG->wwwroot.'/mod/forum/view.php?id='.$mod->id.'">';
|
||||
if ($unread == 1) {
|
||||
echo $strunreadpostsone;
|
||||
} else {
|
||||
print_string('unreadpostsnumber', 'forum', $unread);
|
||||
}
|
||||
echo '</a> </span>';
|
||||
if ($unread = forum_tp_count_forum_unread_posts($mod, $course)) {
|
||||
echo '<span class="unread"> <a href="'.$CFG->wwwroot.'/mod/forum/view.php?id='.$mod->id.'">';
|
||||
if ($unread == 1) {
|
||||
echo $strunreadpostsone;
|
||||
} else {
|
||||
print_string('unreadpostsnumber', 'forum', $unread);
|
||||
}
|
||||
echo '</a></span>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
|
||||
if (!empty($USER->id)) {
|
||||
$SESSION->fromdiscussion = $CFG->wwwroot;
|
||||
if (forum_is_subscribed($USER->id, $newsforum->id)) {
|
||||
if (forum_is_subscribed($USER->id, $newsforum)) {
|
||||
$subtext = get_string('unsubscribe', 'forum');
|
||||
} else {
|
||||
$subtext = get_string('subscribe', 'forum');
|
||||
|
||||
@@ -53,6 +53,35 @@ function xmldb_forum_upgrade($oldversion=0) {
|
||||
$db->debug = true;
|
||||
}
|
||||
|
||||
if ($result && $oldversion < 2007101512) {
|
||||
|
||||
/// Cleanup the forum subscriptions
|
||||
notify('Removing stale forum subscriptions', 'notifysuccess');
|
||||
|
||||
$roles = get_roles_with_capability('moodle/course:view', CAP_ALLOW);
|
||||
$roles = array_keys($roles);
|
||||
$roles = implode(',', $roles);
|
||||
|
||||
$sql = "SELECT fs.userid, f.id AS forumid
|
||||
FROM {$CFG->prefix}forum f
|
||||
JOIN {$CFG->prefix}course c ON c.id = f.course
|
||||
JOIN {$CFG->prefix}context ctx ON (ctx.instanceid = c.id AND ctx.contextlevel = ".CONTEXT_COURSE.")
|
||||
JOIN {$CFG->prefix}forum_subscriptions fs ON fs.forum = f.id
|
||||
LEFT JOIN {$CFG->prefix}role_assignments ra ON (ra.contextid = ctx.id AND ra.userid = fs.userid AND ra.roleid IN ($roles))
|
||||
WHERE ra.id IS NULL";
|
||||
|
||||
if ($rs = get_recordset_sql($sql)) {
|
||||
$db->debug = false;
|
||||
while ($remove = rs_fetch_next_record($rs)) {
|
||||
delete_records('forum_subscriptions', 'userid', $remove->userid, 'forum', $remove->forumid);
|
||||
echo '.';
|
||||
}
|
||||
$db->debug = true;
|
||||
rs_close($rs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
notify("Errors occurred while moving attachment directories - check your file permissions");
|
||||
}
|
||||
set_field('forum_discussions', 'forum', $forumto->id, 'id', $discussion->id);
|
||||
set_field('forum_read', 'forumid', $forumto->id, 'discussionid', $discussion->id);
|
||||
add_to_log($course->id, 'forum', 'move discussion', "discuss.php?d=$discussion->id", $discussion->id, $cmto->id);
|
||||
|
||||
require_once($CFG->libdir.'/rsslib.php');
|
||||
@@ -118,10 +119,9 @@
|
||||
}
|
||||
|
||||
if ($mark == 'read' or $mark == 'unread') {
|
||||
if (forum_tp_can_track_forums($forum) && forum_tp_is_tracked($forum) &&
|
||||
$CFG->forum_usermarksread) {
|
||||
if ($CFG->forum_usermarksread && forum_tp_can_track_forums($forum) && forum_tp_is_tracked($forum)) {
|
||||
if ($mark == 'read') {
|
||||
forum_tp_add_read_record($USER->id, $postid, $discussion->id, $forum->id);
|
||||
forum_tp_add_read_record($USER->id, $postid);
|
||||
} else {
|
||||
// unread
|
||||
forum_tp_delete_read_records($USER->id, $postid);
|
||||
|
||||
+88
-111
@@ -51,7 +51,7 @@
|
||||
$generaltable->head = array ($strforum, $strdescription, $strdiscussions);
|
||||
$generaltable->align = array ('left', 'left', 'center');
|
||||
|
||||
if ($usetracking = (!isguestuser() && forum_tp_can_track_forums())) {
|
||||
if ($usetracking = forum_tp_can_track_forums()) {
|
||||
$untracked = forum_tp_get_untracked_forums($USER->id, $course->id);
|
||||
|
||||
$generaltable->head[] = $strunreadposts;
|
||||
@@ -61,6 +61,8 @@
|
||||
$generaltable->align[] = 'center';
|
||||
}
|
||||
|
||||
$subscribed_forums = forum_get_subscribed_forums($course);
|
||||
|
||||
if ($can_subscribe = (!isguestuser() && has_capability('moodle/course:view', $coursecontext))) {
|
||||
$generaltable->head[] = $strsubscribed;
|
||||
$generaltable->align[] = 'center';
|
||||
@@ -118,11 +120,12 @@
|
||||
/// Do course wide subscribe/unsubscribe
|
||||
if (!is_null($subscribe) and !isguestuser() and !isguest()) {
|
||||
foreach ($modinfo->instances['forum'] as $forumid=>$cm) {
|
||||
if (!forum_is_forcesubscribed($forumid)) {
|
||||
$subscribed = forum_is_subscribed($USER->id, $forumid);
|
||||
$forum = $forums[$forumid];
|
||||
if (!forum_is_forcesubscribed($forum)) {
|
||||
$subscribed = forum_is_subscribed($USER->id, $forum);
|
||||
if ($subscribe && !$subscribed) {
|
||||
forum_subscribe($USER->id, $forumid);
|
||||
} elseif (!$subscribe && $subscribed) {
|
||||
} else if (!$subscribe && $subscribed) {
|
||||
forum_unsubscribe($USER->id, $forumid);
|
||||
}
|
||||
}
|
||||
@@ -147,70 +150,48 @@
|
||||
$cm = $modinfo->instances['forum'][$forum->id];
|
||||
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||
|
||||
$groupmode = groups_get_activity_groupmode($cm, $course);
|
||||
$currentgroup = groups_get_activity_group($cm);
|
||||
|
||||
if ($groupmode == SEPARATEGROUPS) {
|
||||
$accessallgroups = has_capability('moodle/site:accessallgroups', $context);
|
||||
} else {
|
||||
$accessallgroups = true;
|
||||
}
|
||||
|
||||
$cantaccessagroup = !$accessallgroups and empty($currentgroup);
|
||||
|
||||
// this is potentially wrong logic. could possibly check for if user has the right to hmmm
|
||||
if ($cantaccessagroup) {
|
||||
$count = '';
|
||||
|
||||
} if ($currentgroup) {
|
||||
$count = count_records_select('forum_discussions', "forum = $forum->id AND (groupid = $currentgroup OR groupid = -1)");
|
||||
|
||||
} else {
|
||||
$count = count_records('forum_discussions', 'forum', $forum->id);
|
||||
}
|
||||
$count = forum_count_discussions($forum, $cm, $course);
|
||||
|
||||
if ($usetracking) {
|
||||
if ($forum->trackingtype == FORUM_TRACKING_OFF) {
|
||||
$unreadlink = '-';
|
||||
$trackedlink = '-';
|
||||
} else if (($forum->trackingtype == FORUM_TRACKING_ON) || !isset($untracked[$forum->id])) {
|
||||
$groupid = !$accessallgroups ? $currentgroup : false;
|
||||
$unread = forum_tp_count_forum_unread_posts($USER->id, $forum->id, $groupid);
|
||||
if ($unread > 0) {
|
||||
$unreadlink = '<span class="unread"><a href="view.php?f='.$forum->id.'">'.$unread.'</a>';
|
||||
|
||||
} else {
|
||||
if (isset($untracked[$forum->id])) {
|
||||
$unreadlink = '-';
|
||||
} else if ($unread = forum_tp_count_forum_unread_posts($cm, $course)) {
|
||||
$unreadlink = '<span class="unread"><a href="view.php?f='.$forum->id.'">'.$unread.'</a>';
|
||||
$unreadlink .= '<a title="'.$strmarkallread.'" href="markposts.php?f='.
|
||||
$forum->id.'&mark=read"><img src="'.$CFG->pixpath.'/t/clear.gif" alt="'.$strmarkallread.'" /></a></span>';
|
||||
} else {
|
||||
$unreadlink = '<span class="read"><a href="view.php?f='.$forum->id.'">'.$unread.'</a></span>';
|
||||
$unreadlink = '<span class="read">0</span>';
|
||||
}
|
||||
|
||||
|
||||
if ($forum->trackingtype == FORUM_TRACKING_OPTIONAL) {
|
||||
$trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $stryes, 'post', '_self', true, $strnotrackforum);
|
||||
} else {
|
||||
if ($forum->trackingtype == FORUM_TRACKING_ON) {
|
||||
$trackedlink = $stryes;
|
||||
|
||||
} else {
|
||||
$options = array('id'=>$forum->id);
|
||||
if (!isset($untracked[$forum->id])) {
|
||||
$trackedlink = print_single_button($CFG->wwwroot.'/mod/forum/settracking.php', $options, $stryes, 'post', '_self', true, $strnotrackforum);
|
||||
} else {
|
||||
$trackedlink = print_single_button($CFG->wwwroot.'/mod/forum/settracking.php', $options, $strno, 'post', '_self', true, $strtrackforum);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$unreadlink = '-';
|
||||
$trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $strno, 'post', '_self', true, $strtrackforum);
|
||||
}
|
||||
}
|
||||
|
||||
$forum->intro = shorten_text(trim(format_text($forum->intro, FORMAT_HTML, $introoptions)), $CFG->forum_shortpost);
|
||||
$forumname = format_string($forum->name, true);;
|
||||
|
||||
if ($cantaccessagroup) {
|
||||
$forumlink = $forumname;
|
||||
$discussionlink = $count;
|
||||
if ($cm->visible) {
|
||||
$style = '';
|
||||
} else {
|
||||
if ($cm->visible) {
|
||||
$style = '';
|
||||
} else {
|
||||
$style = 'class="dimmed"';
|
||||
}
|
||||
$forumlink = "<a href=\"view.php?f=$forum->id\" $style>".format_string($forum->name,true)."</a>";
|
||||
$discussionlink = "<a href=\"view.php?f=$forum->id\" $style>".$count."</a>";
|
||||
$style = 'class="dimmed"';
|
||||
}
|
||||
$forumlink = "<a href=\"view.php?f=$forum->id\" $style>".format_string($forum->name,true)."</a>";
|
||||
$discussionlink = "<a href=\"view.php?f=$forum->id\" $style>".$count."</a>";
|
||||
|
||||
$row = array ($forumlink, $forum->intro, $discussionlink);
|
||||
if ($usetracking) {
|
||||
@@ -219,21 +200,29 @@
|
||||
}
|
||||
|
||||
if ($can_subscribe) {
|
||||
$row[] = forum_get_subscribe_link($forum, $context, array('subscribed' => $stryes,
|
||||
'unsubscribed' => $strno, 'forcesubscribed' => $stryes,
|
||||
'cantsubscribe' => '-'), $cantaccessagroup, false, true);
|
||||
if ($forum->forcesubscribe != FORUM_DISALLOWSUBSCRIBE) {
|
||||
$row[] = forum_get_subscribe_link($forum, $context, array('subscribed' => $stryes,
|
||||
'unsubscribed' => $strno, 'forcesubscribed' => $stryes,
|
||||
'cantsubscribe' => '-'), false, false, true, $subscribed_forums);
|
||||
} else {
|
||||
$row[] = '-';
|
||||
}
|
||||
}
|
||||
|
||||
//If this forum has RSS activated, calculate it
|
||||
if ($show_rss and $forum->rsstype and $forum->rssarticles) {
|
||||
//Calculate the tolltip text
|
||||
if ($forum->rsstype == 1) {
|
||||
$tooltiptext = get_string('rsssubscriberssdiscussions', 'forum', format_string($forum->name));
|
||||
if ($show_rss) {
|
||||
if ($forum->rsstype and $forum->rssarticles) {
|
||||
//Calculate the tolltip text
|
||||
if ($forum->rsstype == 1) {
|
||||
$tooltiptext = get_string('rsssubscriberssdiscussions', 'forum', format_string($forum->name));
|
||||
} else {
|
||||
$tooltiptext = get_string('rsssubscriberssposts', 'forum', format_string($forum->name));
|
||||
}
|
||||
//Get html code for RSS link
|
||||
$row[] = rss_get_link($course->id, $USER->id, 'forum', $forum->id, $tooltiptext);
|
||||
} else {
|
||||
$tooltiptext = get_string('rsssubscriberssposts', 'forum', format_string($forum->name));
|
||||
$row[] = ' ';
|
||||
}
|
||||
//Get html code for RSS link
|
||||
$row[] = rss_get_link($course->id, $USER->id, 'forum', $forum->id, $tooltiptext);
|
||||
}
|
||||
|
||||
$generaltable->data[] = $row;
|
||||
@@ -283,51 +272,35 @@
|
||||
$cm = $modinfo->instances['forum'][$forum->id];
|
||||
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||
|
||||
$groupmode = groups_get_activity_groupmode($cm, $course);
|
||||
$currentgroup = groups_get_activity_group($cm);
|
||||
|
||||
if ($groupmode == SEPARATEGROUPS) {
|
||||
$accessallgroups = has_capability('moodle/site:accessallgroups', $context);
|
||||
} else {
|
||||
$accessallgroups = true;
|
||||
}
|
||||
|
||||
$cantaccessagroup = !$accessallgroups and empty($currentgroup);
|
||||
|
||||
if ($cantaccessagroup) {
|
||||
$count = '';
|
||||
|
||||
} if ($currentgroup) {
|
||||
$count = count_records_select('forum_discussions', "forum = $forum->id AND (groupid = $currentgroup OR groupid = -1)");
|
||||
|
||||
} else {
|
||||
$count = count_records('forum_discussions', 'forum', $forum->id);
|
||||
}
|
||||
$count = forum_count_discussions($forum, $cm, $course);
|
||||
|
||||
if ($usetracking) {
|
||||
if ($forum->trackingtype == FORUM_TRACKING_OFF) {
|
||||
$unreadlink = '-';
|
||||
$unreadlink = '-';
|
||||
$trackedlink = '-';
|
||||
|
||||
} else if (($forum->trackingtype == FORUM_TRACKING_ON) ||
|
||||
!isset($untracked[$forum->id])) {
|
||||
$groupid = !$accessallgroups ? $currentgroup : false;
|
||||
$unread = forum_tp_count_forum_unread_posts($USER->id, $forum->id, $groupid);
|
||||
if ($unread > 0) {
|
||||
} else {
|
||||
if (isset($untracked[$forum->id])) {
|
||||
$unreadlink = '-';
|
||||
} else if ($unread = forum_tp_count_forum_unread_posts($cm, $course)) {
|
||||
$unreadlink = '<span class="unread"><a href="view.php?f='.$forum->id.'">'.$unread.'</a>';
|
||||
$unreadlink .= '<a title="'.$strmarkallread.'" href="markposts.php?f='.
|
||||
$forum->id.'&mark=read"><img src="'.$CFG->pixpath.'/t/clear.gif" alt="'.$strmarkallread.'" /></a></span>';
|
||||
} else {
|
||||
$unreadlink = '<span class="read"><a href="view.php?f='.$forum->id.'">'.$unread.'</a></span>';
|
||||
$unreadlink = '<span class="read">0</span>';
|
||||
}
|
||||
if ($forum->trackingtype == FORUM_TRACKING_OPTIONAL) {
|
||||
$trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $stryes, 'post', '_self', true, $strnotrackforum);
|
||||
} else {
|
||||
|
||||
if ($forum->trackingtype == FORUM_TRACKING_ON) {
|
||||
$trackedlink = $stryes;
|
||||
|
||||
} else {
|
||||
$options = array('id'=>$forum->id);
|
||||
if (!isset($untracked[$forum->id])) {
|
||||
$trackedlink = print_single_button($CFG->wwwroot.'/mod/forum/settracking.php', $options, $stryes, 'post', '_self', true, $strnotrackforum);
|
||||
} else {
|
||||
$trackedlink = print_single_button($CFG->wwwroot.'/mod/forum/settracking.php', $options, $strno, 'post', '_self', true, $strtrackforum);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$unreadlink = '-';
|
||||
$trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $strno, 'post', '_self', true, $strtrackforum);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,18 +318,14 @@
|
||||
}
|
||||
|
||||
$forumname = format_string($forum->name,true);;
|
||||
if ($cantaccessagroup) {
|
||||
$forumlink = $forumname;
|
||||
$discussionlink = $count;
|
||||
|
||||
if ($cm->visible) {
|
||||
$style = '';
|
||||
} else {
|
||||
if ($cm->visible) {
|
||||
$style = '';
|
||||
} else {
|
||||
$style = 'class="dimmed"';
|
||||
}
|
||||
$forumlink = "<a href=\"view.php?f=$forum->id\" $style>".format_string($forum->name,true)."</a>";
|
||||
$discussionlink = "<a href=\"view.php?f=$forum->id\" $style>".$count."</a>";
|
||||
$style = 'class="dimmed"';
|
||||
}
|
||||
$forumlink = "<a href=\"view.php?f=$forum->id\" $style>".format_string($forum->name,true)."</a>";
|
||||
$discussionlink = "<a href=\"view.php?f=$forum->id\" $style>".$count."</a>";
|
||||
|
||||
$row = array ($printsection, $forumlink, $forum->intro, $discussionlink);
|
||||
if ($usetracking) {
|
||||
@@ -365,21 +334,29 @@
|
||||
}
|
||||
|
||||
if ($can_subscribe) {
|
||||
$row[] = forum_get_subscribe_link($forum, $context, array('subscribed' => $stryes,
|
||||
'unsubscribed' => $strno, 'forcesubscribed' => $stryes,
|
||||
'cantsubscribe' => '-'), $cantaccessagroup, false, true);
|
||||
if ($forum->forcesubscribe != FORUM_DISALLOWSUBSCRIBE) {
|
||||
$row[] = forum_get_subscribe_link($forum, $context, array('subscribed' => $stryes,
|
||||
'unsubscribed' => $strno, 'forcesubscribed' => $stryes,
|
||||
'cantsubscribe' => '-'), false, false, true, $subscribed_forums);
|
||||
} else {
|
||||
$row[] = '-';
|
||||
}
|
||||
}
|
||||
|
||||
//If this forum has RSS activated, calculate it
|
||||
if ($show_rss and $forum->rsstype and $forum->rssarticles) {
|
||||
//Calculate the tolltip text
|
||||
if ($forum->rsstype == 1) {
|
||||
$tooltiptext = get_string('rsssubscriberssdiscussions', 'forum', format_string($forum->name));
|
||||
if ($show_rss) {
|
||||
if ($forum->rsstype and $forum->rssarticles) {
|
||||
//Calculate the tolltip text
|
||||
if ($forum->rsstype == 1) {
|
||||
$tooltiptext = get_string('rsssubscriberssdiscussions', 'forum', format_string($forum->name));
|
||||
} else {
|
||||
$tooltiptext = get_string('rsssubscriberssposts', 'forum', format_string($forum->name));
|
||||
}
|
||||
//Get html code for RSS link
|
||||
$row[] = rss_get_link($course->id, $USER->id, 'forum', $forum->id, $tooltiptext);
|
||||
} else {
|
||||
$tooltiptext = get_string('rsssubscriberssposts', 'forum', format_string($forum->name));
|
||||
$row[] = ' ';
|
||||
}
|
||||
//Get html code for RSS link
|
||||
$row[] = rss_get_link($course->id, $USER->id, 'forum', $forum->id, $tooltiptext);
|
||||
}
|
||||
|
||||
$learningtable->data[] = $row;
|
||||
|
||||
+950
-432
File diff suppressed because it is too large
Load Diff
+19
-14
@@ -5,9 +5,9 @@
|
||||
require_once("../../config.php");
|
||||
require_once("lib.php");
|
||||
|
||||
$f = required_param('f',PARAM_INT); // The forum to mark
|
||||
$mark = required_param('mark',PARAM_ALPHA); // Read or unread?
|
||||
$d = optional_param('d',0,PARAM_INT); // Discussion to mark.
|
||||
$f = required_param('f',PARAM_INT); // The forum to mark
|
||||
$mark = required_param('mark',PARAM_ALPHA); // Read or unread?
|
||||
$d = optional_param('d',0,PARAM_INT); // Discussion to mark.
|
||||
$returnpage = optional_param('returnpage', 'index.php', PARAM_FILE); // Page to return to.
|
||||
|
||||
if (! $forum = get_record("forum", "id", $f)) {
|
||||
@@ -18,14 +18,20 @@
|
||||
error("Forum doesn't belong to a course!");
|
||||
}
|
||||
|
||||
if (!($cm = get_coursemodule_from_instance("forum", $forum->id, $course->id))) {
|
||||
$cm->id = NULL;
|
||||
if (!$cm = get_coursemodule_from_instance("forum", $forum->id, $course->id)) {
|
||||
error("Incorrect cm!");
|
||||
}
|
||||
|
||||
$user = $USER;
|
||||
|
||||
require_course_login($course, false, $cm);
|
||||
|
||||
if ($returnpage == 'index.php') {
|
||||
$returnto = forum_go_back_to($returnpage.'?id='.$course->id);
|
||||
} else {
|
||||
$returnto = forum_go_back_to($returnpage.'?f='.$forum->id);
|
||||
}
|
||||
|
||||
if (isguest()) { // Guests can't change forum
|
||||
$wwwroot = $CFG->wwwroot.'/login/index.php';
|
||||
if (!empty($CFG->loginhttps)) {
|
||||
@@ -35,27 +41,26 @@
|
||||
$navigation = build_navigation('', $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']);
|
||||
$wwwroot, $returnto);
|
||||
print_footer($course);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($returnpage == 'index.php') {
|
||||
$returnto = forum_go_back_to($returnpage.'?id='.$course->id);
|
||||
} else {
|
||||
$returnto = forum_go_back_to($returnpage.'?f='.$forum->id);
|
||||
}
|
||||
|
||||
$info = new object();
|
||||
$info->name = fullname($user);
|
||||
$info->forum = format_string($forum->name);
|
||||
|
||||
if ($mark == 'read') {
|
||||
if (!empty($d)) {
|
||||
if (forum_tp_mark_discussion_read($user->id, $d, $forum->id)) {
|
||||
if (! $discussion = get_record('forum_discussions', 'id', $d, 'forum', $forum->id)) {
|
||||
error("Discussion ID was incorrect");
|
||||
}
|
||||
|
||||
if (forum_tp_mark_discussion_read($user, $d)) {
|
||||
add_to_log($course->id, "discussion", "mark read", "view.php?f=$forum->id", $d, $cm->id);
|
||||
}
|
||||
} else {
|
||||
if (forum_tp_mark_forum_read($user->id, $forum->id)) {
|
||||
if (forum_tp_mark_forum_read($user, $forum->id)) {
|
||||
add_to_log($course->id, "forum", "mark read", "view.php?f=$forum->id", $forum->id, $cm->id);
|
||||
}
|
||||
}
|
||||
|
||||
+8
-15
@@ -317,14 +317,11 @@
|
||||
$CFG->wwwroot.'/mod/forum/discuss.php?d='.$post->discussion.'#p'.$post->id);
|
||||
|
||||
forum_print_post($post, $discussion, $forum, $cm, $course, false, false, false);
|
||||
|
||||
if (empty($post->edit)) {
|
||||
if (forum_tp_can_track_forums($forum) && forum_tp_is_tracked($forum)) {
|
||||
$user_read_array = forum_tp_get_discussion_read_records($USER->id, $discussion->id);
|
||||
} else {
|
||||
$user_read_array = array();
|
||||
}
|
||||
$posts = forum_get_all_discussion_posts($discussion->id, "created ASC");
|
||||
forum_print_posts_nested($course, $cm, $forum, $discussion, $post, false, false, $user_read_array, $posts);
|
||||
$forumtracked = forum_tp_is_tracked($forum);
|
||||
$posts = forum_get_all_discussion_posts($discussion->id, "created ASC", $forumtracked);
|
||||
forum_print_posts_nested($course, $cm, $forum, $discussion, $post, false, false, $forumtracked, $posts);
|
||||
}
|
||||
} else {
|
||||
print_header();
|
||||
@@ -677,7 +674,7 @@
|
||||
notify(get_string('qandanotify','forum'));
|
||||
}
|
||||
|
||||
forum_check_throttling($forum);
|
||||
forum_check_throttling($forum, $cm);
|
||||
|
||||
if (!empty($parent)) {
|
||||
if (! $discussion = get_record('forum_discussions', 'id', $parent->discussion)) {
|
||||
@@ -686,14 +683,10 @@
|
||||
|
||||
forum_print_post($parent, $discussion, $forum, $cm, $course, false, false, false);
|
||||
if (empty($post->edit)) {
|
||||
if (forum_tp_can_track_forums($forum) && forum_tp_is_tracked($forum)) {
|
||||
$user_read_array = forum_tp_get_discussion_read_records($USER->id, $discussion->id);
|
||||
} else {
|
||||
$user_read_array = array();
|
||||
}
|
||||
if ($forum->type != 'qanda' || forum_user_can_see_discussion($forum, $discussion, $modcontext)) {
|
||||
$posts = forum_get_all_discussion_posts($discussion->id, "created ASC");
|
||||
forum_print_posts_threaded($course, $cm, $forum, $discussion, $parent, 0, false, false, $user_read_array, $posts);
|
||||
$forumtracked = forum_tp_is_tracked($forum);
|
||||
$posts = forum_get_all_discussion_posts($discussion->id, "created ASC", $forumtracked);
|
||||
forum_print_posts_threaded($course, $cm, $forum, $discussion, $parent, 0, false, false, $forumtracked, $posts);
|
||||
}
|
||||
}
|
||||
$heading = get_string("yourreply", "forum");
|
||||
|
||||
@@ -33,7 +33,7 @@ class mod_forum_post_form extends moodleform {
|
||||
$mform->addElement('format', 'format', get_string('format'));
|
||||
|
||||
|
||||
if (isset($forum->id) && forum_is_forcesubscribed($forum->id)) {
|
||||
if (isset($forum->id) && forum_is_forcesubscribed($forum)) {
|
||||
|
||||
$mform->addElement('static', 'subscribemessage', get_string('subscription', 'forum'), get_string('everyoneissubscribed', 'forum'));
|
||||
$mform->addElement('hidden', 'subscribe');
|
||||
|
||||
+12
-24
@@ -5,7 +5,7 @@
|
||||
require_once("../../config.php");
|
||||
require_once("lib.php");
|
||||
|
||||
$id = required_param('id',PARAM_INT); // The forum to subscribe or unsubscribe to
|
||||
$id = required_param('id',PARAM_INT); // The forum to subscribe or unsubscribe to
|
||||
$returnpage = optional_param('returnpage', 'index.php', PARAM_FILE); // Page to return to.
|
||||
|
||||
if (! $forum = get_record("forum", "id", $id)) {
|
||||
@@ -16,35 +16,23 @@
|
||||
error("Forum doesn't belong to a course!");
|
||||
}
|
||||
|
||||
if (!($cm = get_coursemodule_from_instance("forum", $forum->id, $course->id))) {
|
||||
$cm->id = NULL;
|
||||
if (! $cm = get_coursemodule_from_instance("forum", $forum->id, $course->id)) {
|
||||
error("Incorrect cm");
|
||||
}
|
||||
|
||||
$user = $USER;
|
||||
|
||||
require_course_login($course, false, $cm);
|
||||
|
||||
if (isguest()) { // Guests can't change tracking
|
||||
$wwwroot = $CFG->wwwroot.'/login/index.php';
|
||||
if (!empty($CFG->loginhttps)) {
|
||||
$wwwroot = str_replace('http:','https:', $wwwroot);
|
||||
}
|
||||
|
||||
$navigation = build_navigation('', $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);
|
||||
exit;
|
||||
}
|
||||
|
||||
$returnto = forum_go_back_to($returnpage.'?id='.$course->id.'&f='.$forum->id);
|
||||
|
||||
$info->name = fullname($user);
|
||||
$info->forum = format_string($forum->name);
|
||||
if (!forum_tp_can_track_forums($forum)) {
|
||||
redirect($returnto);
|
||||
}
|
||||
|
||||
if ( forum_tp_is_tracked($forum->id, $user->id) ) {
|
||||
if (forum_tp_stop_tracking($forum->id, $user->id)) {
|
||||
$info = new object();
|
||||
$info->name = fullname($USER);
|
||||
$info->forum = format_string($forum->name);
|
||||
if (forum_tp_is_tracked($forum) ) {
|
||||
if (forum_tp_stop_tracking($forum->id)) {
|
||||
add_to_log($course->id, "forum", "stop tracking", "view.php?f=$forum->id", $forum->id, $cm->id);
|
||||
redirect($returnto, get_string("nownottracking", "forum", $info), 1);
|
||||
} else {
|
||||
@@ -52,7 +40,7 @@
|
||||
}
|
||||
|
||||
} else { // subscribe
|
||||
if (forum_tp_start_tracking($forum->id, $user->id)) {
|
||||
if (forum_tp_start_tracking($forum->id)) {
|
||||
add_to_log($course->id, "forum", "start tracking", "view.php?f=$forum->id", $forum->id, $cm->id);
|
||||
redirect($returnto, get_string("nowtracking", "forum", $info), 1);
|
||||
} else {
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
}
|
||||
|
||||
if (groupmode($course, $cm)
|
||||
and !forum_is_subscribed($user->id, $forum->id)
|
||||
and !forum_is_subscribed($user->id, $forum)
|
||||
and !has_capability('moodle/site:accessallgroups', $context)) {
|
||||
if (!mygroupid($course->id)) {
|
||||
error('Sorry, but you must be a group member to subscribe.');
|
||||
@@ -65,7 +65,7 @@
|
||||
: "view.php?f=$id";
|
||||
|
||||
if ($force and has_capability('mod/forum:managesubscriptions', $context)) {
|
||||
if (forum_is_forcesubscribed($forum->id)) {
|
||||
if (forum_is_forcesubscribed($forum)) {
|
||||
forum_forcesubscribe($forum->id, 0);
|
||||
redirect($returnto, get_string("everyonecannowchoose", "forum"), 1);
|
||||
} else {
|
||||
@@ -74,7 +74,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
if (forum_is_forcesubscribed($forum->id)) {
|
||||
if (forum_is_forcesubscribed($forum)) {
|
||||
redirect($returnto, get_string("everyoneisnowsubscribed", "forum"), 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
// This fragment is called by /admin/index.php
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$module->version = 2007101511;
|
||||
$module->version = 2007101512;
|
||||
$module->requires = 2007101509; // Requires this Moodle version
|
||||
$module->cron = 60;
|
||||
|
||||
|
||||
+8
-8
@@ -116,7 +116,7 @@
|
||||
|
||||
if (!empty($USER->id) && !has_capability('moodle/legacy:guest', $context, NULL, false)) {
|
||||
$SESSION->fromdiscussion = "$FULLME";
|
||||
if (forum_is_forcesubscribed($forum->id)) {
|
||||
if (forum_is_forcesubscribed($forum)) {
|
||||
$streveryoneisnowsubscribed = get_string('everyoneisnowsubscribed', 'forum');
|
||||
$strallowchoice = get_string('allowchoice', 'forum');
|
||||
echo '<span class="helplink">' . get_string("forcessubscribe", 'forum') . '</span><br />';
|
||||
@@ -156,7 +156,7 @@
|
||||
array('forcesubscribed' => '', 'cantsubscribe' => '')), '</div>';
|
||||
}
|
||||
|
||||
if (($forum->trackingtype == FORUM_TRACKING_OPTIONAL) && forum_tp_can_track_forums($forum)) {
|
||||
if (forum_tp_can_track_forums($forum)) {
|
||||
echo '<div class="helplink" id="trackinglink">'. forum_get_tracking_link($forum). '</div>';
|
||||
}
|
||||
|
||||
@@ -236,17 +236,17 @@
|
||||
}
|
||||
echo '</p>';
|
||||
if (!empty($showall)) {
|
||||
forum_print_latest_discussions($course, $forum, 0, 'header', '', $currentgroup, $groupmode);
|
||||
forum_print_latest_discussions($course, $forum, 0, 'header', '', -1, -1, -1, 0, $cm);
|
||||
} else {
|
||||
forum_print_latest_discussions($course, $forum, $CFG->forum_manydiscussions, 'header', '', $currentgroup, $groupmode, $page);
|
||||
forum_print_latest_discussions($course, $forum, -1, 'header', '', -1, -1, $page, $CFG->forum_manydiscussions, $cm);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'teacher':
|
||||
if (!empty($showall)) {
|
||||
forum_print_latest_discussions($course, $forum, 0, 'header', '', $currentgroup, $groupmode);
|
||||
forum_print_latest_discussions($course, $forum, 0, 'header', '', -1, -1, -1, 0, $cm);
|
||||
} else {
|
||||
forum_print_latest_discussions($course, $forum, $CFG->forum_manydiscussions, 'header', '', $currentgroup, $groupmode, $page);
|
||||
forum_print_latest_discussions($course, $forum, -1, 'header', '', -1, -1, $page, $CFG->forum_manydiscussions, $cm);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -256,9 +256,9 @@
|
||||
}
|
||||
echo '<br />';
|
||||
if (!empty($showall)) {
|
||||
forum_print_latest_discussions($course, $forum, 0, 'header', '', $currentgroup, $groupmode);
|
||||
forum_print_latest_discussions($course, $forum, 0, 'header', '', -1, -1, -1, 0, $cm);
|
||||
} else {
|
||||
forum_print_latest_discussions($course, $forum, $CFG->forum_manydiscussions, 'header', '', $currentgroup, $groupmode, $page);
|
||||
forum_print_latest_discussions($course, $forum, -1, 'header', '', -1, -1, $page, $CFG->forum_manydiscussions, $cm);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user