<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Uninstalling Conundrum Part 2</title>
	<atom:link href="http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/</link>
	<description>Weblog Tools Blogging Tools Blog</description>
	<pubDate>Tue, 02 Dec 2008 14:29:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: Dave</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1238095</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Sat, 20 Sep 2008 18:53:52 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1238095</guid>
		<description>This is one of the reasons I prefer working with Drupal rather than WordPress. Drupal has a set of coding standards regarding code style, installs, uninstalls, etc that the core Drupal code follows and expects any module developer to follow as well. The variance of code quality of different WordPress plugins is so vast I could never know what to expect when trying out a plugin, let a lone checkout out its source code.</description>
		<content:encoded><![CDATA[<p>This is one of the reasons I prefer working with Drupal rather than WordPress. Drupal has a set of coding standards regarding code style, installs, uninstalls, etc that the core Drupal code follows and expects any module developer to follow as well. The variance of code quality of different WordPress plugins is so vast I could never know what to expect when trying out a plugin, let a lone checkout out its source code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rafael Dohms &#187; Desenvolvendo plugins para WordPress</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1217282</link>
		<dc:creator>Rafael Dohms &#187; Desenvolvendo plugins para WordPress</dc:creator>
		<pubDate>Sun, 09 Mar 2008 22:20:19 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1217282</guid>
		<description>[...] Estas funções foram bastante discutidas, mas ainda não existe um hook [...]</description>
		<content:encoded><![CDATA[<p>[...] Estas funções foram bastante discutidas, mas ainda não existe um hook [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Personal Glory vs Community Spirit</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1213444</link>
		<dc:creator>Personal Glory vs Community Spirit</dc:creator>
		<pubDate>Thu, 14 Feb 2008 03:32:35 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1213444</guid>
		<description>[...] uninstall functionality that was recently discussed over several posts on this blog, and over at Weblog Tools Collection, was clearly something that should be in the core and would be hindered by being a [...]</description>
		<content:encoded><![CDATA[<p>[...] uninstall functionality that was recently discussed over several posts on this blog, and over at Weblog Tools Collection, was clearly something that should be in the core and would be hindered by being a [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: redwall_hp</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212542</link>
		<dc:creator>redwall_hp</dc:creator>
		<pubDate>Fri, 08 Feb 2008 03:35:58 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212542</guid>
		<description>By trying to regulate how people code, you're acting like a big corporation, rather than letting the programmers code the way they want. Some guidelines are fine, they can get out of hand. Imposing restrictions like that aren't a great idea, in my opinion.

My suggestion is to just require plugin authors to note whether or not an uninstaller is built-in.</description>
		<content:encoded><![CDATA[<p>By trying to regulate how people code, you&#8217;re acting like a big corporation, rather than letting the programmers code the way they want. Some guidelines are fine, they can get out of hand. Imposing restrictions like that aren&#8217;t a great idea, in my opinion.</p>
<p>My suggestion is to just require plugin authors to note whether or not an uninstaller is built-in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffro2pt0</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212440</link>
		<dc:creator>Jeffro2pt0</dc:creator>
		<pubDate>Thu, 07 Feb 2008 19:26:45 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212440</guid>
		<description>&lt;strong&gt;@Redwall&lt;/strong&gt; How is my suggestion going against the spirit of OpenSource? The coding guidelines would only be applicable to the extend area of WordPress.org. So plugin authors who do not feel like following those guidelines could just as easily code and release plugins via their own site, which means the open source part of WordPress would still be alive and well.

PHPBB3 has a series of guidelines that plugin authors must follow and although it's tougher to code a plugin, the end results over the long haul will prove their worth.</description>
		<content:encoded><![CDATA[<p><strong>@Redwall</strong> How is my suggestion going against the spirit of OpenSource? The coding guidelines would only be applicable to the extend area of WordPress.org. So plugin authors who do not feel like following those guidelines could just as easily code and release plugins via their own site, which means the open source part of WordPress would still be alive and well.</p>
<p>PHPBB3 has a series of guidelines that plugin authors must follow and although it&#8217;s tougher to code a plugin, the end results over the long haul will prove their worth.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ted Clayton</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212437</link>
		<dc:creator>Ted Clayton</dc:creator>
		<pubDate>Thu, 07 Feb 2008 19:18:13 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212437</guid>
		<description>I have a specific, simple, probably-agreeable suggestion:  on the WordPress.org plugin site, and other places where plugins are offered for download, it would be nice to have the size of the download-file displayed.  The size of the install-files varies commonly over 2 orders of magnitude, and the outliers span 3 orders!
As a sort of plug &#38; pointer for the learner, beginner and casual plugin author, let me note that very often, small-size plugins are simpler, easier ... and often written by other beginners, who will go a lot gentler on your budding skills!
The file-size is not a perfect indicator:  in some cases there are screenshots included that balloon the size, and some simple plugins have fairly large Admin Panel and Help/docs pages.
File-sizes posted with plugin-downloads - thanks!</description>
		<content:encoded><![CDATA[<p>I have a specific, simple, probably-agreeable suggestion:  on the WordPress.org plugin site, and other places where plugins are offered for download, it would be nice to have the size of the download-file displayed.  The size of the install-files varies commonly over 2 orders of magnitude, and the outliers span 3 orders!<br />
As a sort of plug &amp; pointer for the learner, beginner and casual plugin author, let me note that very often, small-size plugins are simpler, easier &#8230; and often written by other beginners, who will go a lot gentler on your budding skills!<br />
The file-size is not a perfect indicator:  in some cases there are screenshots included that balloon the size, and some simple plugins have fairly large Admin Panel and Help/docs pages.<br />
File-sizes posted with plugin-downloads - thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: redwall_hp</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212409</link>
		<dc:creator>redwall_hp</dc:creator>
		<pubDate>Thu, 07 Feb 2008 17:31:46 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212409</guid>
		<description>&lt;i&gt;"This is the only way WordPress would be able to somewhat control the quality of plugins that are coded and released to the public. Granted, you’re not going to solve the problem completely as people will still be able to code plugins for WordPress and release them via their own website, but then, end users of WordPress should think twice about those particular plugins and realize that the only safe route to go should be through the official source of plugins that being the WordPress.org plugin database."&lt;/i&gt;
Not a good idea at all. That would just make it harder to find perfectly good plugins. I'm perfectly fine with manually purging tables from the database. Imposing restrictions like that is against the spirit of open-source software. Plus, everyone has their own coding style, and it would be idiotic to restrict the way people code. It would be like saying "you can only write with monosyllabic words because some people don't know what 'monosyllabic' means."

I suggest, if table deletion is really a problem, &lt;i&gt;suggesting&lt;/i&gt; that plugin authors incorporate uninstallers into their plugins. Do not, whatever you do, make it mandatory. Perhaps a flag could be added to the plugin directory to tell a user whether the plugin has an uninstaller.</description>
		<content:encoded><![CDATA[<p><i>&#8220;This is the only way WordPress would be able to somewhat control the quality of plugins that are coded and released to the public. Granted, you’re not going to solve the problem completely as people will still be able to code plugins for WordPress and release them via their own website, but then, end users of WordPress should think twice about those particular plugins and realize that the only safe route to go should be through the official source of plugins that being the WordPress.org plugin database.&#8221;</i><br />
Not a good idea at all. That would just make it harder to find perfectly good plugins. I&#8217;m perfectly fine with manually purging tables from the database. Imposing restrictions like that is against the spirit of open-source software. Plus, everyone has their own coding style, and it would be idiotic to restrict the way people code. It would be like saying &#8220;you can only write with monosyllabic words because some people don&#8217;t know what &#8216;monosyllabic&#8217; means.&#8221;</p>
<p>I suggest, if table deletion is really a problem, <i>suggesting</i> that plugin authors incorporate uninstallers into their plugins. Do not, whatever you do, make it mandatory. Perhaps a flag could be added to the plugin directory to tell a user whether the plugin has an uninstaller.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WordPress Wednesday News: Happy Birthday WordPress, Automattic Wins and Gets Lots of Money, Security Concerns Over Plugins and Core, WordCamp Hamburg and Hating the Name WordPress.com : The Blog Herald</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212292</link>
		<dc:creator>WordPress Wednesday News: Happy Birthday WordPress, Automattic Wins and Gets Lots of Money, Security Concerns Over Plugins and Core, WordCamp Hamburg and Hating the Name WordPress.com : The Blog Herald</dc:creator>
		<pubDate>Thu, 07 Feb 2008 02:08:04 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212292</guid>
		<description>[...] Missing WordPress Plugins Uninstall Feature: Weblog Tools Collection continues covering the WordPress Plugins lack-of-uninstall features in WordPress and offers tips and recommendations from readers and WordPress experts on where to go [...]</description>
		<content:encoded><![CDATA[<p>[...] Missing WordPress Plugins Uninstall Feature: Weblog Tools Collection continues covering the WordPress Plugins lack-of-uninstall features in WordPress and offers tips and recommendations from readers and WordPress experts on where to go [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WordPress Wednesday News: WordCamp Hamburg Success, Automatic Upgrades Coming, $5,000 Bounty, Prologue Theme, and WordPress Wins Again : The Blog Herald</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212291</link>
		<dc:creator>WordPress Wednesday News: WordCamp Hamburg Success, Automatic Upgrades Coming, $5,000 Bounty, Prologue Theme, and WordPress Wins Again : The Blog Herald</dc:creator>
		<pubDate>Thu, 07 Feb 2008 02:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1212291</guid>
		<description>[...] Missing WordPress Plugins Uninstall Feature: Weblog Tools Collection continues covering the WordPress Plugins lack-of-uninstall features in WordPress and offers tips and recommendations from readers and WordPress experts on where to go [...]</description>
		<content:encoded><![CDATA[<p>[...] Missing WordPress Plugins Uninstall Feature: Weblog Tools Collection continues covering the WordPress Plugins lack-of-uninstall features in WordPress and offers tips and recommendations from readers and WordPress experts on where to go [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JamieO</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209548</link>
		<dc:creator>JamieO</dc:creator>
		<pubDate>Thu, 17 Jan 2008 19:21:44 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209548</guid>
		<description>@Keith - That sounds quite awesome. Hopefully the Automattic guys are aware of it as something similar to that would be an ideal solution to the issues happening currently.

@Otto - And if they are modifying the plugins page to include a column for uninstall, why not also add a column for an 'options' link. When the user clicks that, takes them to the options page(s) for the plugin.

This would clean up many of the 'where do I find options for plugin X' and plugin bloat issues people have. If plugins need more prominance, convert the dashboard into a widget-able area where admin can control the plugins they want to see much like the sidebar is today post major revisions.</description>
		<content:encoded><![CDATA[<p>@Keith - That sounds quite awesome. Hopefully the Automattic guys are aware of it as something similar to that would be an ideal solution to the issues happening currently.</p>
<p>@Otto - And if they are modifying the plugins page to include a column for uninstall, why not also add a column for an &#8216;options&#8217; link. When the user clicks that, takes them to the options page(s) for the plugin.</p>
<p>This would clean up many of the &#8216;where do I find options for plugin X&#8217; and plugin bloat issues people have. If plugins need more prominance, convert the dashboard into a widget-able area where admin can control the plugins they want to see much like the sidebar is today post major revisions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Otto</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209547</link>
		<dc:creator>Otto</dc:creator>
		<pubDate>Thu, 17 Jan 2008 18:54:45 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209547</guid>
		<description>I agree with Alex. Just like there are register_activation_hook and register_deactivation_hook functions, there needs to be a register_uninstall_hook function.

Having such a registered hook would allow the plugin page to create an uninstall link for that plugin. This link would only be available if the plugin was already inactive. This leads to a natural two step process: deactivate then remove. We don't want an implied deactivation, since this forces plugin authors to consider two different approaches to deactivation and uninstallation. Keep it simple.

The uninstall button will call the uninstall hook for the plugin, which would take appropriate action to remove its options and tables and such.

Seems like the best solution and keeps the interface clean and easy.</description>
		<content:encoded><![CDATA[<p>I agree with Alex. Just like there are register_activation_hook and register_deactivation_hook functions, there needs to be a register_uninstall_hook function.</p>
<p>Having such a registered hook would allow the plugin page to create an uninstall link for that plugin. This link would only be available if the plugin was already inactive. This leads to a natural two step process: deactivate then remove. We don&#8217;t want an implied deactivation, since this forces plugin authors to consider two different approaches to deactivation and uninstallation. Keep it simple.</p>
<p>The uninstall button will call the uninstall hook for the plugin, which would take appropriate action to remove its options and tables and such.</p>
<p>Seems like the best solution and keeps the interface clean and easy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ulysses ronquillo</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209042</link>
		<dc:creator>ulysses ronquillo</dc:creator>
		<pubDate>Sun, 13 Jan 2008 17:25:43 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209042</guid>
		<description>Some plugins create their own tables. Some use the wp_options table. Some plugins provide their own scripts to delete database entries. Others you have to manually delete when you no longer need them.

Other plugins use the wp_options table. It tends to bloat over time as plugins are installed/uninstalled. Sifting through the wp_options table and deleting entries can be a daunting task. 

Maybe, WP needs to standardize on one plugin table like a wp_plugins for example to simplify things when plugins are removed from the system?</description>
		<content:encoded><![CDATA[<p>Some plugins create their own tables. Some use the wp_options table. Some plugins provide their own scripts to delete database entries. Others you have to manually delete when you no longer need them.</p>
<p>Other plugins use the wp_options table. It tends to bloat over time as plugins are installed/uninstalled. Sifting through the wp_options table and deleting entries can be a daunting task. </p>
<p>Maybe, WP needs to standardize on one plugin table like a wp_plugins for example to simplify things when plugins are removed from the system?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BoltClock</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209019</link>
		<dc:creator>BoltClock</dc:creator>
		<pubDate>Sun, 13 Jan 2008 15:10:21 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209019</guid>
		<description>I love how phpBB.com site staff has teams to validate MODs and styles before they make it into their official databases. Their method has been around for a few years now, so I'd like to see it happening for WordPress.org too. Thanks for letting Matt know about this :)</description>
		<content:encoded><![CDATA[<p>I love how phpBB.com site staff has teams to validate MODs and styles before they make it into their official databases. Their method has been around for a few years now, so I&#8217;d like to see it happening for WordPress.org too. Thanks for letting Matt know about this <img src='http://weblogtoolscollection.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Martin</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209011</link>
		<dc:creator>Michael Martin</dc:creator>
		<pubDate>Sun, 13 Jan 2008 13:19:47 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1209011</guid>
		<description>Well said. I think the idea of a quality controlled database would work well. With WP 2.3's upgrades, getting into the Extend database is pretty important for a plugin. It might be enough to get a lot of people to follow the rules. :)

(And the point about greying out the Uninstall option when the plugin is active is very good)

As for the user confusion, I suppose that could be solved by adding a line to the plugins page, explaining what Uninstall means, in comparison with Deactivate.</description>
		<content:encoded><![CDATA[<p>Well said. I think the idea of a quality controlled database would work well. With WP 2.3&#8217;s upgrades, getting into the Extend database is pretty important for a plugin. It might be enough to get a lot of people to follow the rules. <img src='http://weblogtoolscollection.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>(And the point about greying out the Uninstall option when the plugin is active is very good)</p>
<p>As for the user confusion, I suppose that could be solved by adding a line to the plugins page, explaining what Uninstall means, in comparison with Deactivate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208873</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Sun, 13 Jan 2008 01:39:49 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208873</guid>
		<description>Until the WP gurus get this ironed out, I would be satisfied if someone just made a list of what plugin creates what db table(s). I have various tables in my various blogs that I have no idea what plugin they're created by :)</description>
		<content:encoded><![CDATA[<p>Until the WP gurus get this ironed out, I would be satisfied if someone just made a list of what plugin creates what db table(s). I have various tables in my various blogs that I have no idea what plugin they&#8217;re created by <img src='http://weblogtoolscollection.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Great Plugin Uninstallation Issue of 2008 &#124; Double Black Design</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208861</link>
		<dc:creator>The Great Plugin Uninstallation Issue of 2008 &#124; Double Black Design</dc:creator>
		<pubDate>Sun, 13 Jan 2008 00:52:28 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208861</guid>
		<description>[...] policy for all plugin developments? It seems that everybody is up in arms about this newest hot Wordpress topic for 2008. A policy of this nature would only seem fitting for such a great web development [...]</description>
		<content:encoded><![CDATA[<p>[...] policy for all plugin developments? It seems that everybody is up in arms about this newest hot Wordpress topic for 2008. A policy of this nature would only seem fitting for such a great web development [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208833</link>
		<dc:creator>Keith</dc:creator>
		<pubDate>Sat, 12 Jan 2008 21:18:06 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208833</guid>
		<description>My &lt;a href="http://www.doubleblackdesign.com/2007/11/20/wordpress-plugin-framework-v004-released/" title="Wordpress Plugin Framework" rel="nofollow"&gt;Wordpress Plugin Framework&lt;/a&gt; (WPF) attempts to address most of these issues that have been discussed with deactivating and uninstalling plugins.

Plugins built on the WPF are automatically provided with "Deactivate Plugin" and "Uninstall Plugin" buttons within the plugin administration screen. When the administrator clicks the "Uninstall Plugin" button the WPF provides a confirmation box prior to uninstallation of the plugin. Once the command is confirmed, the WPF removes all traces of the plugin from the database then masks the plugin's administration interface with a notification box informing the user that the plugin has been uninstalled and needs to be deactivated. This prevents the user from attempting to access the plugin resources once the plugin has been uninstalled. There is probably a way to automate the deactivation after the uninstallation but I can't seem to get past the "headers already sent" error. If anybody would be interested in helping me with this project please contact me via my website.

The WPF is still in the early stages of development and currently only supports creating database entries in the wp-options table. However, future releases will support creating and deleting new database tables as well.

I will also look into adding custom hooks inside the WPF that would allow the plugin developer to handle the uninstallation of custom generated files and file modifications (such as the .htaccess mods mentioned above).</description>
		<content:encoded><![CDATA[<p>My <a href="http://www.doubleblackdesign.com/2007/11/20/wordpress-plugin-framework-v004-released/" title="Wordpress Plugin Framework">Wordpress Plugin Framework</a> (WPF) attempts to address most of these issues that have been discussed with deactivating and uninstalling plugins.</p>
<p>Plugins built on the WPF are automatically provided with &#8220;Deactivate Plugin&#8221; and &#8220;Uninstall Plugin&#8221; buttons within the plugin administration screen. When the administrator clicks the &#8220;Uninstall Plugin&#8221; button the WPF provides a confirmation box prior to uninstallation of the plugin. Once the command is confirmed, the WPF removes all traces of the plugin from the database then masks the plugin&#8217;s administration interface with a notification box informing the user that the plugin has been uninstalled and needs to be deactivated. This prevents the user from attempting to access the plugin resources once the plugin has been uninstalled. There is probably a way to automate the deactivation after the uninstallation but I can&#8217;t seem to get past the &#8220;headers already sent&#8221; error. If anybody would be interested in helping me with this project please contact me via my website.</p>
<p>The WPF is still in the early stages of development and currently only supports creating database entries in the wp-options table. However, future releases will support creating and deleting new database tables as well.</p>
<p>I will also look into adding custom hooks inside the WPF that would allow the plugin developer to handle the uninstallation of custom generated files and file modifications (such as the .htaccess mods mentioned above).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JamieO</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208831</link>
		<dc:creator>JamieO</dc:creator>
		<pubDate>Sat, 12 Jan 2008 20:58:34 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208831</guid>
		<description>If Wordpress had an adequate set of documentation for the plugin hooks and integration process - API documentation from a standard programming concept - it would make that entire process easier.

What about a set of default uninstallation procedures added? The most generic level of uninstall would be a function with variables / parameters based on Kirk M's quote of standard items to remove. The beginner / intermedia developers and plugins which are decent simplicity can call this function and do a few simple tests to confirm it cleans up their code droppings in a nice fashion.

For the more advanced developer / plugin, they can write their own uninstall solution which it sounds like already exists but few go so far as to do, or it isn't presented in a consistent place within dashboard for people to know to use it. If a plugin doesn't need to be uninstalled, you could call the empty function and report success to give people peace of mind that their system is ok.

The other item that I would like to see addressed - which might require restructuring some of the admin UI - is that all plugin options pages be located in one area. Why not have the plugins page be the primary (only) spot for people to access options. They can then present their own "page" inside the options tab and have as many sub-pages as are needed for administration of the plugin.

For plugins which require regular usage (spam filtering, link support, user management) the dashboard could become the equivelent of a widgetized sidebar - each plugin can create it's own widget for admin elements and the user can configure how they would like to position them.

I agree - great to see these types of things getting discussed. The QA group to vet functionality and viability of the plugins is wonderful.</description>
		<content:encoded><![CDATA[<p>If Wordpress had an adequate set of documentation for the plugin hooks and integration process - API documentation from a standard programming concept - it would make that entire process easier.</p>
<p>What about a set of default uninstallation procedures added? The most generic level of uninstall would be a function with variables / parameters based on Kirk M&#8217;s quote of standard items to remove. The beginner / intermedia developers and plugins which are decent simplicity can call this function and do a few simple tests to confirm it cleans up their code droppings in a nice fashion.</p>
<p>For the more advanced developer / plugin, they can write their own uninstall solution which it sounds like already exists but few go so far as to do, or it isn&#8217;t presented in a consistent place within dashboard for people to know to use it. If a plugin doesn&#8217;t need to be uninstalled, you could call the empty function and report success to give people peace of mind that their system is ok.</p>
<p>The other item that I would like to see addressed - which might require restructuring some of the admin UI - is that all plugin options pages be located in one area. Why not have the plugins page be the primary (only) spot for people to access options. They can then present their own &#8220;page&#8221; inside the options tab and have as many sub-pages as are needed for administration of the plugin.</p>
<p>For plugins which require regular usage (spam filtering, link support, user management) the dashboard could become the equivelent of a widgetized sidebar - each plugin can create it&#8217;s own widget for admin elements and the user can configure how they would like to position them.</p>
<p>I agree - great to see these types of things getting discussed. The QA group to vet functionality and viability of the plugins is wonderful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matías</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208826</link>
		<dc:creator>Matías</dc:creator>
		<pubDate>Sat, 12 Jan 2008 20:24:29 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208826</guid>
		<description>I think that there are no issues whatsoever. Wether a plugin makes database modifications or not, the plugin must register itself thanks to the activation hook. Same thing goes for the uninstall one.

A compromise would be to provide the uninstall option for all plugins but if it didn't register any uninstall option then nothing would be done. This has the added advantage of backwards compatibility with existing plugins. I would rather, though, have WP issue a warning about the plugin not having an uninstaller option so DB modifications may still remain. If a plugin doesn't make any DB modifications then it's as simple as defining a function to the uninstall hook that returns success no matter what.</description>
		<content:encoded><![CDATA[<p>I think that there are no issues whatsoever. Wether a plugin makes database modifications or not, the plugin must register itself thanks to the activation hook. Same thing goes for the uninstall one.</p>
<p>A compromise would be to provide the uninstall option for all plugins but if it didn&#8217;t register any uninstall option then nothing would be done. This has the added advantage of backwards compatibility with existing plugins. I would rather, though, have WP issue a warning about the plugin not having an uninstaller option so DB modifications may still remain. If a plugin doesn&#8217;t make any DB modifications then it&#8217;s as simple as defining a function to the uninstall hook that returns success no matter what.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith</title>
		<link>http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208825</link>
		<dc:creator>Keith</dc:creator>
		<pubDate>Sat, 12 Jan 2008 20:24:07 +0000</pubDate>
		<guid isPermaLink="false">http://weblogtoolscollection.com/archives/2008/01/12/uninstalling-conundrum-part-2/#comment-1208825</guid>
		<description>I never really considered this a big problem until I saw the previous topic about this.  I guess I really should go clean out my database.

I think the cleanest solution would be to make API functions to do it, but I think a better way would be to tell WP what database tables and such a plugin is making.  That way, WP (not the plugin itself) can clean things out completely without each plugin having to reinvent the wheel.</description>
		<content:encoded><![CDATA[<p>I never really considered this a big problem until I saw the previous topic about this.  I guess I really should go clean out my database.</p>
<p>I think the cleanest solution would be to make API functions to do it, but I think a better way would be to tell WP what database tables and such a plugin is making.  That way, WP (not the plugin itself) can clean things out completely without each plugin having to reinvent the wheel.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
