My system for managing photos and publishimg them "dynamically" on my website.
I have been working for a while on a way to organize my photos and make them available to others. The solution that I came up with involves using DigiKam to edit the image/album metadata on my laptop, BitTorrent Sync to push the images and the metadata to my server and some custom PHP (with a MySql database) to make them available to view.
As I mentioned above, I'm using DigiKam to organize my images on my laptop. DigiKam is nice enough to store this metadata on the image files as well as in a database. Having this information in database form makes it really easy to leverage for other purposes.
I'm far from complete with this project, but as you can see from the Photo Galleries section of this web site, it's beginning to work reasonably well.
The structure that I'm using matches the structure used by DigiKam. The fundamental building blocks are Albums and Images.
How It works
Using DigiKam, I edit the image metadata on my laptop, then sync the images and the DigiKam database to my server.
On my server, I have a shell script that I run via cron to generate thumbnail images from the originals.
For performance reasons, I denormalize the data from the DigiKam database into a MySql database creating "views" of the album and image data.
The pages use custom PHP classes that I call the data model.
Anyone that knows me knows that making pages pretty is not my strong suit. But I wanted these pages to look reasonably well and I wanted them to function in a way that I would enjoy browsing the albums. I played with several gallery presentation libraries, devoting most of my time to fancybox which I recently replaced with PhotoSwipe. I've settled on PhotoSwipe because I like how well it works on the iPad (where I do a lot of my viewing).
I am happy to share the code that I've used to make this all work. It's all available here: