Closing Forums & Site Revamp

Long time, no see! It’s time for an update. After a long hiatus, I’m planning to do an overhaul of the site. Not that this site has tons of visitors, especially after such a long hiatus, but for those who do visit, there are some significant changes.

  1. The forums are going away.
    • The forums never really seemed to work all that well after migrating, and lots of people were using the official WordPress plugin forums anyway. In an effort to slim down exactly what the site does, it makes sense to eliminate them. This has already been done.
  2. Migration to Docker
    • I’m in the process of learning Docker, and in an effort to rapidly speed up future migrations and deployments, and teach myself more, I’ve decided I’m going to migrate the site to Docker as well. I haven’t yet decided if it makes further sense to migrate to K8s (or K3s).
  3. I’m going to revamp the plugin!
    • I have no idea if anyone is actually interested in continuing to use the plugin, nor what alternatives are out there, but I’m aware of several things that… work less than ideally in the current WP environment. I’m also very much aware of how poorly coded the UI was (tables for layout? *shudder*)
  4. Who knows what else?
    • I’ve been kind of waffling over what I want the future of the website to be. Do I want it to be a mishmash of personal and professional content? Do I want it to primarily be person (or professional) content, and if so, do I migrate the other elsewhere? I don’t know, but I’ll be trying to sort that out in the coming months!

That’s all for now, but stay tuned to see the progress on these changes!

Forums & v1.1.3.1

After learning the forums weren’t really functional anymore, I spoke with Ryan, and was able to get a copy of the data. After some fiddling around, I’ve imported them locally, and now you can access the support forums here. So, moving forward, if you have support questions, please post them there!

I’ve also release v1.1.3.1 of WP-Slimbox2, to fix an issue introduced in v1.1.3 that cause some installs not to function properly. v1.1.3 also updated the version of Slimbox2.js that was being used to support the update to jQuery used in WP 3.6.

I’m hoping to find time to work on a more significant update in the coming weeks, so stay tuned!

Forums Issues

So I recently learned that the forums are being hosted in more of an “archived status”, which means they aren’t all that useful!

I’m working with Ryan to get a copy of them transferred over, so I can just host them myself, hopefully it won’t take but a day or more.

Once the forums are in place, then I can look into addressing the reported problems being encountered.

For those of you having issues, please post in the comments of this post as much information as possible, including the version of WordPress being used.

Also, I can’t test this myself, but I suspect the problem several users are reporting is tied to my saving the index.php as UTF-8 encoded (per plugin documentation), but perhaps I should have left it as ANSI, or UTF-8 without BOM. If you know how, and want to give it a shot, let me know what results you get. Otherwise, I’ll try and throw something together this evening to test it.

WP-Slimbox2 1.1.3 Released!

This is more of a fix than a major updated, but as several people noted, the overlay broke in WordPress 3.6. This was tied to an upgrade in jQuery. Christophe Beyls upgraded the original Slimbox2.js, so I’ve finally gotten around to doing the same for WP-Slimbox2.

I still hope to implement a more significant update in the near future!

What’s going on with WP-Slimbox2?

Hello everyone!

My apologies for the lack of updates, or much of anything. I’ve unfortunately been dealing with personal illness, as well as just being swamped with things at my paying job. Couple those things together, and WP-Slimbox2 kind of gets swept under the rug.

That said, I haven’t abandoned it plugin, and I really hope I’m able to squeeze in the time to release the next major update. I’m also hoping to get back to people regarding some of the issues they’ve encountered. If you’ve got a question, please remember to post it to the support forums!

Thunderbird to Outlook Migration – The Woes of Dealing with Microsoft Products

So I was recently, and unexpectedly, thrown into the task of migrating my work e-mails from Thunderbird to Outlook. It turned into one massive ordeal, but I succeeded, and for the sake of others, I’ll tell you how.

I was gonna write up a bit of back story, but that’s really not that helpful, if you’re reading this, you probably just want to know how to do it! Let’s just say I’d been using Thunderbird + DavMail to connect to Exchange for several years, but now I was in a position where I was pretty much forced to switch back to Outlook 2010, and if I didn’t want to lose all my archived e-mails, I’d have to come up with a way to migrate them.

If you’ve managed to stumble across this article, you’ve like already read several little converter programs, most of which are just trials for paid software. If you’re like me, though, none of them worked anyway.

