Merge branch 'MDL-47918-master' of git://github.com/andrewnicols/moodle
authorDan Poltawski <dan@moodle.com>
Thu, 30 Oct 2014 14:31:38 +0000 (14:31 +0000)
committerDan Poltawski <dan@moodle.com>
Thu, 30 Oct 2014 14:31:38 +0000 (14:31 +0000)
mod/forum/lang/en/forum.php
mod/forum/unsubscribeall.php

index 4ef1c54..85ce9cd 100644 (file)
@@ -490,7 +490,9 @@ $string['unreadpostsnumber'] = '{$a} unread posts';
 $string['unreadpostsone'] = '1 unread post';
 $string['unsubscribe'] = 'Unsubscribe from this forum';
 $string['unsubscribeall'] = 'Unsubscribe from all forums';
-$string['unsubscribeallconfirm'] = 'You are subscribed to {$a} forums now. Do you really want to unsubscribe from all forums and disable forum auto-subscribe?';
+$string['unsubscribeallconfirm'] = 'You are currently subscribed to {$a->forums} forums, and {$a->discussions} discussions. Do you really want to unsubscribe from all forums and discussions, and disable discussion auto-subscription?';
+$string['unsubscribeallconfirmforums'] = 'You are currently subscribed to {$a->forums} forums. Do you really want to unsubscribe from all forums and disable discussion auto-subscription?';
+$string['unsubscribeallconfirmdiscussions'] = 'You are currently subscribed to {$a->discussions} discussions. Do you really want to unsubscribe from all discussions and disable discussion auto-subscription?';
 $string['unsubscribealldone'] = 'All optional forum subscriptions were removed. You will still receive notifications from forums with forced subscription. To manage forum notifications go to Messaging in My Profile Settings.';
 $string['unsubscribeallempty'] = 'You are not subscribed to any forums. To disable all notifications from this server go to Messaging in My Profile Settings.';
 $string['unsubscribed'] = 'Unsubscribed';
index acecc23..42cfcd2 100644 (file)
@@ -52,6 +52,7 @@ if (data_submitted() and $confirm and confirm_sesskey()) {
     foreach($forums as $forum) {
         \mod_forum\subscriptions::unsubscribe_user($USER->id, $forum, context_module::instance($forum->cm), true);
     }
+    $DB->delete_records('forum_discussion_subs', array('userid' => $USER->id));
     $DB->set_field('user', 'autosubscribe', 0, array('id'=>$USER->id));
 
     echo $OUTPUT->box(get_string('unsubscribealldone', 'forum'));
@@ -60,10 +61,18 @@ if (data_submitted() and $confirm and confirm_sesskey()) {
     die;
 
 } else {
-    $a = count(\mod_forum\subscriptions::get_unsubscribable_forums());
+    $count = new stdClass();
+    $count->forums = count(\mod_forum\subscriptions::get_unsubscribable_forums());
+    $count->discussions = $DB->count_records('forum_discussion_subs', array('userid' => $USER->id));
 
-    if ($a) {
-        $msg = get_string('unsubscribeallconfirm', 'forum', $a);
+    if ($count->forums || $count->discussions) {
+        if ($count->forums && $count->discussions) {
+            $msg = get_string('unsubscribeallconfirm', 'forum', $count);
+        } elseif ($count->forums) {
+            $msg = get_string('unsubscribeallconfirmforums', 'forum', $count);
+        } elseif ($count->discussions) {
+            $msg = get_string('unsubscribeallconfirmdiscussions', 'forum', $count);
+        }
         echo $OUTPUT->confirm($msg, new moodle_url('unsubscribeall.php', array('confirm'=>1)), $return);
         echo $OUTPUT->footer();
         die;