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