Tag Archive for 'wordpress'

WP-Slimbox2 v1.0.3.2 (and v1.0.3.1) Released

So I had to release extremely two minor bug fixes (seems like that’s what usually happens).

Apparently I’d never committed the changes I’d made to handle the updated RTL localization support in the index.php file, so release v1.0.3.1 remedied that.

Then, after I had reports from two people who apparently had some minor issues with the plugin (one of them thankfully providing clarity to the issue) not loading the defaults. As it turns out, the code I’d implemented to help me see the localizations people running the plugin were using involved changes that I believe were initializing the plugin storage variable in such a way that bypassed the actual default initialization process. If you’d already been using the plugin, you didn’t notice a problem, but if you were a new installer you’d get a solid black screen when you tried to use the slimbox effect. Needless to say, that just wouldn’t do, so I tweaked the initialization code, and it should all be fixed now.

While you’re here, why don’t you check out our store and buy a T-Shirt!

WP-Slimbox2 v1.0.3 Released!

I’ve been sitting on a number of localizations that have been coming in ever since the previous release. I’d been holding off on an update since I’d hoped to get all the current localizations updated, rather than having several minor releases in a short period of time that only updated localizations. Unfortunately, nv1962, who graciously manages the Spanish and Dutch localizations, had a major computer failure just around the time of the last release. He wasn’t able to get things back in order until just a few weeks ago, which was a bit longer than I’d realized! Laws was also able to provide me with an update to the German/Deutsch localization.

In that time, however, I was also contacted by Marcis G. who provided me with a Belarusian/Беларускі localization, and later by easespot with a Chinese (Simplified)/中文 localization (and before I had a chance to release it FunDo provided a second Chinese (Simplified) localization).

Once all of the localizations were in and up to date I had to do some tweaking, plus my curiosity had been piqued by the number of localizations I was getting in, and I wanted to do something that would help me track just how many people are using WP-Slimbox2 in a language other than English, so I threw together a little tracking script, statTrack.php that would transmit that information to me upon activation of the plugin. The only information that’s transmitted is the locale, and it’s only ever done once. Since I know some people are a bit touchy about anything that “phones home” I implemented it in such a way that it can easily be deactivated by deleting the statTrack.php file, without effecting the functionality of the plugin.

