MDL-15390 improved subscribe me option when posting to forum - see tracker for more info; merged from MOODLE_19_STABLE
This commit is contained in:
+11
-1
@@ -4275,7 +4275,17 @@ function forum_discussions_user_has_posted_in($forumid, $userid) {
|
||||
*/
|
||||
function forum_user_has_posted($forumid, $did, $userid) {
|
||||
global $DB;
|
||||
return $DB->record_exists('forum_posts', array('discussion'=>$did,'userid'=>$userid));
|
||||
|
||||
if (empty($did)) {
|
||||
// posted in any forum discussion?
|
||||
$sql = "SELECT 'x'
|
||||
FROM {forum_posts} p
|
||||
JOIN {forum_discussions} d ON d.id = p.discussion
|
||||
WHERE p.userid = :userid AND d.forum = :forumid";
|
||||
return $DB->record_exists_sql($sql, array('forumid'=>$forumid,'userid'=>$userid));
|
||||
} else {
|
||||
return $DB->record_exists('forum_posts', array('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