WP-Table plugin – Fatal Error fix for WordPress 2.5+

The following post first appear at http://www.wpsnippets.com/2008/06/wp-table-plugin-fatal-error-fix/

WP-Table plugin by Alex Boelinger is a unique WordPress plugin that allows admins to create tables, by this I mean the ones with rows and columns like in Excel, easily in WordPress. It is the only one that I am aware of at the moment that makes it possible to add actual tables without putting-in extra HTML when creating new posts and pages.

However, activating the latest version (1.52) of the plugin triggers a fatal error (shown below) in WordPress 2.5+:

Plugin could not be activated because it triggered a fatal error.

Fortunately there is a quick fix that can be done to resolve this issue, where the full credit for this solution goes to Michael Bester, the developer of the Kimili Flash Embed, who posted a comment on Jovel Stefan’s Embedded Video Plugin post about a fix to ensure that a plugin should check for the buttonsnap class upon activation.

This class is used to add a button to your WordPress editor, and should only ever be loaded once, so if any other plugin uses buttonsnap, it will cause the fatal error to occur.

To resolve this problem, find Line 344 in wp-table.php

require_once(WPTABLE_ABSPATH.'js/buttonsnap.php');

and add before it:

if(!class_exists('buttonsnap'))

So ultimately you should see this:

// ButtonSnap needs to be loaded outside the class in order to work right
if(!class_exists('buttonsnap'))
require_once(WPTABLE_ABSPATH.'js/buttonsnap.php');

I tested this on a local install of WordPress 2.5.1, and it worked very well. This quick fix has also been posted on the WordPress Support Forums, and hopefully others will find it helpful as well.

Any feedback would be brilliant! If it works for you, please let me know by posting in the comments. Similarly, if it doesn’t work for you, then again, please do post! I don’t see the plugin requiring any further edits for the time being (apart from new features) and am confident that it will also work with later WordPress versions as well.

UPDATE 20/07/08: Apparently the plugin does work with WP 2.6!
UPDATE 28/12/08: And in WP 2.7 as well!