Script Information
The older version of iSharePhotos, which was AJAX, is no longer being developed, but has been been replaced by this newer, less fancy, more static version. It's an easy to install (drop-in-folder) script that will read iPhoto's XML library file (
AlbumData.xml -- an XML formatted Apple plist) and produce an online album of the photos contained in the associated iPhoto library. When you add new photos or rearrange them, to update the photo gallery you simply overwrite the server's copy of the "iPhoto Library/" folder with your Mac's local copy. If you're feeling bold, you can even just rsync them and save some uploading time if you have a large library.
In iPhoto, you can arrange your photos into albums, and you can put one photo in multiple albums without duplicating the photo on the drive, saving you disc space. This is the quality of iPhoto I wanted to harness for my photo gallery - other galleries make albums out of folders and want you to have pictures in each folder that you want it to appear in. If you're me, this either occupies absurd amounts of disc space of duplicate photos or it makes a real mess of server-side symlinks.
This script generates a list of albums from the
AlbumData.xml and loads the picture from the relative path contained in there. This means that however your pictures may be arranged into albums in the actual iPhoto software is how they will be arranged after uploading when viewed with this script.
Other features
- It will automatically work with Smart Albums as well - any Smart Albums contained in your library will appear as normal albums to the viewer in their web browser, and they will be updated each time your upload a new copy of the AlbumData.xml file. (Or your whole library.)
- If you're like me and you have a Smart Album for "All Photos" that shows all photos in any album in one single place, you can optionally hide this Smart Album from being displayed to save strain on the server.
- You can create and specify an album of photos that you don't want displayed anywhere. (e.g. an album titled "Not for web" or something of the sort, and then you'd put unflattering or other photos that you didn't want on the website in this album.) Any photos in the specified album would not be shown in any album anywhere in iSharePhotos. For example, if you have an album, "Christmas Party 2003" with various photos that you don't want anyone to see, but you don't want to delete them, simply also put the offending photos in the "Not for web" album, and anyone using iSharePhotos to view "Christmas Party 2003" will never be shown the photos. You, on the other hand, will still be perfectly capable of viewing them in iPhoto on your computer.
- The script uses JavaScript to detect the user's resolution and stores it in a cookie. This is then used when a photo is viewed to scale any overly large photos to an almost perfect viewing size for the browser window.
Todo
- Create an XML API for retrieving album lists, photo lists, and metadata for individual photos. I'm thinking maybe I'll use this for some kind of FaceBook∞ integration so I don't upload my photos twice. Like an iSharePhotos FaceBook∞ application where you just enter the address to your installation's API script.
- Touch up the resolution detection to detect the browser's size instead of the resolution and work with that instead of subtracting the most likely set of border dimensions from the resolution.
- Easier configuration?
- Write a real iSharePhotosRsyncTutorial. I've been meaning to do that anyway.
- Package it for download and move it from beta to stable -- this should happen within the next month or so.
Categories:
CategoryActive,
CategoryBeta