diff --git a/gallery.ini b/gallery.ini
deleted file mode 100644
index 9d8cff3..0000000
--- a/gallery.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-logfile=gallery.log
-defaulttheme=default_horizontal
diff --git a/gallery.ini.tmpl b/gallery.ini.tmpl
new file mode 100644
index 0000000..71785c8
--- /dev/null
+++ b/gallery.ini.tmpl
@@ -0,0 +1,6 @@
+logfile=gallery.log
+defaulttheme=default_horizontal
+gallerydir=bilder
+gallerypath=/bilder
+themedir=themes
+themepath=/themes
diff --git a/includes/galleryfunctions.php b/includes/galleryfunctions.php
index 179af2d..36ca5e2 100644
--- a/includes/galleryfunctions.php
+++ b/includes/galleryfunctions.php
@@ -28,16 +28,17 @@
* .
*/
-define(GALLERYPREFIX, "bilder");
-define(INFOFILE, "galleryinfo.ini");
define(IMAGESEC, "images");
define(GALLERYSEC, "gallery");
define(GALLERY_RE, '/^[\w\d _-]+$/');
-if (!realpath('gallery.ini')) {
- die('gallery.ini not found in ' . getcwd());
+$basedir = realpath(implode(DIRECTORY_SEPARATOR, array(dirname(__file__), '..')));
+$inifile = implode(DIRECTORY_SEPARATOR, array($basedir, 'gallery.ini'));
+
+if (!file_exists($inifile)) {
+ die("required $inifile not found.");
}
-$configuration = parse_ini_file(realpath('gallery.ini'));
+$configuration = parse_ini_file($inifile);
if (array_key_exists('logfile', $configuration)) {
error_reporting(E_ALL);
ini_set('display_errors', 0);
@@ -63,8 +64,10 @@ if (array_key_exists('theme', $_GET) &&
* Verzeichnisnamen hat, sonst @c false
*/
function galleryExists($galleryname) {
+ global $configuration;
+
return preg_match(GALLERY_RE, $galleryname) &&
- realpath(GALLERYPREFIX . DIRECTORY_SEPARATOR . $galleryname);
+ realpath($configuration['gallerydir'] . DIRECTORY_SEPARATOR . $galleryname);
}
/**
@@ -81,11 +84,15 @@ function galleryExists($galleryname) {
* wenn keine Konfigurationsdatei vorhanden ist
*/
function getGalleryConfig($galleryname = null) {
+ global $configuration;
+
if ($galleryname) {
- $filepath = realpath(GALLERYPREFIX . DIRECTORY_SEPARATOR .
- $galleryname . DIRECTORY_SEPARATOR . INFOFILE);
+ $filepath = realpath(implode(DIRECTORY_SEPARATOR,
+ array($configuration['gallerydir'], $galleryname,
+ 'galleryinfo.ini')));
} else {
- $filepath = realpath(GALLERYPREFIX . DIRECTORY_SEPARATOR . INFOFILE);
+ $filepath = realpath(implode(DIRECTORY_SEPARATOR,
+ array($configuration['gallerydir'], 'galleryinfo.ini')));
}
if (is_file($filepath)) {
return parse_ini_file($filepath, true);
@@ -107,17 +114,17 @@ function getGalleryConfig($galleryname = null) {
* @li @a full relative URL des Vollbildes
*/
function getImageInfo($galleryname, $imagename) {
- global $theme;
+ global $theme, $configuration;
$label = getImageLabel($galleryname, $imagename);
$gallerylabel = getGalleryLabel($galleryname);
return array("name" => $imagename,
"label" => $label,
- "preview" => GALLERYPREFIX . DIRECTORY_SEPARATOR .
+ "preview" => $configuration['gallerypath'] . '/' .
getScaledImage($galleryname, $imagename,
$theme->previewsize, false),
- "full" => GALLERYPREFIX . DIRECTORY_SEPARATOR . $galleryname .
- DIRECTORY_SEPARATOR . $imagename,
+ "full" => implode('/', array($configuration['gallerypath'],
+ $galleryname, $imagename)),
"title" => sprintf("%s :: %s", $gallerylabel, $label)
);
}
@@ -135,7 +142,9 @@ function getImageInfo($galleryname, $imagename) {
* @return Label zu dem Bild
*/
function getImageLabel($galleryname, $imagename) {
- $gallerypath = realpath(GALLERYPREFIX . DIRECTORY_SEPARATOR . $galleryname);
+ global $configuration;
+
+ $gallerypath = realpath($configuration['gallerydir'] . DIRECTORY_SEPARATOR . $galleryname);
if (empty($gallerypath) || !is_dir($gallerypath)) {
return false;
}
@@ -175,25 +184,26 @@ function getGalleryLabel($galleryname) {
* Liefert die aktuelle Galerie. Die Galerie kann entweder im
* GET-Parameter @c galleryname stehen, als Wert @a default in der
* Sektion @a gallery der zentralen @c galleryinfo.ini angegeben
- * werden oder es wird das erste Unterverzeichnis von @c GALLERYPREFIX
+ * werden oder es wird das erste Unterverzeichnis von @c gallerydir
* verwendet.
*
* @return Galeriename
*/
function getCurrentGallery() {
+ global $configuration;
+
if (array_key_exists('galleryname', $_GET) &&
galleryExists($_GET["galleryname"])) {
return $_GET["galleryname"];
}
- $filepath = realpath(GALLERYPREFIX . DIRECTORY_SEPARATOR . INFOFILE);
+ $filepath = realpath($configuration['gallerydir'] . DIRECTORY_SEPARATOR . 'galleryinfo.ini');
if (!empty($filepath)) {
$inidata = getGalleryConfig();
if (galleryExists($inidata[GALLERYSEC]["default"])) {
return $inidata[GALLERYSEC]["default"];
}
}
- foreach (glob(realpath(GALLERYPREFIX) . DIRECTORY_SEPARATOR . '*',
- GLOB_ONLYDIR) as $directory) {
+ foreach (glob(realpath($configuration['gallerydir']) . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR) as $directory) {
$basename = basename($directory);
if (galleryExists($basename)) {
return $basename;
@@ -217,13 +227,15 @@ function getCurrentGallery() {
* Maximalwert beachtet werden soll, wenn dieser Parameter @c true
* ist, wird die Höhe auf @a $maxdim skaliert, ansonsten die Breite
*
- * @return Pfad des skalierten Bildes relativ zu @a GALLERYPREFIX
+ * @return Pfad des skalierten Bildes relativ zu @a gallerydir
*/
function getScaledImage($galleryname, $basename, $maxdim, $scaleheight=true) {
+ global $configuration;
+
if ($maxdim == 0) {
debug_print_backtrace();
}
- $gallerydir = realpath(GALLERYPREFIX . DIRECTORY_SEPARATOR . $galleryname);
+ $gallerydir = realpath($configuration['gallerydir'] . DIRECTORY_SEPARATOR . $galleryname);
if ($scaleheight) {
$scaleddir = sprintf("%s%sscaled_x%d", $galleryname,
DIRECTORY_SEPARATOR, $maxdim);
@@ -231,7 +243,7 @@ function getScaledImage($galleryname, $basename, $maxdim, $scaleheight=true) {
$scaleddir = sprintf("%s%sscaled%dx_", $galleryname,
DIRECTORY_SEPARATOR, $maxdim);
}
- $scaleddirpath = GALLERYPREFIX . DIRECTORY_SEPARATOR . $scaleddir;
+ $scaleddirpath = $configuration['gallerydir'] . DIRECTORY_SEPARATOR . $scaleddir;
if (!is_dir($scaleddirpath)) {
// versuchen das Thumbnail-Verzeichnis anzulegen
$mkdir = @mkdir($scaleddirpath, 0755);
@@ -278,11 +290,11 @@ function getScaledImage($galleryname, $basename, $maxdim, $scaleheight=true) {
* und dem Ergebnis von getimagesize() als Werten ist.
*/
function getThumbNailInfo($galleryname) {
- global $theme;
+ global $theme, $configuration;
$thumbsizes = array();
$thumbdimsum = 2;
- foreach (glob(realpath(GALLERYPREFIX . DIRECTORY_SEPARATOR .
+ foreach (glob(realpath($configuration['gallerydir'] . DIRECTORY_SEPARATOR .
$galleryname) . DIRECTORY_SEPARATOR .
'*.jp{e,}g', GLOB_BRACE) as $filename) {
$basename = basename($filename);
@@ -293,7 +305,7 @@ function getThumbNailInfo($galleryname) {
$thumbfile = getScaledImage($galleryname, $basename, $theme->thumbsize,
false);
}
- if ($thumbsize = getimagesize(realpath(GALLERYPREFIX .
+ if ($thumbsize = getimagesize(realpath($configuration['gallerydir'] .
DIRECTORY_SEPARATOR .
$thumbfile))) {
$thumbsizes[$basename] = array($thumbfile, $thumbsize);
@@ -320,8 +332,10 @@ function getThumbNailInfo($galleryname) {
* @see getGalleryConfig()
*/
function getGalleryLinks() {
+ global $configuration;
+
$retval = array();
- foreach (glob(realpath(GALLERYPREFIX) . DIRECTORY_SEPARATOR . '*',
+ foreach (glob(realpath($configuration['gallerydir']) . DIRECTORY_SEPARATOR . '*',
GLOB_ONLYDIR) as $directory) {
$basename = basename($directory);
if (galleryExists($basename)) {
@@ -359,9 +373,11 @@ function getGalleryLinks() {
* @see getThumbNailInfo()
*/
function getAllThumbnails(&$thumbinfo) {
+ global $configuration;
+
$retval = array();
foreach ($thumbinfo[2] as $basename => $data) {
- $retval[] = array('src' => GALLERYPREFIX . DIRECTORY_SEPARATOR . $data[0],
+ $retval[] = array('src' => $configuration['gallerydir'] . DIRECTORY_SEPARATOR . $data[0],
'sizes' => $data[1][3],
'alt' => getImageLabel($thumbinfo[1], $basename));
}
@@ -383,23 +399,23 @@ function getAllThumbnails(&$thumbinfo) {
* @see getThumbNailInfo()
*/
function getFirstPreview(&$thumbinfo) {
- global $theme;
+ global $theme, $configuration;
reset($thumbinfo[2]);
$basename = key($thumbinfo[2]);
$data = current($thumbinfo[2]);
$galleryname = $thumbinfo[1];
- $fullname = GALLERYPREFIX . DIRECTORY_SEPARATOR . $galleryname .
+ $fullname = $configuration['gallerypath'] . DIRECTORY_SEPARATOR . $galleryname .
DIRECTORY_SEPARATOR . $basename;
$scaledimage = getScaledImage($galleryname, $basename,
$theme->previewsize, false);
- $scaledimagesize = getimagesize(realpath(GALLERYPREFIX .
+ $scaledimagesize = getimagesize(realpath($configuration['gallerydir'] .
DIRECTORY_SEPARATOR .
$scaledimage));
$label = getImageLabel($galleryname, $basename);
return array('title' => $label,
'full' => $fullname,
- 'src' => GALLERYPREFIX . DIRECTORY_SEPARATOR . $scaledimage,
+ 'src' => $configuration['gallerypath'] . DIRECTORY_SEPARATOR . $scaledimage,
'alt' => $label,
'sizes' => $scaledimagesize[3]);
}
diff --git a/index.php b/index.php
index 644a3a5..9633429 100644
--- a/index.php
+++ b/index.php
@@ -32,10 +32,12 @@
* .
*/
+$basedir = dirname(__file__);
+
/**
* Inkludiert die Funktionsbibliothek.
*/
-require('includes/galleryfunctions.php');
+require($basedir . '/includes/galleryfunctions.php');
/**
* Name der aktuellen Galerie.
@@ -51,7 +53,7 @@ $scripts = array('js/jquery.js',
'js/jquery.colorBlend.js',
'js/jquery.lightbox.js',
'scripts/ourhandlers.js');
-$styles = array('css/jquery.lightbox.css');
+$styles = array();
$template = $theme->getTemplate();