ACIA Gallery Module

Introduction

The ACIA Gallery module spawned out of my independent DotNetNuke module development business, in which I developed numerous custom modules as well as enhance existing DotNetNuke modules. In many cases, I have been tasked with adding media gallery capabilities to existing modules such as the calendar module, which is where this module sprang from.

 

 

This module is modification and enhancement of two open source projects: the gallery incorporated into the Club Starter Kit 2.0 and a sophisticated Silverlight slide viewer distributed under the Microsoft Public License. I originally wrote the management functionality to practice working with Subsonic and DotNetNuke, but found that the module wasn’t sexy enough to sell on it's own merrit, until I found the slide viewer. I knew that I had found a perfect match and 160 or so hours of development later this module was published!

What’s In the Box?

 

ACIA.Gallery.PA.zip: The Private Assembly containing the ACIA Gallery Installation Resources.

ACIA Gallery Module Install Guide.doc: (download).

 

Viewer View Album View

 

Live Examples

Standard Viewer Configuration
Flickr Feed Example
Simple Example

About the Developer

The gallery module is developed Kenneth Courtney of ACIASoftware.com. Prior to developing this module, Kenneth developed tens of modules for numerous clients. Although not credited as such, Kenneth was the original author of the Ecommerce module sold as YandStore by Yuhong Yand on Snowcovered.com. Prior to it’s commercialization, this module was given freely to the community on my web site http://www.aciasoftware.com.

 

Other modules I have developed include a complete online enrollment system for Polk County Public Schools in central Florida, a prepackaging and labeling application for pharmaceutical labeling, organizational maintenance tools for nonprofit organizations, and more. At this time I have lost count of how many hours I have logged developing DotNetNuke applications, but it is at least in the 5000-6000 hour range!

 

Gallery Administration Screen

Manage albums and preview gallery from the module's main administration screen.

 

Album Administration Screen

 

The Album Administration screen provides most of the functionality of the module. It allows you to navigate the existing photos in an album, edit the properties of those photos, and upload new photos. Following is a brief overview of each of the controls on this page:

 

Album Index Button: To Navigate to the main Album index of the module, click on the “Album Index” button in the upper left hand corner of the module.

 

Viewer Button: To Preview the module at any time in the viewer, click on the “Album Viewer” Link.

 

Edit Album Button: Click this button to edit the properties of the album: Title, Description, and Public/Private. These properties appear in the viewer’s Album Viewer.


Delete Album Button: As the title implies, this button will prompt you before performing it’s dastardly deed: when you delete an album, all images in that album will be deleted!! Use this with caution.

 

Upload Photo Button: The Upload Photo Functionality supports either uploading a single JPG image as a single file, or a zip file containing multiple JPG images*.

 

To upload a single image to your gallery, simply navigate to that image in your file system using the browse button, give the image a descriptive title, and click the “Upload” Button.

 

To upload multiple images, zip the images you wish to upload into a single ZIP file archive with the extension .zip, and upload this file using the procedure above with the following caveats:

When uploading multiple files, each file will be entitled according to the title specified in the title control, and numbered sequentially giving each image a unique title.

 

*The maximum size of the file uploaded is governed by a setting in the server’s web.config file. This is typically set at around 4 MB by default, and can be raised significantly higher as necessary. Until you know what your server’s setting is, experiment with gradually larger zip file sizes starting around 4mb.

 

The following figure shows a populated album. The images contained within the album will appear in the ‘Album Contents’ pain, when you click an image, it will become the currently viewed image. To edit the image’s title and description, click on the “Edit Photo” link.

 

To delete the active photo, click on the “Delete Photo” link, don’t worry, if you click it inadvertently, you will be prompted before the image is deleted!

 

 

Configuration Options

Navigate to the viewer configuration from the Album Index Page (the viewer displays all albums in the module, see page 7).

 

 

 

Album Width, Height, Thumb Width, Thumb Height: These settings determine the size of the viewer in the module. Only integer values are supported: percentage widths will not work.

