From 5e43eea080228c86370fb19ae4e767497243d5e4 Mon Sep 17 00:00:00 2001 From: Michael Aherne Date: Fri, 8 Jan 2016 11:09:29 +0000 Subject: [PATCH] MDL-52702 plagiarism: Improvements to base plugin class --- lang/en/admin.php | 2 +- lib/plagiarismlib.php | 8 +++++--- plagiarism/lib.php | 24 +++++++++++++++++++----- plagiarism/upgrade.txt | 6 ++++++ 4 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 plagiarism/upgrade.txt diff --git a/lang/en/admin.php b/lang/en/admin.php index 1ecd467767c..2d2c16cc76a 100644 --- a/lang/en/admin.php +++ b/lang/en/admin.php @@ -1032,7 +1032,7 @@ $string['taskgradecron'] = 'Background processing for gradebook'; $string['tasklegacycron'] = 'Legacy cron processing for plugins'; $string['taskmessagingcleanup'] = 'Background processing for messaging'; $string['taskpasswordresetcleanup'] = 'Cleanup password reset attempts'; -$string['taskplagiarismcron'] = 'Background processing for plagiarism plugins'; +$string['taskplagiarismcron'] = 'Background processing for legacy cron in plagiarism plugins'; $string['taskportfoliocron'] = 'Background processing for portfolio plugins'; $string['taskquestioncron'] = 'Background processing for question engine'; $string['taskregistrationcron'] = 'Site registration'; diff --git a/lib/plagiarismlib.php b/lib/plagiarismlib.php index 1c28f17b301..0492ad1aafa 100644 --- a/lib/plagiarismlib.php +++ b/lib/plagiarismlib.php @@ -171,12 +171,14 @@ function plagiarism_cron() { } $plagiarismplugins = plagiarism_load_available_plugins(); foreach($plagiarismplugins as $plugin => $dir) { - mtrace('Processing cron function for plagiarism_plugin_' . $plugin . '...', ''); - cron_trace_time_and_memory(); require_once($dir.'/lib.php'); $plagiarismclass = "plagiarism_plugin_$plugin"; $plagiarismplugin = new $plagiarismclass; - $plagiarismplugin->cron(); + if (method_exists($plagiarismplugin, 'cron')) { + mtrace('Processing cron function for plagiarism_plugin_' . $plugin . '...', ''); + cron_trace_time_and_memory(); + $plagiarismplugin->cron(); + } } } /** diff --git a/plagiarism/lib.php b/plagiarism/lib.php index 003961a34c3..9cfd91d0bc7 100644 --- a/plagiarism/lib.php +++ b/plagiarism/lib.php @@ -19,8 +19,7 @@ * lib.php - Contains Plagiarism base class used by plugins. * * @since Moodle 2.0 - * @package moodlecore - * @subpackage plagiarism + * @package core_plagiarism * @copyright 2010 Dan Marsden http://danmarsden.com * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ @@ -29,8 +28,16 @@ if (!defined('MOODLE_INTERNAL')) { die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page } -//dummy class - all plugins should be based off this. -class plagiarism_plugin { + +/** + * Plagiarism base class used by plugins. + * + * @since Moodle 2.0 + * @package core_plagiarism + * @copyright 2010 Dan Marsden http://danmarsden.com + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +abstract class plagiarism_plugin { /** * Return the list of form element names. @@ -90,10 +97,17 @@ class plagiarism_plugin { */ public function update_status($course, $cm) { } + /** - * hook for cron + * Deprecated cron method. + * + * This method was added by mistake in the previous versions of Moodle, do not override it since it is never called. + * To implement cron you need to register a scheduled task, see https://docs.moodle.org/dev/Task_API. + * For backward compatibility with the old cron API the method cron() from this class can also be used. * + * @deprecated since Moodle 3.1 MDL-52702 - please use scheduled tasks instead. */ public function plagiarism_cron() { + debugging('plagiarism_plugin::plagiarism_cron() is deprecated. Please use scheduled tasks instead', DEBUG_DEVELOPER); } } diff --git a/plagiarism/upgrade.txt b/plagiarism/upgrade.txt new file mode 100644 index 00000000000..bc7d8a1aaa1 --- /dev/null +++ b/plagiarism/upgrade.txt @@ -0,0 +1,6 @@ +This files describes API changes for code that uses the plagiarism API. + +=== 3.1 === + +1) The plagiarism_plugin::plagiarism_cron() and plagiarism_plugin::cron() methods have been deprecated. + Plugins should now use scheduled tasks. \ No newline at end of file -- 2.43.0