Jun 242016

On 22nd June, Suffusion was removed from the WP themes directory all of a sudden. Someone decided that a theme whose last version was released and approved 5 months back and whose users had been generally happy did not meet requirements, and yanked the theme.

My response to the comment was simple:

However, given that I have always come out at the losing end of these discussions, please feel free to keep the theme suspended. I have neither the inclination nor energy to get drawn into this again, particularly since the customizer implementation is back-breaking, and the users of the theme had been perfectly happy with the theme in its current state and the once-in-a-while critical updates that they were getting.

If any of you is interested I can provide the rebuttals here, but it is not worth the time and effort. Stay assured that the all “concerns” about security are unadulterated rubbish. All options are written into the database in a secure manner using the recommended functions and via WP’s standard APIs and then retrieved. If they are really concerned about security, they have to look at the WP platform itself and ensure that none can access options stored in the database for any theme or plugin (not just Suffusion).

As for the rest, the sole deal-breaker is the Customizer implementation. Switching to it is akin to writing a new theme, and that is something I just cannot do.

Anyway, this has been a long and satisfying ride. Thank you for all your support in helping this theme get to the pinnacle of WP themes multiple times over. For those who have the theme currently installed, don’t worry – it will still work as it has; I just will not be able to release any updates for it and it will no longer be available as a theme from the WP directory. In case you are concerned about the “fatal error” on the ticket, the Suffusion Shortcodes plugin addresses it.

Feb 172016

I have released version 1.56 of Photonic. This version has the following changes:

  1. You can now get a “slide-up” style title for all your thumbnails, in addition to the JQuery Tooltip and other options that you have.
  2. I removed some syntax that was causing the plugin to break installations with PHP versions 5.3 or below. If problems persist, please let me know and I will take a look.
  3. I have made a small change to ensure that Picasa photos are pulled from an https link instead of http. This will ensure that the plugin works for Picasa even when the WP installation has SSL.

I learnt today that Google is shutting down Picasa (both, Web and Desktop) in favour of Google Photos. This isn’t good news. They haven’t provided any information regarding API changes, and given the challenges we have had with authkey settings and the differences between album protection of PicasaWeb and Google Photos, I can only surmise the level of difficulty I am going to face in making things work once Picasa is gone for good. Google has currently provided a date of 1st May 2016. Let’s hope they at least do a good job of the API updates before then. In the meanwhile, do let me know if your Picasa albums suddenly stop working.

Feb 052016

Version 1.55 of Photonic is now live. The following are the changes:

  1. Earlier, password-protected albums on Smugmug would display only for authenticated users. Now, if you simply pass the password attribute, your album will display.
  2. The Smugmug module now supports the site_password attribute as well.
  3. Translations are now officially supported via the WordPress site for the plugin.
  4. There were often complaints about the popup dialog that used to show up for images was not working correctly. Moreover it was fixed width, and did not do well with mobile devices. So I replaced it with a largely self-authored modal script (based on the animatedModal.js script), which changes this to more of an overlaid panel rather than a popup. Since it took less than a day of coding I am surprised I didn’t do it earlier. The following are the highlights of the current popup:
    • The width is no longer given in pixels, but it takes a percentage. By default the popup will be at 80% of the window width.
    • Earlier the popup used to display multiple “screens”. That has been done away with, entirely. All images show up in the same screen now, and you have the ability to scroll down to view them.
  5. By using my own modal script I was able to significantly optimize the overall JS (about a 30% reduction in its size).

Let me know if you encounter any issues.

Jan 282016

Version 4.4.9 is now live. This version has minor bug-fixes:

  1. I have cleaned up some CSS styles that did not conform to standards. This should have no impact on your websites.
  2. There was a bug in the responsive layouts, which prevented pages from displaying at full-width on iPhones 5 and upwards, if your site had a “Navigation Bar Above Header”. This has been corrected.
  3. Another bug in the responsive layouts caused the “Navigation Bar Below Header” to show up as two selection lists when the screen was resized below your defined breakpoints. This shouldn’t happen any more.
Jan 252016

I have just released version 1.54 of Photonic. This is a minor version with the following changes:

  1. I changed the added gesture script for PrettyPhoto, Colorbox and Fancybox from TouchSwipe to TouchWipe. This started out as a leap of faith, given that TouchWipe doesn’t work on its homepage itself, but in the end it was easier than I had expected. Switching to TouchWipe saves over 10KB of JavaScript, and I was able to bundle this within Photonic’s main script itself, thereby removing the option for enabling touch support. As of now, each of the abovementioned lightboxes is touch-enabled.
  2. While adding the support for authkey for Picasa albums I had forgotten to add this in the shortcode generator. This has been remedied.
  3. I added the “Text Domain” tag to the theme’s readme file. This makes it possible for contributors to do translations directly on wordpress.org.

