MDL-52333: qtype_calculated: Adding division by zero test
[moodle.git] / question / engine / statisticslib.php
blob9538346b58ab1303384587786e846a6f2a96f8f2
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.
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/>.
17 /**
18 * Functions common to the question usage statistics code.
20 * @package moodlecore
21 * @subpackage questionbank
22 * @copyright 2013 The Open University
23 * @author Jamie Pratt <me@jamiep.org>
24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
27 defined('MOODLE_INTERNAL') || die();
29 /**
30 * Question statistics cron code. Deletes cached stats more than a certain age.
32 function question_usage_statistics_cron() {
33 global $DB;
35 $expiretime = time() - 5 * HOURSECS;
37 mtrace("\n Cleaning up old question statistics cache records...", '');
39 $DB->delete_records_select('question_statistics', 'timemodified < ?', array($expiretime));
40 $responseanlysisids = $DB->get_records_select_menu('question_response_analysis',
41 'timemodified < ?',
42 array($expiretime),
43 'id',
44 'id, id AS id2');
46 $DB->delete_records_list('question_response_analysis', 'id', $responseanlysisids);
47 $DB->delete_records_list('question_response_count', 'analysisid', $responseanlysisids);
49 mtrace('done.');
50 return true;