Sayontan

Sayontan Sinha is a technology strategy consultant living in Houston, Texas. Coding is his hobby, as are philately, numismatics, classical music, creative writing and quizzing. He is the author of numerous pieces of WordPress software, including the ultra-popular Suffusion WordPress theme and the versatile Photonic (for Flickr, Picasa, Smugmug and 500px.com integration) and FontMeister.

Jul 122018
 

I had to release a small patch for Instagram and Flickr while prepping for a bigger release. Version 1.67 has the following changes:

  1. If a user’s Instagram profile had a large number of photos, there was no way to get all of them. Now Photonic shows a “More” button till all photos are exhausted.
  2. Upon clicking on an album thumbnail for Flickr, the number of photos displayed would be cut off at 100 though Flickr was capable of displaying up to 500. I have rectified this.

Good luck using this version, and as always, please feel free to rate it if you like it.

Jul 092018
 

Dear Users of Photonic,
I know that many of you have, in the past, rated Photonic well on WordPress.org. However, sometime in late 2016 / early 2017 WordPress deleted all ratings without reviews, causing Photonic to lose out on a large number of good ratings.

As you are aware, all my WordPress work has been free and I have always been emphatic about not doing paid work for WordPress. This was true of Suffusion and this has been true of Photonic. And this is what makes Photonic an outstanding product. It is not that Photonic is the best in class in a single area for photo blogging – it is literally the best in class for almost every area that it touches! Some examples are:

  • Outstanding coverage for multiple photo services:
    • Flickr: There is no other WP plugin, paid or free that supports Flickr collections or authentication. Photonic supports photostreams, groups, photosets / albums, galleries, collections and authentication.
    • Picasa: There is no other WP plugin, paid or free that pulls photos and albums from Picasa. There used to be a couple that worked for Picasa prior to Google’s API shift in 2016, but no more. And Photonic nicely fills that gap.
    • SmugMug: There is no other WP plugin, paid or free that pulls photos, albums and folders from SmugMug. There are a couple of very old plugins that do static pulls of photos, but nothing that pulls dynamically. Photonic does this very, very well.
    • Zenfolio: There is no other WP plugin, paid or free that pulls photos, photosets and groups from Zenfolio. There is one very old plugin that hasn’t been maintained for over 3 years, and that provides rudimentary support for photosets.
    • 500px: Prior to the API shutdown, Photonic was the only plugin that integrated with 500px. And the integration was as extensive as everything else Photonic.
    • Instagram: In this case there are a few plugins that do things as well as Photonic, so I will not claim to be the best here.
    • Native WP Galleries: The closest competition to Photonic here is from JetPack, and it is a no-contest. JetPack’s tiled gallery layout was its USP, until Photonic did it much better and in a nice, responsive manner. Not to mention that all of the lightboxes of Photonic are available for native WP galleries

    Essentially there is no other plugin that beats Photonic for any of the individual services above, and Photonic manages to be the best in pretty much all of them.

  • Layouts: Most gallery plugins give you a basic “square” thumbnail layout. Anything more and you have to pay. Now let’s see what Photonic gives you. For free. For all photo services.
    • Square / Circular thumbnails: This is really basic and everyone offers this.
    • Justified Grid: Plugins offer this layout for standard WP galleries, or as a paid add-on for custom WP galleries. Photonic includes this as a basic functionality for every photo service.
    • Masonry: Plugins offer this layout for standard WP galleries, or as a paid add-on for custom WP galleries. As usual, Photonic gives this for free for every photo service.
    • Mosaic: JetPack does this, but all its calculations happen in the back-end in PHP, and only for images in users’ media libraries. Other plugins try, often for a price, but don’t get very far with this. Photonic does a beautiful job with this, in a nice responsive manner for the front-end, for every type of gallery.
  • Lightboxes: Photonic simply annihilates the competition here. Its support for 11 lightboxes (and counting) is way higher than that of any free plugin, and many of these lightboxes are supported with a hefty price-tag by others. More importantly, Photonic goes out of the way to support these for every lightbox (even very old ones not designed with such features in mind):
    • Touch / gesture capability: Have you ever been able to use Colorbox with swipe gestures? Not unless you have used Photonic.
    • Direct invocation of lightboxes without showing all thumbnails: Most lightbox scripts force you to show all thumbnails in a gallery before you can launch them. This is particularly painful if you have to show multiple albums without clutter. Photonic takes the sting out of this and lets you show images within albums directly for every type of lightbox.
    • Integration with photo services: Every lightbox in Photonic place nicely with all the external photo service providers.
    • Deep-linking and Social Sharing: Very few scripts come with deep-linking or social sharing capabilities. In most cases the lightbox scripts charge a price for such capabilities. But with Photonic pretty much everything comes with these premium features.
    • HTML5 video support: Most lightboxes just stop after supporting YouTube and Vimeo videos. Not Photonic though, which supports every conceivable type of video link.

