From efe256e4a91a483bbcb5431eef5c7aa0dbd9a92b Mon Sep 17 00:00:00 2001 From: tjhunt Date: Mon, 16 Jul 2007 13:23:13 +0000 Subject: [PATCH] Stop the 'remove rqp' environment message from appearing after the question type is gone. --- lib/db/upgrade.php | 5 +++++ question/upgrade.php | 42 +++++++++++++++++++++++++++++++----------- version.php | 6 +++--- 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index e7898488e7..18bd856a2c 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -1487,6 +1487,11 @@ function xmldb_main_upgrade($oldversion=0) { $result = $result && create_table($table); } + if ($result && $oldversion < 2007071607) { + require_once($CFG->dirroot . '/question/upgrade.php'); + $result = $result && question_remove_rqp_qtype_config_string(); + } + return $result; } ?> diff --git a/question/upgrade.php b/question/upgrade.php index 12701a02e8..e9d1cd2b28 100644 --- a/question/upgrade.php +++ b/question/upgrade.php @@ -34,19 +34,39 @@ function question_check_no_rqp_questions($result) { } function question_remove_rqp_qtype() { + global $CFG; + $result = true; - $table = new XMLDBTable('question_rqp_states'); - $result = $result && drop_table($table); - - $table = new XMLDBTable('question_rqp'); - $result = $result && drop_table($table); - - $table = new XMLDBTable('question_rqp_types'); - $result = $result && drop_table($table); - - $table = new XMLDBTable('question_rqp_servers'); - $result = $result && drop_table($table); + // Only remove the question type if the code is gone. + if (!is_dir($CFG->dirroot . '/question/type/rqp')) { + $table = new XMLDBTable('question_rqp_states'); + $result = $result && drop_table($table); + + $table = new XMLDBTable('question_rqp'); + $result = $result && drop_table($table); + + $table = new XMLDBTable('question_rqp_types'); + $result = $result && drop_table($table); + + $table = new XMLDBTable('question_rqp_servers'); + $result = $result && drop_table($table); + + $result = $result && unset_config('qtype_rqp_version'); + } + + return $result; +} + +function question_remove_rqp_qtype_config_string() { + global $CFG; + + $result = true; + + // An earlier, buggy version of the previous function missed out the unset_config call. + if (!empty($CFG->qtype_rqp_version) && !is_dir($CFG->dirroot . '/question/type/rqp')) { + $result = $result && unset_config('qtype_rqp_version'); + } return $result; } diff --git a/version.php b/version.php index e6ae71c3d7..2433ca533e 100644 --- a/version.php +++ b/version.php @@ -6,9 +6,9 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2007071501; // YYYYMMDD = date - // XY = increments within a single day + $version = 2007071600; // YYYYMMDD = date + // XY = increments within a single day - $release = '1.9 dev'; // Human-friendly version name + $release = '1.9 dev'; // Human-friendly version name ?> -- 2.39.5