Zenphoto - The simpler media website CMSUser Guide (Latest news) http://www.zenphoto.org Zenphoto is a standalone CMS for multimedia focused websites. Our focus lies on being easy to use and having all the features there when you need them (but out of the way if you do not.). en-US Wed, 23 Apr 2014 13:27:26 -0400 Wed, 23 Apr 2014 13:27:26 -0400 http://blogs.law.harvard.edu/tech/rss Zenphoto RSS Generator <![CDATA[Features (FAQ, User Guide)]]> http://www.zenphoto.org/news/features Easy Media website management!

Zenphoto is a standalone CMS for multimedia focused websites. Our focus lies on being easy to use and having all the features there when you need them (but out of the way if you do not.)

Zenphoto features support for images, video and audio formats, and the Zenpage CMS plugin provides a fully integrated news section (blog) and custom pages to run entire websites.

This makes Zenphoto the ideal CMS for personal websites of illustrators, artists, designers, photographers, film makers and musicians.

Manage image, video and audio files!


  • Upload files and folders via the administration or directly via FTP
  • Search engine with boolean expressions
  • Dynamic albums based on "saved searches"
  • Multifile upload
  • Scheduled publishing
  • RSS
  • Watermarks
  • Automatically generated sized images
  • EXIF/IPTC metadata support
  • Drag & Drop sorting of albums and images
  • Moving, copying, renaming of albums and images
  • Supported formats:
    • Images: .jpg, .gif, .png (generally all formats your server's graphics libary supports)
    • Videos: .mp4*, .m4a*, .flv*, .mov**, .3gp**, .ogv****, .webm****
    • Audio: .mp3*, .m4a*, .fla*, .webma****, .oga****
    • Other formats (basic support only): .txt*,.html*, .pdf*, .pps*
  • Slideshow*
  • Comments*
  • Tags
  • Statistics
  • Rating
  • ...and much more!

Manage blog and pages!


  • Custom pages management including nested subpages
  • Custom menu's
  • Drag & drop sorting of pages and categories
  • News section (blog) with nested categories
  • Post of new gallery items in the news section (blog)
  • File manager for none gallery files*
  • Scheduled publishing
  • Comments*
  • RSS*
  • Tags
  • Statistics
  • Rating
  • ... and much more!

Read more about the Zenpage CMS plugin

Multi-user management


  • User managment
  • User groups
  • Per user rights assignment
  • Password protection for albums and pages

Read more about user rights

International sites with multiple languages!


  • Admin backend translatable (gettext server support required)
  • Many backend translations included (gettext server support required): Chinese, Dutch, French, Galician, German, Hebrew, Japanese, Polish, Spanish, Swedish (See also Current language repository)
  • Multilingual sites with subdomain support for separate language sites (e.g. fr.domain.com, en.domain.com)

Read more about language features

Create your own website design!


  • Highly customizable theme engine (HTML5, CSS, PHP)
  • Five standard themes included, more themes available
  • Object model framework for advanced theming and flexibility
  • Multiple layouts/album themes
  • Separate theme translations

Visit the themes section or the theming tutorial

Extend Zenphoto with features you need!


  • Sophisticated plugin system
  • Frontend and backend filters
  • Object model framework for advanced coding
  • Many plugins included plus more 3rd party ones available

Visit the extensions section

* via official plugins; extendable via custom plugins
** handled by your browser if available
*** to protect your full images uploaded themselves manual .htaccess additions are
needed. Password protection protects only the page display.
**** via the jPlayer multimedia player only as fallback formats. See the jPlayer website for more info.

http://www.zenphoto.org/news/features Sat, 22 Mar 2014 13:32:00 -0400
<![CDATA[Articles about Zenphoto (FAQ, User Guide)]]> http://www.zenphoto.org/news/articles-about-zenphoto We collected (and collect) various articles we find about Zenphoto on the net and elsewhere. Originally this was located on the testimonials page and now moved here to the user guide as that seems to be more fitting.

Note that some articles are quite a little older so will of course not reflect current state of Zenphoto at all.



  • Reference "as an alternative to Gallery" within the article "Fotogalerie im Web" ("Photogallery on the net", page 77) in the special issue "c't kompakt Linux 01/2011" of the well known German computer magazine "c't". Table of content: https://www.heise.de/kiosk/special/ct/10/09/inhalt.shtml
http://www.zenphoto.org/news/articles-about-zenphoto Sat, 08 Mar 2014 00:00:00 -0500
<![CDATA[Database scheme (Customizing, Development, FAQ, User Guide)]]> http://www.zenphoto.org/news/database-scheme This reference is meant to show the main table relations.Therefore not all tables created by Zenphoto are included and also only those fields that are interconnected.

Please use a tool like phpMyAdmin or the Database reference utility on the Zenphoto backend to see the full details of all data- base tables.

If coding for Zenphoto avoid to use direct MySQL queries and use the object model instead.


http://www.zenphoto.org/news/database-scheme Mon, 21 Oct 2013 13:11:29 -0400
<![CDATA[Using elFinder (FAQ, Tutorials, User Guide)]]> http://www.zenphoto.org/news/using-elfinder Zenphoto features a file manager plugin named elFinder for files outside the gallery and its albums. To use it on content fields liek descriptions etc. you also need to enable the TinyMCE plugin. On the elFinder plugin options you also need to enable it for usage with TinyMCE.

Then you can upload, delete and manage these files with this. The files itself are stored within the root /uploaded folder.

The elFinder is available on the upload tab.


You can also access elFinder on the edit pages of Zenpage news articles and pages via the text editor TinyMCE.


Once you clicked on the insert/edit image button you can access it.


Here you can select any item to insert (image example given).


The selection then appears in the image edit window of TinyMCE.


http://www.zenphoto.org/news/using-elfinder Sat, 31 Aug 2013 12:00:38 -0400
<![CDATA[nginx rewrite rules tutorial (Development, FAQ, Installation & Upgrade, Tutorials, User Guide)]]> http://www.zenphoto.org/news/nginx-rewrite-rules-tutorial Rewrite rules for Zenphoto 1.4.5+

Nginx rules for Zenphoto 1.4.5 have been greatly simplified. In your server { } block, add:


location / {
    try_files $uri $uri/ /index.php?$args;

Or for a subdirectory:

location /subfolder {
    try_files $uri $uri/ /subfolder/index.php?$args;

Rewrite rules for older releases:

http://www.zenphoto.org/news/nginx-rewrite-rules-tutorial Thu, 01 Aug 2013 13:42:04 -0400
<![CDATA[Zenphoto image metadata processing (FAQ, Troubleshooting, User Guide)]]> http://www.zenphoto.org/news/zenphoto-image-metadata-processing Whenever a new image is discovered Zenphoto attempts to populate certain object properties from the metadata associated with the image. Images may contain both EXIF and IPTC metadata. Zenphoto uses the formal specifications for these metadata to determine which object properties are set:

NOTE: populating Zenphoto object properties is in addition to storing the EXIF and IPTC fields in the object. It is a service to try to populate commonly used properties from the image data.

Often multiple metadata fields will map onto a single property. In this case Zenphoto applies a precedence order to the metadata, using he highest precedence field discovered. This may cause unfortunate effects when cameras or image processing software has used these fields for their own purpose. It is always possible to disable Zenphoto from using such fields.

One other source of confusion is the unfortunate naming of the EXIF "title" field. According to the EXIF specification this is the "image description". Zenphoto honors the definition of the field.

The following is the precedence processing order for mapping metadata to Zenphoto properties:

Zenphoto date

  1. IPTC Date Created+IPTC Time Created
  2. EXIF Date Time
  3. EXIF Date Time Original
  4. EXIF Date Time Digitized
  5. the image filemtime

Zenphoto title

  1. IPTC Object Name
  2. IPTC Image Headline
  3. the image filename with the suffix stripped off

Zenphoto description

  1. IPTC Image Caption

Zenphoto location

  1. IPTC SubLocation

Zenphoto city

  1. IPTC City

Zenphoto state

  1. IPTC State

Zenphoto country

  1. IPTC Location Name

Zenphoto credit

  1. IPTC ByLine
  2. IPTC ImageCredit
  3. IPTC Source

Zenphoto copyright

  1. IPTC Copyright
http://www.zenphoto.org/news/zenphoto-image-metadata-processing Sat, 29 Jun 2013 20:37:45 -0400
<![CDATA[Integration with existing sites and other CMS (CMS integration, Customizing, Development, FAQ, Theming & Templating, Troubleshooting, User Guide)]]> http://www.zenphoto.org/news/integration-with-existing-sites-and-other-cms This is not really possible as Zenphoto is actually a standalone CMS of its own. Technically, there are basically three recommended ways to "integrate" Zenphoto with another CMS:

Match the look of your Zenphoto site to your existing site

So this means basically to create a theme for your Zenphoto site to make it look like your existing site. For example by re-using HTML and CSS from it. Also please review our theming tutorial.

For Wordpress specifially there are techniques available collected here:
For Wordpress specifially there are some third party Wordpress tools available.

Or maybe you want to run your entire site with Zenphoto using the CMS plugin Zenpage.

Zenphoto as a "plugin"

This is a more advanced way to achieve that. You can use zenphoto features in your main web pages by including template-functions.php in your php pages. The following is an example of this technique. (The example assumes zenphoto is installed in a folder named zenphoto):

* This script is an example of how to use Zenphoto content from a Non-Zenphoto WEB page.
* You must define SERVERPATH and WEBPATH to correctly point at the Zenphoto installation.
* Here we are presuming that the running script is in the root of the WEBsite and the
* Zenphoto installation is in a folder named "zenphoto" within that root folder.
* Now we "include" the Zenphoto template functions. This will instantiate the Zenphoto installation
* and make all theme functions available to us.
require_once(SERVERPATH.'/zp-core/template-functions.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">
<p>This example will show a pre-defined image. Really, almost any theme related actions could be done here.</p>
* Instantiate an image and make it the current image
$albumName = 'test_album/lesser-three-gorges';
$imageName = '2007-05-03-182646_sjb.jpg';
$image = newImage(NULL, array('folder'=>$albumName,'filename'=>$imageName));
* Show the image sized to "500"
printCustomSizedImage(getImageTitle(), 500); ?>
<!-- provide a link to the Zenphoto gallery -->
<p><a href="<?php echo WEBPATH; ?>">Visit the actual gallery from which this image was extracted.</a></p>

Note: Zenphoto makes use of global variables that are setup by the template function load. This technique will NOT work if the require_once statement is done from within a function definition. Unfortunately WordPress and perhaps other application invoke their plugins from within a functions, so invalidate this approach.

Many of the zenphoto template-functions operate on $_zp_current_album, $_zp_current_image, and $_zp_gallery. The latter are refered to as the current album and current image in the function documentation (see below.) These variables normally are setup by the process of loading the root index.php file and proceding to your theme php file. They will NOT be setup automatically for you when you use zenphoto as a plugin. You can use the functions zp_load_gallery(), zp_load_album($folder), and zp_load_image($folder, $filename) to set these variables up. $folder is the path from the album folder to the album. $filename is the name of the image within $folder.

For further details on the template functions visit the Zenphoto Functions Guide.

http://www.zenphoto.org/news/integration-with-existing-sites-and-other-cms Tue, 28 May 2013 14:05:04 -0400
<![CDATA[Using Zenpage (FAQ, Troubleshooting, Tutorials, User Guide)]]> http://www.zenphoto.org/news/using-zenpage Assigning a specific user to a page or article

This is the way if you are the master admin and want to set up something for users with lower rights:

  1. Create a user with rights for one album and Zenpage rights.
  2. Create a new page/article as master admin for that user.
  3. Now select the user the page/article should belong to from the author dropdown.
  4. Now set the page/article to locked for changes and save it. Then only admins with full admin rights or that user will be able to edit or delete that page. For all others the link and the icon buttons should be grayed out.
Note that every user with Zenpage rights can set every page or article locked for changeshimself that is not already locked for changes. It does not matter if he is the original author or not.

titlelink (name) vs title

The  titlelink is the name of an article, category or page is independent from the title. Technically you can have an article with the name "article" and the title "page". 

The titlelink also appears in the URL and is important as an unique identifier for the internal object model framework. The title is also multilingual capable.

How do I get images into my pages or news articles?

There are now two ways:

  1. You can use the file manager that is included as a TinyMCE plugin. That file manager is either accessible via the "Manage files" button on the main pages or main articles page or via the image button onTinyMCE tool bar. 
    You can use this file manager to upload and manage many formats that Zenphoto itself does not support. Note that files you upload with this are placed within the uploaded folder and are independent from the normal albums. 
  2. Also you can use tinyZenpage, a default plugin to the by default enabled text editor TinyMCE, to access images, albums as well as pages, articles or news cateogries for including. Here are some tinyZenpage screenshots about it and there is also some general info on the Zenpage plugin page.

What is the CombiNews mode?

Note: The CombiNews mode will be removed in Zenphoto 1.4.6

This mode shows the lastest gallery items like images incl. videos and audio or albums mixed within the news section as if they were news articles. The image/album title is shown as the title and the image/album description as the article content. The CombiNews mode has basically three modes:

  1. Latest images: Entries for all images ever added
  2. Latest albums: Entries for all albums ever created
  3. Latest images by album: Entries for all images but grouped by images that have been added within a day to each album (Scheme: 'x new images in album y on date z')

Here an example of the 3rd mode with one new image:


First entry is a real article, the second a gallery one. 

There is of course also a RSS mode available for CombiNews (see the documentation).

Note since news articles are only sorted by date the CombiNews might lead to unexpected results if you set the image sortorder to "id". Try using "date" or "mtime".

Image and albums and articles are still independent and nothing is changed on your site, except the display. You can use this to easily setup a photoblog or audio/podcast blog for example.

The news section on zenphoto.org is an example usage of this.

The search does not work for pages and articles

Zenphoto's search engine also includes articles and pages. If it does not work and you are using none of the standard themes it might not be implemented in your theme. See the theming tutorial how to implement this.

Why is there a check box for editing the Titlelink?

In case you are not satisfied with the automatic generation of the titlelink you can edit it. For example if you have a long title you might want to have a shorter url name or maybe the seo friendly generation cleared out something you want to be there, then you can edit it. You can only edit it if you check the checkbox "edit titlelink".This overrides the permaTitlelink option. 

What is a permaTitleLink?

The titlelink is the URL name of a page/article/category that is automatically generated seo friendly when adding an item. This is basically the equivalent to Zenphoto's album name and image file name and...

http://www.zenphoto.org/news/using-zenpage Sun, 26 May 2013 12:57:14 -0400
<![CDATA[Working with albums and images (FAQ, Troubleshooting, Tutorials, User Guide)]]> http://www.zenphoto.org/news/working-with-albums-and-images Is there any limit to the number of images?

There are no limits to the number of images Zenphoto can display in a gallery or album. Zenphoto is file system based and unique in that it scales relatively well due to its simple design. The speed of the gallery is dependent on a few minor things, namely the number of images in any given album.
Zenphoto should be able to handle any number of images in the entire gallery ”“ it will help greatly with performance if they are separated into smaller albums. Even then, single albums with 2000+ photos are possible and will still be usable.

If you're having trouble with the speed of large galleries, try using the static_html_cache plugin to cache Zenphoto pages. Frequently loaded pages will be much faster.

Is it possible to remove the filename extension from image names in the URL?

No, the unique identifier to find the photo requested is the actual filename, and the only way to get that is from the URL, so it must contain the filename. That's just how ZP works, it's filesystem-based. The titles are rather stored in the database as metadata, which you can't use to get a photo and doesn't need to be unique.

Replacing default images

Zenphoto uses various default images for display like default thumbs for multimedia items if no video thumbnail is used or for password protected albums. You can of course use your own images instead.

Example: /zp-core/images/err-passwordprotected.png

To replace this place an image of the same name within one of these places:

  1. /plugins/images/err-passwordprotected.png (globally)
  2. /themes/<yourtheme>/images/err-passwordprotected.png (only for the theme)

The same can be done with plugins. Replicate the plugin folder structure in your theme and the files therein will override the default ones. Or you can make "global" overrides of files by placing the structure in the plugins folder.

Where to upload images etc. via FTP?

  1. The main gallery part: Zenphoto is file system based and stores its albums and images within the root albums folder. This folder may not contain images directly but organized in folders. These folders are recognized as albums by Zenphoto and may contain images and further sub folders in unlimited levels.
  2. Files outside the gallery: The files are stored within the folder uploaded that is located in the root folder of your Zenphoto installation and that is created while running setup automatically.

Name vs title

The name of an gallery item and its title are independent. Technically you can have an album with the name "album1" and the title "First album". 

The name also appears in the URL and is important as an unique identifier for the internal object model framework. The gallery part is entirely file system based so the name of an album is its actual folder name on the file system plus any parent (album/subalbum). For images it is the filename. The title is also multilingual capable.

Moving, copying and renaming images and albums without loosing data entered

First you need to understand that Zenphoto is file system based. It recognizes albums and images on discovery. What is not found there anymore is considered gone. What is found new is considered new.

  1. Images
    1. Info embeded via image meta data (EXIF/XMP):
      This is the way we recommend. On uploading Zenphoto will read this data and add it to the database. If you you now move, copy or rename image files via FTP the data will travel with the images as it is embeded in them. However the images will be recognized as new even if their data travels with them.
    2. Info added to the database on the backend:
      If you have not embeded the data in the images and move, copy or rename them via FTP the data will be lost. If you want to avoid this you have to use the tools for "move, copy, rename" you find on right side on each image's entry on the backend edit pages. Then the data of the database is moved as well.
  2. Albums
    On the file system albums are just folders. Folders can't have meta data so on moving, copying or renaming a folder via FTP directly all of the info entered to the database on the backend will be lost. This counts of course also to its images except you have embeded their info. If you want to avoid this you have to use the tools for "move, copy, rename" you find on right side on each album's entry on the backend edit pages. Then the data of the database is moved as well. You can also use the drag&drop sorting on the main albums tab.

We recommend to backup your database before doing such actions in case for some reasons those fail (e.g. file/folder permission issues).

Anyonymous uploads by unregistered...

http://www.zenphoto.org/news/working-with-albums-and-images Sun, 26 May 2013 12:56:49 -0400
<![CDATA[Problems with albums and images (FAQ, Troubleshooting, User Guide)]]> http://www.zenphoto.org/news/problems-with-albums-and-images Thumbnails/sized images are not generated and/or the server crashes
Server memory issues
If you're running a web server on a VPS or other resource-limited environment, then you might not have enough memory available to the server to process very large images. You can use the following table as a guideline to see how much memory you need available to process images of different sizes:
  • VGA Image, 640 x 480 pixels => needs ~4.1 MB Memory
  • SVGA Image, 800 x 600 pixels => needs ~4.8 MB Memory
  • 1 MP Image, 1024 x 798 pixels => needs ~6.3 MB Memory
  • 2 MP Image, 1600 x 1200 pixels => needs ~11.7 MB Memory
  • 6 MP Image, 2816 x 2112 pixels => needs ~22.6 MB Memory
  • 8.2 MP Image, 3571 x 2302 pixels => needs ~41.7 MB Memory
As you can see, the 8.2-Megapixel 3571x2302 image requires a very large amount of memory to process, and that's simply because of the number of pixels. It doesn't matter if the image is only 2 or 3 megabytes when compressed in JPEG form, or what colors the image contains or anything-- it's just how big it is, because all of those pixels have to have a place in memory while the GD library processes them. There's no way around it!
Zenphoto attempts to run the image processor in as small a memory footprint as possible. You should be aware, however, that some image option choices will increase that footprint. They provide useful features, but come at a cost. Options that force increased footprint are: Obscure Cache Filename, Protect Image Cache, Secure Image Processing, and IPTC Imbedding. Disabling these options may allow successful processing of images that fail to render because of memory limits.
Workaround 1: Re-configuring your server to work with large image files (5MB to 10MB)

Tutorial written by Aladio (https://github.com/zenphoto/zenphoto/issues/169)

The aim of this tutorial is to help the intermediate user configure PHP and setup large image files so they may be uploaded and displayed properly using Zenphoto.

Configuring PHP

The following 5 settings need to be verified or changed in the php.ini file, found on your web server, in order to run Zenphoto with large image files.

Note: You should confirm with your web-host that these settings are supported and how much server memory is available! If you are on a shared host you probably might not be allowed/able to changes these.

  1. Find memory_limit around line 455 set it to 128M
    ; Maximum amount of memory a script may consume (128MB)
    memory_limit = 128M

  2. Find post_max_size around line 725 set it to a big number so you can upload multiple large files.
    ; Maximum size of POST data that PHP will accept.
    post_max_size = 1G

  3. Find file_uploads around line 865 set it to On.
    ; Whether to allow HTTP file uploads.
    file_uploads = On

  4. Find upload_max_filesize around line 865 set it to a big number so you can upload multiple large files.
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 1G

  5. Find max_file_uploads around line 865 set it to upload multiple files at once.
    ; Maximum number of files that can be uploaded via a single request
    max_file_uploads = 20

Setting up Large Image Files (5MB to 10MB)

Horizontal or Landscape Images (height < width)

If you are able to make the above changes to your php.ini file, large landscape image files should display fine when running Zenphoto.

Vertical or Portrait Images (height > width)

Large portrait image files must be rotated properly or PHP will run out of memeory while Zenphoto is trying to rotate and resize your image. You will see a box containing the name of the image instead of the image itself if the error occurs. (See below for directions on how to debug images).

Zenphoto reads the EXIF data contained in the image file to determine the image orientation. If the EXIF orientation property is set to anything but 1, Zenphoto will try to rotate your image. If the image is a large one the process will fail.

Debugging images

There could be many reasons for this, so the best way to diagnose this problem is to view the actual image error itself. You can do this by adding '&debug' to the image URL zenphoto uses to process the image.

To do that, locate the failed image in your gallery (it should show just the filename with a box around it, in place of the image), then...

http://www.zenphoto.org/news/problems-with-albums-and-images Sun, 26 May 2013 12:56:23 -0400