Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/forum/subscribers.php
Go to the documentation of this file.
00001 <?php
00002 
00003 // This file is part of Moodle - http://moodle.org/
00004 //
00005 // Moodle is free software: you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation, either version 3 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // Moodle is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
00017 
00026 require_once("../../config.php");
00027 require_once("lib.php");
00028 
00029 $id    = required_param('id',PARAM_INT);           // forum
00030 $group = optional_param('group',0,PARAM_INT);      // change of group
00031 $edit  = optional_param('edit',-1,PARAM_BOOL);     // Turn editing on and off
00032 
00033 $url = new moodle_url('/mod/forum/subscribers.php', array('id'=>$id));
00034 if ($group !== 0) {
00035     $url->param('group', $group);
00036 }
00037 if ($edit !== 0) {
00038     $url->param('edit', $edit);
00039 }
00040 $PAGE->set_url($url);
00041 
00042 $forum = $DB->get_record('forum', array('id'=>$id), '*', MUST_EXIST);
00043 $course = $DB->get_record('course', array('id'=>$forum->course), '*', MUST_EXIST);
00044 if (! $cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
00045     $cm->id = 0;
00046 }
00047 
00048 require_login($course->id, false, $cm);
00049 
00050 $context = get_context_instance(CONTEXT_MODULE, $cm->id);
00051 if (!has_capability('mod/forum:viewsubscribers', $context)) {
00052     print_error('nopermissiontosubscribe', 'forum');
00053 }
00054 
00055 unset($SESSION->fromdiscussion);
00056 
00057 add_to_log($course->id, "forum", "view subscribers", "subscribers.php?id=$forum->id", $forum->id, $cm->id);
00058 
00059 $forumoutput = $PAGE->get_renderer('mod_forum');
00060 $currentgroup = groups_get_activity_group($cm);
00061 $options = array('forumid'=>$forum->id, 'currentgroup'=>$currentgroup, 'context'=>$context);
00062 $existingselector = new forum_existing_subscriber_selector('existingsubscribers', $options);
00063 $subscriberselector = new forum_potential_subscriber_selector('potentialsubscribers', $options);
00064 $subscriberselector->set_existing_subscribers($existingselector->find_users(''));
00065 
00066 if (data_submitted()) {
00067     require_sesskey();
00068     $subscribe = (bool)optional_param('subscribe', false, PARAM_RAW);
00069     $unsubscribe = (bool)optional_param('unsubscribe', false, PARAM_RAW);
00071     if (!($subscribe xor $unsubscribe)) {
00072         print_error('invalidaction');
00073     }
00074     if ($subscribe) {
00075         $users = $subscriberselector->get_selected_users();
00076         foreach ($users as $user) {
00077             if (!forum_subscribe($user->id, $id)) {
00078                 print_error('cannotaddsubscriber', 'forum', '', $user->id);
00079             }
00080         }
00081     } else if ($unsubscribe) {
00082         $users = $existingselector->get_selected_users();
00083         foreach ($users as $user) {
00084             if (!forum_unsubscribe($user->id, $id)) {
00085                 print_error('cannotremovesubscriber', 'forum', '', $user->id);
00086             }
00087         }
00088     }
00089     $subscriberselector->invalidate_selected_users();
00090     $existingselector->invalidate_selected_users();
00091     $subscriberselector->set_existing_subscribers($existingselector->find_users(''));
00092 }
00093 
00094 $strsubscribers = get_string("subscribers", "forum");
00095 $PAGE->navbar->add($strsubscribers);
00096 $PAGE->set_title($strsubscribers);
00097 $PAGE->set_heading($COURSE->fullname);
00098 if (has_capability('mod/forum:managesubscriptions', $context)) {
00099     $PAGE->set_button(forum_update_subscriptions_button($course->id, $id));
00100     if ($edit != -1) {
00101         $USER->subscriptionsediting = $edit;
00102     }
00103 } else {
00104     unset($USER->subscriptionsediting);
00105 }
00106 echo $OUTPUT->header();
00107 echo $OUTPUT->heading(get_string('forum', 'forum').' '.$strsubscribers);
00108 if (empty($USER->subscriptionsediting)) {
00109     echo $forumoutput->subscriber_overview(forum_subscribed_users($course, $forum, $currentgroup, $context), $forum, $course);
00110 } else if (forum_is_forcesubscribed($forum)) {
00111     $subscriberselector->set_force_subscribed(true);
00112     echo $forumoutput->subscribed_users($subscriberselector);
00113 } else {
00114     echo $forumoutput->subscriber_selection_form($existingselector, $subscriberselector);
00115 }
00116 echo $OUTPUT->footer();
 All Data Structures Namespaces Files Functions Variables Enumerations