diff --git a/admin/settings/language.php b/admin/settings/language.php
index 1a9b936b2f9..d3f1688fdd1 100644
--- a/admin/settings/language.php
+++ b/admin/settings/language.php
@@ -17,7 +17,4 @@ if ($hassiteconfig) {
$ADMIN->add('language', $temp);
- // Hidden multilang upgrade page.
- $ADMIN->add('language', new admin_externalpage('multilangupgrade', get_string('multilangupgrade', 'admin'), $CFG->wwwroot.'/'.$CFG->admin.'/multilangupgrade.php', 'moodle/site:config', !empty($CFG->filter_multilang_converted)));
-
} // end of speedup
diff --git a/admin/multilangupgrade.php b/admin/tool/multilangupgrade/index.php
similarity index 68%
rename from admin/multilangupgrade.php
rename to admin/tool/multilangupgrade/index.php
index 77c221905db..04dd6918267 100644
--- a/admin/multilangupgrade.php
+++ b/admin/tool/multilangupgrade/index.php
@@ -1,26 +1,51 @@
.
+
+/**
+ * Search and replace strings throughout all texts in the whole database.
+ *
+ * Unfortunately it was a bad idea to use spans for multilang because it
+ * can not support nesting. Hopefully this will get thrown away soon....
+ *
+ * @package tool
+ * @subpackage multilangupgrade
+ * @copyright 2006 Petr Skoda (http://skodak.org)
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
define('NO_OUTPUT_BUFFERING', true);
-require_once('../config.php');
+require('../../../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->libdir.'/adminlib.php');
-admin_externalpage_setup('multilangupgrade');
+admin_externalpage_setup('toolmultilangupgrade');
$go = optional_param('go', 0, PARAM_BOOL);
###################################################################
echo $OUTPUT->header();
-echo $OUTPUT->heading(get_string('multilangupgrade', 'admin'));
+echo $OUTPUT->heading(get_string('pluginname', 'tool_multilangupgrade'));
-$strmultilangupgrade = get_String('multilangupgradeinfo', 'admin');
+$strmultilangupgrade = get_String('multilangupgradeinfo', 'tool_multilangupgrade');
if (!$go or !data_submitted() or !confirm_sesskey()) { /// Print a form
$optionsyes = array('go'=>1, 'sesskey'=>sesskey());
- echo $OUTPUT->confirm($strmultilangupgrade, new moodle_url('multilangupgrade.php', $optionsyes), 'index.php');
+ echo $OUTPUT->confirm($strmultilangupgrade, new moodle_url('/admin/tool/multilangupgrade/index.php', $optionsyes), new moodle_url('/admin/'));
echo $OUTPUT->footer();
die;
}
@@ -38,7 +63,7 @@ echo $OUTPUT->box_start();
echo 'Progress:';
$i = 0;
-$skiptables = array('config', 'user_students', 'user_teachers');
+$skiptables = array('config', 'block_instances', 'sessions'); // we can not process tables with serialised data here
foreach ($tables as $table) {
if (strpos($table,'pma') === 0) { // Not our tables
@@ -99,7 +124,7 @@ echo $OUTPUT->notification('Rebuilding course cache...', 'notifysuccess');
rebuild_course_cache();
echo $OUTPUT->notification('...finished', 'notifysuccess');
-echo $OUTPUT->continue_button('index.php');
+echo $OUTPUT->continue_button(new moodle_url('/admin/'));
echo $OUTPUT->footer();
die;
diff --git a/admin/tool/multilangupgrade/lang/en/tool_multilangupgrade.php b/admin/tool/multilangupgrade/lang/en/tool_multilangupgrade.php
new file mode 100644
index 00000000000..58ee29f2245
--- /dev/null
+++ b/admin/tool/multilangupgrade/lang/en/tool_multilangupgrade.php
@@ -0,0 +1,27 @@
+.
+
+/**
+ * Strings for component 'tool_multilangupgrade', language 'en', branch 'MOODLE_22_STABLE'
+ *
+ * @package report
+ * @subpackage multilangupgrade
+ * @copyright 2011 Petr Skoda {@link http://skodak.org}
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+$string['multilangupgradeinfo'] = 'The multilang filter syntax was changed in 1.8, <lang> tag is not supported any more.
Example: <span lang="en" class="multilang">Hello!</span><span lang="es" class="multilang">Hola!</span>
Do you want to upgrade the syntax in all existing texts now?';
+$string['pluginname'] = 'Multilang upgrade';
diff --git a/admin/tool/multilangupgrade/settings.php b/admin/tool/multilangupgrade/settings.php
new file mode 100644
index 00000000000..f03b122759c
--- /dev/null
+++ b/admin/tool/multilangupgrade/settings.php
@@ -0,0 +1,31 @@
+.
+
+/**
+ * Link to multilang upgrade script.
+ *
+ * @package tool
+ * @subpackage multilangupgrade
+ * @copyright 2011 Petr Skoda {@link http://skodak.org}
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
+
+if ($hassiteconfig) {
+ // Hidden multilang upgrade page - show in settings root to get more attention.
+ $ADMIN->add('root', new admin_externalpage('toolmultilangupgrade', get_string('pluginname', 'tool_multilangupgrade'), $CFG->wwwroot.'/'.$CFG->admin.'/tool/multilangupgrade/index.php', 'moodle/site:config', !empty($CFG->filter_multilang_converted)));
+}
diff --git a/admin/tool/multilangupgrade/version.php b/admin/tool/multilangupgrade/version.php
new file mode 100644
index 00000000000..8e1b9dd8d16
--- /dev/null
+++ b/admin/tool/multilangupgrade/version.php
@@ -0,0 +1,30 @@
+.
+
+/**
+ * Plugin version info
+ *
+ * @package tool
+ * @subpackage multilangupgrade
+ * @copyright 2011 Petr Skoda {@link http://skodak.org}
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+defined('MOODLE_INTERNAL') || die;
+
+$plugin->version = 2011091700; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires = 2011091600; // Requires this Moodle version
+$plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
+
diff --git a/lang/en/admin.php b/lang/en/admin.php
index 3568cce6c45..9cb5503954c 100644
--- a/lang/en/admin.php
+++ b/lang/en/admin.php
@@ -683,9 +683,6 @@ $string['modeditdefaults'] = 'Default values for activity settings';
$string['modsettings'] = 'Manage activities';
$string['modulesecurity'] = 'Module security';
$string['multilangforceold'] = 'Force old multilang syntax: <span> without the class="multilang" and <lang>';
-$string['multilangupgrade'] = 'Multilang upgrade';
-$string['multilangupgradeinfo'] = 'The multilang filter syntax was changed in 1.8, <lang> tag is not supported any more.
Example: <span lang="en" class="multilang">Hello!</span><span lang="es" class="multilang">Hola!</span>
Do you want to upgrade the syntax in all existing texts now?';
-$string['multilangupgradenotice'] = 'Your site is probably using old multilang syntax, multilang upgrade is recommended.';
$string['mustenablestats'] = 'Stats have not yet been enabled on this site.';
$string['mycoursesperpage'] = 'Number of courses';
$string['mydashboard'] = 'System default dashboard';
diff --git a/lib/pluginlib.php b/lib/pluginlib.php
index bdebc0ae8ba..eef2f7f4e48 100644
--- a/lib/pluginlib.php
+++ b/lib/pluginlib.php
@@ -367,8 +367,9 @@ class plugin_manager {
),
'tool' => array(
- 'bloglevelupgrade', 'capability', 'dbtransfer', 'generator', 'health',
- 'innodb', 'langimport', 'profiling', 'unittest', 'unsuproles', 'xmldb'
+ 'bloglevelupgrade', 'capability', 'dbtransfer', 'generator',
+ 'health', 'innodb', 'langimport', 'multilangupgrade',
+ 'profiling', 'unittest', 'unsuproles', 'xmldb'
),
'webservice' => array(