24 Jul 2007

A simple, useful, beautiful web gallery.

Note: This “roadmap” is no longer updated—the current definitive version will always be at http://www.zenphoto.org/trac/roadmap . Go to http://www.zenphoto.org/trac for more information as well, and to report bugs.

Note: Items marked 1.0 below will be done in 1.0 for sure (Yes, there are only a few left).

Items market with future version numbers are a speculative “roadmap” and may change drastically.

Zenphoto category on trisweb.com 17 Jul 2005

Please leave comments or ideas on the most recent post in this category. Soon I will make a dedicated page for zp with dedicated comments.

You can also e-mail me at trisweb at gmail dot com with comments or suggestions.

Wordpress Integration Ideas 7 Jul 2005

  • Bloglet (sidebar or otherwise) with custom dimensions (#images x #images) and pixel size.
  • Plugin; not administerable through WP, but useful through it for things you use.
  • Editing post – new button for “Add Image from zenphoto” – pops up an Ajax DIV with the zenphoto album list and small thumbs; click an image to insert it at any size you want, defaults to a “blog width” specified at setup. (also, add as link, link to image page, etc).

My Ideas 22 May 2005

Core Ideas
  • Filesystem-based gallery: all information is stored in the filesystem. Uploading a directory full of full-sized images into the albums folder is sufficient and a good method of uploading images.
  • Folder structure: -Root folder with ‘albums’ directory, ‘data’ directory, and program files. ‘data’ directory mirrors ‘albums’ directory, and stores thumbs, resized images, cached images, descriptions, comments, and any other image or album information.-
  • Integration with blogs:
    • Make a convenient link to a “blog width” image, and a convenient way to get any image size from a URL-encoded (mod-rewritten) request. (eg: /photos/albumname/resized/400/john.jpg => /photos/getimage.php?album=albumname&image=john.jpg&w=400)
    • This could be thought of as an “image permalink”—available at any size on the fly. (Allow cropping and other functions as well?)
    • Bloglet function – outputs a custom-width block of n most-recent images, plus custom text.
    • Tools for admin user while browsing the gallery: Post this to blog, copy URL of blog-sizd image, set blog options (width of blog-sized images, login data for XMLRPC interface, wordpress hook/plugin?)
  • Comments: Hide form and comments at first; show with CSS. -Commenting should be ajax if possible.- Request user name, email, and web site, and optionally save, just like WP.
  • Descriptions: Titles, Short and long descriptions. The idea is Title and short description shows in “title” hover, long one in the images page. Editing Descriptions should be very easy for the admin—a page with thumbs of each image and text fields easily tabbed-through. Editing titles/descriptions in image pages should be AJAX ala Flickr.
  • Uploading can be done with FTP, by ZIP file, by individual file, or by directory URL. Importing images/image processing should occur via a timeoutless method (each image processed in its own process; by loading the processor as a PHP-image script). Image processing must never slow down viewing an album for a user (eg: it must occur at upload time, not at view time).
  • Theming must be done with PHP functions, not with template-parsing. PHP functions should be named sensibly and be well-documented, with help available in the admin interface. Three pages may be themed: the gallery page, the album page, and the individual image page.
  • Other Extra Features
    • EXIF Data
    • Ability to run as a photoblog on a single album, with date-navigation template functions and an index by date (sort by upload time).
  • Overall: Make it beautiful and insanely useful; the best personal site photo gallery program in existence today.

Comment(s): Joen 22 May 2005

  • Comments on each photo. You know about this, but this really is the single most important thing.
  • Nice and simple descriptions for each photo. Stored in SQL or text, I don’t care.
  • I’d prefer JavaScript was used only for extra features, and not navigation/system critical things.
  • Photo album index that works much like Photostack does now. That is, with a description, a date, and a small thumbnail.
  • Cruft free, nicely mod_rewritten urls, such as /photos/flowergallery/07/, etc.
  • RSS. I can use a WP category feed until then.
  • EXIF data. I’m pretty sure GDLIB can read camera exif data.
  • Flickr like image hotspots, but not in Flash. I’m sure it can be done with clever DHTML’ing.

More Notes at this noscope post

Comment: Irish John 22 May 2005

  • Easily integrated into an existing blog or website.
  • Account registration for users, and possible tag creation (BBCode and/or XHTML) for pasting into forums or e-mails.
  • Easily upload and management. Most out there at the moment are hard to manage.

Comment: Daniel 22 May 2005

  • Comments
  • Descriptions
  • AJAX (not included in mine)
  • Filesystem-as-DB — not messing around with databases. But possibly included as a plugin?
  • Some things I thought were cool was the idea of a “drag-and-drop” gallery — that is, you upload a directory of images, copy across an index.php file, and ba-da-boom, your (web-accessible) directory is now a gallery – zero configuration required. And likewise: if you see an image in the wrong category, just move it to the correct one using the filesystem, and nothing would break.
  • Specifying themes in the URL (optional, system defaults to its default theme).
  • And, finally, really simple themes are always a plus. Coz, if they’re simple, they can be integrated easily with other parts of the site.

New Ideas 15 Aug 2005

  • Themes
    • Allow themes to dictate image size? (and give some way to put image size in the url for the image page for multiple size options in themes)


1.0 | Image date widget and template tag display
1.0 | Admin: Make the auto-generate widget more intuitive
1.0 | Options: turn off comments for entire site or individual albums. Behavior is to close comments (eg: show comments that already exist, but hide the form and disable the handler)
1.0 | Bug | AJAX in Safari (remove try/catch block)
1.0 | Bug | Admin section layout on Safari? (some sections too wide)
1.1 | Sub-Albums, organization of subalbums.
1.1 | RSS feed templates (should be easy)
1.1 | Security: How to prevent hooligans from over-requesting images in infinite sizes and overloading the server? (only allow images in increments of 10?) (control hosts who request a billion images that have to be generated rather than brought from cache?)
1.1 | Image hit counting? (Plugin? I find myself wanting this functionality)
1.1 | EXIF data template functions (plus other image metadata, like height, width, file size, etc.), EXIF date population.
1.2 | Better installation process (creates .htaccess, albums, cache folders if they don’t exist, writes config.php, etc.)
1.2 | Enforce limit of cache size. Decide on a replacement policy.
1.2 | Take default titles/descriptions from a .txt file on new album detection (or from EXIF info in the photo?)
1.2 | Wordpress Integration—Add image while writing post; “Bloglet” sidebar widget generator; Integrated comment cookies?
1.2 | Image Magick alternative support (compare speed) (Someone did this—look up)
1.2 | Move/Copy/Rename albums or images (filenames/to other albums). Keep track of them in the db during the move and switch their paths; don’t lose metadata. Really needed with sub-albums—consider moving to 1.1
1.2 | Database generalization; include support for SQLite out of the box.
1.3 | Download groups or albums as ZIP file
1.4 | Internationalization. Need people to provide translations, need to modularize text in the admin/setup interface.
1.5 | Plugin API (PHP hooks)
2.0 | Searching
2.0 | Tags and Custom Groups (“Smart groups” – dynamically updated groupings that use criteria to select images, and/or specific images)
2.0 | User-defined groups (Picasa-style “hold”)
2.0 or never (plugin) | True image manipulation within zenphoto (rotate, flip, recolor, etc) (mainly just rotate and crop for simple adjustments)
2.0 | Comments on any item (Album/Image/Group), see http://www.zenphoto.org/support/topic.php?id=734
2.0 | Auto-optimize uploaded images setting: permanently resize the originals for all newly-detected or uploaded images to a preset size/quality (eg: 1024×768/80%) (Plugin?)
Image rating system (plugin?)
Long term: compress all files into one; make self-contained gallery. Drop index.php into directory with albums to make it work. Should be simpler than zp, less functionality, no integration or RSS or AJAX, just straight up PnP.
Integrate with Box.net or Amazon’s S3 or both (with general filesystem API) – Box.net offers 1GB free storage; Amazon pay-per-gigabyte; could use their API in place of filesystem functions…
Feb 18 1.1 | Modified image refreshing (must store mtime in database for this) – i.php (currently database-call free) or a new method and i.php parameter. (Alternative: delete images from cache selectively) (Alternative: compare cached file mtime with original mtime—Bingo!)