What did work was to download the ImportExportTools add-on for Thunderbird. From there I had to then right-click on each folder I wanted to migrate – that’s right, I had to migrate one folder at a time. From the right-click menu I then selected Import/Export-> Export all messages in the folder -> EML Format, and selected a folder to store the results in. Inside that folder you’d then get another folder with the name of the Thunderbird folder plus a timestamp attached to it, and inside of that folder you’d get an html file index of the e-mails, and a subfolder labeled “messages” that contained each individual e-mail as a .eml file. Now, Outlook can open .eml files, and once opened, you can move it into the folder of your choice. Unfortunately, you can only do this one e-mail at a time. If you drag and drop more than one e-mail, they’ll show up in outlook, but it won’t actually process them as e-mails, essentially defeating the purpose. It’s not so bad if you’ve only got a handful of e-mails, but when you’ve got several years worth, it’s not gonna cut it!

So, the next step was to install Windows Live Mail, the predecessor to Outlook Express. Windows Live Mail does let you bulk import a folder of .eml files, you just drag and drop, and it processes them. Unfortunately, you still have to create each folder inside of the program, fortunately you can do this without having to create or connect to any sort of account. Once you’ve created your folders and drag and dropped everything into them, you can then Export directly into Outlook! You can do this via the File menu, Export email, Email messages, and selecting the folders you wish to export.  Now, a word of warning, you can’t select the folders you’re exporting into, it will create the folders within your Exchange folder, so I quickly discovered it would be best to switch to “Work Offline” mode. That way not only do you not have to deal with wasting bandwidth as it Syncs, but if your account is extremely limited in size like mine was, this will also avoid getting it shut down. Now, the good news here is that your folders do migrate between Windows Live Mail and Outlook, the bad news is that even though they’ve migrated, and even though you’re “Offline”, it won’t let you move them, because they still need to sync! What you can do, however, is copy them, so copy them over to your local folder. You’ll have to do each parent folder at a time, but thankfully you don’t have to do it for sub-folders.

Now you’ve got your emails migrated! You’re good to go, right? Not exactly, you still need to get rid of the copies that are ready to sync to your account, plus you may have noticed that all those imported emails are missing their freaking Subject! This seriously screws things up if you’re using conversation view, as everything in a folder gets dumped in one large conversation…

First, let’s deal with the folders waiting to be synced. You can’t delete the folders while they have email in them, but oddly there’s nothing stopping you from going into the folder, selecting all the emails, and deleting them that way. Once empty, it won’t stop you from deleting the folder. Still not done, though! Now you need to empty your “Deleted Items” folder, or it will still try and sync! Once you do that, though, you’re good to go in that regard.

Now, the lack of subjects! Everything prior to this I came up with via Google searches and reading other pages, but while other people experienced the lack of subjects, I couldn’t find anyone who proposed a solution. I did, however, notice that while the subjects didn’t display in the email list, if you opened/previewed an e-mail, it did still show it. After searching and searching, I finally decided to see what would happen if I dragged an e-mail from Outlook into a Windows folder, and then dragged it back. Viola, it worked! Unfortunately, now I had to go folder by folder again, dragging all the e-mails out, deleting them from Outlook, and then dragging them all back in – talk about a major pain!

Anyway, it did the trick, so I know you can do it! Now if only Microsoft would stop forcing people to jump through hoops just to migrate. You’d think they’d want people to migrate, but apparently not…

Anyway, to recap: Thunderbird + ImportExportTools, export to EML. Import EML files into Windows Live Mail, Export from Windows Live Mail to Outlook, rearrange folders as desired. Drag e-mails from Outlook into Windows, delete e-mails in Outlook, drag files back into Outlook, and done!

Hopefully someone else finds this useful, considering how much of a pain it was for me to figure out, I certainly hope so. If you do benefit, leave a comment!

Website Changes

Hello everybody, long time no post. The website is currently in a state of flux, I’d been having some weird server issues, so I backed things up and rebuilt the server. Unfortunately, when I recovered, somehow the DB only went back to around March of 2012. The upside is that I don’t think I’d posted much, if at all, in that time, the downside is that a number of upgrades to WordPress and plugins had occurred, and required “updating” again, as well as updating the DB.

