HTML Logo by World Wide Web Consortium ( Click to learn more about our commitment to accessibility and standards.

Moving forward with Composr

ocPortal has been relaunched as Composr CMS. ocPortal 9 is superseded by Composr 10.

Head over to for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.

ocPortal Tutorial: Advanced galleries

Written by Chris Graham, ocProducts
The ocPortal gallery system provides a number of advanced features – this tutorial will describe some of them.


Thumbnail: The interface to import to a gallery

The interface to import to a gallery

It is possible to fill a gallery with the images and videos contained within a ZIP or TAR file. This is a very useful feature to quickly fill a gallery; an example usage might be to put all images on a digital camera memory card into an archive file, and to upload the file.
When importing a gallery this way, no descriptions are added for the entries. However it is possible to add descriptions, and customise other details, simply by editing the entries individually.

There is an additional "import to gallery" feature that works on the premise that any image or video file located in the uploads/galleries directory should be pointed to by an entry in the system. Any such file that is not pointed to, is labelled as an 'orphaned file', and the import feature allows such files to be chosen selectively and imported into any gallery. This is useful because you can upload large file sets directly to uploads/galleries and then batch-add them.

If you have a CSV (spreadsheet) file named uploads/galleries/descriptions.csv, with the first column containing filenames, and the second column containing descriptions, then this will be checked when bulk importing files.
Also, EXIF data (in JPEG and TIFF files) will be checked for descriptions (PHP 4.2+ only).

The orphaned files importer will auto-select any orphaned files that are put in a directory of the same name as the gallery you are importing. This is useful if you have been organising your gallery images/videos into a directory structure before-hand, as it stops you having to manually re-select what-goes-where when you do the import. Note that the gallery structure is only one-level-deep, there is no support for subdirectory nesting; however, that is not required anyway as gallery names must be unique and thus there is no potential for directory name conflict.


For members that have permission, gallery contents may be downloaded in a ZIP file archive, from a download link presented at the bottom of a gallery screen.

These ZIP files contain only the actual image and video files, and not any meta content such as descriptions.

Member Galleries – quick start

Thumbnail: Editing a gallery to be a member gallery container

Editing a gallery to be a member gallery container

Thumbnail: Making a personal gallery by adding an image

Making a personal gallery by adding an image

ocPortal supports members having their own galleries of images/videos.

To enable this:
  1. make sure members have permission to "Add image/video". You can check this from the Permissions Tree Editor at the "Module: galleries" node (probably under the Welcome or Site zone, depending on your set up). You can either assign this permission explicitly, or let it get inherited from the global "Submit mid-impact (medium visibility) content" privilege.
  2. and also permission to have personal categories. You can do this in the Permissions Tree Editor, or again by setting the privilege globally.
  3. Make sure members have View Access to the Content Management zone. This can again be done in the Permissions Tree Editor, at "Zone: Content Management".
  4. Add/edit a gallery (the "Galleries home" gallery will do, if you want personal galleries to be created directly underneath this) to have the 'Personal category container' option ticked (checked). You can find this on the gallery add/edit form under 'Advanced'.
  5. On the same add/edit gallery form, make sure that the gallery you add/edit also has "Accept images" and "Accept videos" enabled (assuming you want to allow both images and videos). This is because the properties of this gallery will be transferred to new personal galleries underneath it.
Now when members submit a new image/video, they will get the choice to create their personal gallery in the process, and further submissions can then also go into their personal gallery. If you want to add a quick link that members may use to submit images, add a link to cms:cms_galleries:ad to a menu using the menu editor.

Members may have multiple personal galleries if you set multiple galleries to be 'Personal category container'.

Member Galleries – full explanation

Thumbnail: A personal gallery as displayed in the container gallery

A personal gallery as displayed in the container gallery

If a member is in a usergroup with special permission (permission to have personal categories), they may create their own galleries that are:
  1. displayed as belonging to them
  2. display their profile details
  3. and only addable-to (by default) by them
The personal gallery system is very sophisticated, and integrated with the hierarchical nature of the gallery system. Members may have personal galleries underneath any gallery in the hierarchy that is marked as a 'Personal category container'; this means that a member may have multiple personal galleries if there are multiple containers.

The settings of new personal galleries are based on:
  1. hard-coded defaults
  2. the settings of the container gallery
  3. the permissions of the container gallery
For example, if the container gallery does not allow videos, neither will personal galleries underneath it, unless edited after it's auto-creation to do so.

Thumbnail: The naming scheme that identifies personal galleries

The naming scheme that identifies personal galleries

Personal galleries, like personal news categories, may be created on demand, simply by choosing a personal gallery for the adding member that 'has the potential to exist' from the list of galleries to submit to: upon submitting, the gallery is automatically created. Personal galleries are given a codename corresponding to the owner, as shown in the screen-shot.

Thumbnail: Viewing an image in a member gallery

Viewing an image in a member gallery

An example of a complex gallery hierarchy is as follows:
  • (root)
    • Germany Holiday Photos 2004 (*)
      • Benjamin's Photos (+)
      • Harry's Photos (+)
    • School Photos
      • Secondary School (*)
        • Benjamin's Photos (+)
        • Harry's Photos (+)
        • Julie's Photos (+)
      • Primary School (*)
        • Benjamin's Photos (+)
        • Harry's Photos (+)

(*) denotes a personal gallery container
(+) denotes a personal gallery created upon adding by the owner

Personal galleries may only be submitted to by the owner of the personal gallery, unless the "Submit to categories belonging to other members" privilege is assigned.

Limiting member galleries

There are permissions and configuration options relating to the gallery system that allow you to limit the number of entries that members may have in their own galleries.
ocPortal provides this functionality using a three-tiered system:
  • low limit on entries in member galleries
  • high limit on entries in member galleries
  • no limit on entries in member galleries
The 'low' and 'high' limits are configurable using configuration options, with separate settings for both images and videos.
The tier that a member resides in is based on usergroup permissions with two privileges which may be set for usergroups:
  • has high limit in member galleries
  • has no limit in member galleries

Linking directly for a member to add to their own member gallery

If you find the link to submit to a particular member gallery, you'll find it looks something like:

(this is for member #13's gallery under foobar)

If you change the member ID to a question mark, it will work as a generic URL that you can give any member:

(ocPortal automatically will substitute the question mark with the ID of the current member)


ocPortal RSS complies with Apple's podcast format.
The podcast URL for a gallery is:
Reply baseurl and galleryname as appropriate.

Note that the default advertised Atom feed will not work. Only RSS is supported by iTunes, and only the RSS feed is given the extra meta-data required. The &itunes=1 marker also tells ocPortal to supply an iTunes-friendly feed.

See also