require_sesskey(); switch ($mode) { case ANONFORUM_CHOOSESUBSCRIBE: // 0 anonforum_forcesubscribe($anonforum->id, ANONFORUM_CHOOSESUBSCRIBE); redirect($returnto, get_string("everyonecannowchoose", "anonforum"), 1); break; case ANONFORUM_FORCESUBSCRIBE: // 1 anonforum_forcesubscribe($anonforum->id, ANONFORUM_FORCESUBSCRIBE); redirect($returnto, get_string("everyoneisnowsubscribed", "anonforum"), 1); break; case ANONFORUM_INITIALSUBSCRIBE: // 2 if ($anonforum->forcesubscribe != ANONFORUM_INITIALSUBSCRIBE) { $users = anonforum_get_potential_subscribers($context, 0, 'u.id, u.email', ''); foreach ($users as $user) { anonforum_subscribe($user->id, $anonforum->id); } } anonforum_forcesubscribe($anonforum->id, ANONFORUM_INITIALSUBSCRIBE); redirect($returnto, get_string("everyoneisnowsubscribed", "anonforum"), 1); break; case ANONFORUM_DISALLOWSUBSCRIBE: // 3 anonforum_forcesubscribe($anonforum->id, ANONFORUM_DISALLOWSUBSCRIBE); redirect($returnto, get_string("noonecansubscribenow", "anonforum"), 1); break; default: print_error(get_string('invalidforcesubscribe', 'anonforum')); }
/** * Returns list of user objects that are subscribed to this anonforum * * @global object * @global object * @param object $course the course * @param anonforum $anonforum the anonforum * @param integer $groupid group id, or 0 for all. * @param object $context the anonforum context, to save re-fetching it where possible. * @param string $fields requested user fields (with "u." table prefix) * @return array list of users. */ function anonforum_subscribed_users($course, $anonforum, $groupid = 0, $context = null, $fields = null) { global $CFG, $DB; $allnames = get_all_user_name_fields(true, 'u'); if (empty($fields)) { $fields = "u.id,\n u.username,\n {$allnames},\n u.maildisplay,\n u.mailformat,\n u.maildigest,\n u.imagealt,\n u.email,\n u.emailstop,\n u.city,\n u.country,\n u.lastaccess,\n u.lastlogin,\n u.picture,\n u.timezone,\n u.theme,\n u.lang,\n u.trackforums,\n u.mnethostid"; } if (empty($context)) { $cm = get_coursemodule_from_instance('anonforum', $anonforum->id, $course->id); $context = context_module::instance($cm->id); } if (anonforum_is_forcesubscribed($anonforum)) { $results = anonforum_get_potential_subscribers($context, $groupid, $fields, "u.email ASC"); } else { // only active enrolled users or everybody on the frontpage list($esql, $params) = get_enrolled_sql($context, '', $groupid, true); $params['anonforumid'] = $anonforum->id; $results = $DB->get_records_sql("SELECT {$fields}\n FROM {user} u\n JOIN ({$esql}) je ON je.id = u.id\n JOIN {anonforum_subscriptions} s ON s.userid = u.id\n WHERE s.anonforum = :anonforumid\n ORDER BY u.email ASC", $params); } // Guest user should never be subscribed to a anonymous forum. unset($results[$CFG->siteguest]); return $results; }