コード例 #1
0
 public function test_auto_openclose_courses()
 {
     global $DB, $CFG;
     $this->resetAfterTest(true);
     $dbtables = $DB->get_tables(false);
     $this->assertEquals(true, array_key_exists('eclass_course_management', $dbtables));
     $eergisteren = time() - 2 * 86400;
     $gisteren = time() - 86400;
     $morgen = time() + 86400;
     $overmorgen = time() + 2 * 86400;
     // Course names are appended with Start, Now, and End, in chronological order.
     $coursense = $this->create_course_vis_start_end(0, $morgen, $overmorgen);
     $coursesne = $this->create_course_vis_start_end(0, $gisteren, $morgen);
     $coursesen = $this->create_course_vis_start_end(0, $eergisteren, $gisteren);
     $coursenes = $this->create_course_vis_start_end(0, $overmorgen, $morgen);
     $courseens = $this->create_course_vis_start_end(1, $morgen, $gisteren);
     $courseesn = $this->create_course_vis_start_end(0, $gisteren, $eergisteren);
     // Bad course change data.
     $coursebadstart = $this->create_course_vis_start_end(0, 0, $overmorgen);
     $coursebadend = $this->create_course_vis_start_end(0, $gisteren, 0);
     $coursebadstartend = $this->create_course_vis_start_end(1, 0, 0);
     $courseopendone = $this->create_course_vis_start_end(0, $gisteren, $morgen, time() - 86000);
     $courseclosedone = $this->create_course_vis_start_end(1, $eergisteren, $gisteren, null, time() - 86000);
     // Model open/close info for a course which has been deleted.
     // Processing this record must not crash the functions.
     $deletedcourseid = $courseclosedone->id + 1;
     $ecmrecord = new stdClass();
     $ecmrecord->courseid = $deletedcourseid;
     $ecmrecord->startdate = $eergisteren;
     $ecmrecord->enddate = $gisteren;
     $DB->insert_record('eclass_course_management', $ecmrecord);
     $ecm = new EclassCourseManager(time());
     $ecm->auto_open_courses();
     $this->check_courseid_vis_opened_closed($coursense->id, 0, true, null);
     $this->check_courseid_vis_opened_closed($coursesne->id, 1, false, null);
     $this->check_courseid_vis_opened_closed($coursesen->id, 1, false, null);
     $this->check_courseid_vis_opened_closed($coursenes->id, 0, true, null);
     $this->check_courseid_vis_opened_closed($courseens->id, 1, true, null);
     $this->check_courseid_vis_opened_closed($courseesn->id, 1, false, null);
     // Check the bad start/end date courses.
     $this->check_courseid_vis_opened_closed($coursebadstart->id, 0, true, true);
     $this->check_courseid_vis_opened_closed($coursebadend->id, 1, false, true);
     $this->check_courseid_vis_opened_closed($coursebadstartend->id, 1, true, true);
     $this->check_courseid_vis_opened_closed($courseopendone->id, 0, false, null);
     $this->check_courseid_vis_opened_closed($courseclosedone->id, 1, false, false);
     $ecm->auto_close_courses();
     $this->check_courseid_vis_opened_closed($coursense->id, 0, null, true);
     $this->check_courseid_vis_opened_closed($coursesne->id, 1, null, true);
     $this->check_courseid_vis_opened_closed($coursesen->id, 0, null, false);
     $this->check_courseid_vis_opened_closed($coursenes->id, 0, null, true);
     $this->check_courseid_vis_opened_closed($courseens->id, 0, null, false);
     $this->check_courseid_vis_opened_closed($courseesn->id, 0, null, false);
     $this->check_courseid_vis_opened_closed($courseopendone->id, 0, false, true);
     $this->check_courseid_vis_opened_closed($courseclosedone->id, 1, false, false);
 }
コード例 #2
0
ファイル: lib.php プロジェクト: MoodleMetaData/MoodleMetaData
 public function cron()
 {
     global $CFG, $DB;
     $starttime = time();
     mtrace('----------------------------------------------------------------------');
     mtrace('enrol-uaims cron cron process launched at ' . userdate(time()));
     $dbtables = $DB->get_tables(false);
     if (!array_key_exists('eclass_course_management', $dbtables)) {
         mtrace('Automatic course opening/closing disabled. (eclass_course_management table does not exist.)');
     } else {
         $autoopenclose = $this->get_config('enableautocourseopenclose');
         if (isset($autoopenclose) && $autoopenclose) {
             $ecm = new EclassCourseManager($starttime);
             $coursesopened = $ecm->auto_open_courses();
             $courseidstrings = $coursesopened == false ? array('none') : array_map('strval', $coursesopened);
             mtrace('Courses auto-opened: ' . implode(',', $courseidstrings));
             $coursesclosed = $ecm->auto_close_courses();
             $courseidstrings = $coursesclosed == false ? array('none') : array_map('strval', $coursesclosed);
             mtrace('Courses auto-closed: ' . implode(',', $courseidstrings));
         } else {
             mtrace("Automatic course opening/closing disabled! (enrol_uaims/enableautocourseopenclose = {$autoopenclose})");
         }
     }
     $timeelapsed = time() - $starttime;
     mtrace('enrol-uaims cron process has completed. Time taken: ' . $timeelapsed . ' seconds.');
 }