I do realize that the above reads like an advertisement for Photonic, but this is pretty much the only forum where I publicize Photonic.

This is a request for you to kindly drop in a few words of encouragement on Photonic’s review page. It will keep me motivated for future releases and help retain Photonic as the crown jewel of gallery plugins in WP.

Regards,
Sayontan.

Jul 082018
 

Version 1.66 of Photonic is now out. This release has the following items:

  1. Video Support
    This is the big ticket item in this version. Like everything Photonic, video support is very comprehensive. I have added support for videos within Flickr, Picasa, SmugMug, Zenfolio and Instagram, as well as self-hosted MP4 files, and videos from YouTube or Vimeo. I made every effort to ensure that the lightboxes that can support videos handle all facets, and this was a tough process. Take a look at the Videos page for generic instructions, as well as individual photo service pages on this site for examples.

    While addition of the feature might seem trivial, the implementation was a back-breaker. The challenge was in terms of how lightboxes display videos. Very few were able to open HTML5 videos (like the ones on Picasa or SmugMug) directly from a URL, and most of them required manipulation of the dimensions of the lightbox on the fly because they couldn’t determine how big the video was. Some lightboxes had trouble switching between videos and images in the same lightbox etc.

  2. No More 500px.com
    I didn’t have to do anything here. 500px.com shut down its API access in the middle of June. While the code for it is still present in the plugin, none of the API keys work anymore. As a result the 500px.com module doesn’t work any more.
  3. A New Lightbox: Fancybox3
    This release features the addition of Fancybox3 as another lightbox supported by Photonic. This brings up the total number of supported lightboxes for Photonic to 11 – way higher than any other plugin! In fact, the most popular lightbox plugin in WP, Responsive Lightbox makes you pay for scripts such as Fancybox3, Lightcase, LightGallery and Strip (and even for slideshows, justified grids etc.), while Photonic gives it all to you for free!
  4. Other Additions
    • I have modified the helpers under Photonic → Helpers to display the album thumbnails for SmugMug and Picasa.
    • I have added a structure option to the Zenfolio shortcode so that photosets in groups and group hierarchies can be shown either nested or as a flat hierarchy. See the Zenfolio pages for more
  5. Bug Fixes
    • The shortcode insertion script was not printing the alternative shortcode if applicable. This should now be fine.
    • If an alternative shortcode was being used to display a native WP gallery, passing the ids parameter was not working. This has been fixed.
    • If a thumbnail limit was specified for the archive-view, that limit was not working on the home page. I have taken care of this bug.
    • The Random Justified Grid was setting the alt attribute of images to “undefined”. This should not be happening any more.
  6. In other housekeeping items I have updated the LightGallery scripts to the latest version, and I have corrected instructions for Picasa redirect URLs.

Hope you enjoy this release. Happy “vlogging”!

May 282018
 

I recently received a question about GDPR compliance for Suffusion on the WordPress forum, posted on the support forum for Photonic – not the right place to post. But there is no support forum page for Suffusion on the WordPress support forums, plus I don’t monitor the forums here since I gave up working on Suffusion a few years back, so I am posting this here as a public service announcement.

