$mark = optional_param('mark', 0, PARAM_INT); // Used for tracking read posts if user initiated.
$postid = optional_param('postid', 0, PARAM_INT); // Used for tracking read posts if user initiated.
- if (! $discussion = get_record("forum_discussions", "id", $d)) {
+ if (!$discussion = get_record("forum_discussions", "id", $d)) {
error("Discussion ID was incorrect or no longer exists");
}
- if (! $course = get_record("course", "id", $discussion->course)) {
+ if (!$course = get_record("course", "id", $discussion->course)) {
error("Course ID is incorrect - discussion is faulty");
}
- if (! $forum = get_record("forum", "id", $discussion->forum)) {
+ if (!$forum = get_record("forum", "id", $discussion->forum)) {
notify("Bad forum ID stored in this discussion");
}
- if (! $cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
+ if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
error('Course Module ID was incorrect');
}
-
- $canviewdiscussion = false;
-
$modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
- if (has_capability('mod/forum:viewdiscussion', $modcontext->id)) {
- $canviewdiscussion = true;
- }
-
+ $canviewdiscussion = has_capability('mod/forum:viewdiscussion', $modcontext->id);
+
if ($forum->type == "news") {
if (!($canviewdiscussion || $USER->id == $discussion->userid
$forum->assesstimefinish = 0;
}
- if (! $forum->id = insert_record('forum', $forum)) {
+ if (!$forum->id = insert_record('forum', $forum)) {
return false;
}
// this function will permanently delete the instance
// and any data that depends on it.
- if (! $forum = get_record('forum', 'id', $id)) {
+ if (!$forum = get_record('forum', 'id', $id)) {
return false;
}
if ($discussions = get_records('forum_discussions', 'forum', $forum->id)) {
foreach ($discussions as $discussion) {
- if (! forum_delete_discussion($discussion, true)) {
+ if (!forum_delete_discussion($discussion, true)) {
$result = false;
}
}
}
- if (! delete_records('forum_subscriptions', 'forum', $forum->id)) {
+ if (!delete_records('forum_subscriptions', 'forum', $forum->id)) {
$result = false;
}
forum_tp_delete_read_records(-1, -1, -1, $forum->id);
- if (! delete_records('forum', 'id', $forum->id)) {
+ if (!delete_records('forum', 'id', $forum->id)) {
$result = false;
}
}
-function forum_cron () {
+function forum_cron() {
/// Function to be run periodically according to the moodle cron
/// Finds all posts that have yet to be mailed out, and mails them
/// out to all subscribers
} else {
$cm->id = 0;
}
-
+
+ $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+
if ($users = forum_subscribed_users($course, $forum)) {
$mailcount=0;
$errorcount=0;
foreach ($users as $userto) {
if ($groupmode) { // Look for a reason not to send this email
- if (!isteacheredit($course->id, $userto->id)) {
+
+ if (!has_capability('moodle/site:accessallgroups',
+ $modcontext->id, false, $userto->id)) {
if (!empty($group->id)) {
if (!ismember($group->id, $userto->id)) {
continue;
function forum_make_mail_text($course, $forum, $discussion, $post, $userfrom, $userto, $bare = false) {
global $CFG;
-
+
+ if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
+ error('Course Module ID was incorrect');
+ }
+ $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+ $viewfullnames = has_capability('mod/site:viewfullnames', $modcontext->id);
+
$by = New stdClass;
- $by->name = fullname($userfrom, isteacher($course->id, $userto->id));
+ $by->name = fullname($userfrom, $viewfullnames);
$by->date = userdate($post->modified, "", $userto->timezone);
$strbynameondate = get_string('bynameondate', 'forum', $by);
$posttext = '';
- if(!$bare) {
+ if (!$bare) {
$posttext = "$course->shortname -> $strforums -> ".format_string($forum->name,true);
if ($discussion->name != $forum->name) {
$posttext .= "\n---------------------------------------------------------------------\n";
$posttext .= format_string($post->subject,true);
- if($bare) {
+ if ($bare) {
$posttext .= " ($CFG->wwwroot/mod/forum/discuss.php?d=$discussion->id#$post->id)";
}
$posttext .= "\n".$strbynameondate."\n";
$istracking = forum_tp_can_track_forums($forumid) && forum_tp_is_tracked($forumid);
if ($posts = forum_get_child_posts($parent, $forumid)) {
+
+ if (!$cm = get_coursemodule_from_instance('forum', $forumid, $courseid)) {
+ error('Course Module ID was incorrect');
+ }
+ $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+ $canviewfullnames = has_capability('mod/site:viewfullnames', $modcontext->id);
+
foreach ($posts as $post) {
echo '<div class="indent">';
if (!forum_user_can_see_post($post->forum,$post->discussion,$post)) {
continue;
}
- $by->name = fullname($post);
+ $by->name = fullname($post, $canviewfullnames);
$by->date = userdate($post->modified);
if ($istracking) {
}
$posts = get_records_sql("SELECT p.*, d.name, u.firstname, u.lastname,
- u.picture, d.groupid, cm.instance, f.name, cm.section
+ u.picture, d.groupid, cm.instance, f.name,
+ cm.section, cm.id AS cmid
FROM {$CFG->prefix}forum_posts p,
{$CFG->prefix}forum_discussions d,
{$CFG->prefix}user u,
return;
}
- $isteacheredit = isteacheredit($courseid);
-
foreach ($posts as $post) {
-
- if ($groupid and ($post->groupid != -1 and $groupid != $post->groupid and !$isteacheredit)) {
+
+ $modcontext = get_context_instance(CONTEXT_MODULE, $post->cmid);
+ $canviewallgroups = has_capability('moodle/site:accessallgroups', $modcontext->id);
+
+ if ($groupid and ($post->groupid != -1 and $groupid != $post->groupid and !$canviewallgroups)) {
continue;
}
}
function forum_check_throttling($forum) {
- global $USER,$CFG;
+ global $USER, $CFG;
if (is_numeric($forum)) {
$forum = get_record('forum','id',$forum);
return true;
}
- if (isteacher($forum->course)) {
+ if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course)) {
+ error('Course Module ID was incorrect');
+ }
+ $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+ if(!has_capability('mod/forum:throttlingapplies', $modcontext->id)) {
return true;
}