Zenphoto - The simpler media website CMSUser Guide (Latest news) http://www.zenphoto.org Zenphoto is a CMS for selfhosted, gallery 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 various media formats and integrated blog and custom pages. Zenphoto is the ideal CMS for personal websites of illustrators, artists, designers, photographers, film makers and musicians. en-US Thu, 24 Jul 2014 07:41:00 -0400 Thu, 24 Jul 2014 07:41:00 -0400 http://blogs.law.harvard.edu/tech/rss Zenphoto RSS Generator <![CDATA[Zenphoto URL structure (FAQ, Troubleshooting, Tutorials, User Guide)]]> http://www.zenphoto.org/news/zenphoto-url-structure Zenphoto has a specific URL structure for all items we explain here. We recommend to use mod_rewrite but Zenphoto works without it as well. The examples assume Zenphoto has been installed in the root of a domain.

Mod_rewrite links (SEO friendly)

The URL's are not completly rewritten via mod_rewrite/htaccess but internally. Therefore some parts can be changed via the rewriteToken plugin.

Gallery index:
Gallery index, several pages:
Album (thumbnail page):
Album, several pages:
Sub album (similar for more levels):
Image page (sized image):
yourdomain.com/<albumname>/<imagename.suffix><mod_rewrite suffix e.g .html (optional)>
Link to a tag:
Date archive link:
Static custom page:
Zenpage CMS plugin
News, several pages:
News category:
yourdomain.com/news/category/<category titlelink>
News category, several pages:
yourdomain.com/news/category/<category titlelink>/<pagenumber>
Single news articles:
yourdomain.com/news/<article titlelink>
News date archive:
yourdomain.com/pages/<page titlelink>

Note: Although Zenpage pages and news categories can be nested it is not reflected in the url. The benefit is that on re-sorting/re-nesting the links never outdate.

Non mod_rewrite links

Gallery index:
Gallery index, several pages:
Album (thumbnail page):
Album, several pages:
Sub album (similar for more levels):
Image page (sized image):
Link to a tag:
Date archive link:
Static custom page:
Zenpage CMS plugin
News section:
News section, several pages:
News category:
yourdomain.com/index.php?p=news&category=<category titlelink>
News category, several pages:
yourdomain.com/index.php?p=news&category=<category titlelink>&page=<pagenumber>
Single news articles:
yourdomain.com/index.php?p=news&title=<article titlelink>
News date archive:
yourdomain.com/index.php?p=pages&title=<page titlelink>

Note: Although Zenpage pages and news categories can be nested it is not reflected in the url. A benefit of this is that on re-sorting/re-nesting the links never outdate.

http://www.zenphoto.org/news/zenphoto-url-structure Wed, 16 Jul 2014 00:00:00 -0400
<![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!


  • File system based: 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, Third party, 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[Theming tutorial in Polish (Third party) (FAQ, Theming & Templating, Third party, Tutorials, User Guide)]]> http://www.zenphoto.org/news/parts-of-our-theming-tutorial-in-polish A Polish translation repectively adaption of our theming tutorial:

http://www.zenphoto.org/news/parts-of-our-theming-tutorial-in-polish Tue, 21 Jan 2014 15:40:56 -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.

If enabled the elFinder is available on the upload tab.


You can also access elFinder via the text editor TinyMCE (example here a Zenpage article).


Depending on what you wish to insert you can use the insert link or insert/edit image button to access it.


We will be using the insert/edit image button. After clicking on the file button above you get the elFinder window.


elFinder offers various tools to manage the files via the toolbar above or the context menu.


Note that whatever you use you work directly on the items on the file system. Actions like sizing are destructive.

You can select several items but you can only insert one at the time via TinyMCE. 


After you double clicked on your selection the link appears in the TinyMCE dialog window.


You can the set some extra settings. After clicking "Ok" the image is inserted.


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 these 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 included elFinder file manager plugin. Once enabled 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.  Using elFinder
  2. Also you can use tinyZenpage, a default plugin to the by default enabled text editor TinyMCE, to access images, albums from the gallery as well as pages, articles or news cateogries for including links. Using tinyZenpage

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 unique to that page/article/category even if using Zenphoto's multilingual mode.

If you don't check the permaTitlelink option the titlelink will be newly generated everytime you change the title of a page/article/category. This can lead to broken links if someone or a...

http://www.zenphoto.org/news/using-zenpage Sun, 26 May 2013 12:57:14 -0400