This is an example filter for 'admin_login_attempt'

Note: Your server must be configured so that your php scripts run as the owner of the files
they create otherwise this script will fail due when file security on the server blocks it
from writing to the log file.

Drag and drop sorting issue in Zenphoto 1.2.9

Sadly we just found out that the update to jQuery 1.4.2 breaks our drag and drop sorting for albums and Zenpage pages. However, the fix is rather easy. Just replace the jquery.js within zp-core/js/jquery.js with the jQuery 1.4.1 release. Tonight's nightly build will also contain this revertion.

The reason is probably that we rely on an older nested tree sortable script using the jQuery UI predecessor Interface. Except for this issue it is still working great. We looked at some newer scripts but we have not found any replacement that is as easy and convenient to adapt. We would be open for suggestions though.

Image markup generator

This plugin automatically creates links to an image so you can paste them into forum posts, other websites, etc.


This plugin provides a substitute to image rotation functionality if the GD libary on your server lacks support for it.

New plugin: image_rotate_gd

This plugin provides a substitute to image rotation functionality if the GD libary on your server lacks support for it.

This plugin is unsupported and provided "as is".

You can download it here.

Zenphoto 1.2.9

  • pclzip.lib updated to current version [sbillard]
  • Backend and frontend HTML validation fixes [sbillard, acrylian]
  • Nested album backend sorting [sbillard, acrylian]
  • Latest three news articles from on backend overview page [sbillard, acrylian]
  • Update of default JS libary jQuery to 1.4.2 with jQuery UI 1.7.2 [sbillard, acrylian]
  • Sorting improvements [sbillard]
  • Default cropping improvements (uses the law of thirds now) [sbillard]
  • RSS now works with https [sbillard, acrylian]
  • New RSS mode "AlbumsRSSCollection" (Latest (sub)albums from within specific album) [acrylian]
  • EXIF fixes [sbillard]
  • Dynamic album improvements [sbillard]
  • Colorbox replaces Thickbox as default "box" JS script [acrylian]
  • User management improvements [sbillard]
  • (...)

Svedish translation

Galician translation

Object model framework tutorial published

As some of you know Zenphoto features also a quite flexible object model framework that advanced users can use besides the standard theme functions.We now have published a short tutorial about it.


Zenphoto's object model framework

This is a short tutorial about how to use Zenphoto's object model framework which allows you to extend the standard way of theming, as described in the theming tutorial, and cusomize your gallery any way you like.

Before reading this you should be familiar with Zenphoto themes in general and have read the theming tutorial. You should also have quite some PHP knowledge and an understanding about how object orientation works.

Zenphoto's main classes

This is the general class structure:

  • Gallery: The gallery itself
  • PersistentObject: This is a very general and powerful abstract database persistence class. It defines types by table names and records by a set of unique fields (keys). To instantiate a new database based object in Zenphoto, all that's needed are the values of those unique fields. PersistentObject provides caching, lazy-evaluating, persistable (...)