Once all of that was said and done, though, I noticed the front page banner was missing, and despite my best efforts, I couldn’t access the settings to change it! Now, I’d been running the K2 theme, almost since I’d started the site several years ago. At the time I really liked the flexibility and customization the theme gave me, unfortunately K2 seemed to abruptly stop development quite a long time ago, for reasons that are unknown to me, and WordPress moved forward. I’d kept putting off updating themes, for various reasons, but ultimately it looks like these website issue has forced my hand. For the time being I’m running a temporary theme, while I take some time to research what’s currently out there.

In the meantime, for those of you wondering about WP-Slimbox2, it’s still in development, and I’ve got some big changes planned, unfortunately I’ve been rather ill and just generallyy exhausted the past few months, which has seriously sidetracked development. Hopefully I can get into it again in the next few weeks!

The future of WP-Slimbox2

I’d like to think that since its inception WP-Slimbox2 has come a long way and that there’s not really much further to go. Having said that, I can think of a few changes that can still improve the plugins functionality over all.

One of the first things I’m looking to do is to utilize the copy of Farbtastic that’s already included with WordPress. At the time I implemented it WordPress did not include Farbtastic (I’m not sure it included any sort of color selection), and after searching I decided that Farbtastic was the best choice. Turns out the WordPress team thought so too, since they went ahead and incorporated it into a later build. Now that it’s included, I can remove my own copy and update my code to utilize it instead. Ultimately this shouldn’t really have a direct impact on anyone, but it does make the code better.

Another thing I’m looking at is to more extensively utilize the Settings API. Apparently it can be used for the entirety of your settings pages, so I’m going to see what I can do. At most, this should only affect the appearance of the settings page, but it also should improve the code.

When it comes to more substantial changes to the plugin, one of the most requested features has been the ability to resize images to fit the screen. In the past I usually avoided this request, viewing it as more a matter of having to actually change the core code of Slimbox2. Since I didn’t create, nor do I maintain Slimbox2, and the creator of Slimbox2 (Christophe Beyls) explicitely stated he would not add this feature because the intent of Slimbox 2 was simply to provide a beautiful display of the images with minimal overhead, I chose to simply reiterate his stance. In thinking about it more recently, however, I’ve decided that if I can find a way to manipulate the image sizes using an additional Javascript file, I could make this an option that you could choose to enable or disable. By enabling it, you would slightly increase your overhead, but you’d gain the benefit that the images would never be too large. I can’t say definitively that I’ll be able to do this, but I’m definitely going to take a serious look at it.

Another feature that’s been requested at least enough time for me to consider it would be the ability to replace the bottom “info bar” section, where you can display the URL and/or caption, with some sort of customizable code. Be it for social media purposes, or a special downloading script, etc. Again, I can’t say this is possible such that it could easily be utilized by everyone, but I’m definitely going to see what I can do.

There’s a good chance I’ll come up with more, and like I said, I can’t guarantee those two bigger features will ever happen, but there’s still some things to squeeze out of the plugin! If you’ve got any suggestions, chime in at the comments, or better yet, the forums. Please note, like I said above, any new features/changes need to be implemented from outside the actual Slimbox2 Javascript. I’m not going to alter that core code, however I’d be more than happy to build things around that.

WP-Slimbox v1.1.1 Release (also v1.1, v1.0.3.4, & v1.0.3.3)

This post is extremely late in coming (v1.1.1 was released several days back, and before that I released v1.1 shortly after the release of v1.0.3.4, and even further back we had the release of v1.0.3.3), but I am proud to announce the release of of WP-Slimbox2 v1.1.1.

The biggest change between versions was, obviously, from v1.1 to v1.0.3.4, but I’ll lay out everything for you. It’s about time I got around to it, anyway.