Suffusion is fully GDPR compliant. To wit:

  1. Any information you enter and save in the back-end options stays there and is not sent outside your WordPress environment. Suffusion doesn’t send any data outside your website.
  2. There is no tracking of any sort built into Suffusion. Any references to “Analytics” in Suffusion (Appearance → Suffusion Options → Back-end → Analytics) refers to your ability to include tracking scripts into the footer of your website. Suffusion itself provides no analytics capabilities – that is strictly plugin territory.
  3. Suffusion doesn’t store any cookies of any sort.

If you encounter questions about GDPR compliance, please feel free to point the users to this page.

May 252018
 

In the past few weeks there has been a fair bit of buzz around General Data Protection Regulation a.k.a. GDPR, an EU law on data protection and privacy. In my day job as a consultant I am quite familiar with GDPR, but what took me by surprise was a question on the support forum asking me if Photonic was GDPR compliant.

To answer that and related questions I decided to post this on my blog. I will, subsequently, include the relevant content from this in the next release of Photonic. So, let’s get this out of the way:

  1. Photonic is GDPR compliant.
  2. When you (the WordPress user) install and activate Photonic on your site no information is sent back to me (the developer) or to any website that I own. Additionally when you save your API keys and authentication tokens within Photonic none of that information is sent to me either. It all stays within your WordPress settings, inaccessible to anyone apart from a user with administrative privileges on your website.
  3. What about when visitors (the end users) visit your website? Let’s break this down:
    1. When you set up Photonic without back-end (server side) or front-end (client side) authentication, Photonic stores no information of the end users anywhere. In other words nothing is sent to you, the WordPress user or me, the developer. Also, no cookies are stored in the end users’ browsers.
    2. When you set up Photonic with back-end authentication, you save your access tokens within WordPress’ settings environment. This is used for technical purposes to retrieve your photos and display them on your website. Again, this is within your settings environment and none of the information is collected or sent to me.
    3. When you set up Photonic with front-end authentication, your end-users will have to log into Flickr / Google (Picasa) / SmugMug / 500px to see your private photos. In such a scenario a cookie is stored with the end users’ authentication in their browsers. This is required from a user-experience point of view so that the users don’t have to login each time they visit a new page on your website. Your end-users’ information and data is not sent to you and is not collected by Photonic for storing within your environment or for being sent elsewhere.

From the time I released version 1.65, three things have happened in the photography world which will impact Photonic in the long and short term:

  1. Facebook started clamping down on third party apps after Cambridge Analytica’s shenanigans. They had done this in the past with Instagram, and that caused a massive disruption for sites using the Instagram API. In fact, to date I haven’t been able to convince them to grant the requisite permissions to Photonic to display tags etc. Burnt by my experience with Instagram I had been very wary about extending Photonic to Facebook. In hindsight that was a good decision since Facebook has made it harder to get approvals for apps to pull photos etc. I would have ended up throwing away a lot of development effort if I had built a Facebook module.
  2. SmugMug has acquired Flickr. This took me by surprise. As of now the platforms and APIs are independent and they haven’t announced any plans to merge them in the short term. However, if and when the merge, I will have to redo the code in accordance with the redesigned API. That is a bridge too far for now and I will cross it when I get to it.
  3. 500px.com announced that they are shutting down their API from 15th June 2018. And when this happens, there is nothing I can do to fetch photos from a platform. I have written to them to see if there will be any way to pull photos, but for now we must assume that the 500px.com module of Photonic will stop working from 15th June due to this change.

In the meanwhile I am working on adding video support to Photonic. Stay tuned.

Apr 212018
 

After a hiatus of almost 14 months I have been able to release a new update for Photonic. While this version comes after a long time, I have been extremely active on the support forum, often responding to issues in minutes. It is just that this release featured one big ticket item, which took me time to develop and test. Incidentally the day I released the last version was when I got on a different project on my day job, and that effectively killed all my free time.

