diff --git a/include/class.plugin.php b/include/class.plugin.php index 29dddf0f982c9549e5300e40a462e6906de83e08..a9ed46ffd2311010865fa2c4cccfaca94d6d1de9 100644 --- a/include/class.plugin.php +++ b/include/class.plugin.php @@ -329,16 +329,18 @@ class Plugin { * configuration for the plugin is also removed. If the plugin is * reinstalled, it will have to be reconfigured. */ - function uninstall() { - if ($this->pre_uninstall() === false) + function uninstall(&$errors) { + if ($this->pre_uninstall($errors) === false) return false; $sql = 'DELETE FROM '.PLUGIN_TABLE .' WHERE id='.db_input($this->getId()); PluginManager::clearCache(); - if (db_query($sql) && db_affected_rows()) - return $this->getConfig()->purge(); - return false; + if (!db_query($sql) || !db_affected_rows()) + return false; + + $this->getConfig()->purge(); + return true; } /** @@ -346,9 +348,8 @@ class Plugin { * * Hook function to veto the uninstallation request. Return boolean * FALSE if the uninstall operation should be aborted. - * TODO: Recommend a location to stash an error message if aborting */ - function pre_uninstall() { + function pre_uninstall(&$errors) { return true; }