示例#1
0
$strunsubscribe = get_string('unsubscribe', 'anonforum');
$stryes = get_string('yes');
$strno = get_string('no');
$strrss = get_string('rss');
$stremaildigest = get_string('emaildigest');
$searchform = anonforum_search_form($course);
// Retrieve the list of anonymous forum digest options for later.
$digestoptions = anonforum_get_user_digest_options();
$digestoptions_selector = new single_select(new moodle_url('/mod/anonforum/maildigest.php', array('backtoindex' => 1)), 'maildigest', $digestoptions, null, '');
$digestoptions_selector->method = 'post';
// Start of the table for General Forums
$generaltable = new html_table();
$generaltable->head = array($stranonforum, $strdescription, $strdiscussions);
$generaltable->align = array('left', 'left', 'center');
if ($usetracking = anonforum_tp_can_track_anonforums()) {
    $untracked = anonforum_tp_get_untracked_anonforums($USER->id, $course->id);
    $generaltable->head[] = $strunreadposts;
    $generaltable->align[] = 'center';
    $generaltable->head[] = $strtracking;
    $generaltable->align[] = 'center';
}
$subscribed_anonforums = anonforum_get_subscribed_anonforums($course);
$can_subscribe = is_enrolled($coursecontext);
if ($can_subscribe) {
    $generaltable->head[] = $strsubscribed;
    $generaltable->align[] = 'center';
    $generaltable->head[] = $stremaildigest . ' ' . $OUTPUT->help_icon('emaildigesttype', 'mod_anonforum');
    $generaltable->align[] = 'center';
}
if ($show_rss = ($can_subscribe || $course->id == SITEID) && isset($CFG->enablerssfeeds) && isset($CFG->anonforum_enablerssfeeds) && $CFG->enablerssfeeds && $CFG->anonforum_enablerssfeeds) {
    $generaltable->head[] = $strrss;
 /**
  * Test the logic in the test_anonforum_tp_get_untracked_anonforums() function.
  */
 public function test_anonforum_tp_get_untracked_anonforums()
 {
     global $CFG;
     $this->resetAfterTest();
     $useron = $this->getDataGenerator()->create_user(array('trackforums' => 1));
     $useroff = $this->getDataGenerator()->create_user(array('trackforums' => 0));
     $course = $this->getDataGenerator()->create_course();
     $options = array('course' => $course->id, 'trackingtype' => FORUM_TRACKING_OFF);
     // Off.
     $anonforumoff = $this->getDataGenerator()->create_module('anonforum', $options);
     $options = array('course' => $course->id, 'trackingtype' => FORUM_TRACKING_FORCED);
     // On.
     $anonforumforce = $this->getDataGenerator()->create_module('anonforum', $options);
     $options = array('course' => $course->id, 'trackingtype' => FORUM_TRACKING_OPTIONAL);
     // Optional.
     $anonforumoptional = $this->getDataGenerator()->create_module('anonforum', $options);
     // Allow force.
     $CFG->anonforum_allowforcedreadtracking = 1;
     // On user with force on.
     $result = anonforum_tp_get_untracked_anonforums($useron->id, $course->id);
     $this->assertEquals(1, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     // Off user with force on.
     $result = anonforum_tp_get_untracked_anonforums($useroff->id, $course->id);
     $this->assertEquals(2, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     $this->assertEquals(true, isset($result[$anonforumoptional->id]));
     // Don't allow force.
     $CFG->anonforum_allowforcedreadtracking = 0;
     // On user with force off.
     $result = anonforum_tp_get_untracked_anonforums($useron->id, $course->id);
     $this->assertEquals(1, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     // Off user with force off.
     $result = anonforum_tp_get_untracked_anonforums($useroff->id, $course->id);
     $this->assertEquals(3, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     $this->assertEquals(true, isset($result[$anonforumoptional->id]));
     $this->assertEquals(true, isset($result[$anonforumforce->id]));
     // Stop tracking so we can test again.
     anonforum_tp_stop_tracking($anonforumforce->id, $useron->id);
     anonforum_tp_stop_tracking($anonforumoptional->id, $useron->id);
     anonforum_tp_stop_tracking($anonforumforce->id, $useroff->id);
     anonforum_tp_stop_tracking($anonforumoptional->id, $useroff->id);
     // Allow force.
     $CFG->anonforum_allowforcedreadtracking = 1;
     // On user with force on.
     $result = anonforum_tp_get_untracked_anonforums($useron->id, $course->id);
     $this->assertEquals(2, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     $this->assertEquals(true, isset($result[$anonforumoptional->id]));
     // Off user with force on.
     $result = anonforum_tp_get_untracked_anonforums($useroff->id, $course->id);
     $this->assertEquals(2, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     $this->assertEquals(true, isset($result[$anonforumoptional->id]));
     // Don't allow force.
     $CFG->anonforum_allowforcedreadtracking = 0;
     // On user with force off.
     $result = anonforum_tp_get_untracked_anonforums($useron->id, $course->id);
     $this->assertEquals(3, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     $this->assertEquals(true, isset($result[$anonforumoptional->id]));
     $this->assertEquals(true, isset($result[$anonforumforce->id]));
     // Off user with force off.
     $result = anonforum_tp_get_untracked_anonforums($useroff->id, $course->id);
     $this->assertEquals(3, count($result));
     $this->assertEquals(true, isset($result[$anonforumoff->id]));
     $this->assertEquals(true, isset($result[$anonforumoptional->id]));
     $this->assertEquals(true, isset($result[$anonforumforce->id]));
 }