One Click Updater Plugin 2.0

This version of the WordPress plugin has a lot of new features, and, quite probably, a lot of new bugs, too. In fact, it’s so experimental it even glows in the dark :P

The plugin, which I’ve alternatively called “One Click Updater” and “Single Click Updater” in the past (no doubt to confuse everyone, including me), is now way more than a “plugin updater” plugin. Version 2.0 deals with plugin/theme installation, allows you to determine if and when WordPress checks for updates, and more. It was designed with WP 2.5 in mind, but most of the functions will still work in WP 2.3.

At the moment, the new version is only available from the WordPress.org plugin database.

New Features

  • Displays the number of active plugins and available upgrades right below the “Plugin Management” headline in the “Plugins” tab.
  • An “Upgrade All” option right next to the above (only in WP 2.5). It does exactly what you’d expect – download and install all of the available plugin updates.
  • Plugin and theme installation. I’m encroaching on the OneClick’s territory here… oh well, I haven’t seen a new version of that for a while. You can install a plugin/theme by providing an URL of a .zip file, or uploading the archive file yourself (see Plugins -> Install a Plugin and Themes/Design -> Install a Theme). The installer uses direct filesystem access (for now), so you’ll need proper file permissions for this to work. Eventually, I’ll add support for the new filesystem classes introduced in WP 2.5.
  • Autodetection! The plugin can parse a ZIP file and determine if it’s a plugin or a theme. Some salient data (such as name and version) is also extracted. You can see this in action by going to any of the installer pages (see above) and selecting “Detect automatically” from the “Type” dropdown.
  • Configure how often WordPress checks for plugin updates and new WordPress versions. You can also turn them off (not recommended) and select which “module” to use for plugin upgrades – this plugin, or the built-in updater in WP 2.5. All this is available for the small price of in the Plugins -> Upgrade Settings page.
  • Security. Most functions now use the WordPress nonce mechanism to prevent possible exploits (by the way, the abovementioned OneClick plugin is vulnerable).
  • Compatible with the OneClick Firefox Extension (unfortunately autodetection doesn’t work with this, yet).

Other Changes

  • The new interface is built for WP 2.5 and might not look as good on WP 2.3.x.
  • There are major changes to the internal handling of installation and upgrades – most of the relevant code has been rewritten from scratch. I think it is more elegant now, but new code = new bugs. Beware.
  • The “debug mode” flag is finally available on the “Upgrade Settings” page. Previously you had to change the plugin file itself to get any kind of execution log.
  • Multiple algorithm fallbacks for downloading files – the plugin can use either cURL, fopen() or sockets (via Snoopy) to download something. I only wish I could make filesystem access so robust as well.
  • Better error reporting (I think).
  • Unlike the built-in updater, this plugin calls both the deactivation and activation hooks for every plugin it upgrades.
  • Again, unlike in the WP 2.5 plugin updater, it doesn’t extract the whole archive to memory. I’ve made it extract and analyze archives file-by-file to avoid exceeding PHP memory limits. The limits can be very low on some shared hosting servers and might cause the built-in updater to crash if it encounters a very large ZIP file.
  • Some code (notably the directory creation routine) has been “borrowed” from WP 2.5.

In The Future There Will Be Robots

Or, in other words, where am I going with this plugin? Seeing as WP 2.5 already includes a plugin updater, which will undoubtedly get improved in the next version of WP, it might seem that the One Click Updater is becoming obsolete. After all, it’s a near certainty that WordPress will eventually also include it’s own plugin/theme installer and whatnot.

Does that mean I should just stop developing this plugin? Sure, it might work better than the core updater of WP 2.5 (for some people), but that likely won’t last.

The answer is – I don’t have the slightest idea :P I like my plugins, but I don’t want to “fight” WordPress. What do you think?

Share :
  • Reddit
  • del.icio.us
  • Digg
  • StumbleUpon
  • DZone
  • Ping.fm
  • Sphinn
Related posts :

61 Responses to “One Click Updater Plugin 2.0”

