/** * Return wikis on course that have last modified date for current user * * @param stdClass $course * @return array */ function ouwiki_get_ourecent_activity($course) { global $CFG; require_once $CFG->dirroot . '/mod/ouwiki/locallib.php'; $modinfo = get_fast_modinfo($course); $return = array(); foreach ($modinfo->get_instances_of('ouwiki') as $wiki) { if ($wiki->uservisible) { $lastpostdate = ouwiki_get_last_modified($wiki, $wiki->get_course()); if (!empty($lastpostdate)) { $data = new stdClass(); $data->cm = $wiki; $data->text = get_string('lastmodified', 'ouwiki', userdate($lastpostdate, get_string('strftimerecent', 'ouwiki'))); $data->date = $lastpostdate; $return[$data->cm->id] = $data; } } } return $return; }
/** * Simple test of last modified time returning */ public function test_ouwiki_get_last_modified() { global $DB; $this->resetAfterTest(true); $this->setAdminUser(); $user = $this->get_new_user(); $user2 = $this->get_new_user('testouwikiuser2'); $course = $this->get_new_course(); $ouwiki = $this->get_new_ouwiki($course->id, OUWIKI_SUBWIKIS_SINGLE); $cm = get_coursemodule_from_instance('ouwiki', $ouwiki->id); $context = context_module::instance($cm->id); $result = ouwiki_get_last_modified($cm, $course); $this->assertEmpty($result); // Create page + test last modified returns something. $subwiki = ouwiki_get_subwiki($course, $ouwiki, $cm, $context, 0, $user2->id, true); $page = ouwiki_get_current_page($subwiki, 'startpage', OUWIKI_GETPAGE_CREATE); ouwiki_save_new_version($course, $cm, $ouwiki, $subwiki, 'startpage', 'content', -1, -1, -1); $result = ouwiki_get_last_modified($cm, $course, $user2->id); $this->assertNotEmpty($result); // Check other user gets a time. $result2 = ouwiki_get_last_modified($cm, $course, $user->id); $this->assertNotEmpty($result2); $this->assertEquals($result, $result2); // Check admin gets cached. $result = ouwiki_get_last_modified($cm, $course); $this->assertEmpty($result); }