diff --git a/gallery.ini b/gallery.ini
index ada09a5..9d8cff3 100644
--- a/gallery.ini
+++ b/gallery.ini
@@ -1,3 +1,2 @@
logfile=gallery.log
-previewwidth=311
-thumbheight=67
+defaulttheme=default_horizontal
diff --git a/includes/galleryfunctions.php b/includes/galleryfunctions.php
index 1421c84..2ce398c 100644
--- a/includes/galleryfunctions.php
+++ b/includes/galleryfunctions.php
@@ -45,15 +45,18 @@ if (array_key_exists('logfile', $configuration)) {
ini_set('error_log', $configuration['logfile']);
}
+require_once('theme.class.php');
+$theme = new Theme($configuration['defaulttheme']);
+
/**
* Breite der Vorschaubilder.
*/
-$previewwidth = $configuration['previewwidth'];
+$previewwidth = $theme->previewsize;
/**
* Höhe der Thumbnailbilder.
*/
-$thumbheight = $configuration['thumbheight'];
+$thumbheight = $theme->thumbsize;
/**
* Prüft, ob eine Galerie mit dem übergebenen Namen existiert.
diff --git a/includes/theme.class.php b/includes/theme.class.php
new file mode 100644
index 0000000..b8ccdfe
--- /dev/null
+++ b/includes/theme.class.php
@@ -0,0 +1,70 @@
+
+ *
+ * @version $Id$
+ *
+ * Copyright (c) 2009 Jan Dittberner
+ * Jan Dittberner IT-Consulting & -Solutions
+ * Cottbuser Str. 1, D-01129 Dresden
+ *
+ * This file is part of the ScrollingJQueryGallery component of the
+ * gnuviech-server.de Websitetools
+ *
+ * ScrollingJQueryGallery is free software: you can redistribute it
+ * and/or modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * ScrollingJQueryGallery is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with ScrollingJQueryGallery. If not, see
+ * .
+ */
+
+/**
+ * Theme class.
+ */
+class Theme {
+ /**
+ * Theme type 'horizontal' or 'vertical'
+ * @var string
+ */
+ var $themetype;
+
+ /**
+ * Size of preview images. Used for calculating preview image sizes.
+ * @var int
+ */
+ var $previewsize;
+
+ /**
+ * Size of thumbnail images. Depending on the theme type this is
+ * used for calculating the width (vertical themes) or height
+ * (horizontal themes) of the thumbnal images.
+ * @var int
+ */
+ var $thumbsize;
+
+ /**
+ * Constructor for themes. Expects a theme name and initializes the
+ * internal state of the instance from the 'theme.ini' file in the
+ * named theme's directory.
+ * @param string $name the directory name of the theme
+ */
+ function __construct($name) {
+ $themeconfig = parse_ini_file(
+ realpath(implode(DIRECTORY_SEPARATOR,
+ array('themes', $name, 'theme.ini'))));
+ $this->themetype = $themeconfig['themetype'];
+ $this->previewsize = intval($themeconfig['previewsize']);
+ $this->thumbsize = intval($themeconfig['thumbsize']);
+ }
+}
+?>
\ No newline at end of file
diff --git a/index.php b/index.php
index 23f6c27..4fe31eb 100644
--- a/index.php
+++ b/index.php
@@ -49,8 +49,8 @@ $thumbinfo = getThumbNailInfo($gallery);
require('includes/template.class.php');
-
$template = new Template();
+
$scripts = array('js/jquery.js',
'js/jquery.colorBlend.js',
'js/jquery.lightbox.js',
@@ -87,6 +87,7 @@ $template->assign('firstpreview', getFirstPreview($thumbinfo));
$template->assign('firstdescription', getFirstDescription($thumbinfo));
$template->assign('lang', 'de');
$template->assign('themepath', 'themes/default_horizontal');
+$template->assign('gallery', $gallery);
$template->display('themes/default_horizontal/theme.php');
diff --git a/themes/default_horizontal/theme.ini b/themes/default_horizontal/theme.ini
new file mode 100644
index 0000000..87c98c1
--- /dev/null
+++ b/themes/default_horizontal/theme.ini
@@ -0,0 +1,4 @@
+themename=Horizontal default theme
+themetype=horizontal
+previewsize=311
+thumbsize=67
diff --git a/themes/default_horizontal/theme.php b/themes/default_horizontal/theme.php
index 7b5dd95..322d155 100644
--- a/themes/default_horizontal/theme.php
+++ b/themes/default_horizontal/theme.php
@@ -22,7 +22,7 @@