Anyway, without further delay, these are the key features of version 1.65:

  1. Back-End / Server-Side Authentication
    I introduced back-end authentication with Instagram, then extended it to Google back in 2016. But these were necessitated by the API changes breaking Photonic. This time I have gone ahead and completed the journey for Flickr, SmugMug and 500px. This addresses one of the most requested features on the support forum: an ability to display private photos without site visitors requiring to log in. As a side-effect of this I had to split out the former Helpers page into two: a new Authentication page that handles authentication, and a Helpers page that provides tools to determine user ids, album ids etc.

    Admin Menu

  2. Fix for Bootstrap Bug
    The most frequently raised issue since February last year has been a conflict between themes / plugins using Bootstrap and Photonic. Incidentally the culprits here are the Bootstrap users, who include a tooltip script with their themes / plugins that conflicts with the JQuery Tooltip script bundled with native WP. Photonic uses JQuery Tooltip, so it ran into issues with Bootstrap users. I have coded a workaround that lets people use both now.
  3. Featherlight
    Keeping with the trend of adding lightbox scripts, this release adds support for Featherlight.
  4. Other Additions
    1. I have improved the error message reporting and made it hopefully more user-friendly.
    2. I have added support for Pinterest sharing of photos via the lightboxes.
    3. So far users were able to pass a filter attribute to the shortcode, which would fetch a named list of albums / galleries / photosets. In this release I have added an additional attribute filter_type that takes the values exclude and include to indicate if a list of albums in the filter parameter should be excluded or included.
    4. Flickr has an oddity – in some cases the URL structure of its photos doesn’t match documentation. I have added a workaround so that now such images from Flickr too will be displayed.
    5. I have added a new title style that is similar to the “Slide up on hover”, except that this title doesn’t disappear and stays covering the lower portion of photos.
  5. Other Bug Fixes
    1. In the previous release I had accidentally left in some code that gave you the option to show a “Buy” link for SmugMug photos, but did nothing upon selection. That should be fixed now.
    2. The SmugMug folder view was dropping albums that didn’t have a “Highlight Image”. This has been corrected, and such albums will now show a placeholder image.
    3. SmugMug folders were unable to show more than 10 albums under them. This has been addressed to display up to 200 albums.
    4. While displaying 500px.com photos, if a user name started with a number that was breaking the code. This should be working fine now.
    5. While displaying photos from a 500px.com category, if the category name had spaces the plugin was not pulling the photos correctly. This has been fixed.
  6. Other Changes
    1. I have streamlined the Picasa code to use native WP methods for HTTP request
    2. The “Getting Started” and “Helpers” pages will now be visible to any user who can edit posts. Previously this was only visible to admins.
    3. I have improved compatibility with PHP 7.

Hope you enjoy this release!

Feb 272017
 

