/** * @param array $questionids of question ids. * @return boolean whether any of these questions are being used by any part of Moodle. */ function questions_in_use($questionids) { global $CFG; if (question_engine::questions_in_use($questionids)) { return true; } foreach (core_component::get_plugin_list('mod') as $module => $path) { $lib = $path . '/lib.php'; if (is_readable($lib)) { include_once $lib; $fn = $module . '_questions_in_use'; if (function_exists($fn)) { if ($fn($questionids)) { return true; } } else { // Fallback for legacy modules. $fn = $module . '_question_list_instances'; if (function_exists($fn)) { foreach ($questionids as $questionid) { $instances = $fn($questionid); if (!empty($instances)) { return true; } } } } } } return false; }
/** * @param array $questionids of question ids. * @return bool whether any of these questions are used by any instance of this module. */ function quiz_questions_in_use($questionids) { global $DB, $CFG; require_once($CFG->libdir . '/questionlib.php'); list($test, $params) = $DB->get_in_or_equal($questionids); return $DB->record_exists_select('quiz_question_instances', 'question ' . $test, $params) || question_engine::questions_in_use( $questionids, new qubaid_join('{quiz_attempts} quiza', 'quiza.uniqueid', 'quiza.preview = 0')); }