Pages: « 1 [2] 3 » Show All

  1. 2
    frasten says:

    Hi, thank for your fantastic plugin.
    It used to work till version 2, here is the complete log from an example update:


    Checking to see if /var/www/MYSITE/wp-content/plugins/ is writable.
    Okay.
    Nonce verification passed.
    About to upgrade 1 plugins.
    Upgrading 'acronyms/acronyms.php', download URL is 'http://downloads.wordpress.org/plugin/acronyms.1.5.1.zip'.
    The plugin that needs to be upgraded is not active. Good.
    Downloading 'http://downloads.wordpress.org/plugin/acronyms.1.5.1.zip'...
    Downloaded 8156 bytes.
    Will save the new version archive (zip) to a temporary file ''.
    Warning: couldn't create a temporary file at ''.
    Using alternate temporary file '/var/www/MYSITE/wp-content/plugins/one-click-plugin-updater/PLGxPISOQ'.
    About to extract '/var/www/MYSITE/wp-content/plugins/one-click-plugin-updater/PLGxPISOQ'.
    Extracting files from /var/www/MYSITE/wp-content/plugins/one-click-plugin-updater/PLGxPISOQ...
    So far, the type is set to 'plugin'.
    gzopen() found, will use PclZip.
    Starting extraction.
    Can't create directory /!
    Main loop finished.

    Hope this can help to trace the problem. :-)

  2. 3
    White Shadow says:

    I’ll look into it.

  3. 4
    TheGiant says:

    Cool plugin, I like the install feature, but it doesn’t work for me.

    Fatal error: Call to undefined function: file_put_contents()

    Is what I get when I try to install a plugin

  4. 5
    White Shadow says:

    Looks like you have PHP 4. I don’t really plan to make this plugin support old versions of PHP – if it works, good, if not – oh well.

    That said, I’ll fix this error (in 2.0.3), but there’s no guarantee something else won’t break. Try and see.

  5. 6
    Anirudh says:

    White Shadow,

    I’ve made a lot of changes to oneclick, the current version is pretty obsolete. The major function is upload, verify and auto activate (meaning you upload a zip, it detects wether it’s a theme or a plugin, and automatically activates)

    Most of the backend work is done and is extremely stable. I’m very very busy with my academics and cannot continue work on it. If you’re interested in merging code and taking over the project, email me at the comment address.

    I will redirect my traffic to you and set it to auto upgrade, so your plugin will be installed in nearly 30000 blogs worldwide, and also change the wordpress.org trunk edition.

  6. 7
    White Shadow says:

    Wow, well, I don’t know what to say.
    I’ll send an email.

  7. 8
    frasten says:

    Hi, after the upgrade to v2.0.4, the error still remains, however it’s a little different (it’s trying to write in /var/, instead of /):


    Checking to see if /var/www/MYSITE/wp-content/plugins/ is writable.
    Okay.
    Nonce verification passed.
    About to upgrade 1 plugins.
    Upgrading 'all-in-one-seo-pack/all_in_one_seo_pack.php', download URL is 'http://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip'.
    The plugin that needs to be upgraded is not active. Good.
    Downloading 'http://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip'...
    Downloaded 123430 bytes.
    Will save the new version archive (zip) to a temporary file ''.
    Warning: couldn't create a temporary file at ''.
    Using alternate temporary file '/var/www/MYSITE/wp-content/plugins/one-click-plugin-updater/PLGemkIRR'.
    About to extract '/var/www/MYSITE/wp-content/plugins/one-click-plugin-updater/PLGemkIRR'.
    Extracting files from /var/www/MYSITE/wp-content/plugins/one-click-plugin-updater/PLGemkIRR...
    So far, the type is set to 'plugin'.
    gzopen() found, will use PclZip.
    Starting extraction to folder '/var/www/MYSITE/wp-content/plugins/'.
    Creating directory '/var/'
    Can't create directory '/var/!'
    Main loop finished.

    Thank you! :-)

  8. I’m getting the following errors, any ideas?
    This happens, whether I have it set to wp2.5 core,

    Downloading update from http://downloads.wordpress.org/plugin/kb-linker.zip

    Unpacking the update

    Could not create directory

    The other error I get, when not in wp2.5 core mode..is:

    Warning: mkdir() [function.mkdir]: open_basedir restriction in effect. File(/home/) is not within the allowed path(s): (/home/patrickc/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/patrickc/public_html/theresabloginmysoup.com/wp-content/plugins/one-click-plugin-updater/oneclick-plugin-updater.php on line 669
    Can’t create directory ‘/home/!’
    Main loop finished.

    Can’t create directory ‘/home/’.

    The full installation log is below :
    Checking to see if /home/patrickc/public_html/theresabloginmysoup.com/wp-content/plugins/ is writable.
    Okay.
    Error reporting set to E_ALL.
    Nonce verification passed.
    About to upgrade 1 plugins.
    Upgrading ‘blogrush-click-maximizer/blogrush-click-maximizer.php’, download URL is ‘http://downloads.wordpress.org/plugin/blogrush-click-maximizer.zip’.
    The plugin that needs to be upgraded is not active. Good.
    Downloading ‘http://downloads.wordpress.org/plugin/blogrush-click-maximizer.zip’…
    Downloaded 9055 bytes.
    Will save the new version archive (zip) to a temporary file ‘/tmp/PLGYicSSO’.
    About to extract ‘/tmp/PLGYicSSO’.
    Extracting files from /tmp/PLGYicSSO…
    So far, the type is set to ‘plugin’.
    Need to load PclZip.
    gzopen() found, will use PclZip.
    Starting extraction to folder ‘/home/patrickc/public_html/theresabloginmysoup.com/wp-content/plugins/’.
    Creating directory ‘/home/’
    Can’t create directory ‘/home/!’
    Main loop finished.

  9. 10
    White Shadow says:

    As I see it, the problem is that the plugin tries to verify that the /home/ directory exists, and the system function is_dir() returns FALSE for some weird reason. So the plugin tries to create the directory and fails.

    I can’t solve this until I find out why the is_dir() function doesn’t work as expected.

  10. 11
    Christopher says:

    An excellent update to an already great plugin. Many thanks.

    Have just noticed though that some links (after installing plugin or theme) do not take into account wordpress not being installed in root – though other links do!
    Log links work, link to plugins does not.
    Kind regards
    C

  11. 12
    White Shadow says:

    Ah, I think I know why that happens. I’ll fix it soon. Thanks for the comment :)

  12. 13
    Leo says:

    Hi,

    Me again… Huh…

    I’m having a small issue here…

    I have a blog in Chinese which uses a localized mo file. When l18n is enabled, I can’t seem to be able to find the Delete link in the Plugins page. When it’s disabled, the Delete links show normally.

    Could you please spend some time seeing into that?

    Thanks in advance! ^_^

    Regards

  13. 14
    White Shadow says:

    Hmm, I think I know where the problem is. I’ll see if I can fix it.

  14. 15
    Leo says:

    Really fast reply…

    Thanks! :)

  15. 16
    Leo says:

    It works fine now…

    Thanks for your quick fix!

    :)

  16. 17
    Leo says:

    BTW:

    IMHO, I think you may want to add i18n support to your excellent plugins. It’s a pity that these neat things are only linguistically available to English users. I’d love to have them translated into Chinese. But I’m unable to do so without your help.

    :)

  17. 18
    White Shadow says:

    I don’t know much about internationalization. We’ll see about that.

  18. 19
    ovidiu says:

    unfortunately, since one of the last plugin updates, I can’t set the right file permissions in the plugins options page anymore. I used to set it to 775 but now the plugins does not longer save that value. I click on save, it saves and reloads the page and it still shows 755 :-(
    I can’t use the plugin like this, do you have any advice for debugging?

  19. 20
    White Shadow says:

    @ovidiu – Hmm, you are right. Weird that I missed this. I’ll fix it right away.

  20. Hi,

    I was using the previous developer’s plugin (now I’m confused by the names, frankly, so I can’t tell you what it was called) and now I’m using yours, I guess.

    What’s the deal with the yellow band by some of the plugins on the main plugin page? I can’t find any documentation to explain that to me.

    Also, it seems that the out of date plugins aren’t showing up as having an update available now.

    I can’t see an “upgrade all” anywhere, but perhaps I’ve missed it. (Although, it’s not showing anything that needs updating anyway, but I know of two plugins that definitely aren’t the current version, so clearly this isn’t functioning properly.)

    I am using WP 2.6.

    Thanks for your help.

  21. 22
    White Shadow says:

    Those yellow bands are supposed to highlight plugins that have update notifications enabled. You can turn them off in Plugins/Upgrade Settings if you want.

    You may need to refresh the page (to clear the cache) and make sure you have JS enabled if some things don’t show up. Also, it may take a few hours before update notifications appear – WP checks for them periodically (the default is 12 hours). If updates don’t show up after that let me know which plugins are having this problem and I’ll see what I can do.

  22. 23
    pearl says:

    Hi
    I had the Firefox set up to upgrade on automatically… and with the most recent version FF 3.0.1, your plugin doesn’t seem to work. I use the plugin before FF upgrade, and everything seemed to be working fine! Im sure you have seen this and I was wondering when will you be able to fix this issue..

    thanks for all the hard work! we appreciate it very much.

    regards
    Perarl

  23. 24
    White Shadow says:

    I just tested the essential functions (upgrade one plugin & “Upgrade All”) in FF 3.0.1 and they worked fine. What, exactly, is the problem in your case?

  24. 25
    Jonathan says:

    Hi White Shadow.
    Thanks heaps for your great work on this plugin. Really nice, and greatly appreciated by me. The two most tedious and annoying things I didn’t like about WP were super easy and automated (or semi-automated) pluging/theme installing and updating… and then automatic wordpress upgrading (which is sorted out with the Automatic Upgrade plugin). So thanks heaps… I love being able to just click on plugins on some other site and the tell FF to install it on my blog (okay… it works on many instances, but not with those plugin sources that don’t provide a direct link but instead a code driven link).

    ONE IMPROVEMENT / FEATURE REQUEST
    I maintain many blogs. It would be great if the Firefox Extension provided for a means to set up as many blog links as one wants. So that I can then tell Oneclick which blog to install the plugin/theme on.

    Keep up the great work buddy.

    Jonathan

  25. 26
    White Shadow says:

    Thanks :)

    Support for multiple blogs has been requested before; I’ll add it … eventually.

  26. 27
    cekay says:

    Man, what have you done with that fabulous one-click plugin ?
    Nothing works as it did the old way, with what I was so happy and surprised that someone got an easy app for wordpress that works like a charm.
    I’m a little disappointed here, cause this is not marked as a beta or something, but the users have to find out itself. :(
    So, whats not working ?
    Nothing …
    First it’s really annoying that you need to log in on firefox to get the new extension, al uck i’m already registered. For all the others I can recommend the “bug me not” plugin.
    Second I see a big yello warning that plugins are ready to update – even those who are disabled – I try to update … it takes a while and I get a lots of errors.
    Error says, no permission to write … I had no problems with the old version, the owner of all files is set to the same owner that can upload files via ftp. Here is no option for that in one-click
    Third: I try to install a plugin the same way as I appregiated and loved it in the old version, simple rightclick, now I choose install on your blog and accept the warning (yeah i know i can disable that in options) but then i get this error:
    Can’t create file ’scrobbles.php’ in ‘/www/htdocs/XXXXXXXX/wp-content/plugins/’
    I can aonly repeat: I didn’t change anythign to the system and it worked with the older one-click… Why doesn’t it suddenly don’t anymore …
    and why is this buggy version recommended to install inside wordpress ..
    oh boy …

  27. 28
    cekay says:

    Ok, so i switched to wordpress core option. Same result. Here is an example log:

    Plugin directory is ‘/www/htdocs/w0098a5f/wp-content/plugins/’
    Checking to see if /www/htdocs/w0098a5f/wp-content/plugins/ is writable.
    Okay.
    Nonce verification passed.
    About to upgrade 10 plugins.
    Upgrading ‘drain-hole/drain-hole.php’, download URL is ‘http://downloads.wordpress.org/plugin/drain-hole.zip’.
    The plugin that needs to be upgraded is not active. Good.
    Downloading ‘http://downloads.wordpress.org/plugin/drain-hole.zip’…
    Downloaded 447606 bytes.
    Will save the new version archive (zip) to a temporary file ‘/tmp/PLG8tIxco’.
    About to extract ‘/tmp/PLG8tIxco’.
    Extracting files from /tmp/PLG8tIxco…
    So far, the type is set to ‘plugin’.
    Need to load PclZip.
    gzopen() found, will use PclZip.
    Starting extraction to folder ‘/www/htdocs/w0098a5f/wp-content/plugins/’.
    Extracting drain-hole/admin.css
    Can’t create file drain-hole/admin.css in /www/htdocs/w0098a5f/wp-content/plugins/!

  28. 29
    White Shadow says:

    You can still download the “old” OneClick and use that, even though it’s no longer maintained by the original author.

    It’s interesting to note that only people updating from OneClick to this plugin seem to have the problem you describe. So far I haven’t been able to find the cause. Maybe we’d get more useful information if you turn on “Debug mode” in the options page. Maybe not. Ahh, this isn’t easy you know :P

    As for you overall concerns – to each his own. Personally I think this plugin is better than the old OneClick, and OneClick’s author agreed with me (or he wouldn’t have transerred the plugin to my control, obviously). As I mentioned before, if you disagree you can still use the old OneClick plugin and keep it at 0.9.8.

  29. 30
    sherm cohen says:

    After installing our upgrade I can no longer reply to comments. I get: Fatal error: Call to undefined function get_plugins() in /home/admin/public_html/bloggggg/wp-content/plugins/one-click-plugin-updater/oneclick-plugin-updater.php on line 654

  30. 31
    White Shadow says:

    1) What version of WordPress do you have?
    2) Where are you getting this error : when replying through the admin dashboard, or directly on a post?

Pages: « 1 [2] 3 » Show All

Leave a Reply