original_string: public function execute() {
          global $CFG, $DB;
  
          $now = time();
  
          mtrace(' processing workshop subplugins ...');
  
          // Now when the scheduled allocator had a chance to do its job.
          // Check if there are some workshops to switch into the assessment phase.
          $workshops = $DB->get_records_select("workshop",
              "phase = 20 AND phaseswitchassessment = 1 AND submissionend > 0 AND submissionend < ?", [$now]);
  
          if (!empty($workshops)) {
              mtrace('Processing automatic assessment phase switch in ' . count($workshops) . ' workshop(s) ... ', '');
              require_once($CFG->dirroot . '/mod/workshop/locallib.php');
              foreach ($workshops as $workshop) {
                  $cm = get_coursemodule_from_instance('workshop', $workshop->id, $workshop->course, false, MUST_EXIST);
                  $course = $DB->get_record('course', ['id' => $cm->course], '*', MUST_EXIST);
                  $workshop = new \workshop($workshop, $cm, $course);
                  $workshop->switch_phase(workshop::PHASE_ASSESSMENT);
  
                  $params = [
                      'objectid' => $workshop->id,
                      'context' => $workshop->context,
                      'courseid' => $workshop->course->id,
                      'other' => [
                          'workshopphase' => $workshop->phase
                      ]
                  ];
                  $event = \mod_workshop\event\phase_switched::create($params);
                  $event->trigger();
  
                  // Disable the automatic switching now so that it is not executed again by accident.
                  // That can happen if the teacher changes the phase back to the submission one.
                  $DB->set_field('workshop', 'phaseswitchassessment', 0, ['id' => $workshop->id]);
              }
              mtrace('done');
          }
      }
code: public function execute() {
          global $CFG, $DB;
  
          $now = time();
  
          mtrace(' processing workshop subplugins ...');
  
          // Now when the scheduled allocator had a chance to do its job.
          // Check if there are some workshops to switch into the assessment phase.
          $workshops = $DB->get_records_select("workshop",
              "phase = 20 AND phaseswitchassessment = 1 AND submissionend > 0 AND submissionend < ?", [$now]);
  
          if (!empty($workshops)) {
              mtrace('Processing automatic assessment phase switch in ' . count($workshops) . ' workshop(s) ... ', '');
              require_once($CFG->dirroot . '/mod/workshop/locallib.php');
              foreach ($workshops as $workshop) {
                  $cm = get_coursemodule_from_instance('workshop', $workshop->id, $workshop->course, false, MUST_EXIST);
                  $course = $DB->get_record('course', ['id' => $cm->course], '*', MUST_EXIST);
                  $workshop = new \workshop($workshop, $cm, $course);
                  $workshop->switch_phase(workshop::PHASE_ASSESSMENT);
  
                  $params = [
                      'objectid' => $workshop->id,
                      'context' => $workshop->context,
                      'courseid' => $workshop->course->id,
                      'other' => [
                          'workshopphase' => $workshop->phase
                      ]
                  ];
                  $event = \mod_workshop\event\phase_switched::create($params);
                  $event->trigger();
  
                  // Disable the automatic switching now so that it is not executed again by accident.
                  // That can happen if the teacher changes the phase back to the submission one.
                  $DB->set_field('workshop', 'phaseswitchassessment', 0, ['id' => $workshop->id]);
              }
              mtrace('done');
          }
      }
code_tokens: public function execute ( ) { global $ CFG , $ DB ; $ now = time ( ) ; mtrace ( ' processing workshop subplugins ...' ) ; // Now when the scheduled allocator had a chance to do its job. // Check if there are some workshops to switch into the assessment phase. $ workshops = $ DB -> get_records_select ( "workshop" , "phase = 20 AND phaseswitchassessment = 1 AND submissionend > 0 AND submissionend < ?" , [ $ now ] ) ; if ( ! empty ( $ workshops ) ) { mtrace ( 'Processing automatic assessment phase switch in ' . count ( $ workshops ) . ' workshop(s) ... ' , '' ) ; require_once ( $ CFG -> dirroot . '/mod/workshop/locallib.php' ) ; foreach ( $ workshops as $ workshop ) { $ cm = get_coursemodule_from_instance ( 'workshop' , $ workshop -> id , $ workshop -> course , false , MUST_EXIST ) ; $ course = $ DB -> get_record ( 'course' , [ 'id' => $ cm -> course ] , '*' , MUST_EXIST ) ; $ workshop = new \ workshop ( $ workshop , $ cm , $ course ) ; $ workshop -> switch_phase ( workshop :: PHASE_ASSESSMENT ) ; $ params = [ 'objectid' => $ workshop -> id , 'context' => $ workshop -> context , 'courseid' => $ workshop -> course -> id , 'other' => [ 'workshopphase' => $ workshop -> phase ] ] ; $ event = \ mod_workshop \ event \ phase_switched :: create ( $ params ) ; $ event -> trigger ( ) ; // Disable the automatic switching now so that it is not executed again by accident. // That can happen if the teacher changes the phase back to the submission one. $ DB -> set_field ( 'workshop' , 'phaseswitchassessment' , 0 , [ 'id' => $ workshop -> id ] ) ; } mtrace ( 'done' ) ; } }
docstring: Run workshop cron.
docstring_tokens: Run workshop cron .