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
|
logfile=gallery.log
|
||||||
previewwidth=311
|
defaulttheme=default_horizontal
|
||||||
thumbheight=67
|
|
||||||
|
|
|
@ -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
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');
|
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');
|
||||||
|
|
||||||
|
|
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
|
<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">
|
||||||
|
|
Reference in a new issue