diff --git a/lang/en/debug.php b/lang/en/debug.php index 3e0ac39f5bf..41116b3a322 100644 --- a/lang/en/debug.php +++ b/lang/en/debug.php @@ -23,7 +23,6 @@ */ $string['authpluginnotfound'] = 'Authentication plugin {$a} not found.'; -$string['blocknotexist'] = '{$a} block doesn\'t exist'; $string['cannotbenull'] = '{$a} cannot be null!'; $string['cannotdowngrade'] = 'Cannot downgrade {$a->plugin} from {$a->oldversion} to {$a->newversion}.'; $string['cannotfindadmin'] = 'Could not find an admin user!'; @@ -39,7 +38,6 @@ $string['invalidparameter'] = 'Invalid parameter value detected'; $string['invalidresponse'] = 'Invalid response value detected'; $string['line'] = 'Line'; $string['missingconfigversion'] = 'Config table does not contain the version. You cannot continue.'; -$string['modulenotexist'] = '{$a} module doesn\'t exist'; $string['morethanonerecordinfetch'] = 'Found more than one record in fetch() !'; $string['mustbeoveride'] = 'Abstract {$a} method must be overridden.'; $string['noadminrole'] = 'No admin role could be found'; @@ -68,3 +66,7 @@ $string['sqlrelyonobsoletetable'] = 'This SQL relies on obsolete table(s): {$a}! $string['stacktrace'] = 'Stack trace'; $string['withoutversion'] = 'Main version.php file is missing, not readable or broken.'; $string['xmlizeunavailable'] = 'xmlize functions are not available'; + +// Deprecated since Moodle 4.5. +$string['blocknotexist'] = '{$a} block doesn\'t exist'; +$string['modulenotexist'] = '{$a} module doesn\'t exist'; diff --git a/lang/en/deprecated.txt b/lang/en/deprecated.txt index ab183734efa..31c9828e288 100644 --- a/lang/en/deprecated.txt +++ b/lang/en/deprecated.txt @@ -110,5 +110,7 @@ aria:dropdowngrades,core_grades viewresults,core coursesearch,core coursesearch_help,core +blocknotexist,core_debug +modulenotexist,core_debug coursecalendar,core_calendar datechanged,core diff --git a/lang/en/error.php b/lang/en/error.php index f2c76379d43..a366c455a22 100644 --- a/lang/en/error.php +++ b/lang/en/error.php @@ -504,6 +504,7 @@ $string['pagenotexist'] = '
An unusual error occurred trying to view a page th $string['passwordexceeded'] = 'The password can\'t be more than {$a} characters.'; $string['pathdoesnotstartslash'] = 'No valid arguments supplied, path does not start with slash!'; $string['pleasereport'] = 'If you have time, please let us know what you were trying to do when the error occurred:'; +$string['pluginnotexist'] = '{$a} plugin doesn\'t exist'; $string['pluginrequirementsnotmet'] = 'Plugin "{$a->pluginname}" ({$a->pluginversion}) could not be installed. It requires a newer version of Moodle (currently you are using {$a->currentmoodle}, you need {$a->requiremoodle}).'; $string['pluginunsupported'] = 'Plugin "{$a->pluginname}" {$a->pluginversion} does not support this version of Moodle {$a->moodleversion}. Seek plugin information to find supported versions.'; $string['prefixcannotbeempty'] = '
Error: database table prefix cannot be empty ({$a})
diff --git a/lib/upgradelib.php b/lib/upgradelib.php index f0ca4bb42ce..955559e6cbd 100644 --- a/lib/upgradelib.php +++ b/lib/upgradelib.php @@ -373,43 +373,12 @@ function upgrade_main_savepoint($result, $version, $allowabort=true) { * * @category upgrade * @param bool $result false if upgrade step failed, true if completed - * @param string or float $version main version + * @param string|float $version main version * @param string $modname name of module * @param bool $allowabort allow user to abort script execution here - * @return void */ function upgrade_mod_savepoint($result, $version, $modname, $allowabort=true) { - global $DB; - - $component = 'mod_'.$modname; - - if (!$result) { - throw new upgrade_exception($component, $version); - } - - $dbversion = $DB->get_field('config_plugins', 'value', array('plugin'=>$component, 'name'=>'version')); - - if (!$module = $DB->get_record('modules', array('name'=>$modname))) { - throw new \moodle_exception('modulenotexist', 'debug', '', $modname); - } - - if ($dbversion >= $version) { - // something really wrong is going on in upgrade script - throw new downgrade_exception($component, $dbversion, $version); - } - set_config('version', $version, $component); - - upgrade_log(UPGRADE_LOG_NORMAL, $component, 'Upgrade savepoint reached'); - - // reset upgrade timeout to default - upgrade_set_timeout(); - - core_upgrade_time::record_savepoint($version); - - // this is a safe place to stop upgrades if user aborts page loading - if ($allowabort and connection_aborted()) { - die; - } + upgrade_plugin_savepoint($result, $version, 'mod', $modname, $allowabort); } /** @@ -419,57 +388,25 @@ function upgrade_mod_savepoint($result, $version, $modname, $allowabort=true) { * * @category upgrade * @param bool $result false if upgrade step failed, true if completed - * @param string or float $version main version + * @param string|float $version main version * @param string $blockname name of block * @param bool $allowabort allow user to abort script execution here - * @return void */ function upgrade_block_savepoint($result, $version, $blockname, $allowabort=true) { - global $DB; - - $component = 'block_'.$blockname; - - if (!$result) { - throw new upgrade_exception($component, $version); - } - - $dbversion = $DB->get_field('config_plugins', 'value', array('plugin'=>$component, 'name'=>'version')); - - if (!$block = $DB->get_record('block', array('name'=>$blockname))) { - throw new \moodle_exception('blocknotexist', 'debug', '', $blockname); - } - - if ($dbversion >= $version) { - // something really wrong is going on in upgrade script - throw new downgrade_exception($component, $dbversion, $version); - } - set_config('version', $version, $component); - - upgrade_log(UPGRADE_LOG_NORMAL, $component, 'Upgrade savepoint reached'); - - // reset upgrade timeout to default - upgrade_set_timeout(); - - core_upgrade_time::record_savepoint($version); - - // this is a safe place to stop upgrades if user aborts page loading - if ($allowabort and connection_aborted()) { - die; - } + upgrade_plugin_savepoint($result, $version, 'block', $blockname, $allowabort); } /** - * Plugins upgrade savepoint, marks end of blocks upgrade blocks + * Plugins upgrade savepoint, marks end of plugin upgrade blocks * It stores plugin version, resets upgrade timeout * and abort upgrade if user cancels page loading. * * @category upgrade * @param bool $result false if upgrade step failed, true if completed - * @param string or float $version main version + * @param string|float $version main version * @param string $type The type of the plugin. * @param string $plugin The name of the plugin. * @param bool $allowabort allow user to abort script execution here - * @return void */ function upgrade_plugin_savepoint($result, $version, $type, $plugin, $allowabort=true) { global $DB; @@ -480,6 +417,11 @@ function upgrade_plugin_savepoint($result, $version, $type, $plugin, $allowabort throw new upgrade_exception($component, $version); } + // Ensure we're dealing with a real component. + if (core_component::get_component_directory($component) === null) { + throw new moodle_exception('pluginnotexist', 'error', '', $component); + } + $dbversion = $DB->get_field('config_plugins', 'value', array('plugin'=>$component, 'name'=>'version')); if ($dbversion >= $version) {