Diese Galerie erlaubt es, Ordner unterhalb eines Ordners "cmsroot/image" als Galerie auszuwählen. Verwendet wird zudem die JavaScript-Erweiterung
Highslide (4.1.4), die sich unter "cmsroot/highslide" befinden muss.
Code:
<script type="text/javascript" src="highslide/highslide-with-gallery.js"></script>
<link rel="stylesheet" type="text/css" href="highslide/highslide.css">
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="highslide/highslide-ie6.css">
<![endif]-->
<script type="text/javascript">
hs.graphicsDir = "highslide/graphics/";
hs.align = "center";
hs.transitions = ["expand", "crossfade"];
hs.fadeInOut = true;
hs.outlineType = "glossy-dark";
hs.wrapperClassName = "dark";
hs.captionEval = "this.img.alt";
hs.numberPosition = "caption";
hs.useBox = true;
hs.width = 600;
hs.height = 400;
hs.dimmingOpacity = 0.75;
hs.addSlideshow(
{
interval: 5000,
repeat: false,
useControls: true,
fixedControls: "fit",
overlayOptions:
{
position: "bottom center",
opacity: 0.75,
hideOnMouseOut: true
},
thumbstrip:
{
position: "above",
mode: "horizontal",
relativeTo: "expander"
}
});
</script>
<style type="text/css">
DIV.highslide-gallery IMG
{
BACKGROUND-COLOR: #FFFFFF;
BACKGROUND-IMAGE: url();
BORDER: 1px solid #000000;
DISPLAY: inline;
FLOAT: none;
LEFT: 0px;
MARGIN: 0px 10px 10px 0px;
PADDING: 0px;
POSITION: relative;
TOP: 0px;
VERTICAL-ALIGN: top;
}
</style>
<?php
$base_path = "image";
$thumbnail_width = 120;
$thumbnail_height = NULL;
//get folder from document data
$range = $wcp_template_base_id . "image_folder";
$folder = $wcp_template_document->get($range, "text");
//display folder selection in editing mode
if (WCP_TEMPLATE_EDIT)
{
//retrieve entries from base path
if (! $array = scandir(WCP_ROOT_PATH . "$base_path/"))
return; //path not found
$list = array(); //folder list
//process entries
reset($array);
while (list(, $value) = each($array))
{
if (! is_dir(WCP_ROOT_PATH . "$base_path/$value"))
continue; //no directory
if (preg_match("/^\.{1,2}$/", $value))
continue; //no directory
$list[$value] = TRUE; //add entry to folder list
};
//display folder selection
echo("<form action=\"" . x(WCP_ACTIVE_URL . wcp_param()) . "\" " .
"method=\"post\">" .
"<div>" .
"<input name=\"range\" " .
"type=\"hidden\" " .
"value=\"" . x($range) . "\">" .
"<input name=\"type\" " .
"type=\"hidden\" " .
"value=\"text\">" .
"<small>Bildordner auswählen</small><br>" .
"<strong>" .
x("/$base_path/") .
"</strong> ");
select($list, $folder, "value");
echo(" " .
"<input type=\"submit\" " .
"value=\"" . WCP_L_COMMAND_CONFIRM . "\" " .
"class=\"button\"><br>" .
"<small>" .
"Diese Funktion verwendet die JavaScript-Erweiterung " .
"<span style=\"FONT-STYLE:italic\">Highslide</span> " .
"von Torstein Hønsi und ist " .
"<strong>für den kommerziellen Gebrauch nicht kostenfrei</strong>. " .
"Besuchen Sie die Website des Herstellers unter " .
"<a href=\"http://www.highslide.com/\" " .
"target=\"_blank\">" .
"www.highslide.com" .
"</a>, " .
"um ggf. eine Lizenz zu erwerben." .
"</small>" .
"</div>" .
"</form>");
};
//get folder path
$path = "$base_path/$folder/";
//retrieve entries from folder path
if (! $array = scandir(WCP_ROOT_PATH . $path)) return; //path not found
echo("<div class=\"highslide-gallery\">");
//process entries
reset($array);
while (list(, $value) = each($array))
{
//check filename extension
if (! preg_match("/^(.+)\.(?:gif|jpeg|jpg|png)$/i", $value, $_value))
continue; //no valid file format
//display thumbnail
echo("<a href=\"" . x(WCP_ROOT_URL . $path . $value) . "\" " .
"target=\"_blank\" " .
"class=\"highslide\" " .
"onclick=\"return hs.expand(this);\">" .
image(WCP_ROOT_URL . $path . $value,
$thumbnail_width,
$thumbnail_height,
$_value[1]) .
"</a>");
};
echo("</div>");
?>
Das Template wird in zukünftigen Versionen standardmässig mitgeliefert.