dirroot.'/course/externallib.php'); use local_treestudyplan\studyplan; use local_treestudyplan\cascadecohortsync; class autocohortsync extends \core\task\scheduled_task { /** * Return the task's name as shown in admin screens. * * @return string */ public function get_name() { return get_string('autocohortsync_name', 'local_treestudyplan'); } /** * Execute the task. */ public function execute() { if(get_config("local_treestudyplan","csync_enable")){ \mtrace("Automatic csync cascading enabled"); $studyplans = studyplan::find_all(); foreach($studyplans as $studyplan) { // Only process studyplans that have been marked for change because // a cohort change has occurred or a course has been added.... if($studyplan->has_csync_changed()){ \mtrace("Studyplan {$studyplan->shortname()} needs processing"); $enroller = new cascadecohortsync($studyplan); $enroller->sync(); $studyplan->clear_csync_changed(); } } \mtrace("Task done"); } else { \mtrace("Automatic csync cascading disabled"); } } }