statisticslib.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. * Functions common to the question usage statistics code.
  18. *
  19. * @package moodlecore
  20. * @subpackage questionbank
  21. * @copyright 2013 The Open University
  22. * @author Jamie Pratt <me@jamiep.org>
  23. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24. */
  25. defined('MOODLE_INTERNAL') || die();
  26. /**
  27. * Question statistics cron code. Deletes cached stats more than a certain age.
  28. */
  29. function question_usage_statistics_cron() {
  30. global $DB;
  31. $expiretime = time() - 5 * HOURSECS;
  32. mtrace("\n Cleaning up old question statistics cache records...", '');
  33. $DB->delete_records_select('question_statistics', 'timemodified < ?', array($expiretime));
  34. $responseanlysisids = $DB->get_records_select_menu('question_response_analysis',
  35. 'timemodified < ?',
  36. array($expiretime),
  37. 'id',
  38. 'id, id AS id2');
  39. $DB->delete_records_list('question_response_analysis', 'id', $responseanlysisids);
  40. $DB->delete_records_list('question_response_count', 'analysisid', $responseanlysisids);
  41. mtrace('done.');
  42. return true;
  43. }