diff --git a/lib/pluginlib.php b/lib/pluginlib.php index b5ace5c898b..d78258e5e9d 100644 --- a/lib/pluginlib.php +++ b/lib/pluginlib.php @@ -1689,3 +1689,22 @@ class plugintype_report extends plugintype_base implements plugin_information { return new moodle_url('/admin/reports.php', array('delete' => $this->name, 'sesskey' => sesskey())); } } + + +/** + * Class for local plugins + */ +class plugininfo_local extends plugininfo_base { + + public function get_uninstall_url() { + return new moodle_url('/admin/localplugins.php', array('delete' => $this->name, 'sesskey' => sesskey())); + } + + public function get_settings_url() { + if (file_exists($this->full_path('settings.php'))) { + return new moodle_url('/admin/settings.php', array('section' => 'local_' . $this->name)); + } else { + return parent::get_settings_url(); + } + } +}