. /** * A scheduled task for storing issued certificates. * * @package local_certlog * @copyright 2017 Mark Nelson , 2021 Klaus-Uwe Mitterer * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace local_certlog\task; defined('MOODLE_INTERNAL') || die(); /** * A scheduled task for storing issued certificates. * * @package local_certlog * @copyright 2017 Mark Nelson , 2021 Klaus-Uwe Mitterer * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class get_issues_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('taskgetissues', 'local_certlog'); } /** * Execute. */ public function execute() { global $DB, $PAGE; foreach (array("customcert", "htmlcert") as $module) { $issuetable = $module . '_issues'; $certidfield = $module . 'id'; $lb = "{"; $rb = "}"; $cur = $DB->get_field("certlog", "MAX(originid)", array("originname" => $module)) ?: 0; $sql = "SELECT i.id AS originid, i.timecreated AS timestamp, m.course AS course, i.userid AS user, \"$module\" AS originname FROM $lb$issuetable$rb i JOIN $lb$module$rb m ON i.$certidfield = m.id WHERE i.id > :id"; $newer = $DB->get_records_sql($sql, array('id' => $cur)); $DB->insert_records("certlog", $newer); } } }