Archived
1
0
Fork 0

make themes configurable (fixes #50)

* gallery.ini:
  - remove theme specific configuration
  - add default theme name
 * includes/galleryfunctions.php:
  - implement theme initialization
  - configure common parameters from theme
 * includes/theme.class.php:
  - implement a simple theme class
 * index.php:
  - assign $gallery to template
 * themes/default_horizontal/theme.ini:
  - add theme specific configuration
 * themes/default_horizontal/theme.php:
  - use $content['gallery'] instead of undefined $gallery
This commit is contained in:
Jan Dittberner 2009-07-11 11:53:43 +00:00
parent 0ed421b1ce
commit fcea03a800
6 changed files with 83 additions and 6 deletions

View file

@ -1,3 +1,2 @@
logfile=gallery.log logfile=gallery.log
previewwidth=311 defaulttheme=default_horizontal
thumbheight=67

View file

@ -45,15 +45,18 @@ if (array_key_exists('logfile', $configuration)) {
ini_set('error_log', $configuration['logfile']); ini_set('error_log', $configuration['logfile']);
} }
require_once('theme.class.php');
$theme = new Theme($configuration['defaulttheme']);
/** /**
* Breite der Vorschaubilder. * Breite der Vorschaubilder.
*/ */
$previewwidth = $configuration['previewwidth']; $previewwidth = $theme->previewsize;
/** /**
* Höhe der Thumbnailbilder. * Höhe der Thumbnailbilder.
*/ */
$thumbheight = $configuration['thumbheight']; $thumbheight = $theme->thumbsize;
/** /**
* Prüft, ob eine Galerie mit dem übergebenen Namen existiert. * Prüft, ob eine Galerie mit dem übergebenen Namen existiert.

70
includes/theme.class.php Normal file
View file

@ -0,0 +1,70 @@
<?php
/**
* @file defines a theme class for ScrollingJQueryGallery
*
* @author Jan Dittberner <jan@dittberner.info>
*
* @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
* <http://www.gnu.org/licenses/>.
*/
/**
* 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']);
}
}
?>

View file

@ -49,8 +49,8 @@ $thumbinfo = getThumbNailInfo($gallery);
require('includes/template.class.php'); require('includes/template.class.php');
$template = new Template(); $template = new Template();
$scripts = array('js/jquery.js', $scripts = array('js/jquery.js',
'js/jquery.colorBlend.js', 'js/jquery.colorBlend.js',
'js/jquery.lightbox.js', 'js/jquery.lightbox.js',
@ -87,6 +87,7 @@ $template->assign('firstpreview', getFirstPreview($thumbinfo));
$template->assign('firstdescription', getFirstDescription($thumbinfo)); $template->assign('firstdescription', getFirstDescription($thumbinfo));
$template->assign('lang', 'de'); $template->assign('lang', 'de');
$template->assign('themepath', 'themes/default_horizontal'); $template->assign('themepath', 'themes/default_horizontal');
$template->assign('gallery', $gallery);
$template->display('themes/default_horizontal/theme.php'); $template->display('themes/default_horizontal/theme.php');

View file

@ -0,0 +1,4 @@
themename=Horizontal default theme
themetype=horizontal
previewsize=311
thumbsize=67

View file

@ -22,7 +22,7 @@
<ul id="menu"><?php <ul id="menu"><?php
foreach ($content['gallerylinks'] as $data) { foreach ($content['gallerylinks'] as $data) {
printf('<li class="menu%s"><a class="menu" href="%s">%s </a></li>', printf('<li class="menu%s"><a class="menu" href="%s">%s </a></li>',
($data['gallery'] == $gallery) ? ' active' : '', ($data['gallery'] == $content['gallery']) ? ' active' : '',
$data['url'], $data['label']); $data['url'], $data['label']);
} ?></ul> } ?></ul>
<div id="content_container"> <div id="content_container">