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