Copyright 2001-2008 YaWah.com. All Rights Reserved
This document describes how to tweak the eRez web interface by modifying velocity templates and other advanced topics.
The Velocity Configuration Files
Tweaking the graphics in the top navigation bar
Configuring FSI integration into eRez Image Browser
Enabling and Disabling FSI Viewer
Additional Configuration Options
Configuring FSI Showcase Add-on
Using the eRez template system to retrieve image data dynamically
How does the "FSI Showcase with File Info" preset work?
The dynamic image configuration template:
The static FSI Showcase configuration file used
Flash Slideshow - possible parameters
The eRez Imaging Server uses log4j as logging engine. The logging is controlled by the "log4j.properties" file. The file is located in erez/WEB-INF/classes.
The standard configuration is logging to the console and to files located in the erez folder. This is ok when setting up the server and learning how to use it, but in a production environment one would normally turn off logging to the console.
There are three predefined loggers and four predefined configurations in the "log4j.properties" file.
There is a logger called CONSOLE that is logging to the console with a brief output.
There is a logger called LOG that is logging to a file called "eRez.log". This logger is a rolling log. The rolling occurs when the log reaches a given sizes, in this case it is 50Mbytes. You also controls how many times the log rolls, in this case 20 times. After this it deletes the oldest log files.
There is a logger called DAILY that is logging to a file called "eRez_daily.log". This logger is a rolling log. The rolling occurs at midnight. The rolled files are named after the date the logging occurred. The log files are never deleted automatically.
The four configuration looks like this:
#log4j.rootLogger=FATAL, CONSOLE
#log4j.rootLogger=FATAL, LOG
#log4j.rootLogger=FATAL, DAILY
log4j.rootLogger=FATAL, CONSOLE, DAILY
The first three lines are commented by "#". You should never have more than our of the configurations active at once. To use the "DAILY" logger one would just commend the last line, and uncomment the third. The configuration would then look like this:
#log4j.rootLogger=FATAL, CONSOLE
#log4j.rootLogger=FATAL, LOG
log4j.rootLogger=FATAL, DAILY
#log4j.rootLogger=FATAL, CONSOLE, DAILY
In a production environment we recommend using the DAILY or the LOG configurations.
For more information on log4j take look at http://logging.apache.org/log4j/docs/index.html
The location of the log files can be controlled by the "log.home" property, or by changing the "log4j.proterties" file.
Here is an example when using eRez in a Tomcat container on a linux machine:
CATALINA_BASE=/opt/eRez/runtime/tomcat/current/
CATALINA_OPTS="-Xms450m -Xmx700m -Djava.awt.headless=true -Dlog.home=$CATALINA_BASE"
Notice that the log.home property must end
with a "/".
The folder erez/WEB-INF/templates/config contains a number of Velocity template files which is used to control the behaviour and look of the eRez Web Interface. The Velocity Template Engine itself is described in the HTML Command Reference.
The following section describes what the individual files in the config folder is used for.
This file simply contains a the HTML code necessary to include the JavaScript files for DWR. DWR (Direct Web Remoting) allows JavaScript in a browser to interact with Java classes on the eRez Imaging Server. You should not need to modify this file at all.
This file controls many aspects of how the FSI Flash Viewer components are used by eRez. This is where you can turn of the FSI Viewer, add custom skins etc. Please refer to the comments within the file itself.
You can modify this file in order to disable anonymous login and to switch from using the standard “Folder Tree” to a new AJAX based tree which will fetch information about folders as they are opened rather than loading the complete tree when the web interface is opened. The AJAX tree may be a better choice if you have very large folder structures – but generates more traffic on the server and isn’t synchronized when navigating from the content window.
Since version 4.0.6 you can also force eRez to encrypt the source image path when publishing single images as Flash, AJAX or HTML.
From version 5.0 you can change the value of ALLOWLEADINGWILDCARDS from false to true in order to allow the user to enter queries using leading wildcards “*” and “?”. Note that this can produce very slow queries on big indexes.
This file is used to control how IPTC metadata is used and presented. eRez supports 20 custom IPTC fields and some Fotoware/Fotostation proprietary fields as described in the HTML Command Reference.
You can define whether these fields should be displayed and made available for editing by modifying the variables iptc_show_customfields/iptc_edit_customfields and iptc_show_fotowarefields/iptc_edit_fotowarefields.
You can modifying the labels/names used for the twenty custom fields by modifying the variables iptc_custom_label01 to iptc_custom_label20.
Finally you can define which IPTC fields can be entered during upload, if they are mandatory and lock input to a list of predefined values.
These files control the labels and titles of the buttons in the top navigator bar of the web interface. The texts on the button images are rendered on-the-fly using dynamic SVG templates. This will form the basis of a planned multi language version of eRez – but at present only the English and Danish versions are complete and the English version is used.
This file defines various properties of how the thumbnail lists are displayed. This includes the size, color etc. for the 5 different sizes.
As mentioned above the buttons and graphics in the top navigation bar are rendered on-the-fly from less than 100 source images using the advanced SVG rendering engine of eRez.
The source images are store in a special “shared folder” named “erez-private” which maps to “WEB-INF/private/images”. Only the administrator can list and edit this folder. The contents of the individual images should be pretty instructive.
NeptuneLabs FSI Viewer ("Flash based Single Source Image Viewer") is an optional add-on for eRez Imaging Server 2.5.5 or later.
FSI Viewer offer an alternative and highly refined user interface for viewing high resolution 2D images compared to the standard HTML viewer that comes with eRez.
In addition the FSI Viewer can be used to display 3D images and ships with a nice range of advanced plug-ins that can be used for enhancing the online viewing experience.
The version of FSI Viewer that ships with eRez Imaging Server is a fully functional evaluation copy that needs to be licensed separately.
FSI Viewer requires Macromedia Flash version 6 (6,0,65,0) or later on the client machine. As today the penetration of this browser plug-in exceeds 97% of all internet users.
Please note that this document is focused on FSI Viewer integration into eRez Imaging Server. A complete documentation of FSI Viewer, FSI Pages and FSI Showcase Add-on offering a plug-in and parameter reference as well as a large number of examples is available as an Adobe PDF file here.
On-line resources like examples and tutorials as well as FSI Viewer updates are available at http://www.fsi-viewer.com
The configuration file "fsi.html" located in
[eRez root]/WEB-INF/templates/config/fsi.html
holds a number of parameters determining the integration of FSI Viewer, FSI Pages Add-on and FSI Showcase Add-on into eRez Image browser and can be edited using a text editor of your choice.
Please note that you can disable options and write comments
by starting a line with a double sharp, e.g.:
## this line will be ignored
To comment ou multiple lines use the following block comment syntax:
#*
This block of text or code
will be ignored
*#
The HTML templates for eRez 2.5.5 and later has been configured to automatically detect support for Flash in the clients web browser and will automatically use the FSI Viewer when possible. The login page has a “Use Flash” checkbox where the user can enable or disable the FSI Viewer at will.
To disable the FSI viewer completely and switch back to using the HTML viewer you must change the "$fsi_enabled" setting as follows:
#set( $fsi_enabled = false )
This will disable the use of FSI entirely including the removal of the “Use Flash” checkbox on the login page.
The version of FSI Viewer used with eRez Imaging Server. The "Publish to Web" section uses this value to determine available options for FSI Viewer, FSI Pages and FSI Showcase Add-on.
The absolute path to FSI setup directory. The "Publish to Web" section uses this value when creating the HTML code to make the code usable on external web pages.
Base request FSI Viewer and FSI Showcase use to request image data from eRez Imaging Server. This value will be added to the FSI HTTP query in the "Publish to Web" section.
To reduce the size of the required FSI HTML code it is recommended to comment out this line and edit the "FPX Base" parameter in the FSI configuration file located in
[eRez root]/fsi4/_default.fsi
accordingly.
E.g. if you have setup eRez to the location "http://foo.com/erez3/" the FPXBase parameter should be changed to:
<FPX>
<ServerType value="eRez" />
<Base value="http://foo.com/erez3/erez?src=" />
</FPX>
Forces a fixed width of FSI Viewer in the "Info" and "Viewer" section of eRez image browser regardless of the aspect ratio of the source image.
If you comment out these parameters the viewer will be adjusted to the aspect ratio of the source image.
See $fsi_fixed_width above.
If you disabled $fsi_fixed_width and $fsi_fixed_height FSI Viewer size in the "Info" and "Viewer" section will be adjusted to the aspect ratio of the source image.
This parameter defines the minimum width of FSI Viewer.
See $fsi_min_width above.
This value defines the height in pixels of FSI Viewer menu bar and is being used to subtract the height of the menu bar from the available space for the image view port when adjusting the viewer size to the source image dimension.
You might want to change this value when using a custom FSI Skin with a different height of the menu bar.
Defines the available options in the "FSI Skin"
select boxes in the "Publish to Web" section.
FSI Skin files must be located in the [eRez
root]/fsi4/skins/ directory.
You can easily add custom skins to the selection by adding an additional element to the array in the following form:
["Display Name", "File Name w/o extension"]
Defines the available options in the "Layout Preset
" select boxes in the "Publish as FSI Viewer " section. The
layout preset files must be located in the directory
[eRez root]/fsi4/config/viewer_presets/
You can add custom presets by creating an FSI configuration file in the directory mentioned above and adding an additional element to the array in the following form:
["Display Name", "File Name w/o extension"]
In addition to using static configuration files, you can as well use dynamic, template based configuration files. This is required if you want to add parameters dynamically, e.g. based on the IPTC data of an image. In this case you need to specify a Velocity template located in the directory [eRez root]/WEB-INF/templates/fsi/
To make a preset use a server template, the preset definition needs to provide the template name prefixed by "servertemplate:"
["Display Name", " servertemplate:sometemplate.xml"]
Please refer to the section "Configuring FSI Viewer" for a description of available FSI configuration options.
Defines the available options in the "Layout Preset
" select boxes in the "Publish as FSI Showcase" section. The
layout preset files must be located in the directory
[eRez root]/fsi4/config/showcase_presets/
You can add custom presets by creating an FSI configuration file in the directory mentioned above and adding an additional element to the array in the following form:
["Display Name", "File Name w/o extension"]
Please refer to the section "Configuring FSI Showcase" for a description of available FSI configuration options.
Defines the available options in the "Layout Preset
" select boxes in the "Publish as FSI Pages" section. The layout
preset files must be located in the directory
[eRez root]/fsi4/config/pages_presets/
You can add custom presets by creating an FSI configuration file in the directory mentioned above and adding an additional element to the array in the following form:
["Display Name", "File Name w/o extension"]
Please refer to the section "Configuring FSI Showcase" for a description of available FSI configuration options.
Defines the available options in the "Language"
select boxes in the "Publish to Web" section.
FSI language files must be located in the [eRez
root]/fsi4/languages/ directory.
You can add additional languages to the selection by adding an additional element to the array in the following form:
"File Name 1 w/o extension", "File Name 2 w/o extension", …
With FSI version 4 you create new or edit the existing XML based language files located in the directory mentioned above.
Defines the available options in the "FSI Plug-ins" select boxes in the "Publish to Web" section. FSI Plug-in files must be located in the [eRez root]/fsi4/plugins/ directory.
You can add additional plug-ins if available by adding an additional element to the array in the following form:
"File Name 1 w/o extension", "File Name 2 w/o extension", …
FSI Viewer configuration is determined by XML configuration files and by an HTTP query attached to the "movie" parameter of the HTML object tag.
The "Publish to Web" section dynamically configures FSI Viewer by creating and adding an HTTP query (e.g. "&MenuAlign=TL").
If you plan to publish multiple images using the same configuration options it is recommended to edit or add a layout preset configuration file (see $fsi_viewer_presets in the previous chapter).
Using customized configuration presets offers the following advantages:
FSI Viewer documentation offers a comprehensive description and examples on configuration methods and options and is available as an Adobe PDF file here.
FSI Showcase configuration is determined by XML configuration files and by an HTTP query attached to the "movie" parameter of the HTML object tag.
The "Publish to Web" section dynamically configures FSI Showcase by creating and adding an HTTP query (e.g. "&showcase_InitialSize=2 items ").
If you plan to publish multiple FSI Showcases instances using the same configuration options it is recommended to edit or add a layout preset configuration file (see $fsi_showcase_presets in the previous chapter).
Using customized configuration presets offers the following advantages:
FSI Viewer documentation offers a comprehensive description and examples on configuration methods and options and is available as an Adobe PDF file here.
FSI Pages configuration is determined by XML configuration files and by an HTTP query attached to the "movie" parameter of the HTML object tag.
The "Publish to Web" section dynamically configures FSI Pages by creating and adding an HTTP query (e.g. "&InitialPage=15").
If you plan to publish multiple FSI Pages instances using the same configuration options it is recommended to edit or add a layout preset configuration file (see $fsi_showcase_presets in the previous chapter).
Using customized configuration presets offers the following advantages:
FSI Viewer documentation offers a comprehensive description and examples on configuration methods and options and is available as an Adobe PDF file here.
You probably tried the FSI Showcase preset "FSI Showcase with File Info" and wondered, how FSI Showcase retrieves IPTC and other image data from eRez. This section provides step by step instructions based on the "FSI Showcase with File Info" example
Note that using the template system with FSI Pages add-on
works the same way.
E.g. publishing a catalog with links always makes use of the template system.
Even with FSI Viewer instances (2D or 3D) you might want to use the template system to retrieve data dynamically from eRez. Again the procedure is the same, except for the "image list" template which does not apply in this case.
The information provided below might not be very easy to understand, but it provides a "look under the hood" of the template based "Publish to Web" option in eRez web interface and enables you to create dynamic publishing presets yourself.
Basically FSI Viewer retrieves a template based FSI Viewer configuration file for each image.
Template based means, that it's not a static configuration file – instead it contains space holder, that eRez replaces at runtime. With regards to FSI Showcase the first task is to generate an image list that does not list the image paths directly, but lists paths to configuration template files for each image instead.
First of all the image list does not contain the paths to the images directly. Instead the image list template makes FSI Showcase load templates based configuration files from eRez for each image.
Content of the image list template
[eRez
root]/WEB-INF/templates/fsi/image_list_fileinfo.xml
<?xml version="1.0" encoding="$charset"?>
<fsi_parameter>
<Images FilePrefix="$erez-url/erez?src=" FileSuffix="&cmd=view&vtl=fsi/info_file.xml&tmp=fsi&escape=none&charset=utf-8&x=" >
#foreach( $currow in $files )#foreach( $file in $currow )#if($file.isFile)
<image file="$file.EncodedURL&fsifilename=$file.encodedName" label="$file.Name" />
#end#end#end
</Images>
</fsi_parameter>
The template iterates through all files in the eRez file collection and adds an <image file="…" label="…" /> node for each image. In combination with the "FilePrefix" and "FileSuffix" parameter, FSI Viewer will be provided with the absolute URL to the template based configuration file for each image.
You don't need to care about the details of this configuration, as the list template is the same, independent of the actual data you want to retrieve from eRez. The only modification you need to apply is modifying the template file for each image (marked in red in the code above).
So, if you plan to create a preset, retrieving information from eRez:
Using a list template file as described above, FSI Viewer retrieves an image list containing template based configuration files for each image instead of the image paths only. The example above retrieves the following configuration template:
[erez path]/WEB-INF/templates/fsi/info_file.xml
<?xml version="1.0" encoding="$charset"?>
<fsi_parameter>
#if($preview_exist)
<FPX>
<Src value="$src" />
<Width value="$img_columns" />
<Height value="$img_rows" />
#if($iptc_tilesx && $iptc_tilesy)
<TilesX value="$iptc_tilesx" />
<TilesY value="$iptc_tilesy" />
#end
</FPX>
<Options>
#if($iptc_scenesets)
<SceneSets value="$iptc_scenesets" />
#end
#if($iptc_copyright)
<IPTC_Copyright>$iptc_copyright</IPTC_Copyright>
#end
#if($iptc_caption)
<IPTC_Caption>$iptc_caption</IPTC_Caption>
#end
#if($file_size)<info_file_size>$file_size</info_file_size>#end
#if($img_format)<info_img_format>$img_format, </info_img_format>#end
<info_file_dimension>$img_columns x $img_rows px</info_file_dimension>
#if($iptc_objectname)<iptc_objectname><br/><p align="left"><b>Title:</b><br/>$iptc_objectname</p></iptc_objectname>#end
#if($iptc_copyright)<iptc_copyright><br/><p align="left"><b>Copyright:</b><br/>$iptc_copyright</p></iptc_copyright>#end
#if($iptc_caption)<iptc_caption><br/><p align="left"><b>Caption:</b><br/>$iptc_caption</p></iptc_caption>#end
</Options>
#end
</fsi_parameter>
Basically the code above is a regular, XML based FSI Viewer configuration file. The difference is, that the configuration file contains templates, that eRez replaces at runtime. All strings prefixed by "$" represent a variable provided by eRez. Please refer to eRez server HTTP Command reference for available variables for each image.
Note that not all variables might be defined for each image. E.g. $iptc_caption representing the IPTC Caption data of an image might not contain data for all images. Therefore you need to check, if the requested information is available using the
"#if()…#end" syntax.
The code:
#if($iptc_scenesets)<SceneSets value="$iptc_scenesets" />#end
checks if the IPTC data "scenesets" is available and adds a corresponding FSI Viewer parameter if the data is available.
Depending on the available image data, the resulting configuration served to FSI Viewer might look like this:
<?xml version="1.0" encoding="UTF-8"?>
<fsi_parameter>
<FPX>
<Src value="images/rose.tif" />
<Width value="2048" />
<Height value="4096" />
<TilesX value="4" />
<TilesY value="6" />
</FPX>
<Options>
<iptc_copyright>(c) 2006 theAuthor</iptc_copyright>
<info_file_size>3.55 MB (3719338 bytes)</info_file_size>
</Options>
</fsi_parameter>
(Parameter values provided by eRez marked in bold type)
Note that unavailable information does not appear at all due to the #if…#end
code explained above. If you are familiar with FSI Viewer configuration file
format, the result should look pretty familiar. Remember that the difference is
that parameter values have been added by eRez server dynamically.
Please note that you need to copy and rename the configuration template file explained above in case you want to retrieve different data from eRez server. You will additionally need to replace the file configuration template path fsi/info_file.xml in the image list template example explained before.
If you look at the resulting, template based, configuration file above, the FPXWidth, FPXHeight, FPXTilesX and FPXTilesY values should be pretty easy to understand if you know FSI Viewer parameters. The parameters in the <options> node on the other hand might look unfamiliar to you. These parameter values simply encapsulate IPTC data served by eRez, needed to display the label content in FSI Showcase.
This is why we return to the FSI Viewer configuration file used with the "Showcase with File Info" preset now:
[eRez root]/fsi4/config/showcase_presets/showcase_info.fsi
<fsi_parameter>
<PLUGINS>
<PLUGIN src="Showcase">
<ListTemplate value="fsi/image_list_fileinfo.xml" />
<Layout value="outside" />
<Align value="right" />
<LabelTextSize value="11" />
<InitialSize value="1 item" />
<ImageWidth value="140" />
<ImageHeight value="100" />
<ListTemplate value="fsi/image_list_fileinfo.xml" />
<LabelTextSize value="11" />
<LabelMarginTop value="2" />
<LabelMarginTop value="2" />
<LabelTextWidth value="140" />
<LabelTextHeight value="50" />
<LabelContent><ImageIndex/>. <b><ImageLabel/></b><font color="#888888"><br/><info_file_size/><br/><info_img_format/><info_file_dimension/><br/><iptc_objectname/><iptc_copyright/><iptc_caption/></font></LabelContent>
<LabelTemplates value="info_file_size,info_img_format,info_file_dimension,iptc_objectname,iptc_copyright,iptc_caption" />
<ToolTips value="true" />
</PLUGIN>
</PLUGINS>
<options>
<MenuAlign value="BL" />
</options>
</fsi_parameter>
Please focus on the parameters marked in red.
First of all you will notice the FSI Showcase parameter "ListTemplate".
As explained above this parameter specifies the eRez template, setting up the image list for FSI Showcase that contains the configuration template for each image configuration collecting the required data for an image.
The <LabelContent> and the <LabelTemplates> parameters determine, which data collected by the fsi/info_file.xml configuration template file is being used for the thumbnails labels of FSI Showcase.
This parameter defines the desired content of FSI Showcase labels. The child node tag names of this parameter will be replaced by the corresponding parameter values retrieved from the dynamic configuration file explained above. The templates in the <LabelContent> parameter value need to be defined as XML nodes, using a node name corresponding to the parameter name in the template based configuration file.
Example:
The template <iptc_copyright/> in the <LabelContent> parameter value will be replaced by the contents of the template based configuration file fsi/info_file.xml.
The dynamic image configuration file provides the following values:
<Options>
<IPTC_Copyright>(c) 2006 theAuthor</IPTC_Copyright>
<info_file_size>3.55 MB (3719338 bytes)</info_file_size>
</Options>
This way the <iptc_copyright/> tag in the <LabelContent> parameter value will be replaced by the corresponding value "(c) 2006 theAuthor".
This parameter specifies the node names in the <LabelContent> parameter value to be replaced at runtime.
<ImageIndex/> is a preset template being replaced by the image index.
<ImageLabel/> is a template being replaced by the "label" attribute of the <image> node in the image list template.
All additional template node names need to be defined using the <LabelTemplates> parameter. This way FSI Viewer knows which tags to be replace by parameter values:
<LabelTemplates value="iptc_copyright,info_file_size" />
The actual content of the FSI Showcase parameter "LabelContent" would be:
<LabelContent>1. <b>rose.tif</b><font color="#888888"><br/>20.232 byte <br/><br/>(c) 2006 theAuthor</font></LabelContent>
Following the steps above, you can create FSI Showcase presets, displaying any image information provided by eRez server. Though the process might seem to be rather complicated, it will look far easier once you create your first image list template and template configuration file yourself.
And last – but not least: remember that you only need to go through the procedure once and will be able to use the template for all image collections later on, creating results, that would be impossible to do manually:
These are the parameters which can be passed to the Flash slideshow that comes with eRez.
Debug (Bool) |
Generate and display debug information |
Menu (true, false, "auto") |
Defines if the menu should be available. "auto" is the default value and causes the menu to be displayed if the cursor enters the upper left corner (above the invisible menu). |
Server (String, optional when placed in eRez server folder) |
Address of eRez server, e.g. "http://erez3.yawah.com/erez2/" If the slideshow resides in the "/slideshow" subdirectory, this parameter can be omitted. Please note that you can not load XML data across domain boundaries
|
dir (String) |
Defines the eRez imaging server share (e.g. "&dir=images/Flowers")
|
query (String)
|
Defines the eRez server query to be used for this slideshow (e.g. "&query=Flow*") |
DisplayTime (seconds as float)
|
Time in seconds the image is being displayed after it has been loaded and the effect has finished playing
|
TransitionTime (seconds as float)
|
Duration (speed) of the transition effect. Has no effect if transition is "none".
|
Continued on next page
Transition (String): |
A String defining the style of transitions between images. The values may be concatenated with any (or no) character. The default transition is "None". All values are case insensitive. Any combinations of the following values are possible (e.g. Up,Left,RotateCCW) except for kenburns which can not be combined with the other parameters.
In case of contradicting values (e.g. Left,Right) the value(s) marked with (*) prevail.
|
Loop (Bool)
|
Continue the slideshow with the first image after reaching the last image. The default value is "true" |
Width and Height |
These parameters are obsolete for Flash MX. With Flash 5 plug-ins you have to provide the size in pixel of the object/embed tag so that the slideshow "knows" it's own view port size. |
This section describes who to configure the eRez Imaging server for use with the Synkron VIA CMS system.
In the config folder in the WEB-INF folder is a file called publishtoweb.xml. This file contains the Synkron VIA CMS integration configuration. The file contains a single entry called configurl. This is the URL used for callback to the Synkron VIA system. See this example:
<configurl>http://your synkron server/admin/webservice/erezservice.asmx</configurl>
To configure the system you need to enter the server name of the server where your Synkron VIA system is running. Just replace the “your synkron server” part with your Synkron VIA server name.