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:
parent
0ed421b1ce
commit
fcea03a800
6 changed files with 83 additions and 6 deletions
|
@ -1,3 +1,2 @@
|
|||
logfile=gallery.log
|
||||
previewwidth=311
|
||||
thumbheight=67
|
||||
defaulttheme=default_horizontal
|
||||
|
|
|
@ -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.
|
||||
|
|
70
includes/theme.class.php
Normal file
70
includes/theme.class.php
Normal 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']);
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -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');
|
||||
|
||||
|
|
4
themes/default_horizontal/theme.ini
Normal file
4
themes/default_horizontal/theme.ini
Normal file
|
@ -0,0 +1,4 @@
|
|||
themename=Horizontal default theme
|
||||
themetype=horizontal
|
||||
previewsize=311
|
||||
thumbsize=67
|
|
@ -22,7 +22,7 @@
|
|||
<ul id="menu"><?php
|
||||
foreach ($content['gallerylinks'] as $data) {
|
||||
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']);
|
||||
} ?></ul>
|
||||
<div id="content_container">
|
||||
|
|
Reference in a new issue