MDL-15390 improved subscribe me option when posting to forum - see tracker for more info
This commit is contained in:
+13
-1
@@ -4190,7 +4190,19 @@ function forum_discussions_user_has_posted_in($forumid, $userid) {
|
||||
*
|
||||
*/
|
||||
function forum_user_has_posted($forumid, $did, $userid) {
|
||||
return record_exists('forum_posts','discussion',$did,'userid',$userid);
|
||||
global $CFG;
|
||||
|
||||
if (empty($did)) {
|
||||
// posted in any forum discussion?
|
||||
$sql = "SELECT 'x'
|
||||
FROM {$CFG->prefix}forum_posts p
|
||||
JOIN {$CFG->prefix}forum_discussions d ON d.id = p.discussion
|
||||
WHERE p.userid = $userid AND d.forum = $forumid";
|
||||
return record_exists_sql($sql);
|
||||
} else {
|
||||
// started discussion?
|
||||
return record_exists('forum_posts','discussion',$did,'userid',$userid);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+10
-2
@@ -729,9 +729,17 @@
|
||||
}
|
||||
|
||||
//load data into form
|
||||
$subscribe=(isset($post->forum)&&forum_is_subscribed($USER->id, $post->forum)) ||
|
||||
(!empty($USER->autosubscribe));
|
||||
|
||||
if (forum_is_subscribed($USER->id, $forum->id)) {
|
||||
$subscribe = true;
|
||||
|
||||
} else if (forum_user_has_posted($forum->id, 0, $USER->id)) {
|
||||
$subscribe = false;
|
||||
|
||||
} else {
|
||||
// user not posted yet - use subscription default specified in profile
|
||||
$subscribe = !empty($USER->autosubscribe);
|
||||
}
|
||||
|
||||
// HACK ALERT: this is very wrong, the defaults should be always initialized before calling $mform->get_data() !!!
|
||||
$mform_post->set_data(array( 'general'=>$heading,
|
||||
|
||||
Reference in New Issue
Block a user