[wp-hackers] WP Plugin Update Detect
Ryan Meyers
ryan at ryanmeyers.com
Tue Aug 3 13:37:50 UTC 2004
WP Plugin Update Detect
©2004 Ryan Meyers
http://www.ryanmeyers.com
Anyone want to know when their favorite plugins have been updated? I
know that I do! And even more so, I want users of my plugins to know
when I've fixed the hundreds of critters running around in them.
With the few plugins that I've released for public use, it's been
amazing how many tech support e-mails that flood in each day. While a
real bug-report is a great help (thanks Janice!), often it's something
that's already been fixed. Users aren't checking the home pages for
updates, miss or don't read the posts on the hacks forum, and thus have
no idea that a brand new, better version of your plugin is available for
their consumption. This is my attempt at making that process a little
bit easier.
Users, please note that adding support for update won't break plugins
that don't support it. Authors, please note that adding support for
update won't break your plugin on users that decide not to utilize it.
It's an optional component on both ends, but one that's worth taking
advantage of, I think.
Once a supported database of WordPress plugins (a la Firefox extensions)
is created, this feature could possibly reach new levels of ease, speed,
and usability. As it is, I think that it will achieve its simple
purpose with a small footprint, since the files it will be retrieving
will be a few bytes in size.
==========================================================
FOR WORDPRESS USERS:
Installation requires editing one file: wp-admin/plugins.php
1) Open wp-admin/plugins.php in your editor
2) Find:
if ( preg_match("|Version:(.*)|i", $plugin_data, $version) )
$version = $version[1];
else
$version ='';
3) After, add:
// BEGIN PLUGIN UPDATE ADD-ON
if ( preg_match("|Update:(.*)|i", $plugin_data, $update) )
{
$update = $update[1];
$update = trim($update);
if ($u = @file("$update")) {
$u = implode('',$u);
$u = trim($u);
$v = trim($version);
if($u != $v){
$updatelink = '<a href="';
$updatelink .= $plugin_uri[1];
$updatelink .= '">';
$updatelink .= '<em><strong>Update
Available:</strong> (';
$updatelink .= $u;
$updatelink .= ')</em></a>';
$description[1] .= '<br />';
$description[1] .= $updatelink;
}
else
{
$updatelink = '';
}
}
else{
$updatelink = '';
}
}
else
{ $update ='';}
//END PLUGIN UPDATE ADD-ON
4) Upload wp-admin/plugins.php
5) Update those plugins!
==========================================================
FOR PLUGIN AUTHORS:
The trick to making this the best it can be for users is a consistent
format. You can alter the code on your end to a certain extent, but the
idea is for users to easily be able to detect updates to your plugins.
Keep it simple!
1) Upload plugin-update.php to your WordPress root.
2) Add a Custom field called 'Current Version' with a value relative to
your plugin's development to each of your WordPress posts detailing
their development.
3) Add the following line to your plugin source (replace 99999 with the
ID for the post mentioned above:
Update: http://www.yoursite.com/yourwpinstall/plugin-update?p=99999
===========================================================
A NOTE FOR AUTHORS OF PLUGINS:
In an effort for mass-usability, I'm proposing that plugin authors that
desire their plugins to be easily updated distrubute the following
instructions with their plugins and/or distribute this file:
/************************************
** **
** TO TAKE ADVANTAGE OF UPDATE **
** DETECTION, PLEASE CONSIDER **
** MAKING THE FOLLOWING ADDITION **
** TO YOUR WORDPRESS INSTALL **
** **
*************************************
OPEN FOR EDITING : wp-admin/plugins.php
FIND :
if ( preg_match("|Version:(.*)|i", $plugin_data, $version) )
$version = $version[1];
else
$version ='';
ADD THE FOLLOWING CODE AFTERWARDS :
// BEGIN PLUGIN UPDATE ADD-ON
if ( preg_match("|Update:(.*)|i", $plugin_data, $update) )
{
$update = $update[1];
$update = trim($update);
if ($u = @file("$update")) {
$u = implode('',$u);
$u = trim($u);
$v = trim($version);
if($u != $v){
$updatelink = '<a href="';
$updatelink .= $plugin_uri[1];
$updatelink .= '">';
$updatelink .= '<em><strong>Update
Available:</strong> (';
$updatelink .= $u;
$updatelink .= ')</em></a>';
$description[1] .= '<br />';
$description[1] .= $updatelink;
}
else
{
$updatelink = '';
}
}
else{
$updatelink = '';
}
}
else
{ $update ='';}
//END PLUGIN UPDATE ADD-ON
*/
More information about the hackers
mailing list