function quiz_cron in Quiz 7.5
Same name and namespace in other branches
- 8.6 quiz.module \quiz_cron()
- 8.4 quiz.module \quiz_cron()
- 8.5 quiz.module \quiz_cron()
- 6.6 quiz.module \quiz_cron()
- 6.3 quiz.module \quiz_cron()
- 6.4 quiz.module \quiz_cron()
- 6.5 quiz.module \quiz_cron()
- 7.6 quiz.module \quiz_cron()
- 7 quiz.module \quiz_cron()
- 7.4 quiz.module \quiz_cron()
- 6.x quiz.module \quiz_cron()
Implements hook_cron().
File
- ./
quiz.module, line 320 - quiz.module Main file for the Quiz module.
Code
function quiz_cron() {
$result_ids = array();
// Remove old quiz results that haven't been finished.
$rm_time = variable_get('quiz_remove_partial_quiz_record', 0);
// $time = 0 for never.
if ($rm_time) {
$res = db_select('quiz_node_results', 'qnr')
->fields('qnr', array(
'result_id',
))
->condition('time_end', 0)
->where('(:request_time - time_start) > :remove_time', array(
':request_time' => REQUEST_TIME,
':remove_time' => $rm_time,
))
->execute();
while ($result_id = $res
->fetchField()) {
$result_ids[$result_id] = $result_id;
}
}
// Remove invalid quiz results.
$rm_time = variable_get('quiz_remove_invalid_quiz_record', 86400);
// $time = 0 for never.
if ($rm_time) {
$query = db_select('quiz_node_results', 'qnr');
$query
->fields('qnr', array(
'result_id',
));
$query
->join('quiz_node_properties', 'qnp', 'qnr.vid = qnp.vid');
// If the user has a limited amount of takes we don't delete invalid
// results.
$query
->condition('qnp.takes', 0, '=');
$query
->condition('qnr.is_invalid', 1);
$query
->condition('qnr.time_end', REQUEST_TIME - $rm_time, '<=');
$res = $query
->execute();
while ($result_id = $res
->fetchField()) {
$result_ids[$result_id] = $result_id;
}
}
entity_delete_multiple('quiz_result', $result_ids);
}