示例#1
0
 public function test_subscription_modes()
 {
     global $DB;
     $this->resetAfterTest(true);
     // Create a course, with a forum.
     $course = $this->getDataGenerator()->create_course();
     $options = array('course' => $course->id);
     $forum = $this->getDataGenerator()->create_module('forum', $options);
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_FORCESUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_FORCESUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::is_forcesubscribed($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::subscription_disabled($forum));
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_DISALLOWSUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_DISALLOWSUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::subscription_disabled($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_forcesubscribed($forum));
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_INITIALSUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_INITIALSUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::subscription_disabled($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_forcesubscribed($forum));
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_CHOOSESUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_CHOOSESUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::subscription_disabled($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_forcesubscribed($forum));
 }
            redirect($returnto, get_string("everyoneisnowsubscribed", "forum"), 1);
            break;
        case FORUM_INITIALSUBSCRIBE:
            // 2
            if ($forum->forcesubscribe != FORUM_INITIALSUBSCRIBE) {
                $users = \mod_forum\subscriptions::get_potential_subscribers($context, 0, 'u.id, u.email', '');
                foreach ($users as $user) {
                    \mod_forum\subscriptions::subscribe_user($user->id, $forum, $context);
                }
            }
            \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_INITIALSUBSCRIBE);
            redirect($returnto, get_string("everyoneisnowsubscribed", "forum"), 1);
            break;
        case FORUM_DISALLOWSUBSCRIBE:
            // 3
            \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_DISALLOWSUBSCRIBE);
            redirect($returnto, get_string("noonecansubscribenow", "forum"), 1);
            break;
        default:
            print_error(get_string('invalidforcesubscribe', 'forum'));
    }
}
if (\mod_forum\subscriptions::is_forcesubscribed($forum)) {
    redirect($returnto, get_string("everyoneisnowsubscribed", "forum"), 1);
}
$info = new stdClass();
$info->name = fullname($user);
$info->forum = format_string($forum->name);
if ($issubscribed) {
    if (is_null($sesskey)) {
        // we came here via link in email
示例#3
0
/**
 * Set the subscription mode for a forum.
 *
 * @param int $forumid
 * @param mixed $value
 * @return bool
 * @deprecated since Moodle 2.8 use \mod_forum\subscriptions::set_subscription_mode() instead
 */
function forum_forcesubscribe($forumid, $value = 1)
{
    debugging("forum_forcesubscribe() has been deprecated, please use \\mod_forum\\subscriptions::set_subscription_mode() instead.", DEBUG_DEVELOPER);
    return \mod_forum\subscriptions::set_subscription_mode($forumid, $value);
}
示例#4
0
 public function test_subscription_modes()
 {
     global $DB;
     $this->resetAfterTest(true);
     // Create a course, with a forum.
     $course = $this->getDataGenerator()->create_course();
     $options = array('course' => $course->id);
     $forum = $this->getDataGenerator()->create_module('forum', $options);
     // Create a user enrolled in the course as a student.
     list($user) = $this->helper_create_users($course, 1);
     // Must be logged in as the current user.
     $this->setUser($user);
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_FORCESUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_FORCESUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::is_forcesubscribed($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::subscription_disabled($forum));
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_DISALLOWSUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_DISALLOWSUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::subscription_disabled($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_forcesubscribed($forum));
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_INITIALSUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_INITIALSUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::subscription_disabled($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_forcesubscribed($forum));
     \mod_forum\subscriptions::set_subscription_mode($forum->id, FORUM_CHOOSESUBSCRIBE);
     $forum = $DB->get_record('forum', array('id' => $forum->id));
     $this->assertEquals(FORUM_CHOOSESUBSCRIBE, \mod_forum\subscriptions::get_subscription_mode($forum));
     $this->assertTrue(\mod_forum\subscriptions::is_subscribable($forum));
     $this->assertFalse(\mod_forum\subscriptions::subscription_disabled($forum));
     $this->assertFalse(\mod_forum\subscriptions::is_forcesubscribed($forum));
 }