$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])); }