Description of the Perfect Photo Gallery

May 24th, 2005 by Joen , , , ,

Photo Gallery

Not long ago, I called out for help in finding the ultimate online photo gallery solution.

I was not the only one who had looked for solutions. As my peers, my research didn’t result in immediate tangible solutions. This was actually a surprise, considering I had looked through more than 30 solutions.

On the upside, solutions are now on the visible horizon. Amid the cruft of CMS’s, two systems emerged that both hold much promise. Additionally, the future looks bright with the outlook of a third system written from the bottom up with simplicity in mind.

The systems that are currently showing the most promise are:

In the hopes that these systems will blossom, I offer some advice as to what exactly it is I would want in a photo gallery CMS.

Core Values

There are solutions. This whole research and callout is based on the fact that I won’t touch any of those solutions with a pitch fork. Why? Because I have better things to spend weeks on. After all, we’re talking photo galleries, not rocket science.

Core values for the perfect CMS would be these:

  1. Simplicity in Structure.
  2. If in doubt, leave it out. That goes for features, graphics, tables, samples, themes, buttons, checkboxes, funny messages, cruft.

  3. Simplicity in Interface.
  4. Fewer features are better than more features. Period.

  5. Simplicity in Concept.

All we want is a photo gallery. It shouldn’t do anything else than this. If it’s not directly related to photography, then don’t even think it.

Minimum Features

I already have Photostack. Photostack is good, in fact it’s great. The only reason I’ve spent days on researching alternatives is because I need just one extra feature: the ability to comment on the photos. As such, this minimal feature list will very much mirror what Photostack already does.

  • A folder containing JPEGs is a Photo album.
    Plain and simple. Folder titles could be given using a .txt file like Photostack does.
    Upload JPEGs + push a button = Online album
  • Each picture allows people to comment.
  • Such a comment contains name, URL and comment.

  • Allows descriptions on each photo.

These descriptions could be added in the admin section.

Things to Avoid

Having researched the before-mentioned 30+ photo gallery CMS’s, I know what should definitely be avoided.

  • Require PHP Safe Mode off
  • The bulk of the most promising systems required the webserver to have PHP Safe Mode to be off. Safe Mode is there for a reason—requiring it off cuts away users. I’d rather write in foldernames in a textfile than have Safe Mode off. A good CMS will work even in PHP Safe Mode.

  • Flat-style photo storage
  • Most of the really promising systems I ultimately had to scrap due to their way of storing photos. I don’t want to have all my photos stored in one large folder, even if they are automatically renamed and sorted in the SQL. I want a simple, logical structure like on my own computer. Folder = album.

  • Multi-purpose CMS systems

Keep it at the photo gallery level. Don’t bloat it with things that it only does half-heartedly. Photo gallery != blog || forum || photo-sharing-system.

Things to Do

Pick out the good features, add them. These are things that would be nice:

  • PHP & text files or PHP & SQL
  • Cruft free URLs (albumname/imagename is preferred over ?album=3&image=5)
  • mod_rewrite is your friend, and it’s easier to use than you might think. Go that extra length and beautify URLs. A side-benefit: Google will reward you, and hackers won’t know whether you’re using ASP or PHP.

  • Basic spam protection
  • When commenting is involved, spam is involved. As a basic measure, obfuscate commenting forms.

  • Admin description system
  • Being able to describe each image with a thumbnail above is worth spending time building.

  • RSS
  • Adding an XML feed shouldn’t be too hard, but many would appreciate it.

  • Really simple templating system that’s “not-too-specific”

I would very much like to make a simple PHP include in the template.

Conclusion

I wish I was able to program a system such as this. I would be able to do more than just talk. Being in the situation that I am in, however, all I can do is advise what I would love to see. Now run with it, and go make the ultimate photo CMS. Keep in mind that Hotscripts.com lists 371 photo gallery CMS’s—this might indicate that there’s a definite need for a system that just works.


Websites linking to this post:

  1. Effervescent Reflections » Actually Doing Things
  2. iPAP progress [rebelpixel productions]

Comments (31)

  1. Joen says:

    Chris,

    I'm not quite sure I understand what you mean. My main reason for thinking we should not put effort into password features is that "people hate having to log in". They hate even more "secret areas out of their reach". By that I mean that showing an album that not all people have access to is likely to only irritate them... For the very same reason I'm keeping a personal photo gallery in a non public directory.

    Steve,

    Great to hear from you. Congratulations on the baby! I hope things are well with you and yours.

    I haven't encountered SlideShowPro?

    Edit (Admin privilege): I just logged in to my Bloglines account to check everything was dandy... I couldn't find any problems? The problem might be related to my feeds changing address, but the old addresses should be redirecting...

  2. Chris says:

    I?m not quite sure I understand what you mean.

    That's because I'm scatter brained. :)

    That's what the "noshow" tag would do. If an image or album is "noshowed" it just doesn't appear to casual visitors and it wouldn't e generated in the source for any album page. One of those times when a doodle might make my "rambling comments" more coherent.

  3. Tristan says:

    Picking up...

    Chris (#11) - I think you're thinking a little too much into the database - I'll just be storing metadata. Lots of text, in other words. So, title, description, all comments, tags, etc. It's independent of the image folder structure. Ideally, I'll design it so that the data in the database gets initialized to some default values when a new album or image is seen (one that doesn't already have an entry in the db) and the admin can further customize it once the images are uploaded and albums created.

    I thought through the implementation of this a lot last night, and it seems like a managable task. I thought of quite the elegant way to monitor new albums and uploaded images. Essentially, I'll use an object-oriented model, and each image will be an object, as will each album, and each "group" or arbitrary set of images from the gallery. When the album is viewed, I use the folder structure to find which photos to display (using a single album as an example) and make a new Image object for each of them. The Image object's constructor takes the filename (full path), looks it up in the database, and if it exists, then it uses the existing metadata. Otherwise, it makes some default info out of the file/folder names and makes a new database entry. Then (this is the cool part) depending on the size of the image requested (thumbnail, normal size, full size, or even custom size) it processes the original image into that size and caches the resized image so it doesn't have to be processed at that size again. This way, one of photostack's biggest weaknesses is killed -- photos are now processed on the fly as required instead of all at once, which causes server timeouts.

    Jonas (#13) - Password protection isn't something I'm going to implement at least in the first version. I could allow you to hide individual photos or albums from the public, but I'd rather not go further than that. Joen is right about .htpasswd being the best solution for those kind of things - just make a new gallery in a new folder and protect it that way. Pretty easy.

    Joen (#14) - I'll be back to my own site soon enough (with a full spec sheet); it's just so much easier to post here with your little preview thing. ;-)

  4. Chris says:

    Tristan,

    Head shaking in the affirmative

  5. Jonas Rabbe says:

    I thought of quite the elegant way to monitor new albums and uploaded images.

    It does indeed sound elegant. My computer science experience gives a warm thumbs up, so get cracking already ;)

  6. AkaXakA says:

    Now that sounds good Tristan!
    As Jonas said, get cracking!

  7. Teddy says:

    Hi,
    I am also looking for a new Photo Gallery and the articles here are very interesting, to say the least.
    I'm looking forward to trying a few of these over the holidays, but I wanted to ask if it is possible to show EXIF data when using Zenphoto?

    kind regards
    teddy

  8. Dave says:

    ZenPhoto for win