I have just released Photonic Version 1.64, with quite a few big features:

  1. Masonry Layout
    Masonry layouts had never been a part of Photonic because, to be honest, I never got results that I desired with the jQuery Masonry script. So after 6 years of the plugin’s existence when I decided to integrate Masonry, things went swimmingly at first … until I tried testing the “Show More” functionality of Photonic. Try as I might I wasn’t able to make Masonry play nicely with dynamically added content. Eventually I gave up and went a different route – CSS3 columns. This worked out a lot better, and all I needed to do was provide a jQuery Masonry escape path for IE9 and its older brethren. You can now trigger the Masonry layout by setting layout='masonry' in the shortcode. See examples in the Layouts page.
  2. Mosaic Layout
    I wasn’t content with just providing the Masonry layout this time, so I provided another – a Mosaic layout. I must confess that ever since I saw JetPack’s tiled galleries, I have wanted to provide this feature. In fact, almost a year back I tried to implement this, then gave it up and built out the Random Justified Grid instead. The challenge had always been that Jetpack only deals with images on the local server, so it can compute heights and construct the layout in the back-end PHP, while Photonic predominantly deals with images outside the local server, making it impossible to do computations in the back-end. The solution had to be based in JavaScript.

    I looked at several third-party scripts to help build this functionality (Packery, CSTiles, and more), but nothing seemed to fill out gaps properly with images of varying sizes. Eventually I bit the bullet and built out the script myself. It wasn’t very difficult once I had the algorithm and a plan to do the layouts sorted out, and I was eventually done. Take a look at the finished product. You can activate the mosaic layout by setting layout='mosaic' in the shortcode.

  3. Enhancements to Native WP Galleries
    There were three things missing from native WP galleries that existed for all other gallery providers – deep-linking / social sharing, “Show More” capabilities, and an ability to enable / disable lightbox linking. All of these have been addressed in this release.
  4. Thumbnail Effects
    I have added options for some thumbnail effects. So far Photonic used to display a somewhat opaque layer on thumbnails in the square and circle layouts, while others would show with no such effect. In this release I have added an option to zoom upon hover, and I have provided separate options for the different layouts. You can control the effects from Photonic → Settings → Generic Options → Layouts.
  5. SmugMug Folders
    I have added support to display SmugMug folders. See the usage here. As a related change, the SmugMug helper (Photonic → Helpers) shows folder information as well.
  6. Larger Images in Instagram
    So far only the documented Instagram sizes were supported by Photonic – 150px × 150px, 320px × 320px and 640px × 640px. In this release I have added support for the undocumented sizes – 1080px × 1080px, 1080px × 1350px and 1080px × 566px.
  7. Other Additions
    1. Added an option to auto-start slideshows in the slideshow layout. See Photonic → Generic Options → Slideshow Settings → Prevent Slideshow Autostart.
    2. I added a popup attribute to the shortcode, which overrides the “Bypass Popup” capability (Photonic → Generic Options → Overlaid Popup Panel → Enable Interim Popup for Album Thumbnails). It takes the values hide and show.
    3. I added the slideshow options to the shortcode editor for all galleries. Previously this was only present for native WP galleries.
  8. Bug Fixes
    There are a few minor bug-fixes in this release:

    1. I fixed a corner-case issue with the random layout – if the post content width was being rounded up (e.g. 549.8px became 550px), some widths were not being computed correctly, causing the layout to break.
    2. There was a mismatched HTML tag appearing for single-photo displays, which has been addressed.
    3. I corrected a minor styling issue for the preview button in the WP editor that occurred when the back-end shortcode editor was active.
    4. There was an issue with deep-linking working with Image Lightbox, wherein if the same image was repeated in different galleries, the deep-link would show up from the first instance.
Feb 132017
 

Photonic Version 1.63 has been released with two major updates requiring contrasting levels of development skill:

  1. TinyMCE Integration
    One of the most frequently raised support topics for Photonic was that upon inserting a gallery the user was presented with “No Items Found”. In each of those instances, upon performing troubleshooting what I found is that the user was reporting what he / she was seeing in the back-end Visual Editor, not what was on the front-end. In fact, in almost all of these cases, the front-end would show the gallery perfectly. The issue was not that the shortcode wasn’t working, rather the shortcode wasn’t integrated with the TinyMCE script of WP, and this had been a documented shortcoming of the plugin (in the FAQ section) since one of the early releases. This shortcoming caused a lazy troll not bothered to read documentation to provide Photonic a single-star rating on WP.

    In any case, starting with Version 1.63 Photonic offers integration with TinyMCE. What this means is that if you insert a gallery with your Visual Editor, you will no longer be presented with this:

    Visual Editor showing nothing in the Gallery

    Instead you will see something that makes a little more sense:

    A placeholder for a Flickr Gallery. The placeholder shows the logo of the provider, so you will see the Picasa logo for Google Photos, the SmugMug logo for SmugMug galleries etc.

    Clicking on the placeholder will let you edit the properties of the gallery.

    Change the attributes of the gallery

    There was a reason this hadn’t been developed until this point – it was insanely difficult! In fact among all the integration I have had to do for Photonic until this point, this has been the hardest. As of now, though the feature has been implemented, there is a likelihood of conflicts with other plugins. So if you do come across conflicts, please bring them to my attention. Please note that in case of conflicts you can disable the visual editing capability (Photonic → Settings → Generic Options → Generic Settings → Disable shortcode editing in Visual Editor), which will still let you edit the shortcodes by hand in the “Text” editor.

  2. StripJS Lightbox Support
    If the integration with TinyMCE was the hardest thing I have had to do, the integration with StripJS was one of the easiest. It literally took me less than an hour to get this integration in place. Strip describes itself as “an unobtrusive lightbox”, meaning it doesn’t occupy the entire screen, rather it takes up the space to the side of the screen.

    Strip is distributed under the Creative Commons BY-NC-ND 3.0 License (CC-BY-NC-ND 3.0), which is incompatible with GPL, so I cannot bundle it with Photonic. However, there is nothing stopping you from using the script. See here for instructions. Do bear in mind that you are responsible for following the licensing restrictions of Strip.

  3. Lightgallery Fixes
    A couple of fixes have been put in place for the Lightgallery script – when the “download” capability was being used with Firefox, it didn’t work for external providers. This has been rectified for Flickr, SmugMug and Picasa. Another issue was that when you opted to not display captions if they were blank, Lightgallery would still show them in the lightbox. This too has been addressed.

