From 1c0d4f1ebd5d0b028186ccf3b2792c615b85079b Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Tue, 28 Mar 2017 23:38:09 +0530 Subject: [PATCH] MDL-53343 mod_scorm: Migrated scorm_cron into new tasks API --- mod/scorm/classes/task/cron_task.php | 53 ++++++++++++++++++++++++++++ mod/scorm/db/tasks.php | 38 ++++++++++++++++++++ mod/scorm/lang/en/scorm.php | 1 + mod/scorm/lib.php | 4 +-- mod/scorm/version.php | 5 ++- 5 files changed, 96 insertions(+), 5 deletions(-) create mode 100644 mod/scorm/classes/task/cron_task.php create mode 100644 mod/scorm/db/tasks.php diff --git a/mod/scorm/classes/task/cron_task.php b/mod/scorm/classes/task/cron_task.php new file mode 100644 index 00000000000..e88c30b64a2 --- /dev/null +++ b/mod/scorm/classes/task/cron_task.php @@ -0,0 +1,53 @@ +. + +/** + * A scheduled task for scorm cron. + * + * @package mod_scorm + * @copyright 2017 Abhishek kumar + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +namespace mod_scorm\task; +defined('MOODLE_INTERNAL') || die(); + +/** + * A cron_task class to be used by Tasks API. + * + * @copyright 2017 Abhishek kumar + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class cron_task extends \core\task\scheduled_task { + + /** + * Get a descriptive name for this task (shown to admins). + * + * @return string + */ + public function get_name() { + return get_string('crontask', 'mod_scorm'); + } + + /** + * Run scorm cron. + */ + public function execute() { + global $CFG; + require_once($CFG->dirroot . '/mod/scorm/lib.php'); + scorm_cron_scheduled_task(); + } + +} diff --git a/mod/scorm/db/tasks.php b/mod/scorm/db/tasks.php new file mode 100644 index 00000000000..dead20c7bb8 --- /dev/null +++ b/mod/scorm/db/tasks.php @@ -0,0 +1,38 @@ +. + +/** + * Definition of Forum scheduled tasks. + * + * @package mod_scorm + * @category task + * @copyright 2017 Abhishek kumar + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +$tasks = array( + array( + 'classname' => 'mod_scorm\task\cron_task', + 'blocking' => 0, + 'minute' => '*/5', + 'hour' => '*', + 'day' => '*', + 'month' => '*', + 'dayofweek' => '*' + ) +); \ No newline at end of file diff --git a/mod/scorm/lang/en/scorm.php b/mod/scorm/lang/en/scorm.php index 35a334934c6..b15f7377e80 100644 --- a/mod/scorm/lang/en/scorm.php +++ b/mod/scorm/lang/en/scorm.php @@ -91,6 +91,7 @@ $string['confirmloosetracks'] = 'WARNING: The package seems to be changed or mod $string['contents'] = 'Contents'; $string['coursepacket'] = 'Course package'; $string['coursestruct'] = 'Course structure'; +$string['crontask'] = 'Background processing for Scorm'; $string['currentwindow'] = 'Current window'; $string['datadir'] = 'Filesystem error: Can\'t create course data directory'; $string['defaultdisplaysettings'] = 'Default display settings'; diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index b5a5bd09ccf..7025887ca33 100644 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -518,7 +518,7 @@ function scorm_user_complete($course, $user, $mod, $scorm) { } /** - * Function to be run periodically according to the moodle cron + * Function to be run periodically according to the moodle Tasks API * This function searches for things that need to be done, such * as sending out mail, toggling flags etc ... * @@ -526,7 +526,7 @@ function scorm_user_complete($course, $user, $mod, $scorm) { * @global object * @return boolean */ -function scorm_cron () { +function scorm_cron_scheduled_task () { global $CFG, $DB; require_once($CFG->dirroot.'/mod/scorm/locallib.php'); diff --git a/mod/scorm/version.php b/mod/scorm/version.php index 3adf3dd061c..f59ea73ce6e 100644 --- a/mod/scorm/version.php +++ b/mod/scorm/version.php @@ -24,7 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2016122000; // The current module version (Date: YYYYMMDDXX). +$plugin->version = 2017032900; // The current module version (Date: YYYYMMDDXX). $plugin->requires = 2016112900; // Requires this Moodle version. -$plugin->component = 'mod_scorm'; // Full name of the plugin (used for diagnostics). -$plugin->cron = 300; +$plugin->component = 'mod_scorm'; // Full name of the plugin (used for diagnostics). \ No newline at end of file