[wp-hackers] Plugin Management and Autoupdate System
Computer Guru
computerguru at neosmart.net
Sat Jul 29 18:22:06 GMT 2006
I'm done with a framework that checks for the updates.
Basically I'm going with an RDF RSS file that looks something like this:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>CompleteRSS Download Bulletin</title>
<link>http://neosmart.net/dl.php?id=2</link>
<description>CompleteRSS is the best WP plugin ever!</description>
<lastBuildDate>20 Jul 2006 12:34:56 GMT</lastBuildDate>
<item>
<title>Alpha 2</title>
<link>http://neosmart.net/mint/pepper/orderedlist/downloads/download.php?fil
e=http%3A//neosmart.net/downloads/software/WordPress/Plugins/CompleteRSS/Com
pleteRSS_0.2.phps</link>
<guid isPermaLink="false">0.3</guid>
<pubDate>20 Jul 2006 12:34:56 GMT</pubDate>
<description>Upgrade immediately to win a cool
million!</description>
</item>
<item>
<title>Alpha 1</title>
<link>http://neosmart.net/mint/pepper/orderedlist/downloads/download.php?fil
e=http%3A//neosmart.net/downloads/software/WordPress/Plugins/CompleteRSS/Com
pleteRSS_0.1.phps</link>
<guid isPermaLink="false">0.1</guid>
<pubDate>03 Jul 2006 13:14:15 GMT</pubDate>
<description>This version is the first
release!</description>
</item>
</channel>
</rss>
It is saved as a plaintext (.xml or .rdf preferable) file on any server
anywhere. In the plugin itself:
/*
Plugin Name: CompleteRSS
Plugin URI: http://neosmart.net/dl.php?id=2
Update URI: http://neosmart.ath.cx/CompleteRSS.xml
Description: CompleteRSS makes sure your RSS Feeds contain full article text
and are fully valid - because your readers deserve it!
Version: 0.2
Author: Computer Guru
Author URI: http://neosmart.net/blog/
*/
Notice the line of added meta data: "Update URI"
On the server-side I've finished a script that cycle through all installed
plugins, search for "Update URI" metadata, and if found, query the XML/RDF
file, check if a new version is available, and return the result.
Before I take this any further:
Is this OK or not? I don't want to put weeks into it and find out there is
no interest.
I can prolly really soon get a working version of this that has _very_ basic
auto-update and auto-install and auto-remove features included. It'll simply
grab a remote plain-text file, save it as a PHP file on the local server in
the plugins DIR.
On update it will delete the old file and save the new.
On uninstall it will delete the old file.
I don't have anything in my head yet as to the best way of creating an
(un)install routine for anything more complex than this; such as
(un)installing database tables or multiple file plugins.
Source code available on demand, ask and you shall receive. And no, it's not
a plugin, it's a wp-core file.
Computer Guru
NeoSmart Technologies
http://neosmart.net/blog/
More information about the wp-hackers
mailing list