Good luck with this release!

Feb 122017
 

I have stopped working on Suffusion (and supporting it in any form) after it was pulled from the WordPress repository. However, there were several requests for the code to be made available for download. I have finally put up a version at GitHub. There are two folders available there:

  • code – Contains the raw code used for the theme. I have ensured that all of it is current as per version 4.4.9, and that a couple of corrections required have been included.
  • dist – Contains the zip files for the code. You can use the 4.4.9 version (the last available version from WP), or the 4.5.0 version. The 4.5.0 version contains the corrections cited above.

Please note that I am not resuming development for the theme – keeping up with an obstructionist Theme Review Team is too cumbersome (apparently now Custom CSS is not allowed in themes!!). There will potentially be a point of time in the future when the currently available versions will cease to be compatible with WordPress. As of now the theme runs fine with WP 4.7.2.

Jan 312017
 

Version 1.62 of Photonic is now out. The following are included in this release:

  1. Slideshow Layout
    Up until now the native WP galleries could be displayed in a slideshow mode, by setting style='no-strip', style='strip-below' or style='strip-above'. Now you can do this for any type of gallery. Since the other galleries don’t have a style attribute, you can pass this value to the layout attribute. In addition, there is a new value it takes, strip-right, that shows a thumbnail strip to the right of the slideshow.
  2. Replacement of jQuery Cycle
    The jQuery Cycle library has been a staple of my WP projects since 2009. But while being extremely powerful, it was hard to make it work in a responsive fashion, and touch gestures were not integrated into it. The author of the plugin had released a new version, Cycle2, but Cycle2 cannot coexist with Cycle (which is used by Suffusion). Since WP yanked Suffusion from the repository, I have no means to modify it – as a matter of fact, replacing Cycle was what I was working on when Suffusion got pulled. So, rather than risk conflicts for users of Suffusion using Photonic, I figured out an alternative – a new slideshow library! I settled on Lightslider. This is a lot smaller than Cycle, it is responsive and touch-friendly out of the box, and has just 2 transition effects (fade and slide) instead of the buffet that came with Cycle.
  3. Trimmed Down Back-End
    Since the early days of Suffusion I have had a mechanism to display the back-end options, which I kept in place for Photonic as well. I finally cut the cord on that and re-styled the back-end to use native WP features. This removed the dependence on jQuery UI, which was often causing conflicts with rogue plugins. The new back-end has a different look, and reduced size and load-time.
  4. Lightgallery Lightbox
    I have added support for the Lightgallery lightbox script. This is a nice-looking but heavy script by the same author who wrote Lightslider. Feel free to give this a spin.
  5. New “Getting Started” page
    In your back-end, under Photonic you now have a linke, “Getting Started”. This is a compendium of links for high-level capabilities of the plugin.
  6. New Shortcode Attributes
    In line with the slideshow layout a bunch of new parameters have been added to the shortcode:

    1. controls – Shows “Previous” and “Next” buttons. Accepted values: show and hide
    2. caption – Overrides the caption content back-end setting for a gallery. E.g. title will always attempt show the title, even if blank, and title-desc will show a title if one exists, and a caption otherwise. Accepted values are none, title, desc, title-desc, desc-title.
    3. thumb_size and main_size – controls the sizes to be used for a gallery, overriding the thumbnail and main image sizes set in the back-end.

Have fun with this release!