Note when changing any image dimension, that the physical images will be resampled from the original image. You can also force resampling the viewer and thumb images by checking the “Resample Images” check box.

Background: The background color of the gallery. Named and Hex color values are supported.

Gallery Template: Determines how the module will appear in the Gallery Viewer. Main settings here: GalleryConfigSimple.xml: No controls, continuous looping, GalleryConfigTypical: Dark background, all controls. GalleryConfigTypical: highly customized gallery with white background, modified thumbstrip, etc. More on the gallery configuration files follow later in this guide.
Gallery Transition: Cross Fade, Circle Out, Wipe Left, and several more options.

Initial Album Selected: The album to display initially when the gallery viewer loads.

Loop Album Indefinitely: Select this to loop the album.

Store Images In File System: Option determines where images are stored, file system or database. Check to store in filesystem, unchecked for database. More immediately following this topic.

Use Original Image in Viewer: Check this option to display the original unaltered image in the image viewer. This will significantly affect the load time of each image according to the bandwidth of the server, but there are occasions where the original image fidelity is preferred which is why the option is present. Otherwise, the original image is resampled to the size specified in the album width and height properties above and displayed.

Resample Images: When checked, this will resample all of the images in the file system.


Image Storage Locations

 

The gallery offers the ability to store your images in the database or file system. Both have pros and cons.

 

Storing Images in the database is good when you need to obfuscate your image’s source, etc. Ultimately not hack proof, but will prevent direct URL access to your images.

 

Storing images in the file system is great because no server processing is required when displaying the viewer. Additionally, the viewer can be easily embedded into your blog, myspace, or ebay auction.

 

During the development of this module, it was found that switching between storage locations would be frustrating if your images weren’t retained between the mediums. When you change from one medium to the other, the module will copy all of the images to that medium and delete them once moved.
Gallery Configuration Templates

 

Several Configurations for the gallery have been developed that display distinctively different viewers. Each of these configurations define the properties of the viewer (which number over 300 currently). Each time the module or an image in the module is modified, this template is used as the source configuration for creating a new configuration for the module. Module configurations are stored in the Portals\ \ACIA.Gallery directory. Each time a configuration is modified, it’s version is incremented, and the new configuration is saved to this directory. This was necessary to overcome browser xml file caching issues, so each time you update the gallery you can see realtime without closing your browser how the viewer will look by pressing the ‘Viewer’ button on either the album index or album editor pages.

 

Advanced users may create their own gallery configurations. Simply copy one of the existing configurations, make changes accordingly, and save to your Portal upload directory, the configuration will appear in the drop down box the next time adjust your setting.

Licensing

ACIA Gallery installs with a seven day unlimited demo license. When the module expires, it will still be available if accessed with the server name “localhost.”

 

ACIA Gallery can be licensed in one of four ways:

 

Standard: You may install and use the ACIA Gallery module on one named server. If you have a server that has for example companyname.com, intranet.companyname.com, and www.companyname.com, the module will be available to all of these instances. Only another domain or server name will require an additional license.

 

Additional Standard License: Additional standard licenses may be purchased at a discount.

 

Unlimited: An unlimited license may be installed by its owner on an unlimited number of domains, provided they are that customer’s domains or domains owned by the purchasers clients.

 

Unlimited Source: Source code may be purchased for the module.

 

Each instance of the module must be licensed (although the license is domain/server name wide).

 

 


 

Compatability

ACIA Gallery was compiled against DotNetNuke 4.0.0. It should be compatable with ANY version of DotNetNuke 4.0 with one caveat: the ASP.NET AJAX Extensions must be installed and configured for that DotNetNuke instance.

ASP.NET AJAX was officially integrated with DotNetNuke around version 4.5. If you have an earlier version of DotNetNuke version 4.0 than the officially integrated ASP.NET AJAX Extensions, I will work with you to configure your portal or refund your money if for any reason the module cannot be made to run on your instance of DotNetNuke 4.