I also submitted a small updated to Suffusion, mainly to correct some issues on responsive layouts. That hasn’t been approved yet, but should be, hopefully soon.

Jan 182016

I just released version 1.53 of Photonic. This is a pretty small release with a couple of big new additions:

  1. You now have the option to use Photonic’s lightbox for non-Photonic images. Bye bye, standalone lightbox plugins!
  2. One oft-requested feature had been the support for displaying Picasa albums with an access key. This is now available by means of the additional authkey parameter for the Picasa invocation. Note that Google Photos doesn’t have a public API, and the old Picasa API remains. If you have created an album in Google Photos, you cannot directly use its ID in the plugin. But you can go to your PicasaWeb account, and see the newly created album listed there. You will also notice that PicasaWeb offers 2 options for “Limited” sharing – restricted albums from Google Photos show up as “Limited”, while the classical PicasaWeb option of “Limited, anyone with the link” still exists. You will need to change the album’s security settings to “Limited, anyone with the link”, unless you want to make it public. You can then use the authkey parameter to show the album using Photonic, by including the secret authorization key provided by Google.
  3. There was an obscure issue that was resultant from having a “.” in the id of a gallery. I have addressed this, thanks to some very handy tips provided in the WP support forum.

Have fun!

Jan 102016

I have released Photonic Version 1.52, with a plethora of changes:

  1. I have provided a new option to save the automatically generated CSS into a file. The option is under Photonic → Settings → Generic Options → Generic Settings.
  2. I had, in the previous version, provided support for “Random tiled galleries”. This was restricted to the photos displayed in the page. In this version this support has been extended to groups of Albums, Photosets, Galleries etc.
  3. There is now a new layout attribute supported in the shortcode. It takes the values square, circle or random. Whatever you specify here will override the global layout that you define under Photonic → Settings → Generic Options → Layouts.
  4. There was recently an issue reported regarding 500px collections. Upon investigating I found out that the whole API had changed. So, I adapted the code to the new API. In addition I found that I can now pull all collections for a user – something that I wasn’t able to do earlier. If you do not pass a view_id parameter to the shortcode while displaying a collection, it will display all of the collections for a user.
  5. A couple of versions back I added support for Swipebox, touting its gesture-friendly features. In this version I have extended gesture-support to Colorbox, PrettyPhoto and FancyBox. Since these libraries are not gesture-friendly by default, this requires an additional 12KB JavaScript. In my opinion, though, it is much easier to use Swipebox and directly launch the lightbox for libraries.
  6. I added a capability to bypass the interim album / gallery / photoset popup for PrettyPhoto as well. So, this feature is now available for both Swipebox and PrettyPhoto.
  7. I use a third-party script called “Wait for Images”, to wait for all images to finish loading. I have updated this to the latest version, which skips images blocked by firewalls instead of waiting forever.
  8. I hadn’t realized that the “Random Tiled Gallery” layout was not behaving properly for Fancybox, Colorbox and PrettyPhoto. I have corrected this behaviour.
  9. Apparently there was an issue wherein a lightbox triggered from the popup panel was pulling photos from other galleries etc., and this issue existed since the very initial releases of Photonic. I have fixed this.
  10. By default Swipebox blocks the title and navigation bars on mobiles. I have provided an option to enable them, under Photonic → Settings → Generic Options → Lightbox Library Settings

Hope you have fun with the plugin!

Jan 022016

A Happy New Year to all users of my themes and plugins!

With the New Year comes a new release of Photonic, version 1.51. I have been gradually ramping up the functionality of what happens to be my favourite plugin, and this time I have introduced what is a pretty big feature – tiled layouts! Jetpack users are familiar with the “Tiled Gallery” layout that it has, however the implementation in Jetpack was a lot simpler. Since Jetpack only deals with images in the user’s uploads folder, it can use the inbuilt WP functionality to determine image sizes etc. and all layout details can be computed in PHP, before serving the image to the user. However in Photonic, since your images are all on a CDN hosted elsewhere, determining the sizes can only happen in JavaScript (doing this in PHP can lead to beastly issues with server configuration etc.). Fortunately I found a very scientifically written article that let me define a “justified grid” in JavaScript. To activate tiled layouts, go to Photonic → Settings → Generic Options → Layouts, and tweak the options for “Image Layout” etc. As a bonus, you can also get Circular Thumbnails (like Jetpack). I have provided the ability to control the spacing between images, as well as the minimum height you want your tiles to be. Note that the tiled display is only on your page, not on the popup panel.

With this release and the the previous one (1.50), there is essentially a complete transformation in how you present your external galleries, to wit:

  • Pick Swipebox as your lightbox (Photonic → Settings → Generic Options → Generic Settings). This lets you use gestures on touch-enabled devices.
  • Enable tiled layouts (Photonic → Settings → Generic Options → Layouts)
  • Bypass the interim popup panel wherever you would originally see one (Photonic → Settings → Generic Options → Popup Panel)

