The search for the ideal photo gallery
Wednesday 3 January 2007
Note that this article is about the previous version of this website: since the publication of the article this site has been through another redesign, and another transfer of content-management software: the photos are now entirely hosted and displayed by SmugMug, whereas I was using Flickr (and FAlbum for WordPress) when I wrote this. I’m keeping this article here for the sake of completeness.
The single thing which took the majority of my time in redesigning/restructuring this site recently was the search for a way to publish my photos. I was already using Markku Seguerra‘s iPAP, which was fine in that it did the job but was lacking certain features which would have been helpful as I published ever more photos. Briefly, this is what I was looking for in a photo gallery system:
- That the photos would be displayed in my domain name (so ‘richardflynn.net’ would appear in the browser’s address bar) and would look like the rest of my site: it should have easily editable templates which control the display of the photos. Furthermore, I wanted the whole thing to produce valid code (XHTML and CSS) straight away without any hacking by me.
- That my photos can easily be split up into albums, with each album having its own title and description. (That probably sounds a little obvious.) As I add more albums, the list of albums should be split up into multiple pages, maintained dynamically by the application. I also wanted albums with large numbers of photos to have their thumbnail (overview) pages split up into multiple pages. This speeds loading times for site visitors, and prevents any one page from becoming impossibly long.
- That it should use .htaccess rules to produce friendly-looking links to albums and photos. Having easy-to-read addresses for individual albums and photos isn’t only friendly for humans, but also for search engines like Google. And by making things easier for a search engine you can only help your site’s rating within that search engine’s index. (I don’t know if that’s strictly true, but I think of it in the same light as the argument our teachers at school used to use in favour of neat presentation in exams: ‘If your work looks good, or is at least readable, then an examiner is more likely to give you the benefit of the doubt.’)
- I was interested in the possibility of site visitors leaving comments on individual photos. This wasn’t an absolute necessity in my mind, but it was something I was looking out for. If my photo gallery was going to be open to comments, though, it would have to be spam-proof, perhaps using Akismet or something similar.
- I certainly wanted my photos to be displayed with EXIF and IPTC data. EXIF data is provided by your digital camera, and includes all the information about the camera’s settings (such as shutter speed, aperture, ISO rating) for an individual photo, as well as the time and date any photo was taken. IPTC data is added by many photo cataloguing applications, including Apple’s Aperture, which I have recently started using. There are far more fields in the IPTC specification than I could ever think of filling, but I use keywords, Copyright/contact information, location information, and headings and captions for individual photos. Given how much help it would be to have this information displayed alongside a photo on this site, it makes sense that a photo gallery should extract this information itself from the embedded IPTC settings in the photo file, rather than me having to re-enter all the data for the website.
- I also really wanted my photos, or at least new albums, to have their own RSS feed. I know this is a drum I’ve been beating for some time, but I remain a forceful evangelist for a more-widespread use of RSS. It annoyed me that on my site only written content could be accessed through my RSS feeds, and not my photos. Any new gallery software I would install would have to satisfy my annoyance in this regard
I began to worry that I was asking too much, although in reality most online gallery applications offer most of these features. But, as far as I could tell, very few offer them all.
Stay with what I had: iPAP
I briefly toyed with the idea of continuing to use iPAP. However, the one positive aspect of such a course of action—that I was already using it—was outweighed by numerous negative aspects.
As it stands, iPAP does nothing with EXIF or IPTC data embedded into photo files, and it’s quite cumbersome to enter photo descriptions using the Web interface. It was for this reason that for some photos on the old site I never got round to adding titles and descriptions.
iPAP also produces no RSS feeds, doesn’t have any provision for comments on photos, and doesn’t even split the album or thumbnail lists up into bitesize pages. Markku Seguerra, the script’s Filipino developer, is a very nice guy—I exchanged emails with him when I first installed it last year, and he helped me through various settings-related problems—but he’s too busy at the moment to keep it in active development. Therefore it wasn’t worth waiting for new versions to come out, which might or might not have had the features I was looking for. It was time to move away from iPAP.
New kid on the block: zenPhoto
Tristan Harward announced zenPhoto at about the time I was first installing iPAP. I looked at his announcement and knew that the script would be something to watch. His mantra throughout the script’s development (which is continuing) has been to produce a gallery application which isn’t bloated, which is easy to use, and which only provides essential features. Fortunately, what he thought of as ‘essential features’ tallied almost exactly with mine.
Well, almost.
The script is a breeze to run—at least, it’s a breeze if you’ve got some experience of running scripts on a webserver—and it’s also beautifully easy to write custom templates for. At one point I had a pretty impressive template in development which displayed the latest album with an image at one size, the next two albums with images at a slightly smaller size, and the other albums with thumbnails of a third, even smaller—and square—size.
Furthermore, a friendly, if not overly huge, community has developed on the application’s forum. They ask and answer questions, and are all evidently excited about this new script.
However, although most of the features I was looking for are promised for some eventual release, they’re not all there yet. Specifically, there’s no official RSS feed support, or EXIF/IPTC support, or provision for spam-free comments. Most of these things had been tinkered into unofficial versions by people on the forums, but hacking the files like this would have added serious difficulties to upgrading the application as new official releases were made without breaking the hacks I’d put in place.
I thought that zenPhoto would be the answer—indeed, I’m still watching its development from a distance—but the features I was looking for weren’t being added quickly enough for me. Instead, many people were getting hung up on the idea of ‘sub-albums’ (albums within albums), which is something that doesn’t worry me.
The kitchen sink approach: Gallery2
Gallery2 is the sort of application to which zenPhoto is the answer. It is bloated, feature-saturated, and generally provides for an ugly experience. Nevertheless, I realized that it did offer all of the features I was looking for.
I stuck with it for a while but the whole thing was frustrating from beginning to end. The application is certainly designed and built in a very different mould from zenPhoto, or indeed WordPress. It gives the feeling of having been written by a computer scientist with little thought for end-user usability (either site-owner or site-visitor, really). There’s no one unified administration area: instead there is one area for general settings, while you have to edit each of the individual albums and photos from links provided for the site administrator on each of the pages. You can’t even add new albums or photos from the central administration area: you have to go to the top level of the gallery and search around for the ‘edit this item’ link (the gallery itself is an item, even though it’s the top level which contains all other items—albums and photos—a choice of terminology which I found somewhat illogical).
The (lack of) joy continues when you want to develop your own templates to customize the display of the photo gallery. The script comes with a number of pre-installed template themes (well, pre-offered—you have to go through something of a rigmarole to get the themes ‘installed’ into your own Gallery2 setup). I just wanted to take the folder for one of the themes, duplicate it, and start editing it to fit in with the rest of my site. But, no, that would just be too easy. Within any theme’s folder there is a file which describes the theme and establishes the theme’s parameters for the Gallery2 installation—fine, that works just like WordPress themes. But with a WordPress theme, you can just edit a couple of lines and you’ve effectively told WordPress to treat this as a completely separate theme. Nothing so simple in Gallery2—it seemed to me to be almost impossible to do something so basic as duplicate an existing theme and to start editing that duplicate. The application kept complaining that there were duplicate themes. Well, duh.
As it turned out, I had to start editing one of the pre-existing themes. This, it turns out, is what most people end up doing with Gallery2, but it’s far from satisfactory. Little by little I began to get the hang of the whole thing, but it was giving me a serious headache. Eventually I got photos and albums to be displayed the way I wanted them, but I couldn’t implement comments in a satisfactory way (they could only be displayed separate from a photo, and in order to comment people had to register first—ridiculous!)
There’s even a plugin for WordPress which effectively embeds an installation of Gallery2 into an installation of WordPress: it’s called WPG2. This was complicated to set up (I was beginning to get used to that, though), but it gave the whole site, powered by WordPress and Gallery, a far more unified feel.
I was sticking with it because it seemed to be the only way to do exactly what I wanted to do (even if I had to bend to accommodate it rather than persuading it to bend to accommodate me). While I was fiddling with Gallery2, someone was developing a plugin for Aperture which would export to a Gallery2 installation. This was great, and seemed to work for me—it provided an apparently easy way for me to get my photos from my computer onto my website. Sadly, it wasn’t copying the title (IPTC Headline) and caption (IPTC Caption) for the photos in the way I would have liked, which was very frustrating.
I’d got things the way I wanted them (more or less, with greater emphasis on the less) and I was getting ready to re-launch the site. Then I stumbled across something that would change my outlook…
The light at the end of the tunnel: FAlbum
I’m not quite sure how I came across FAlbum, but I’m jolly glad that I did. FAlbum is a WordPress plugin written by Eli Cornell which displays albums and photos from your Flickr account within your own WordPress site.
Flickr is the most popular photo-sharing site on the Web. It is the paradigm of that variously-defined term ‘Web 2.0’ (although people argue about what ‘Web 2.0’ means, or indeed whether the term should even be used, they generally agree that central to the concept of ‘Web 2.0’ is social interaction over the Web). It was founded in 2002 by a Canadian company called Ludicorp, and bought by Yahoo! in 2005 for I think an undisclosed sum.
I had of course come across Flickr previously, but I’d discounted the idea of using it for my own photos. After all, it wouldn’t even fulfil the first criterion of what I was looking for in an online photo gallery application: it wouldn’t display my photos under my own domain name with the appearance of the rest of my site. But FAlbum changes all that. It pulls photos and albums from your Flickr account and displays them within the structure of your WordPress site. Flickr calls albums ‘photosets’, but once you’ve worked that out everything’s pretty easy from there.
I created a Flickr account (in fact, I already had one by virture of having a Yahoo! ID but I’d never used it to upload photos) and tried out the plugin FlickrExport for Aperture, whose job you can probably guess. It does take the Headline and Caption data I enter in Aperture for my photos and add it to the photos on Flickr. It also takes the keywords I enter in Aperture for my photos, and transfers those as Flickr tags.
I’m very pleased with FAlbum and Flickr. In fact, Flickr is a pretty exciting site to use—just to watch a photo’s view count increase from the moment it’s uploaded is quite exhilirating (it’s also quite affirming—if we’re going to go all psycho-babble for a moment—in one’s identity as a photographer, to think that someone you don’t know should bother to look at a photo you’ve taken on the basis of some small-ish thumbnail somewhere on the Flickr site). It may have a stupidly spelt name, but Flickr is a brilliant site.
Flickr handles EXIF and IPTC data, and FAlbum deals with them too. Flickr offers comments on individual photos. Annoyingly (but understandably) you have to be registered and logged-in to Flickr—and at the moment you have to add photos to comments on the photo displayed on the Flickr site, and not here at richardflynn.net—but when comments are added to photos, they appear here too. Flickr also provides an RSS feed for a user’s photos. I would prefer it if they also provided RSS feeds for a user’s albums (photosets)—the RSS feed only displays the latest 20 photos a user has uploaded to Flickr; my modus operandi is to create an album and add lots of photos to that album: probably more than 20. Therefore my RSS feed stays the same for a long time, and then suddenly once I’ve uploaded a load of new photos into a new album, someone looking at the feed can only see the last twenty photos even if more photos were added at the same time. However, they could well be adding an RSS feed for photosets in the near future.
That’s not to say that the Flickr/FAlbum combination doesn’t have its negative aspects. But they’re fairly minor. It seems from the plugin’s forum that many people have problems installing FAlbum. I was able to sort myself out, but it’s true that the documentation for the plugin is pretty abysmal. There are very many people on the plugin’s forum asking for help with the installation or function of the plugin, but there are very few people offering any answers. It seems that the developer doesn’t really provide much on-forum support. I’ve had some problems with the photo and album links (if I’ve got characters like dashes in a photo’s title, the script doesn’t create a friendly permalink, but instead uses the long Flickr ID number as the link), and also with the page titles (displayed in the title bar at the top of your window). These things I hope I can sort out myself with a bit of tinkering with the script.
Even though you must be a logged-in Flickr account-holder to comment on my photos, I’d at least like to offer people the chance to log in to their Flickr account and comment from right on this site. I think that should be possible. I’d also like to display my photos at slightly larger sizes. Unfortunately, I don’t think this would be possible unless Flickr adds new functions to its API (the defined vocabulary by which tools like FAlbum can send commands to Flickr and receive data—photos, titles, captions, EXIF data, comments, whatever, back again) to provide the option for the Flickr servers to resize images to arbitrary sizes on-the-fly.
But these are relatively minor quibbles. With Flickr and FAlbum, I have an end-to-end workflow for my photos from camera, through Aperture, through FlickrExport, through Flickr, right on to my website. That probably sounds like a lot of steps but the camera to Aperture part would be happening anyway, and the FlickrExport and Flickr steps are all but completely automated. Now I have less of an excuse for taking months to post my latest photos to this site. Let’s see if I can keep up that excuse-less life.
Comments
Leave a comment