v1.1 has actually been in the works for likely over a year, unfortunately, do to medical issues as well as just a lack of time, I just kept getting started on updating it, only to find myself getting sidetracked or bogged down. Next thing I knew, I’d be going back to the code and trying to figure out what I’d just done. Meanwhile, translations were pouring in. My initial plan was to release the translations along with v1.1 of the plugin, unfortunately, as more and more time was passing I came to realize that for the most part I was just sitting on these translations instead of releasing them for the community. Sure, some people may have stumbled onto the files in our support forums, or through other means, but even more people could benefit from them if they were built into plugin by default. Eventually I got fed up with my progress on v1.1 and decided I’d switch back to the v1.0.3.3 codebase and make a much smaller modification to incorporate all of these translations. At the same time, I also chose to remove the usage of the function encodeURI because it seemed to create more problems than it solved. That small code tweak, along with the additions of Brazilian Portuguese/Português brasileiro (provided by Marcelo), Italian/Italiano (provided by Giacomo), Lithuanian/Lietuviškai (provided by Nata Strazda of Web Hub), and Japanese/日本語 (provided by ackie00h) translations culminated in the release of v1.0.3.3 of WP-Slimbox2 on Dec 18th, 2011.

Shortly after the release of v1.0.3.3 I was given yet another translation, Russian/русский язык (provided by nafanyabr). While I was briefly tempted to again wait until the release of v1.1, I looked at my code and decided it would be best to just make a small update to the v1.0.3.3 code to include the translation – thus v1.0.3.4 of WP-Slimbox2 was released on Jan 25th, 2012.

After v1.0.3.4 was released, I was determined to chug ahead and get v1.1 out, and so I focused on that. This release was massive, at least in regards to how much was changed. An extensive re-write was done that included several minor fixes to eliminate PHP warnings and errors. In most WP environments, errors and warnings are suppressed. It wasn’t until someone mentioned them to me that I realized they were there, and when I enabled their output, it was ugly. Luckily, it’s pretty easy to debug them once you’ve got them outputting. I also removed a few WordPress functions that had been deprecated, to avoid breaking the plugin at a later date. That was actually a challenge, since the deprecated function wasn’t actually been called directly from my code. Unfortunately, I’ve already forgotten what it was, or I’d share it so that others could benefit. Also added was the ability to use rel="nolightbox" to exclude an image. This served little purpose if you manually set rel="lightbox" on your images, but if you were using autoload, occasionally had an image you didn’t want the lightbox effect on this would allow you to exclude it. Another new feature that had been requested was the ability to link to a URL different than the image. I couldn’t really think of a good way to do this, but I managed to write some parsing code that would let you place a URL in front of your caption variable as so /*DESIRED URL*/. It would essentially split your URL and your caption into two pieces, and replace the images direct URL with the one you provided. Also as part of the rewrite, I took my increased understanding of Javascript, jQuery, and the Slimbox2 script to allow you to group Flickr, Picasa, and other images into the same group. Before you had to have them in distinct groups per their origin. Now, if you were autoloading your images, you could group a Picasa, a Flickr, and a locally hosted image all in the same group by choosing the correct selector. If you specified them using rel="lightbox-group" you could manually group them by using the same group name. As if this wasn’t enough, I finally got around to ditching the usage of WPlize. At the time I integrated WPlize with my code either WordPress didn’t support option arrays, or I incorrectly thought it didn’t. Either way, WPlize allowed me to group my options into an array and store them as a singular option. Conveniently, it stored the options array the same way that WordPress did (after WordPress added this ability…whenever that was). I just needed to replace the WPlize functions I’d been using with their WordPress counterparts. Unfortunately, when I did this I created a problem that would need to be fixed in v1.1.1, but I’ll get to that in a bit. Since I was already dealing with the options again I decided to make several other changes to how they were handled. In WordPress 2.7 they modified the get_option function to support a default option value. Also added was something called the “Settings API.” In short, the settings API “allows admin pages containing settings forms to be managed semi-automatically.” This actually makes for much cleaner code that is easier to later modify/add to. At the time I’m not sure I was aware of exactly how robust the entire API was, since all I wound up using was the register_setting() & settings_fields() functions, but in research since then I’m tempted to utilize more of it in an upcoming release. Anyway, settings_fields is used on the options page to link the form fields to the settings specified by register_setting. register_setting takes 3 parameters – $option_group, $option_name, and $sanitize_callback. settings_fields only accepts 1 parameter, the $option_group. I believe this is pretty straightforward, but the addition of the $sanitize_callback allows you to create a function that will review and process the settings such that they actually match what they’re supposed to, so no one feeds in invalid data. Invalid or missing data was then set to the default value. While unnecessary, since I now had a validation function, I decided I’d use it when I load the options variable as well, so I placed a call to it around my get_option call. Now, like I said above, get_option supports to new $default value. For v1.1 I chose to actually just use my initialization function call. These functions helped a great deal in ensuring that the WP-Slimbox2 settings would be valid and available even if something went wrong. I also decided it was time to remove the localization tracking I’d added shortly after I started to get translations. Not only did I not particularly care about the data anymore, I found out it may have even been in violation of the WordPress ToS…oops. I did forget to remove the actual file, but nothing was calling it anymore. Lastly, as I wrapped up my code changes I received yet another translation, this time it was Tradition Chinese/繁體中文 provided by shachi. And so, v1.1 of WP-Slimbox2 was released on Jan 31st, 2012.

