add support for a theme request parameter (fixes #51)
* includes/galleryfunctions.php:
  - check for request parameter theme and whether it matches an
    allowed directory name
 * includes/theme.class.php:
  - die if the theme cannot be initialized properly
			
			
This commit is contained in:
		
							parent
							
								
									ded7232146
								
							
						
					
					
						commit
						5be4c55b97
					
				
					 2 changed files with 13 additions and 4 deletions
				
			
		|  | @ -46,7 +46,13 @@ if (array_key_exists('logfile', $configuration)) { | |||
| } | ||||
| 
 | ||||
| require_once('theme.class.php'); | ||||
| 
 | ||||
| if (array_key_exists('theme', $_GET) && | ||||
|     preg_match('/^[a-zA-Z0-9_-]+$/', $_GET['theme'])) { | ||||
|   $theme = new Theme($_GET['theme']); | ||||
| } else { | ||||
|   $theme = new Theme($configuration['defaulttheme']); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Breite der Vorschaubilder. | ||||
|  |  | |||
|  | @ -64,9 +64,12 @@ class Theme { | |||
|    * @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')))); | ||||
|     $themeini = realpath(implode(DIRECTORY_SEPARATOR, | ||||
|       array('themes', $name, 'theme.ini'))); | ||||
|     if (!$themeini) { | ||||
|       die("invalid theme $name"); | ||||
|     } | ||||
|     $themeconfig = parse_ini_file($themeini); | ||||
|     $this->name = $name; | ||||
|     $this->themetype = $themeconfig['themetype']; | ||||
|     $this->previewsize = intval($themeconfig['previewsize']); | ||||
|  |  | |||
		Reference in a new issue