continue; // user does not subscribe to this forum
}
- // Get the context (from cache)
- $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); // Cached already
-
// setup global $COURSE properly - needed for roles and languages
course_setup($course); // More environment
+ // Get the context (from cache)
+ $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); // Cached already
+ $post->modcontext = $modcontext;
+ $post->viewfullnames = has_capability('moodle/site:viewfullnames', $modcontext);
+
// Make sure groups allow this user to see this email
if ($discussion->groupid > 0 and $groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used
- if (! groups_group_exists($discussion->groupid)) { // Can't find group
+ if (!groups_group_exists($discussion->groupid)) { // Can't find group
continue; // Be safe and don't send it to anyone
}
}
// Make sure we're allowed to see it...
- if (!forum_user_can_see_post($forum, $discussion, $post)) {
+ if (!forum_user_can_see_post($forum, $discussion, $post, NULL, $cm)) {
mtrace('user '.$userto->id. ' can not see '.$post->id);
continue;
}
$timenow = time();
$digesttime = usergetmidnight($timenow, $sitetimezone) + ($CFG->digestmailtime * 3600);
+ mtrace('Starting digest processing...');
+
if ($CFG->digestmailtimelast < $digesttime and $timenow > $digesttime) {
set_config('digestmailtimelast', $timenow);
function forum_make_mail_text($course, $forum, $discussion, $post, $userfrom, $userto, $bare = false) {
global $CFG, $USER;
- if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
- error('Course Module ID was incorrect');
+ if (empty($post->viewfullnames)) {
+ if (empty($post->modcontext)) {
+ if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
+ error('Course Module ID was incorrect');
+ }
+ $post->modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+ }
+ $post->viewfullnames = has_capability('moodle/site:viewfullnames', $modcontext, $userto->id);
}
- $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
- $viewfullnames = has_capability('moodle/site:viewfullnames', $modcontext, $userto->id);
$by = New stdClass;
- $by->name = fullname($userfrom, $viewfullnames);
+ $by->name = fullname($userfrom, $post->viewfullnames);
$by->date = userdate($post->modified, "", $userto->timezone);
$strbynameondate = get_string('bynameondate', 'forum', $by);
return '';
}
+ if (empty($post->modcontext)) {
+ if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
+ error('Course Module ID was incorrect');
+ }
+ $post->modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+ }
+
$strforums = get_string('forums', 'forum');
- $canreply = forum_user_can_post($forum, $userto);
+ $canreply = forum_user_can_post($forum, $userto, NULL, $post->modcontext);
$canunsubscribe = ! forum_is_forcesubscribed($forum);
$posthtml = '<head>';
$groupselect = "";
}
- return get_records_sql("SELECT p.*, d.groupid, u.firstname, u.lastname, u.email, u.picture,
+ return get_records_sql("SELECT p.*, d.groupid, u.firstname, u.lastname, u.email, u.picture, u.imagealt,
f.type as forumtype, f.name as forumname, f.id as forumid
FROM {$CFG->prefix}forum_discussions d,
{$CFG->prefix}forum_posts p,
if (forum_is_forcesubscribed($forum)) {
$results = get_course_users($course->id); // Otherwise get everyone in the course
} else {
- $results = get_records_sql("SELECT u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat, u.maildigest, u.emailstop,
+ $results = get_records_sql("SELECT u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat, u.maildigest, u.emailstop, u.imagealt,
u.email, u.city, u.country, u.lastaccess, u.lastlogin, u.picture, u.timezone, u.theme, u.lang, u.trackforums
FROM {$CFG->prefix}user u,
{$CFG->prefix}forum_subscriptions s $grouptables
*/
function forum_user_can_post($forum, $user=NULL, $cm=NULL, $context=NULL) {
- if (!$cm) {
- if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course)) {
- error('Course Module ID was incorrect');
- }
- }
if (!$context) {
+ if (!$cm) {
+ if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course)) {
+ error('Course Module ID was incorrect');
+ }
+ }
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
}
/**
*
*/
-function forum_user_can_see_post($forum, $discussion, $post, $user=NULL) {
+function forum_user_can_see_post($forum, $discussion, $post, $user=NULL, $cm=NULL) {
global $USER;
// retrieve objects (yuk)
$post->id = $post->parent;
}
- if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course)) {
- error('Course Module ID was incorrect');
+ if (!$cm) {
+ if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course)) {
+ error('Course Module ID was incorrect');
+ }
+ }
+ if (!isset($post->modcontext)) {
+ $post->modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
}
- $context = get_context_instance(CONTEXT_MODULE, $cm->id);
if (empty($user) || empty($user->id)) {
$user = $USER;
}
- if (!has_capability('mod/forum:viewdiscussion', $context, $user->id)) {
+ if (!has_capability('mod/forum:viewdiscussion', $post->modcontext, $user->id)) {
return false;
}
return (forum_user_has_posted($forum->id,$discussion->id,$user->id) ||
$firstpost->id == $post->id ||
- has_capability('mod/forum:viewqandawithoutposting', $context, false, $user->id));
+ has_capability('mod/forum:viewqandawithoutposting', $post->modcontext, false, $user->id));
}
return true;
}