Search moodle.org's
Developer Documentation

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
  •    1  <?php
       2  // This file is part of Moodle - http://moodle.org/
       3  //
       4  // Moodle is free software: you can redistribute it and/or modify
       5  // it under the terms of the GNU General Public License as published by
       6  // the Free Software Foundation, either version 3 of the License, or
       7  // (at your option) any later version.
       8  //
       9  // Moodle is distributed in the hope that it will be useful,
      10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
      11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12  // GNU General Public License for more details.
      13  //
      14  // You should have received a copy of the GNU General Public License
      15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
      16  
      17  namespace mod_assign\task;
      18  defined('MOODLE_INTERNAL') || die();
      19  
      20  /**
      21   * A schedule task for assignment cron.
      22   *
      23   * @package   mod_assign
      24   * @copyright 2019 Simey Lameze <simey@moodle.com>
      25   * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
      26   */
      27  class cron_task extends \core\task\scheduled_task {
      28      /**
      29       * Get a descriptive name for this task (shown to admins).
      30       *
      31       * @return string
      32       */
      33      public function get_name() {
      34          return get_string('crontask', 'mod_assign');
      35      }
      36  
      37      /**
      38       * Run assignment cron.
      39       */
      40      public function execute() {
      41          global $CFG;
      42  
      43          require_once($CFG->dirroot . '/mod/assign/locallib.php');
      44          \assign::cron();
      45  
      46          $plugins = \core_component::get_plugin_list('assignsubmission');
      47  
      48          foreach ($plugins as $name => $plugin) {
      49              $disabled = get_config('assignsubmission_' . $name, 'disabled');
      50              if (!$disabled) {
      51                  $class = 'assign_submission_' . $name;
      52                  require_once($CFG->dirroot . '/mod/assign/submission/' . $name . '/locallib.php');
      53                  $class::cron();
      54              }
      55          }
      56          $plugins = \core_component::get_plugin_list('assignfeedback');
      57  
      58          foreach ($plugins as $name => $plugin) {
      59              $disabled = get_config('assignfeedback_' . $name, 'disabled');
      60              if (!$disabled) {
      61                  $class = 'assign_feedback_' . $name;
      62                  require_once($CFG->dirroot . '/mod/assign/feedback/' . $name . '/locallib.php');
      63                  $class::cron();
      64              }
      65          }
      66  
      67          return true;
      68      }
      69  }