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:
skodak
2008-07-02 22:06:22 +00:00
parent ffed6d83ad
commit f6c7db283b
2 changed files with 21 additions and 3 deletions
+11 -1
View File
@@ -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
View File
@@ -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,