Unfortunately, shortly after the release a larger number of users reported having major problems. For some reason their settings weren’t loading, and even when they tried to update them they wouldn’t save. Luckily it would function after they downgraded. Seeing as how it was running beautifully on my system, I was at a bit of a loss. For nearly a month I was wracking my brain for a reason, and then it hit me while I was in the shower. I’d actually encountered this problem once before, in a much earlier release of the plugin. The problem was that when I removed WPlize in v1.1 I also consolidated my get_option calls into one singular call at the top of index.php. My thinking was that, rather than calling it within each function I needed to use it, I’d just set it once and then access it through use of global $options whenever a function needed it. As I said, in my test and production environments, this worked like a charm. Unfortunately, for some reason that I still can’t figure out (after much searching), certain environments do not like this. As a result, when the function attempted to load the $options array, it was pulling up a non-existent variable. Obviously that would keep things from working. I quickly modified the code so that each function that needed it would populate the $options array on it’s own. In the end, I only needed this in two locations – once on the admin page, and once on the actual site page, so it should never really need to be called more than once at a time anyway. Finally, on Feb 22nd, 2012, I was able to release a fix, v1.1.1, that resolved the issues being experienced by people using v1.1. If anyone happens to know the reasons behind why I needed to do this to fix certain WP installs, please drop a comment!

I’ll be following up shortly with a post about the future of WP-Slimbox2, since I do have some plans!

General News

Back in July I switched webhosts, from Hostpapa to Linode. For the most part I’d say the transition was for the best, though I am now paying more money, I’m also granted almost total control over the host environment, which is a two-edged sword.

The biggest downside to the transition was that a number of things partially broke. The aforementioned sub-menus from the earlier post were one of the first things I noticed. Another would be that the images, and for the most part all of gallery2, didn’t transfer properly. Kind of screws up a site that’s largest draw is it’s presentation of images, right? To make matters worse, I’m still dealing with illness that’s been distracting me from more focus on the website (hence why I still haven’t gotten around to putting out the next WP-Slimbox2 release).

The good news is that I’m ever so slowly starting to find some time, again, to resolve the issues with the site. As it turns out, the sub-menus, along with ads, links, and a few other widgets were all “custom” widgets I’d plugged into the “My Custom Widgets” plugin. Somehow, even though the widgets still showed on the “My Custom Widgets” page, they’d disappeared from the actual widgets page. Luckily, when I chose to “Save All” they showed back up and I was able to re-add them to my sidebar.

Unfortunately, it looks like resolving the issues with gallery2 might be a bit more complicated. I’m pretty sure I pulled down a copy of all the physical files, I just haven’t figured out where to put them on the new server. Once I do, hopefully all I’ll need to do is tweak a few config file settings and well be back in action. Another question that I have, though, is if I really need to use gallery2 anymore. When I started to use it, I don’t believe I’d initially intended to tie it directly into WordPress, but as I got more into WordPress, it seemed natural to incorporate the gallery that I already had. I like the fact that it could automatically generate multiple size images for me, as well as incorporate a watermark, but for what I do I can’t say I really need any of those features.

If anyone has any thoughts on that, please share!

Anyway, I’m hoping I’ll finally have enough energy to finally put out the next WP-Slimbox2 release soon! This release is an extensive rewrite that I hope will improve overall performance as well as resolve a number of smaller issues and annoyances with the code. In addition, I’ve gotten two new translations to incorporate (Italian and Lithuanian, I believe). I’ll likely put out the main release, and then several minor releases so the translators can incorporate text for the latest changes.

Stay tuned!