MDL-39088 migrate admin tool uninstallation to plugin_manager
authorPetr Škoda <commits@skodak.org>
Wed, 26 Jun 2013 11:39:26 +0000 (13:39 +0200)
committerPetr Škoda <commits@skodak.org>
Thu, 27 Jun 2013 20:20:36 +0000 (22:20 +0200)
admin/tools.php
lang/en/admin.php
lib/pluginlib.php

index 1c4d915..5c7eb38 100644 (file)
@@ -33,40 +33,6 @@ require_once($CFG->libdir.'/tablelib.php');
 
 admin_externalpage_setup('managetools');
 
-$delete  = optional_param('delete', '', PARAM_PLUGIN);
-$confirm = optional_param('confirm', '', PARAM_BOOL);
-
-/// If data submitted, then process and store.
-
-if (!empty($delete) and confirm_sesskey()) {
-    echo $OUTPUT->header();
-    echo $OUTPUT->heading(get_string('tools', 'admin'));
-
-    if (!$confirm) {
-        if (get_string_manager()->string_exists('pluginname', 'tool_' . $delete)) {
-            $strpluginname = get_string('pluginname', 'tool_' . $delete);
-        } else {
-            $strpluginname = $delete;
-        }
-        echo $OUTPUT->confirm(get_string('toolsdeleteconfirm', 'admin', $strpluginname),
-                                new moodle_url($PAGE->url, array('delete' => $delete, 'confirm' => 1)),
-                                $PAGE->url);
-        echo $OUTPUT->footer();
-        die();
-
-    } else {
-        uninstall_plugin('tool', $delete);
-        $a = new stdclass();
-        $a->name = $delete;
-        $pluginlocation = get_plugin_types();
-        $a->directory = $pluginlocation['tool'] . '/' . $delete;
-        echo $OUTPUT->notification(get_string('plugindeletefiles', '', $a), 'notifysuccess');
-        echo $OUTPUT->continue_button($PAGE->url);
-        echo $OUTPUT->footer();
-        die();
-    }
-}
-
 echo $OUTPUT->header();
 echo $OUTPUT->heading(get_string('tools', 'admin'));
 
@@ -104,8 +70,10 @@ foreach ($installed as $config) {
 }
 
 foreach ($plugins as $plugin => $name) {
-    $delete = new moodle_url($PAGE->url, array('delete' => $plugin, 'sesskey' => sesskey()));
-    $delete = html_writer::link($delete, get_string('delete'));
+    $delete = '';
+    if ($deleteurl = plugin_manager::instance()->get_uninstall_url('tool_'.$plugin)) {
+        $delete = html_writer::link($deleteurl, get_string('delete'));
+    }
 
     if (!isset($versions[$plugin])) {
         if (file_exists("$CFG->dirroot/$CFG->admin/tool/$plugin/version.php")) {
index 40c6ece..6473715 100644 (file)
@@ -1022,7 +1022,6 @@ $string['timezoneisforcedto'] = 'Force all users to use';
 $string['timezonenotforced'] = 'Users can choose their own timezone';
 $string['tokenizerrecommended'] = 'Installing the optional PHP Tokenizer extension is recommended -- it improves Moodle Networking functionality.';
 $string['tools'] = 'Admin tools';
-$string['toolsdeleteconfirm'] = 'You are about to completely delete the admin tool \'{$a}\'. This will completely delete everything in the database associated with this plugin. Are you SURE you want to continue?';
 $string['toolsmanage'] = 'Manage admin tools';
 $string['unattendedoperation'] = 'Unattended operation';
 $string['unbookmarkthispage'] = 'Unbookmark this page';
index e0f4217..8b0b325 100644 (file)
@@ -3868,10 +3868,6 @@ class plugininfo_tool extends plugininfo_base {
     public function is_uninstall_allowed() {
         return true;
     }
-
-    public function get_uninstall_url() {
-        return new moodle_url('/admin/tools.php', array('delete' => $this->name, 'sesskey' => sesskey()));
-    }
 }