From: defacer Date: Tue, 1 Feb 2005 06:51:00 +0000 (+0000) Subject: Add a very useful feature to block_base to make instance config even more X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=0144a0a701b0c86428a54d8c0c7d63874da662cc;p=moodle.git Add a very useful feature to block_base to make instance config even more convenient to use. And take advantage of it to make the block run faster. --- diff --git a/blocks/moodleblock.class.php b/blocks/moodleblock.class.php index 82170ae9ff..205d68048d 100644 --- a/blocks/moodleblock.class.php +++ b/blocks/moodleblock.class.php @@ -539,6 +539,15 @@ class block_base { return set_field('block_instance', 'configdata', base64_encode(serialize($data)), 'id', $this->instance->id); } + /** + * Replace the instance's configuration data with those currently in $this->config; + * @return boolean + * @todo finish documenting this function + */ + function instance_config_commit() { + return set_field('block_instance', 'configdata', base64_encode(serialize($this->config)), 'id', $this->instance->id); + } + } /** diff --git a/blocks/quiz_results/block_quiz_results.php b/blocks/quiz_results/block_quiz_results.php index eb32eb87f5..1b85cfdb64 100644 --- a/blocks/quiz_results/block_quiz_results.php +++ b/blocks/quiz_results/block_quiz_results.php @@ -34,9 +34,15 @@ class block_quiz_results extends block_base { else { // Assuming we are displayed in the quiz view page $quizid = $this->instance->pageid; - $modrecord = get_record('modules', 'name', 'quiz'); - $cmrecord = get_record('course_modules', 'module', $modrecord->id, 'instance', $quizid); - $courseid = $cmrecord->course; + + // A trick to take advantage of instance config and save queries + if(empty($this->config->courseid)) { + $modrecord = get_record('modules', 'name', 'quiz'); + $cmrecord = get_record('course_modules', 'module', $modrecord->id, 'instance', $quizid); + $this->config->courseid = intval($cmrecord->course); + $this->instance_config_commit(); + } + $courseid = $this->config->courseid; } if(empty($quizid)) {