From 9dfc27cc33bdebc4c77538a2028e907eaaf572b6 Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Tue, 30 Mar 2021 09:52:59 +0800 Subject: [PATCH] MDL-71144 mod_choice: Deprecate choice_get_completion_state() --- mod/choice/deprecatedlib.php | 55 ++++++++++++++++++++++++++++++++++++++++++++ mod/choice/lib.php | 29 ++--------------------- 2 files changed, 57 insertions(+), 27 deletions(-) create mode 100644 mod/choice/deprecatedlib.php diff --git a/mod/choice/deprecatedlib.php b/mod/choice/deprecatedlib.php new file mode 100644 index 00000000000..80f9b5078ff --- /dev/null +++ b/mod/choice/deprecatedlib.php @@ -0,0 +1,55 @@ +. + +/** + * List of deprecated mod_choice functions. + * + * @package mod_choice + * @copyright 2021 Jun Pataleta + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Obtains the automatic completion state for this choice based on any conditions + * in forum settings. + * + * @deprecated since Moodle 3.11 + * @todo MDL-71196 Final deprecation in Moodle 4.3 + * @see \mod_choice\completion\custom_completion + * @param object $course Course + * @param object $cm Course-module + * @param int $userid User ID + * @param bool $type Type of comparison (or/and; can be used as return value if no conditions) + * @return bool True if completed, false if not, $type if conditions not set. + */ +function choice_get_completion_state($course, $cm, $userid, $type) { + global $DB; + + // No need to call debugging here. Deprecation debugging notice already being called in \completion_info::internal_get_state(). + + // Get choice details. + $choice = $DB->get_record('choice', array('id' => $cm->instance), '*', + MUST_EXIST); + + // If completion option is enabled, evaluate it and return true/false. + if ($choice->completionsubmit) { + return $DB->record_exists('choice_answers', array( + 'choiceid' => $choice->id, 'userid' => $userid)); + } else { + // Completion option is not enabled so just return $type. + return $type; + } +} diff --git a/mod/choice/lib.php b/mod/choice/lib.php index b67ca1c0120..98584b7e117 100644 --- a/mod/choice/lib.php +++ b/mod/choice/lib.php @@ -62,6 +62,8 @@ global $CHOICE_DISPLAY; $CHOICE_DISPLAY = array (CHOICE_DISPLAY_HORIZONTAL => get_string('displayhorizontal', 'choice'), CHOICE_DISPLAY_VERTICAL => get_string('displayvertical','choice')); +require_once(__DIR__ . '/deprecatedlib.php'); + /// Standard functions ///////////////////////////////////////////////////////// /** @@ -888,33 +890,6 @@ function choice_extend_settings_navigation(settings_navigation $settings, naviga } /** - * Obtains the automatic completion state for this choice based on any conditions - * in forum settings. - * - * @param object $course Course - * @param object $cm Course-module - * @param int $userid User ID - * @param bool $type Type of comparison (or/and; can be used as return value if no conditions) - * @return bool True if completed, false if not, $type if conditions not set. - */ -function choice_get_completion_state($course, $cm, $userid, $type) { - global $CFG,$DB; - - // Get choice details - $choice = $DB->get_record('choice', array('id'=>$cm->instance), '*', - MUST_EXIST); - - // If completion option is enabled, evaluate it and return true/false - if($choice->completionsubmit) { - return $DB->record_exists('choice_answers', array( - 'choiceid'=>$choice->id, 'userid'=>$userid)); - } else { - // Completion option is not enabled so just return $type - return $type; - } -} - -/** * Return a list of page types * @param string $pagetype current page type * @param stdClass $parentcontext Block's parent context -- 2.11.4.GIT