Uninstall Function

From GeeklogWiki
Revision as of 08:05, 6 May 2009 by Dirk (talk | contribs) (added link to Plugin Auto-Uninstall)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

If you want to give your plugin the ability to uninstall itself then you must implement this function.

Table 6. Uninstall function
Function Description of Function
plugin_uninstall_<plugin name> This function does not take any parameters. The plugin should try and uninstall itself, especially removing all its tables and data structures from the database.
The function should return true if the uninstall succeeded and false if it failed.

As of Geeklog 1.5.0 you can also use the internal plugin uninstall function, "Autouninstall".

Table 7. Autouninstall function
Function Description of Function
plugin_autouninstall_<plugin name> This function does not take any parameters. The plugin has to return an array listing all the elemts that should be uninstalled. This array needs to have a specific format. Here is a sample for the links plugin:
function plugin_autouninstall_links ()
{
    $out = array (
        /* give the name of the tables, without $_TABLES[] */
        'tables' => array('links','linksubmission'),
        /* give the full name of the group, as in the db */
        'groups' => array('Links Admin'),
        /* give the full name of the feature, as in the db */
        'features' => array('links.edit', 'links.moderate', 'links.submit'),
        /* give the full name of the block, including 'phpblock_', etc */
        'php_blocks' => array(),
        /* give all vars with their name */
        'vars'=> array()
    );
    return $out;
}

If you have other things to remove then tables, groups, features, blocks and default values, please remove them before returning the array. If the removal fails, please return "false" instead of the array.