With the above, you move away completely from the traditional grid of tiled thumbnails, and make your galleries look a lot more appealing. I will be focusing on such changes over the next few releases.

The other things I put into this release are all minor bug-fixes:

  1. I fixed an issue with applying borders and padding to “in-page” Flickr photos.
  2. While bypassing the popup, Swipebox would report an error if the photo descriptions were multi-line. This has been addressed.
  3. This was a remnant from a much older version of JQuery – upon saving the options, the backend wasn’t showing the last used screen. This should now be fixed.

Hope you enjoy this release.

Dec 172015

I have just released version 1.50 of Photonic, which has some pretty nifty updates. Here is a summary:

  1. One shortcoming that Photonic had was that it didn’t support gestures on mobile devices. That is one less shortcoming with version 1.50. I have added support for Swipebox, which is the default lightbox at present. Swipebox also happens to be pretty light (around 12KB), so all the more reason to use it.
  2. A happy by-product of Swipebox is another oft-requested feature. Many users have asked for the capability to bypass the popup panel that shows up when you click on a thumbnail for an album. If Swipebox is your lightbox, this is the default behaviour! To change the behaviour (and make it behave the traditional way with the popup), go to Photonic → Settings → Generic Options → Popup Panel, and toggle the field Enable popup for Swipebox.
  3. I hadn’t realized that the Zenfolio displays were broken due to a change in how Zenfolio provided object ids, and WP’s native code completely butchered those ids. This has been addressed.
  4. Smugmug has changed how its front-end, making it extremely difficult to find out what your album id is. So I have added a helper to make things easier, under Photonic → Helpers.
  5. This is more of a purely technical change – I switched the custom JQuery Tooltip code to the default JQuery Tooltip script supplied by WP. This makes things a bit easier for me from an implementation point of view.

Hope you enjoy this release!

Nov 132015

Following my 2-year hiatus and the post last night, I was mentally prepared to go back and forth with the theme review team a few times on the approval of the latest version of Suffusion. Surprisingly, though, version 4.4.8 of Suffusion got approved within a few hours of submission!

Here is the gist of changes:

  1. Removed Features:
    1. Removed inbuilt custom post types functionality (multiple plugins exist in this area).
    2. Removed inbuilt shortcodes – The Suffusion Shortcodes plugin, with the exact same functionality has existed for a while now.
    3. Removed call to deprecated constructor WP_Widget
    4. Removed OpenID support (external plugins exist)
    5. Removed SEO plugin-like features from theme. This is what I alluded to in my previous post.
  2. Added Features:
    1. This is the only true addition: The gallery post format has been improved to consider scenarios that I hadn’t considered earlier. This is, in part, due to the enhancements that WP has made over the years to the gallery shortcode.
    2. A couple of zero-impact additions: I added a required CSS class for accessibility, and theme support for title-tag. This was necessary to get the theme to pass the checks.
  3. Changes and Fixes:
    1. Updated the theme to use latest WP features.
    2. One of the guidelines that was preventing me from changing the theme was how I used to save options (upon activation). So this time I bit the bullet and changed the functionality such that changes are saved only when you explicitly save options.
    3. I sanitized the call to echo($_GET[…]) in the backend.
    4. There was an issue and its fix outlined by Drake here. I put this in the theme.

I did notice some questions on the forums inquiring about script vulnerabilities, so I wanted to spend some time talking about it. The WordPress team takes security and vulnerabilities very seriously, and they have methods to track down themes with security holes. Now, Suffusion itself doesn’t use any third-party PHP scripts. Around 5 years back I had TimThumb, which I replaced with WP’s native resizer. Incidentally, several months after my making the switch, a severe issue was detected in TimThumb, and every theme on the theme repository that used TimThumb was suspended till the author changed it. Suffusion escaped the axe, because I had already taken care of this earlier. Then later, WP found an issue in one of its own functions. So it went after every theme that was using that function on a page facing the public. This was pretty recently, and again, Suffusion escaped the axe.

The point of saying the above is, Suffusion is in a pretty stable state, and the only cases when I have to change the theme are when a vulnerability has been discovered in it (which, touching a lot of wood, hasn’t happened), or if some new WP functionality has broken Suffusion code (which caused me to release version 4.4.7). In either of these cases, I am very quick to respond, since the theme’s massive user-base gets affected if I don’t.

WP also has a policy of removing themes older than 2 years from the search results. This doesn’t mean the theme has vulnerabilities – it only means that the theme has functionality that might not now be compatible with WordPress. You can always still get to the theme directly from WP through the theme’s URL (it is only eliminated from the search results). WP truly removes a theme only if it has security vulnerabilities, violates GPL or copyright laws, or has its developer put in a request to kill the theme.

Hope you have no issues with working the theme!