Now, just as I was about to wrap all of that up, Christophe Beyls, the creator of Slimbox, posted a comment on the last release letting me know that he’d just released version 2.0.4 of Slimbox, so of course I had to tack that on to the list of things to implement! The main thing he’d implemented that would effect the WordPress community was increased support for RTL languages, though I still don’t have any RTL localizations. He also fixed a few issues with jQuery 1.4 and Flash (currently WordPress only uses 1.3.2, but some users may implement 1.4, and eventually WordPress will likely upgrade. He also trimmed the script down a bit by removing some compatibility code, which was no longer needed after he switched the jQuery requirement to 1.3.

Ok, so I finally got all of that taken care of, but there was still one more thing to do! My brother and I have been hoping to start marketing some custom art type projects, and he’d finally gotten around to getting some of them off the ground, so we’ve added a store! Currently we’re just selling some silk-screen shirt designs, but it’s still cool. Check it out and support Transient Monkey!

WP-Slimbox2 v1.0.2 Released!

I’m a bit late writing this post, but it seems like every time I make major changes to my plugin, I get hammered with a bunch of little glitches that effect a bunch of people other than me. I suppose that’s the downside of not having a group of people to do beta testing for you. On the plus side, I’ve been doing my best to stay apprised of problems as they arise in the support forums (and even those from people who….irritatingly…fail to read about posting problems in the support forums and post them in comments or on the WP site).

I think, and hope, that I’ve finally ironed out all the little glitches. The only problem I’m still aware of is actually not a problem with the plugin so much as it is a problem with other plugins and themes that fail to properly load jQuery by using wp_enqueue_script(). It always bugs me when people have problems with my plugin because of someone else’s poor coding practice. It bugs me when people have problems with my own poor coding, but at least I have only myself to blame for that!

For those of you curious as to what was done in the 1.0.2 release, I patched a rather glaring error related to Internet Explorer, a potential XSS vulnerability, and an obscure updating issue. I also added a Turkish/Türkçe Translation, graciously provided by Serhat Yolaçan and an updated French/Français Translation again provided by Jandry.

For those of you who are curious, the XSS vulnerability was due to an issue discussed here, by Mark Jaquith. While I understand how one could trigger the exploits, I don’t fully understand how those exploits do any damage, but whatever the case, it’s been resolved. I don’t actually think this was a real security issue for most people, since you have to be logged into the admin options to access it, but in WordPress MU installs it could have been an issue. Either way, upgrade! Fixing this issue also had the added bonus of fixing an issue where one user was unable to update their Slimbox settings because somehow the form was submitting the server directory path, and not the url path. I don’t really know what caused that in the first place, nor do I know why it wasn’t a problem in previous versions of the plugin, but it’s fixed, so I won’t complain.

The issue with Internet Explorer likely effected more people, given the prevalence of IE users out there, and unfortunately was tied into my transition from dynamic JS files to static JS files. Essentially I was trying to convert a string array of numbers into an integer array of numbers, so I used a function I’d found, .map(Number). Unfortunately, I failed to then test the script in IE, since I would have discovered that apparently that function isn’t supported by IE. There’s likely a much better way to do it, but ultimately I wound up manually writing a loop to create the integer array and allow the script to work correctly in IE.

I’m hoping to have version 1.0.3 out later this week, but this update should only interest people who use the Spanish/Español, Dutch/Nederlandse, and German/Deutsch translations, or would like to use the plugin in Simplified Chinese! That’s right, the next release will include Simplified Chinese thanks to easespot.

Hopefully I’m done with major updates to the plugin, and future releases will be limited to simply adding translations, but if you have good ideas feel free to post them to our support forums and I’ll see what I can do.

WP-Slimbox2 v1.0.1 Released!

That’s right, another update already! Unfortunately, this one was to fix an issue some users were reporting regarding an error after installing the plugin that sadly made their sites unusable. I hope everyone who was experiencing that issue has since upgraded and can get back to enjoying the benefits of the plugin.

Several users reported errors similar to the following:

Fatal error: Call to a member function get_option() on a non-object in /var/wordpress/wp-content/plugins/wp-slimbox2

In each case, it appeared that for some reason the $options variable, which was declared as a global variable, was not being properly recognized as an object. I don’t know why this is, though I suspect it’s tied into either the version or the settings of PHP being used on the host. This would explain why several users had no problems, and several others did. In one case someone had no problems on one site, but on another site they did.

If anybody can explain to me why this is, I’d appreciate it. Either way, I was able to resolve the issue by just recreating the variable in each function. This seems to me like it would be less than ideal, but someone else informed me that WP already caches options after fetching them, to minimize calls to the database, and so by recreating the object, I’m just pulling from the cache, or something like that. It works, that’s the important thing!

While attempting to diagnose the problem I also discovered a tiny glitch resulting from one of the new features I’d added. The grouping of autoloaded images wasn’t correctly grouping my images by post anymore. The original code was written as follows:

slimbox2_options.selector = "div.entry-content, div.gallery, div.entry, div.post, div#page, body";
return (this==el) || ($(this).parents(slimbox2_options.selector)[0] && ($(this).parents(slimbox2_options.selector)[0]==$(el).parents(slimbox2_options.selector)[0]))

I misunderstood this to mean that it would search through the parent elements for each image, and progressively search for an element that matched the selector. In this case it would look for a div of class entry-content, gallery, entry, or post, as well as a div with an id of “page” and if that all failed the body element. In actuality, while this would do that, it would also sort the results, which screwed them up. I revised the code as follows:

slimbox2_options.selector = "div.entry-content, div.gallery, div.entry, div.post, div#page, body";
return (this==el) || ($(this).closest(slimbox2_options.selector)[0] && ($(this).closest(slimbox2_options.selector)[0]==$(el).closest(slimbox2_options.selector)[0]))

I could even drop the [0] as closest only returns a single element anyway. This function actually searches for the first parent element that matches the selector, not all of them. If it finds a gallery first, that’s what it returns, if it finds entry-content, that’s what it returns, etc. This would allow a bit more granularity in the selection, and also better enable out-of-the-box support for more users and themes.

The downside to this change is that closest was introduced in version 1.3 of jQuery, which WordPress didn’t include until version 2.8. I’d hope most people aren’t hanging around updating their plugins and not their WordPress install, but you never know. If someone actually did want to do that, they could change closest back to parents, and just be more specific with the selector.

As translations are updated, or added I plan to make a few more minor releases, but hopefully I’ve got all the main things in now.

WP-Slimbox2 v1.0 Released!

It’s been practically a year since the last release, but I finally got up the motivation to mess with the code some more and add even more features to the already numerous possibilities within the plugin.

Release 1.0 includes several new options such as:

The ability to enable the effect on mobile phones (originally there was no option, but now it’s disabled by default).
The ability to control where the caption text comes from.
The ability to control what parent element to group images by.
The ability to render the caption as a URL to the original image.

Large portions of the backend of been rewritten as well and now the JavaScript files are entirely static, no more dynamic generation from php. This was accomplished by utilizing the wp_localize_script function of WordPress that let’s the options be loaded up in the main page, which is dynamic anyway.

If you localized the plugin in the past (or would like to now), please help bring your translations up to date!

WP-Slimbox2 v0.9.7 Released!

The latest version of WP-Slimbox2, v0.9.7, has been released.

Major changes on the user side include the addition of the wonderful jQuery Farbtastic colorpicker Javascript, created by Steven Wittens and a new key code detection script (written by me) that allows you to simply type the keys you’d like to use instead of looking up their key code.

Major changes on the backend include a rewrite of the core to utilize the WPlize class to clean up the code and minimize database calls by utilizing a single database entry and utilizing an array to store all the variables.

Major changes for people who don’t speak English, or would just prefer to use their native tongue, we’ve added Dutch/Nederlandse and French/Français to the list of supported languages. Thank you nv1962 and Jandry for your efforts, and to all the translators for bringing their translations up to speed.

That means WP-Slimbox2 is now available in Dutch/Nederlandse, English (of course), French/Français, German/Deutsch, and Spanish/Español.

Hopefully the list of supported languages will continue to grow. If you’d like to contribute a translation, or have suggestions please post a comment and check out the support forums.

Calling Translators/Localizers

For those of you who are unaware, WP-Slimbox2 has had Localization support since v0.9.4, and support for RTL Localization since v0.9.5.

Unfortunately, what I do not have are localizations, Spanish/Español aside.

So I’m putting out the word, on my mostly unread blog, requesting people to provide translations! It uses the standard POT file method, the same as WordPress, so just load up the POT file included in the languages sub-directory of the plugin package in your PO editor of your choice (such as POedit) and get to work. You’ll also need to create image files for the Next, Prev, and Close displays. Look at the default English files, as well as the Spanish files, if you want examples.

I’d really like to be able to serve as many people as possible with the plugin, but I can only read and write English and don’t see myself becoming a linguist any time soon.

If you’d like to contribute, please leave a comment here, as well as on our support forums where I’ll set up a special localization thread a bit later.

Thanks!

Gallery Integration and jQuery Slimbox WordPress Plugin

I added two plugins today regarding images galleries. One of them was to more directly integrate the gallery I already use, Gallery2, with WordPress. It’s called WPG2 and supposedly makes it easier to insert images into posts and so forth, though I’m still trying to figure out how it all works. Another nice feature is that it supposedly supports lightbox and slimbox display effects, I was unable to get these to work, but since it supported those effects with separate plugins I tried the numerous ones available for WordPress and was able to get the effect. Unfortunately most of these effects used JavaScript frameworks that weren’t already loaded on my page (MooTools, prototype). Since my page uses the jQuery framework already (thanks to the K2 theme and my work on the Multi-Level Navigation plugin) I really wanted one that would use it so I could cut down on load times.

As it turns out, there was one option, jQuery Lightbox Balupton Edition which worked ok and obviously did use jQuery, but it had a few really annoying aspects to it, like the big advertisement in the upper right corner when you used the effect, plus the name was ridiculously pretentious. For some reason several of the plugins I tested also had issues where the dropdown menu wouldn’t properly situate itself into the background either (though I could resolve this by changing my menu’s z-index).

What to do? Well, I searched around the WordPress plugin repository, that’s how I found the various plugins that I did test, and then I tried a few internet searches. That’s how I stumbled onto Slimbox 2, the ultimate lightweight Lightbox clone for jQuery. Unfortunately I couldn’t find a WordPress plugin for it, fortunately the javascript itself really just needed to be loaded up, the gallery plugin already added in the lightbox cues (though the JS also will add them in for images that don’t have them). Ultimately I could’ve just hacked it into the code, or probably plugged it in with a K2 hook, but I figured it be better to just write a new plugin to do it, so I did. Currently it’s basically just a tiny php file that tells it to enqueue the javascript, points to a CSS file, and has a few image files, but I’ll see if I can maybe flesh it out, after I look over what capabilities Slimbox 2 provides. I’ll also likely want to figure out how to properly credit the author of the script, but assuming I can figure it all out I’ll likely release it for others to use too.

Let me know what you think.




Bear