From 0cf41888ae911af8f323240637bae6306ac021b5 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Thu, 23 Oct 2008 23:36:12 -0500
Subject: install mythweb to the correct location. Also apply gallery patches
 from #2923.  These don't apply cleanly, but the rejects from patch 1 seem to
 be covered by patch 2

---
 abs/core-testing/mythtv/stable/mythweb/PKGBUILD    |   31 +-
 .../2923-mythweb-gallery-English_GB_lang.diff      |  102 ++
 .../mythtv/stable/mythweb/patch/icons.tar.gz       |  Bin 0 -> 14759 bytes
 .../mythweb/patch/mythweb_gallery_updated1.diff    | 1657 ++++++++++++++++++++
 4 files changed, 1778 insertions(+), 12 deletions(-)
 create mode 100644 abs/core-testing/mythtv/stable/mythweb/patch/2923-mythweb-gallery-English_GB_lang.diff
 create mode 100644 abs/core-testing/mythtv/stable/mythweb/patch/icons.tar.gz
 create mode 100644 abs/core-testing/mythtv/stable/mythweb/patch/mythweb_gallery_updated1.diff

diff --git a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
index e01323c..c4397c1 100644
--- a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
@@ -1,27 +1,34 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Juergen Hoetzel <juergen@archlinux.org> 
-# Contributor: Philipp Giebel <arch@ambience-design.net>
-
 pkgname=mythweb
 pkgver=0.21
-pkgrel=1
+pkgrel=6
 pkgdesc="Web interface for MythTV's backend"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
-depends=("mythtv>=${pkgver}" 'apache' 'php')
+depends=("mythtv>=${pkgver}" 'lighttpd' 'php')
 install=mythweb.install
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
 md5sums=('af20a78ac66719feddf9a39f1a799ded')
 groups=('mythtv-extras')
+DOCROOT=srv/http/mythweb
 
 build() {
-   mkdir -p $startdir/pkg/srv/www/mythweb/{image_cache,php_sessions}
-   cp -r $startdir/src/mythplugins-$pkgver/$pkgname/* $startdir/pkg/srv/www/mythweb
-   cp $startdir/src/mythplugins-$pkgver/$pkgname/data/.htaccess $startdir/pkg/srv/www/mythweb
-   rm $startdir/pkg/srv/www/mythweb/README
-   chown -R nobody:nobody $startdir/pkg/srv/www/mythweb
-   chmod g+rw $startdir/pkg/srv/www/mythweb/{image_cache,php_sessions,data}
+   mkdir -p $startdir/pkg/$DOCROOT/{image_cache,php_sessions}
+#apply gallery patches here
+   cd $startdir/src/mythplugins-$pkgver/$pkgname/
+   patch -p0 < $startdir/patch/mythweb_gallery_updated1.diff
+   patch -p2 < $startdir/patch/2923-mythweb-gallery-English_GB_lang.diff
+   tar -zxvf $startdir/patch/icons.tar.gz
+###
+
+   cp -r $startdir/src/mythplugins-$pkgver/$pkgname/* $startdir/pkg/$DOCROOT
+#   cp $startdir/src/mythplugins-$pkgver/$pkgname/data/.htaccess $startdir/pkg/$DOCROOT
+   rm $startdir/pkg/srv/$DOCROOT/README
+   chown -R http:users $startdir/pkg/$DOCROOT
+   chmod g+rw $startdir/pkg/$DOCROOT/{image_cache,php_sessions,data}
+
+
+
 }
 
 
diff --git a/abs/core-testing/mythtv/stable/mythweb/patch/2923-mythweb-gallery-English_GB_lang.diff b/abs/core-testing/mythtv/stable/mythweb/patch/2923-mythweb-gallery-English_GB_lang.diff
new file mode 100644
index 0000000..103fb2f
--- /dev/null
+++ b/abs/core-testing/mythtv/stable/mythweb/patch/2923-mythweb-gallery-English_GB_lang.diff
@@ -0,0 +1,102 @@
+Index: mythplugins/mythweb/modules/_shared/lang/English_GB.lang
+===================================================================
+--- mythplugins/mythweb/modules/_shared/lang/English_GB.lang	(revision 16505)
++++ mythplugins/mythweb/modules/_shared/lang/English_GB.lang	(working copy)
+@@ -154,6 +154,7 @@
+ "Current Conditions"
+ "Current Recording"
+ "Current recordings"
++"Current path"
+ "Currently Browsing:  $1"
+ "Currently Recording:  Edit"
+ "Custom"
+@@ -169,6 +170,7 @@
+     Deaf Signed
+ "Default"
+ "Default MythVideo View"
++"Default view size"
+ "Delete"
+ "delete"
+ "Delete $1"
+@@ -247,6 +249,8 @@
+ "freqid"
+ "Friday"
+ "Frontends"
++"Gallery"
++"Gallery image path"
+ "generic_date"
+     %a %b %e, %Y
+ "generic_time"
+@@ -270,12 +274,14 @@
+ "Hide"
+ "High"
+ "Home"
++"Horizontal screen resolution"
+ "Host"
+ "Hosted by"
+ "Hour"
+ "Hour Format"
+ "hue"
+ "Humidity"
++"Images per page"
+ "IMDB"
+ "IMDBTYPE"
+ "Inactive"
+@@ -334,6 +340,8 @@
+ "length"
+ "Length"
+ "Length (min)"
++"List of allowed image formats"
++"List of available view sizes"
+ "Listing &quot;Jump to&quot;"
+ "Listing Time Key"
+ "Listings"
+@@ -383,6 +391,7 @@
+ "mythvideo.sort_ignores_case"
+ "MythWeb"
+ "MythWeb Defaults"
++"MythWeb Gallery"
+ "MythWeb Global Defaults"
+ "MythWeb Session"
+ "MythWeb Skin"
+@@ -413,6 +422,7 @@
+ "Number of shows"
+ "Number of Songs"
+ "Number of timeslots"
++"of"
+ "Only display favourite channels"
+ "Only match commercial-free channels"
+ "Only match HD programs"
+@@ -429,6 +439,7 @@
+ "Past Month"
+ "Past Week"
+ "Past Year"
++"Path where the thumbnails are"
+ "Paused"
+ "Pending"
+ "People"
+@@ -688,6 +699,7 @@
+ "Subtitles Available"
+ "Sunday"
+ "Surround Sound"
++"Switch view mode"
+ "Tab"
+ "The requested recording schedule has been deleted."
+ "There are no items in this Playlist!"
+@@ -705,6 +717,7 @@
+ "Title Match"
+ "Title search"
+ "Title Search"
++"to"
+ "Today"
+ "Tomorrow"
+ "Too Many"
+@@ -791,6 +804,8 @@
+ "Wednesday"
+ "welcome: backend_log"
+     Show the server logs.
++"welcome: gallery"
++    Browse your picture collection.
+ "welcome: music"
+     Browse your music collection.
+ "welcome: remote"
diff --git a/abs/core-testing/mythtv/stable/mythweb/patch/icons.tar.gz b/abs/core-testing/mythtv/stable/mythweb/patch/icons.tar.gz
new file mode 100644
index 0000000..691d28e
Binary files /dev/null and b/abs/core-testing/mythtv/stable/mythweb/patch/icons.tar.gz differ
diff --git a/abs/core-testing/mythtv/stable/mythweb/patch/mythweb_gallery_updated1.diff b/abs/core-testing/mythtv/stable/mythweb/patch/mythweb_gallery_updated1.diff
new file mode 100644
index 0000000..f683b17
--- /dev/null
+++ b/abs/core-testing/mythtv/stable/mythweb/patch/mythweb_gallery_updated1.diff
@@ -0,0 +1,1657 @@
+diff -Naur ../mythweb-orig/modules/gallery/handler.php ./modules/gallery/handler.php
+--- ../mythweb-orig/modules/gallery/handler.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/handler.php	2007-08-20 22:33:02.000000000 -0400
+@@ -0,0 +1,35 @@
++<?php
++/**
++ * Handler for the Gallery module.
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/handler.php $
++ * @date        $Date: 2006-12-19 09:17:33 +0100 (Di, 19 Dez 2006) $
++ * @version     $Revision: 12295 $
++ * @author      $Author: rsiebert $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ * @subpackage  MythGallery
++ *
++/**/
++
++// Load settings functions
++require_once 'includes/objects/Settings.php';
++
++// Load Gallery class
++require_once 'includes/objects/Gallery.php';
++
++// Load configuration
++loadGalleryConfig();
++
++// Create the gallery
++global $gallery;
++ 
++$gallery = new Gallery();
++
++// Print the gallery page template
++require_once tmpl_dir.'gallery.php';
++
++// Exit
++exit;
++
+diff -Naur ../mythweb-orig/modules/gallery/includes/objects/Gallery.php ./modules/gallery/includes/objects/Gallery.php
+--- ../mythweb-orig/modules/gallery/includes/objects/Gallery.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/includes/objects/Gallery.php	2007-08-20 22:27:02.000000000 -0400
+@@ -0,0 +1,608 @@
++<?php
++/**
++ * Gallery Functions for the Gallery module
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/tmpl/default/gallery.php $
++ * @date        $Date: 2006-12-19 09:17:33 +0100 (Di, 19 Dez 2006) $
++ * @version     $Revision: 12295 $
++ * @author      $Author: xris $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ *
++/**/
++
++class Gallery {
++
++	var $config;
++	
++	function Gallery() {
++		// load default configuration
++		$this->config['image_path'] 		= $_SESSION['gallery']['image_path'];
++		$this->config['cache_path'] 		= $_SESSION['gallery']['cache_path'];
++		$this->config['default_viewsize'] 	= $_SESSION['gallery']['default_viewsize'];
++		$this->config['screen_width'] 		= $_SESSION['gallery']['screen_width'];
++		$this->config['viewsizes'] 		= $_SESSION['gallery']['viewsizes'];
++ 		$this->config['valid_image_files'] 	= $_SESSION['gallery']['valid_image_files'];
++
++	}
++
++	// =======================================================
++	function start() {
++
++		// the current selected directory where the cached images are stored
++		$current_path = $this->getCurrentImagePath();
++		// the path to the real images
++		$image_path = $this->config['image_path'];
++		// the filename of a selected image
++		$image_name = $this->getImageName();
++		// the current viewsize mode
++		$image_viewsize = $this->getImageViewSize();
++		// get the image index for the viewsize medium
++		$image_index = $this->getImageIndex();
++		// get the contents of the folders
++		$folderList = $this->getFolderList( $current_path );
++		// check what kind of images should be displayed
++		if ($image_viewsize == 'fullsize') {
++			// create the images if there are not yet in the directory
++			$this->makeImages( $current_path, $folderList, $image_viewsize, $image_index );
++			// display the big image
++			$this->showFullsizeImage( $current_path, $folderList, $image_index );
++			// there is nothing else to do
++			exit;
++		}
++		// show the horizontal navigation bar
++		$this->showGalleryHeader( $current_path, $image_viewsize, $image_index );		
++		// check if the thumbnail directory is there, if not create it
++		$this->makeDirectory( $current_path );
++		// create the images if there are not yet in the directory
++		$this->makeImages( $current_path, $folderList, $image_viewsize, $image_index );
++		echo '<table width="100%" cellspacing="0" cellpadding="0">'."\n".
++			'<tr>'."\n".
++				'<td class="folder_navigation">'."\n";
++					$this->showFolderTree( $current_path, $folderList );
++				echo '</td>'."\n".
++				'<td class="image_listing">'."\n";
++					if ($this->onlyDirectoriesAvailable( $current_path, $folderList, $image_viewsize, $image_index ) == false ) {
++						echo '<table class="imagelist_and_navigation" cellspacing="0" cellpadding="0">'."\n".
++						'<tr>'."\n".
++							'<td>'."\n";
++								$this->showNavigation( $current_path, $folderList, $image_viewsize, $image_index );
++							echo '</td>'."\n".
++							'</tr>'."\n".
++							'<tr>'."\n".
++								'<td>'."\n";
++									$this->showImages( $current_path, $folderList, $image_viewsize, $image_index );
++							echo '</td>'."\n".
++							'</tr>'."\n".
++						'</tr>'."\n".
++						'</table>'."\n";
++					} else {
++						echo '&nbsp;';
++					}
++				echo '</td>'."\n".
++			'</tr>'."\n".			
++		'</table>'."\n";
++	}
++	
++	// =======================================================
++	function getViewSizesList() {
++		$viewsizesList = explode(';',preg_replace('/ /','',$this->config['viewsizes']));
++		return $viewsizesList;
++	}
++
++
++	// =======================================================
++	function getCurrentImagePath() {
++		switch ($_SERVER['REQUEST_METHOD']) {
++			case 'GET':
++				$current_path = stripslashes($_GET['path']);
++				break;
++			case 'POST':
++				$current_path = stripslashes($_POST['path']);
++				break;
++		}
++		if (!is_dir($current_path) ) {
++			$current_path = $this->config['image_path'];
++		}
++ 		return $current_path;
++	}
++	
++	// =======================================================
++	function getImageViewSize() {
++		switch ($_SERVER['REQUEST_METHOD']) {
++			case 'GET':
++				$viewsize = stripslashes($_GET[viewsize]);
++				break;
++			case 'POST':
++				$viewsize = stripslashes($_POST[viewsize]);
++				break;
++		}	
++		// check if the given viewsize is one of the viewsizes
++		// specified in the config. fullsize is also needed
++		if (isset($viewsize) && 
++			(($viewsize == 'fullsize') ||  
++			in_array($viewsize, $this->getViewSizesList()))) {
++			return $viewsize;
++		} else {
++			return $this->config['default_viewsize'];
++		}
++	}
++	
++	// =======================================================
++	function getImageName() {
++		switch ($_SERVER['REQUEST_METHOD']) {
++			case 'GET':
++				$image_name = $_GET['file'];
++				break;
++			case 'POST':
++				$image_name = $_POST['file'];
++				break;
++		}	
++		return $image_name;
++	}
++
++	// =======================================================
++	function getImageIndex() {
++		if (isset($_GET['index'])) 	
++			return $_GET['index'];
++		return 1;
++	}
++	
++	
++	// =======================================================
++	// displays the path of the choosen directories horizontally 
++	// so one can navigate back
++	function showGalleryHeader( $current_path, $image_viewsize, $image_index ) {
++		echo '<table class="current_path_and_viewsize" cellspacing="0" cellpadding="0">'."\n".
++			'<tr>'."\n".
++				'<td class="current_path">'.
++					t('Current path').': ';
++					$folders = explode('/', $current_path);
++					for ($i=1; $i < count($folders); $i++) {
++						echo '<a class="header" href="'.root.'gallery/gallery.php?'.path.'=';
++						// show thefolders in the navigation bar
++						for ($j=1; $j <= $i; $j++) {
++							echo '/'.$folders[$j];
++						}
++						echo '&'.viewsize.'='.$this->getImageViewSize().'">'.
++						$folders[$i].'</a>'."\n";
++						// don't show the separators when there are no more subfolders
++						if ($i < (count($folders)-1)) {
++							echo ' / ';
++						}
++					}
++				// display the menu where one can shoose between small and medium images
++				echo '</td>'."\n".
++					'<td class="change_viewsize_text">'.
++						t('Switch view mode').':&nbsp;&nbsp;'.
++					'</td>'."\n".
++					'<form name="change_viewsize" method="post">'."\n".
++					'<td class="change_viewsize_selection">'."\n".
++						'<select class="change_viewsize" name="'.
++							viewsize.'" onChange="submit()" size="1">'."\n";
++							$viewsizesList = $this->getViewSizesList();
++							for ($i=0; $i < count($viewsizesList); $i++) {
++								echo '<option value="'.$viewsizesList[$i].'" ';
++								if ($this->getImageViewSize() == $viewsizesList[$i]) {
++									echo 'selected';
++								}
++								$str = strtr($viewsizesList[$i], ',','x');
++								echo '>'.$str.' '.t('Images per page').'</option>'."\n";
++							}
++					echo '</select>'."\n".
++						'<input type="hidden" name="'.index.'" value="'.$image_index.'">'.
++						'<input type="hidden" name="'.path.'" value="'.$current_path.'">';
++				echo '</td></form>'."\n".
++			'</tr>'."\n".
++		'</table>'."\n";
++	}
++	
++	// =======================================================
++	function showFolderTree( $current_path, $folderList ) {
++
++		// dont go into the directory if there are not subdirs
++		if ($this->getFolderCount( $current_path, $folderList[$i]) == 0) {
++			$current_path = substr($current_path, 0, strrpos($current_path, '/'));
++			$folderList = $this->getFolderList( $current_path );
++		}
++		// displays the directory tree and the pictures
++		echo '<table class="folder_navigation" width="100%" cellspacing="0" cellpadding="0">'."\n".
++			'<tr>'."\n".
++				'<td>'."\n";
++					// display the directories
++					for ($i = 0; $i < count( $folderList ); $i++) {
++						// only display folders that are not hidden or special
++						if ((is_dir( $current_path.'/'.$folderList[$i] )) &&
++							($folderList[$i] != '..')){
++							echo '<div class="folder_navigation" '.
++							'onmouseover="this.className=\'folder_navigation_active\'" '.
++							'onmouseout="this.className=\'folder_navigation\'">';
++								$link = $this->getFolderLink( $current_path, $folderList[$i] );	
++								$folderCount = $this->getFolderCount( $current_path, $folderList[$i] );
++								// display the folder as a link and the number of subfolder next to it
++								$this->displayFolderLink( $link, $folderList[$i], $folderCount );
++							echo '</div>';
++						}
++					}
++				echo '</td>'."\n".
++			'</tr>'."\n".
++		'</table>'."\n";
++	}
++
++	// =======================================================
++	function getFolderList( $current_path ) {
++		if ($current_path != $this->config['cache_path'] ) {
++			$folderList[] = '..';
++		}
++		// get the image extensions
++		$extenstionList = explode(',',$this->config['valid_image_files']);
++		// get the directories and files
++		if ($dh = opendir($current_path)) {
++			while (($file = readdir($dh)) !== false) {
++				// only add the file/dir if its a directory or a file
++				// with the specified extension
++
++				if ((substr($file,0,1) != '.') && 
++					(is_dir($current_path.'/'.$file)) ||
++					(in_array(strtolower(substr($file,-3)), $extenstionList)))
++				{
++					$folderList[] = $file;
++				}
++			}
++		}
++		// delete the first entry when we are at the image_path
++		// to prevent from going a directory up
++		if ($current_path == $this->config['image_path'])
++			array_shift($folderList);
++		// sort the array alphabetically
++		sort($folderList);
++		return $folderList;
++	}	
++	
++	// =======================================================
++	function getFolderLink( $current_path, $folder ) {
++		$link = '<a class="folderlist" href="'.root.'gallery/gallery.php?'.path.'=';
++		// display the .. directory only if there is another
++		// directory above this one.
++		if (($folder == '..') && ($current_path != $this->config['cache_path'])) {
++			$folderList = explode( '/', $current_path.'/');
++			for( $i=1; $i < count($folderList)-2; $i++ ) {
++				$link .= '/'.$folderList[$i];
++			}
++		} else {
++			$link .= $current_path.'/'.$folder;
++		}
++		$link .= '&'.viewsize.'='.$this->getImageViewSize().'">';
++		return $link;
++	}
++
++	// =======================================================
++	function displayFolderLink( $link, $folder, $folderCount ) {
++		echo '<table class="folderlink_inactive" cellspacing="0" cellpadding="0">'.
++			'<tr>'.
++				'<td align="left" width="30px">'.
++					'<img class="navigation" src="'.root.skin_dir.'/img/gallery/dir.png">'.
++				'</td>'.
++				'<td align="left" width="auto">'.
++					$link.$folder.'</a>';
++					$this->displayFolderCount( $folderCount );
++				echo '</td>'.
++			'</tr>'.
++		'</table>'."\n";
++	}
++
++	// =======================================================
++	function getFolderCount($current_path, $folder) {
++		// dont get the folder count if its the .. directory
++		if ($folder != '..') {
++			return count(glob($current_path.'/'.$folder.'/*',GLOB_ONLYDIR));
++		}
++	}
++
++	// =======================================================
++	// shows how many sub directories the specified folder has
++	function displayFolderCount( $folderCount ) {
++		if ($folderCount == 1) { 
++			echo ' ('.$folderCount.')';// '.t('subfolder'); 
++		} 
++		if ($folderCount > 1) {
++			echo ' ('.$folderCount.')';// '.t('subfolders'); 
++		}
++	}
++
++	
++	// =======================================================
++	// creates the directory for the thumbnails. the directory
++	// structure is identical to the one of original pictures
++	function makeDirectory( $current_path ) {
++		if (!file_exists( $this->config['cache_path'].$current_path )) {
++			// add the document root to the thumbnail directory
++			// because mkdir works with absolute paths
++			$cache_path = $_SERVER[DOCUMENT_ROOT].$this->config['cache_path'];
++			// split the directory string into separate directories
++			$folderList = explode( '/', $current_path );
++			// go through all folder and create each one
++			for($i=1; $i < count($folderList); $i++) {
++				$cache_path .= '/'.$folderList[$i];
++				// check if the directory is already there
++				if (!file_exists($cache_path)) {
++					mkdir ($cache_path);
++				}
++			}
++		}
++	}
++
++	// =======================================================
++	// check if the images are there, if not create them 
++	function makeImages( $current_path, $folderList, $image_viewsize, $image_index ) {
++		$path = $_SERVER[DOCUMENT_ROOT].$this->config['cache_path'].$current_path;
++		// use the image_viewsize numbers as a prefix if fullsize is not requested
++		if ( $image_viewsize != fullsize ) {
++			// only so many images will be created that will be displayed on the screen
++			$max_cols = substr($image_viewsize, 0, 1);
++			$max_rows = substr($image_viewsize, 2, 1);
++			$max_number = ($max_cols * $max_rows);
++			// the prefix that will be added to a file so that 
++			// different sizes have different names
++			$file_prefix = strtr($image_viewsize, ',','_').'_';
++		} else {
++			$max_number = 1;
++			// the prefix that will be added to a file so that 
++			// different sizes have different names
++			$file_prefix = $image_viewsize.'_';
++		}
++		// get the amount of subfolders. increase the count in the loop by these
++		// subfolders
++		$folder_count = count(glob($current_path.'/'.$folder.'/*',GLOB_ONLYDIR));
++		for ($i = $image_index; $i < ($max_number + $image_index + $folder_count); $i++) {
++			// show the picture only if its not hidden and not a directory
++			if (!is_dir( $current_path.'/'.$folderList[$i] )) {
++				// check if there is already a thumbnail available, if not create it
++				if (!file_exists( $path.'/'.$file_prefix.$folderList[$i] )) {
++					// get the extension of the file
++					$fileParts = explode('.', $folderList[$i]);
++					$file_extension = strtolower($fileParts[count($fileParts)-1]);
++					// get image pointer
++					$image_p = null;
++					if ($file_extension == 'jpg')
++						$image_p = @imagecreatefromjpeg( $current_path.'/'.$folderList[$i] );
++					if ($file_extension == 'png')
++						$image_p = @imagecreatefrompng( $current_path.'/'.$folderList[$i] );
++					if ($file_extension == 'gif')
++						$image_p = @imagecreatefromgif( $current_path.'/'.$folderList[$i] );
++					// proceed if we have an image pointer
++					if ($image_p) {
++						// get the image size for the cached images
++						$size = getimagesize( $current_path.'/'.$folderList[$i]);
++						$width = $size[0];
++						$height = $size[1];
++						// get the width for the choosen viewsize
++						// calculate it from the columns and rows if fullsize is not
++						// requested, otherwise use the original image size
++						if ( $image_viewsize != fullsize ) {
++							$new_width = (( $this->config['screen_width'] / $max_cols ) - 50 );
++							// calculate new image dimensions
++							$new_height = ($height/$width) * $new_width;
++							if ( $height > $width ) {
++								$new_width = ($width/$height) * $new_height;
++							}
++						} else {
++							$new_width = $width;
++							$new_height = $height;
++						}
++						// get a new image pointer
++						$new_image_p = imagecreatetruecolor($new_width, $new_height);
++						// resample the old image to the new one
++						imagecopyresampled($new_image_p, $image_p, 0, 0, 0, 0,
++							$new_width, $new_height, $width, $height );
++						// save the image
++						if ($file_extension == 'jpg')
++							imagejpeg($new_image_p, $path.'/'.$file_prefix.$folderList[$i] );
++						if ($file_extension == 'png')
++							imagepng($new_image_p, $path.'/'.$file_prefix.$folderList[$i] );
++						if ($file_extension == 'gif')
++							imagegif($new_image_p, $path.'/'.$file_prefix.$folderList[$i] );
++						// destroy the old pointers
++						imagedestroy( $image_p );
++						imagedestroy( $new_image_p );
++					}
++				}
++			}
++		}
++	}
++
++	// =======================================================
++	function showImages( $current_path, $folderList, $image_viewsize, $image_index ) {
++
++		$path = $_SERVER[DOCUMENT_ROOT].$this->config['cache_path'].$current_path;
++		// get the column and row values, display that many images in a row
++		$max_cols = substr($image_viewsize, 0, 1);
++		$max_rows = substr($image_viewsize, 2, 1);
++		// counter for the current column and row
++		$current_col = 0;
++		// the prefix that will be added to a file so that different sizes have different names
++		$file_prefix = strtr($image_viewsize, ',','_').'_';
++		
++		// get the amount of subfolders
++		$folder_count = count(glob($current_path.'/'.$folder.'/*',GLOB_ONLYDIR));
++		// increase the index by the folder count
++		for ($i = 1; $i <= $folder_count; $i++) {
++			$image_index += 1;
++		}
++		echo '<table width="100%" cellspacing="0" cellpadding="0">'."\n".
++			'<tr>'.
++				'<td colspan="'.$max_cols.'">'.
++					'&nbsp;'.
++				'</td>'.
++			'</tr>';
++			// go through all entries in the folderList	
++			for ($i = $image_index; $i < (($max_cols * $max_rows)+$image_index); $i++) {
++				if (( file_exists( $path.'/'.$file_prefix.$folderList[$i] )) && 
++					( isset($folderList[$i]) )) {
++					// if the column is zero then start a new row
++					// the specified number of images will be displayed side by side
++					if ( $current_col == 0 ) echo '<tr>'."\n";
++					// stretch the table cells to equal size
++					echo '<td class="single_image" style="width:';
++						// calculate the width of the cells
++						echo floor( 100 / $max_cols );
++						echo '%;">'."\n".
++						// display the image centered and put border around it
++						'<div align="center">'."\n".
++							'<a href="'.root.'gallery/gallery.php?'.
++							    path.'='.$current_path.
++							'&'.index.'='.$i.
++							'&'.viewsize.'='.fullsize.
++							'" target="blank">'."\n".
++							'<img class="single_image" src="'.
++								$this->config['cache_path'].$current_path.'/'.
++									$file_prefix.$folderList[$i].'" '.
++							'onmouseover="this.className=\'single_image_active\'" '.
++							'onmouseout="this.className=\'single_image\'">'."\n".
++							'</a>'."\n".
++						'</div>'."\n".
++						'<div align="center">'."\n".
++							// show the filename
++							$folderList[$i]."\n".
++						'</div>'."\n".
++					'</td>'."\n";
++					// if the max number of columns are reached close the row
++					if ( $current_col == $max_cols ) echo '</tr>'."\n";
++					// reset the column count back to zero
++					$current_col++;
++					if ( $current_col == $max_cols ) $current_col = 0;
++				}
++			}
++		echo '</table>';
++	}
++
++
++	// =======================================================
++	function onlyDirectoriesAvailable( $current_path, $folderList, $image_viewsize, $image_index ) {
++		$path = $_SERVER[DOCUMENT_ROOT].$this->config['cache_path'].$current_path;
++		// only so many images will be created that will be displayed on the screen
++		$max_cols = substr($image_viewsize, 0, 1);
++		$max_rows = substr($image_viewsize, 2, 1);
++		$max_number = ($max_cols * $max_rows);
++		// the prefix that will be added to a file so that different sizes have different names
++		$file_prefix = strtr($image_viewsize, ',','_').'_';
++
++		// go through the folderList. if there are only directories in it
++		// then dont display the navigation stuff
++		$only_dirs = true;		
++		for ($i = 0; $i < count($folderList); $i++) {
++			if ( file_exists( $path.'/'.$file_prefix.$folderList[$i] )) {
++				$only_dirs = false;
++				break;
++			}
++		}
++		return $only_dirs;
++	}
++
++	// =======================================================
++	function showNavigation( $current_path, $folderList, $image_viewsize, $image_index ) {
++		$path = $_SERVER[DOCUMENT_ROOT].$this->config['cache_path'].$current_path;
++		// only so many images will be created that will be displayed on the screen
++		$max_cols = substr($image_viewsize, 0, 1);
++		$max_rows = substr($image_viewsize, 2, 1);
++		$max_number = ($max_cols * $max_rows);
++		// the prefix that will be added to a file so that different sizes have different names
++		$file_prefix = strtr($image_viewsize, ',','_').'_';
++
++		echo '<table width="100%" cellspacing="0" cellpadding="0">'."\n".
++		'<tr>'."\n".
++			'<td class="image_navigation">&nbsp;'."\n".
++			'</td>'."\n".
++			'<td class="image_navigation">'."\n";							
++				// display the goto first page link
++				if ($image_index != 1) {
++					echo '<a href="'.root.'gallery/gallery.php?'.
++						'&'.path.'='.$current_path.
++						'&'.index.'=1'.
++						'&'.viewsize.'='.$image_viewsize.'">'."\n".
++						// display the right arrow
++						'<img src="'.root.skin_dir.'/img/gallery/first_page.png">'.
++					'</a>'."\n";
++				} else {
++					echo '<img src="'.root.skin_dir.'/img/gallery/first_page_disabled.png">'."\n";
++				}
++				// display the previous page icon if there are more than one entries
++				if ($image_index != 1) {
++					echo '<a href="'.root.'gallery/gallery.php?'.
++						'&'.path.'='.$current_path.
++						'&'.index.'=';
++						if ($image_index < $max_number) {
++							echo 1;
++						} else {
++							echo ($image_index - $max_number);
++						}
++						echo '&'.viewsize.'='.$image_viewsize.'">'."\n".
++						// display the left arrow
++						'<img src="'.root.skin_dir.'/img/gallery/prev_page.png">'.
++					'</a>'."\n";
++				} else {
++					echo '<img src="'.root.skin_dir.'/img/gallery/prev_page_disabled.png">'."\n";
++				}
++			echo '</td>'."\n".
++			'<td class="image_navigation">'."\n".
++				// display an info in what page we are right now
++				'( '.$image_index.' '.t('to').' ';
++				if (($image_index + $max_number) < count($folderList)) {
++					echo ($image_index+$max_number-1);
++				} else {
++					echo (count($folderList)-1);
++				}
++				echo ' '.t('of').' '.(count($folderList)-1).' )'."\n".
++			'</td>'."\n".
++			'<td class="image_navigation">'."\n";
++				// display the next page link
++				if (($image_index + $max_number) < count($folderList)) {
++					echo '<a href="'.root.'gallery/gallery.php?'.
++						'&'.path.'='.$current_path.
++						'&'.index.'='.($image_index + $max_number).
++						'&'.viewsize.'='.$image_viewsize.'">'."\n".
++						// display the right arrow
++						'<img src="'.root.skin_dir.'/img/gallery/next_page.png">'.
++					'</a>'."\n";
++				} else {
++					echo '<img src="'.root.skin_dir.'/img/gallery/next_page_disabled.png">'."\n";
++				}
++				// display the goto last page link
++				if (($image_index + $max_number) < count($folderList)) {
++					echo '<a href="'.root.'gallery/gallery.php?'.
++						'&'.path.'='.$current_path.
++						'&'.index.'='.
++							(count($folderList) - (count($folderList) % $max_number)+1).
++						'&'.viewsize.'='.$image_viewsize.'">'."\n".
++						// display the right arrow
++						'<img src="'.root.skin_dir.'/img/gallery/last_page.png">'.
++					'</a>'."\n";
++				} else {
++					echo '<img src="'.root.skin_dir.'/img/gallery/last_page_disabled.png">'."\n";
++				}
++			echo '</td>'."\n".
++			'<td class="image_navigation">&nbsp;'."\n".
++			'</td>'."\n".
++		'</tr>'."\n".
++		'</table>'."\n";
++	}
++	
++	// =======================================================
++	function showFullsizeImage( $current_path, $folderList, $image_index ) {
++		echo '<html>'."\n".
++		'<head>'."\n".
++			'<title>'.$folderList[$image_index].'</title>'."\n".
++		'</head>'."\n".
++		'<body>'."\n".
++			'<div>'."\n".
++			'<img src="'."\n".
++				$this->config['cache_path'].$current_path.'/'.
++				fullsize.'_'.$folderList[$image_index].'">'."\n".
++			'</div>'."\n".
++		'</body>'."\n".
++		'</html>';
++	}
++
++	// =======================================================
++}
+diff -Naur ../mythweb-orig/modules/gallery/includes/objects/Settings.php ./modules/gallery/includes/objects/Settings.php
+--- ../mythweb-orig/modules/gallery/includes/objects/Settings.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/includes/objects/Settings.php	2007-08-20 22:28:02.000000000 -0400
+@@ -0,0 +1,243 @@
++<?php
++/**
++ * Gallery Settings Functions
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/set_prefs.php $
++ * @date        $Date: 2006-12-19 09:17:33 +0100 (Di, 19 Dez 2006) $
++ * @version     $Revision: 12295 $
++ * @author      $Author: xris $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ * @subpackage  Gallery
++/**/
++
++// Load the available configuration from the session variable 
++// or if this one is empty then form the database 
++function loadGalleryConfig()
++{
++	$_SESSION['gallery']['image_path'] = getGalleryImagePath();
++	$_SESSION['gallery']['cache_path'] = getGalleryCachePath();
++	$_SESSION['gallery']['default_viewsize'] = getGalleryDefaultViewSize();
++	$_SESSION['gallery']['screen_width'] = getGalleryScreenWidth();
++	$_SESSION['gallery']['viewsizes'] = getGalleryViewSizes();
++	$_SESSION['gallery']['valid_image_files'] = getGalleryValidImageFiles();
++}
++
++
++// Load all of the known mythtv frontend hosts
++function getGalleryHostnames()
++{	
++	$Settings_Hosts = array('' => t('MythWeb Session'));
++	global $db;
++	$sh = $db->query('SELECT DISTINCT hostname FROM settings WHERE value="locale" ORDER BY hostname');
++	
++	// add all the found hosts into an array 
++	while (list($host) = $sh->fetch_row()) 
++	{
++		if (empty($host)) 
++			continue;
++		$Settings_Hosts[$host] = $host;
++	}
++	$sh->finish();
++	return $Settings_Hosts;
++}
++
++
++// update the values in the database if necessary
++function saveGalleryConfig( $Settings_Hosts )
++{
++	// Make sure we have a valid host selected
++	if (!isset( $Settings_Hosts[$_SESSION['settings']['host']]) ) 
++	{
++		// we have no valid host, reset the array 
++		$_SESSION['settings']['host'] = reset(array_keys($Settings_Hosts));
++	} else {
++		// we have a valid host, check if the data should be saved 
++		if ($_POST['save'] && isset($_POST['host'])) 
++		{
++			// Changing settings for this MythWeb session
++			if (empty($_POST['host'])) 
++			{
++				// save the image path in the session variable
++				$_SESSION['gallery']['image_path'] 			= $_POST['image_path'];
++				$_SESSION['gallery']['cache_path'] 			= $_POST['cache_path'];
++				$_SESSION['gallery']['default_viewsize'] 	= $_POST['default_viewsize'];
++				$_SESSION['gallery']['screen_width'] 		= $_POST['screen_width'];
++				$_SESSION['gallery']['viewsizes'] 			= $_POST['viewsizes'];
++				$_SESSION['gallery']['valid_image_files'] 	= $_POST['valid_image_files'];
++			} else {
++				// save the settings in the database
++//				setGalleryImagePath( 		$_POST['image_path'], 		$_POST['host'] );
++				setGalleryCachePath( 		$_POST['cache_path'], 		$_POST['host'] );
++				setGalleryDefaultViewSize( 	$_POST['default_viewsize'], $_POST['host'] );
++				setGalleryScreenWidth( 		$_POST['screen_width'], 	$_POST['host'] );
++				setGalleryViewSizes( 		$_POST['viewsizes'], 		$_POST['host'] );
++				setGalleryValidImageFiles( 	$_POST['valid_image_files'],$_POST['host'] );
++			}
++			// Make sure the session host gets updated to the posted one.
++			$_SESSION['settings']['host'] = $_POST['host'];
++		}
++	}
++}
++
++// the absolute path where the images are
++// get it from the database or the session variable 
++function getGalleryImagePath()
++{
++	global $db;
++	if (!empty($_SESSION['settings']['host'])) {		
++		$imagePath = $db->query_col('SELECT data FROM settings 
++			WHERE value="GalleryDir" AND hostname=?', $_SESSION['settings']['host']);
++	} 
++	
++	if (!$imagePath)
++	{
++		$imagePath = _or($_SESSION['gallery']['image_path'], '/myth/gallery');
++	}
++	
++	return $imagePath;
++}
++
++// directory where the cached images are stored
++// this directory is relative to the htdocs directory
++function getGalleryCachePath()
++{
++	global $db;
++	if (!empty($_SESSION['settings']['host'])) {
++ 		$cachePath = $db->query_col('SELECT data FROM settings 
++ 			WHERE value="GalleryCachePath" AND hostname=?', $_SESSION['settings']['host']);
++        }
++        
++        if (!$cachePath)
++        {	
++		$cachePath = _or($_SESSION['gallery']['cache_path'], '/mythweb/data/cache');
++	} 
++	
++	return $cachePath;
++}
++
++
++// defines the default view mode
++// default is 4 columns and 4 rows per page
++function getGalleryDefaultViewSize()
++{
++	global $db;
++	if (!empty($_SESSION['settings']['host'])) {
++		$defaultViewSize = $db->query_col('SELECT data FROM settings 
++ 			WHERE value="GalleryDefaultViewSize" AND hostname=?', $_SESSION['settings']['host']);
++ 	}
++ 	
++ 	if (!$defaultViewSize)
++ 	{
++		$defaultViewSize = _or($_SESSION['gallery']['default_viewsize'], '4,3');
++	} 
++	
++	return $defaultViewSize;
++}
++
++
++// width if the screen-200 (example 1024-200)
++// this is needed to calculate the width of the images
++function getGalleryScreenWidth()
++{
++	global $db;
++	if (!empty($_SESSION['settings']['host'])) {
++ 		$screenWidth = $db->query_col('SELECT data FROM settings 
++ 			WHERE value="GalleryScreenWidth" AND hostname=?', $_SESSION['settings']['host']);
++	}
++	
++	if (!$screenWidth)
++	{	
++		$screenWidth = _or($_SESSION['gallery']['screen_width'], '1024');
++	} 
++	
++	return $screenWidth;
++}
++
++
++// columns and rows that are shown on one page, ; separates another mode
++function getGalleryViewSizes()
++{
++	global $db;
++	if (!empty($_SESSION['settings']['host'])) {
++ 		$viewSizes = $db->query_col('SELECT data FROM settings 
++ 			WHERE value="GalleryViewSizes" AND hostname=?', $_SESSION['settings']['host']);
++        }
++        
++        if (!$viewSizes)
++        {	
++		$viewSizes = _or($_SESSION['gallery']['viewsizes'], '5,4 ; 4,4 ; 4,3 ; 3,3 ; 2,2 ; 1,1');
++	} 
++	
++	return $viewSizes;
++}
++
++
++// image extensions that will be shown, everything else
++// will not work, currently there four are supported
++function getGalleryValidImageFiles()
++{
++	global $db;
++	if (!empty($_SESSION['settings']['host'])) {
++ 		$validImageFiles = $db->query_col('SELECT data FROM settings 
++ 			WHERE value="GalleryValidImageFiles" AND hostname=?', $_SESSION['settings']['host']);
++        }
++        
++        if (!$validImageFiles)
++        {	
++		$validImageFiles = _or($_SESSION['gallery']['valid_image_files'], 'jpg,png,gif,bmp');
++	} 
++	
++	return $validImageFiles;
++}
++
++
++// save the image path in the database 
++//function setGalleryImagePath( $imagePath, $host ) 
++//{
++//	global $db;
++//	$db->query('UPDATE settings SET data = ?
++//		WHERE value="GalleryDir" AND hostname=?', $imagePath, $host);
++//}
++
++function setGalleryCachePath( $cachePath, $host )
++{
++ 	global $db;
++ 	$db->query('UPDATE settings SET data = ?
++ 		WHERE value="GalleryCachePath" AND hostname=?', $cachePath, $host);
++}
++
++
++function setGalleryDefaultViewSize( $defaultViewSize, $host )
++{
++ 	global $db;
++ 	$db->query('UPDATE settings SET data = ?
++ 		WHERE value="GalleryDefaultViewSize" AND hostname=?', $defaultViewSize, $host);
++}
++
++
++function setGalleryScreenWidth( $screenWidth, $host )
++{
++ 	global $db;
++ 	$db->query('UPDATE settings SET data = ?
++ 		WHERE value="GalleryScreenWidth" AND hostname=?', $screenWidth, $host);
++}
++
++
++function setGalleryViewSizes( $viewSizes, $host )
++{
++ 	global $db;
++ 	$db->query('UPDATE settings SET data = ?
++ 		WHERE value="GalleryViewSizes" AND hostname=?', $viewSizes, $host);
++}
++
++
++function setGalleryValidImageFiles( $validImageFiles, $host )
++{
++ 	global $db;
++ 	$db->query('UPDATE settings SET data = ?
++ 		WHERE value="GalleryValidImageFiles" AND hostname=?', $validImageFiles, $host);
++}
++
++
+diff -Naur ../mythweb-orig/modules/gallery/init.php ./modules/gallery/init.php
+--- ../mythweb-orig/modules/gallery/init.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/init.php	2007-08-19 23:21:33.000000000 -0400
+@@ -0,0 +1,38 @@
++<?php
++/**
++ * Initialization routines for the MythWeb Gallery module
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/init.php $
++ * @date        $Date: 2006-12-19 09:17:33 +0100 (Di, 19 Dez 2006) $
++ * @version     $Revision: 12295 $
++ * @author      $Author: rsiebert $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ * @subpackage  Gallery
++ *
++/**/
++
++// Settings options
++    $Settings['gallery'] = array('name'    => t('Gallery'),
++                                 'choices' => array('prefs'  => t('Preferences'), ),
++                                 'default' => 'prefs',
++                                );
++
++// First, we should check to see that MythGallery is configured.
++    $has_gallery = $_SESSION['locale']
++                    ? true
++                    : $db->query_col('SELECT COUNT(data)
++                                        FROM settings
++                                       WHERE value="locale"');
++
++
++
++// If gallery is enabled, add it to the list.
++    if ($has_gallery) {
++        $Modules['gallery'] = array('path'        => 'gallery',
++                                    'sort'        => 5,
++                                    'name'        => t('Gallery'),
++                                    'description' => t('Local Image Gallery')
++                                   );
++    }
+diff -Naur ../mythweb-orig/modules/gallery/set_prefs.php ./modules/gallery/set_prefs.php
+--- ../mythweb-orig/modules/gallery/set_prefs.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/set_prefs.php	2007-08-20 22:29:12.000000000 -0400
+@@ -0,0 +1,24 @@
++<?php
++/**
++ * Gallery settings
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/set_prefs.php $
++ * @date        $Date: 2006-12-19 09:17:33 +0100 (Di, 19 Dez 2006) $
++ * @version     $Revision: 12295 $
++ * @author      $Author: xris $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ * @subpackage  Gallery
++/**/
++
++// Load functions
++require_once 'includes/objects/Settings.php';
++
++// Load all of the known mythtv frontend hosts
++$Settings_Hosts = getGalleryHostnames();
++
++// update the values in the database if necessary
++saveGalleryConfig( $Settings_Hosts );
++loadGalleryConfig();
++
+diff -Naur ../mythweb-orig/modules/gallery/tmpl/default/gallery.php ./modules/gallery/tmpl/default/gallery.php
+--- ../mythweb-orig/modules/gallery/tmpl/default/gallery.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/tmpl/default/gallery.php	2007-08-22 00:21:05.000000000 -0400
+@@ -0,0 +1,39 @@
++<?php
++/**
++ * Display template for the Gallery module
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/tmpl/default/gallery.php $
++ * @date        $Date: 2006-12-19 09:17:33 +0100 (Di, 19 Dez 2006) $
++ * @version     $Revision: 12295 $
++ * @author      $Author: xris $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ *
++/**/
++
++// Page title
++$page_title = 'MythWeb - '.t('Gallery');
++
++// the current viewsize mode
++$image_viewsize = $gallery->getImageViewSize();
++
++// If displaying full size image don't display header and footer
++if ($image_viewsize == 'fullsize') {
++   // Print the gallery part 
++   $gallery->start();
++}
++else
++{
++   // Load this page's custom stylesheet
++   $headers[] = '<link rel="stylesheet" type="text/css" href="'.root.skin_dir.'/gallery.css" />';
++
++   // Print the page header
++   require 'modules/_shared/tmpl/'.tmpl.'/header.php';
++
++   // Print the gallery part 
++   $gallery->start();
++
++   // Print the page footer
++   require 'modules/_shared/tmpl/'.tmpl.'/footer.php';
++}
+\ No newline at end of file
+diff -Naur ../mythweb-orig/modules/gallery/tmpl/default/set_prefs.php ./modules/gallery/tmpl/default/set_prefs.php
+--- ../mythweb-orig/modules/gallery/tmpl/default/set_prefs.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/tmpl/default/set_prefs.php	2007-08-19 23:21:33.000000000 -0400
+@@ -0,0 +1,93 @@
++<?php
++/**
++ * Display/save MythGallery settings
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/tmpl/default/set_prefs.php $
++ * @date        $Date: 2007-01-09 07:37:34 +0100 (Di, 09 Jan 2007) $
++ * @version     $Revision: 12460 $
++ * @author      $Author: xris $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ * @subpackage  Gallery
++ *
++/**/
++
++// Display the gui for the settings
++$galleryConfigTheme = new GalleryConfigTheme();
++$galleryConfigTheme->showConfig();
++
++class GalleryConfigTheme
++{
++	function GalleryConfigTheme()
++	{
++		
++	}
++
++	function showConfig() 
++	{
++		echo '<form class="form" method="post" action="'. form_action .'">'.
++			'<input type="hidden" name="host" value="'. html_entities($_SESSION['settings']['host']) .'"/>'.
++			'<table border="0" cellspacing="0" cellpadding="0">'.
++				'<tr class="_sep">'.
++    				'<td>'.
++						t('Gallery image path').':&nbsp;'.
++					'</td>'.
++		    		'<td>'.
++						'<input class="_text" type="text" name="image_path" value="'.getGalleryImagePath().'">'.
++					'</td>'.
++				'</tr>'.
++				'<tr class="_sep">'.
++    				'<td>'.
++						t('Path where the thumbnails are').':&nbsp;'.
++					'</td>'.
++		    		'<td>'.
++						'<input class="_text" type="text" name="cache_path" value="'.getGalleryCachePath().'">'.
++					'</td>'.
++				'</tr>'.
++				'<tr class="_sep">'.
++    				'<td>'.
++						t('Default view size').':&nbsp;'.
++					'</td>'.
++		    		'<td>'.
++						'<input class="_text" type="text" name="default_viewsize" value="'.getGalleryDefaultViewSize().'">'.
++					'</td>'.
++				'</tr>'.
++				'<tr class="_sep">'.
++    				'<td>'.
++						t('Horizontal screen resolution').':&nbsp;'.
++					'</td>'.
++		    		'<td>'.
++						'<input class="_text" type="text" name="screen_width" value="'.getGalleryScreenWidth().'">'.
++					'</td>'.
++				'</tr>'.
++				'<tr class="_sep">'.
++    				'<td>'.
++						t('List of available view sizes').':&nbsp;'.
++					'</td>'.
++		    		'<td>'.
++						'<input class="_text" type="text" name="viewsizes" value="'.getGalleryViewSizes().'">'.
++					'</td>'.
++				'</tr>'.
++				'<tr class="_sep">'.
++    				'<td>'.
++						t('List of allowed image formats').':&nbsp;'.
++					'</td>'.
++		    		'<td>'.
++						'<input class="_text" type="text" name="valid_image_files" value="'.getGalleryValidImageFiles().'">'.
++					'</td>'.
++				'</tr>'.
++				'<tr>'.
++					'<td align="center">'.
++						'<input class="_button" type="reset" class="submit" value="'.t('Reset').'">'.
++					'</td>'.
++					'<td align="center">'.
++						'<input class="_button" type="submit" class="submit" name="save" value="'.t('Save') .'">'.
++					'</td>'.
++				'</tr>'.
++			'</table>'.
++		'</form>';
++	}
++}
++
++?>
+\ No newline at end of file
+diff -Naur ../mythweb-orig/modules/gallery/tmpl/default/welcome.php ./modules/gallery/tmpl/default/welcome.php
+--- ../mythweb-orig/modules/gallery/tmpl/default/welcome.php	1969-12-31 19:00:00.000000000 -0500
++++ ./modules/gallery/tmpl/default/welcome.php	2007-08-19 23:21:33.000000000 -0400
+@@ -0,0 +1,26 @@
++<?php
++/**
++ * Welcome page description of the Gallery module.
++ *
++ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/tmpl/default/welcome.php $
++ * @date        $Date: 2005-12-13 08:23:18 +0100 (Di, 13 Dez 2005) $
++ * @version     $Revision: 8252 $
++ * @author      $Author: xris $
++ * @license     GPL
++ *
++ * @package     MythWeb
++ *
++/**/
++
++// Open with a div and an image
++    echo '<div id="info_gallery" class="hidden">',
++         '<img src="', skin_url, '/img/gallery.png" class="module_icon" />',
++
++// Print a basic overview of what this module does
++         t('welcome: gallery'),
++
++// Next, print a list of possible subsectons
++    ####
++
++// Close the div
++         "</div>\n";
+\ No newline at end of file
+diff -Naur ../mythweb-orig/modules/_shared/lang/English.lang ./modules/_shared/lang/English.lang
+--- ../mythweb-orig/modules/_shared/lang/English.lang	2007-08-19 23:20:01.000000000 -0400
++++ ./modules/_shared/lang/English.lang	2007-08-19 23:26:41.000000000 -0400
+@@ -153,6 +153,7 @@
+ "Create Schedule"
+ "Current Conditions"
+ "Current recordings"
++"Current path"
+ "Currently Browsing:  $1"
+ "Currently Recording:  Edit"
+ "Custom"
+@@ -164,6 +165,7 @@
+ "Deactivated"
+ "Default"
+ "Default MythVideo View"
++"Default view size"
+ "Delete"
+ "delete"
+ "Delete $1"
+@@ -242,6 +244,8 @@
+ "freqid"
+ "Friday"
+ "Frontends"
++"Gallery"
++"Gallery image path"
+ "generic_date"
+     %a %b %e, %Y
+ "generic_time"
+@@ -269,6 +273,7 @@
+ "Hide"
+ "High"
+ "Home"
++"Horizontal screen resolution"
+ "Host"
+ "Hosted by"
+ "Hosts"
+@@ -276,6 +281,7 @@
+ "Hour Format"
+ "hue"
+ "Humidity"
++"Images per page"
+ "IMDB"
+ "imdb rating"
+ "IMDBTYPE"
+@@ -318,6 +324,8 @@
+ "length"
+ "Length"
+ "Length (min)"
++"List of allowed image formats"
++"List of available view sizes"
+ "Listing &quot;Jump to&quot;"
+ "Listing Time Key"
+ "Listings"
+@@ -367,6 +375,7 @@
+ "mythvideo.sort_ignores_case"
+ "MythWeb"
+ "MythWeb Defaults"
++"MythWeb Gallery."
+ "MythWeb Global Defaults"
+ "MythWeb Session"
+ "MythWeb session settings"
+@@ -401,6 +410,7 @@
+ "Number of shows"
+ "Number of Songs"
+ "Number of timeslots"
++"of"
+ "Only display favourite channels"
+ "Only match commercial-free channels"
+ "Only match HD programs"
+@@ -415,6 +425,7 @@
+ "Past Month"
+ "Past Week"
+ "Past Year"
++"Path where the thumbnails are"
+ "Paused"
+ "Pending"
+ "People"
+@@ -673,6 +684,7 @@
+ "Subtitles Available"
+ "Sunday"
+ "Surround Sound"
++"Switch view mode"
+ "Tab"
+ "The requested recording schedule has been deleted."
+ "There are no items in this Playlist!"
+@@ -690,6 +702,7 @@
+ "Title Match"
+ "Title search"
+ "Title Search"
++"to"
+ "Today"
+ "Tomorrow"
+ "Too Many"
+@@ -784,6 +797,8 @@
+ "Wednesday"
+ "welcome: backend_log"
+     Show the server logs.
++"welcome: gallery"
++	Browse your picture collection.
+ "welcome: music"
+     Browse your music collection.
+ "welcome: remote"
+diff -Naur ../mythweb-orig/modules/_shared/lang/German.lang ./modules/_shared/lang/German.lang
+--- ../mythweb-orig/modules/_shared/lang/German.lang	2007-08-19 23:20:01.000000000 -0400
++++ ./modules/_shared/lang/German.lang	2007-08-19 23:27:54.000000000 -0400
+@@ -209,6 +209,8 @@
+ "Create a Random Mix"
+ "Create Schedule"
+     Speichern
++"Current path"
++    Aktueller Pfad
+ "Current Conditions"
+     Das aktuelle Wetter
+ "Current recordings"
+@@ -231,6 +233,8 @@
+ "Default"
+     Standard
+ "Default MythVideo View"
++"Default view size"
++	Standardansicht
+ "Delete"
+     Löschen
+ "delete"
+@@ -343,6 +347,10 @@
+ "Friday"
+     Freitag
+ "Frontends"
++"Gallery"
++	Gallerie
++"Gallery image path"
++	Pfad der Bilder
+ "generic_date"
+     %e.%m.%Y
+ "generic_time"
+@@ -379,6 +387,8 @@
+ "High"
+     Max
+ "Home"
++"Horizontal screen resolution"
++	Horizontale Bildschirmauflösung
+ "Host"
+ "Hosted by"
+ "Hosts"
+@@ -390,6 +400,8 @@
+     Farbton
+ "Humidity"
+     Luftfeuchtigkeit
++"Images per page"
++	Bilder pro Seite
+ "IMDB"
+     IMDB
+ "imdb rating"
+@@ -438,6 +450,10 @@
+     Dauer
+ "Length (min)"
+     Dauer (Min.)
++"List of allowed image formats"
++	Liste der erlaubten Bildformate
++"List of available view sizes"
++	Liste der möglichen Ansichten
+ "Listing &quot;Jump to&quot;"
+     TV Programm &quot;Gehe zu&quot;
+ "Listing Time Key"
+@@ -502,6 +518,8 @@
+ "mythvideo.sort_ignores_case"
+ "MythWeb"
+ "MythWeb Defaults"
++"MythWeb Gallery."
++     Gallerie
+ "MythWeb Global Defaults"
+ "MythWeb Session"
+ "MythWeb session settings"
+@@ -548,6 +566,8 @@
+ "Number of shows"
+ "Number of Songs"
+ "Number of timeslots"
++"of"
++	von
+ "Only display favourite channels"
+     Nur Favoriten anzeigen
+ "Only match commercial-free channels"
+@@ -562,6 +582,8 @@
+ "Override"
+ "Page Down"
+ "Page Up"
++"Path where the thumbnails are"
++	Thumbnails speichern unter
+ "Part $1 of $2"
+     Teil $1 von $2
+ "Past Month"
+@@ -870,6 +892,10 @@
+ "Streaming"
+ "Sub and Desc (Empty matches)"
+     Untertitel & Beschr. (kein Ergebnis)
++"subfolder"
++	Unterordner
++"subfolders"
++	Unterordner
+ "Submit Search"
+ "subtitle"
+ "Subtitle"
+@@ -882,6 +908,8 @@
+ "Subtitles Available"
+ "Sunday"
+     Sonntag
++"Switch view mode"
++    Ansichtsmodus wechseln
+ "Surround Sound"
+ "Tab"
+ "The requested recording schedule has been deleted."
+@@ -907,6 +935,8 @@
+ "Title search"
+ "Title Search"
+     Titel Suche
++"to"
++	bis
+ "Today"
+     Heute
+ "Tomorrow"
+@@ -1024,6 +1054,8 @@
+     Mittwoch
+ "welcome: backend_log"
+     Backend Log
++"welcome: gallery"
++	Gallerie
+ "welcome: music"
+     Musik
+ "welcome: remote"
+diff -Naur ../mythweb-orig/modules/_shared/tmpl/default/header.php ./modules/_shared/tmpl/default/header.php
+--- ../mythweb-orig/modules/_shared/tmpl/default/header.php	2007-08-19 23:20:01.000000000 -0400
++++ ./modules/_shared/tmpl/default/header.php	2007-08-19 23:21:33.000000000 -0400
+@@ -96,6 +96,13 @@
+         </a>
+ <?php
+       }
++      if ($Modules['gallery']) {
++?>
++        <a id="gallery_link"<?php if ($Path[0] == 'gallery') echo ' class="current_section"' ?> href="<?php echo root ?>gallery" onmouseover="return help_text('<?php echo str_replace("'", "\\'", t('MythWeb Gallery.')) ?>')" onmouseout="return help_text()">
++            <img src="<?php echo skin_url ?>img/gallery.png" width="48" height="48" class="alpha_png" alt="MythGallery" />
++        </a>
++<?php
++      }
+ ?>
+         <a id="settings_link"<?php if ($Path[0] == 'settings') echo ' class="current_section"' ?> href="<?php echo root ?>settings" onmouseover="return help_text('<?php echo str_replace("'", "\\'", t('Edit MythWeb and some MythTV settings.')) ?>')" onmouseout="return help_text()">
+             <img src="<?php echo skin_url ?>img/settings.png" width="48" height="48" class="alpha_png" alt="<?php echo t('Settings') ?>" />
+diff -Naur ../mythweb-orig/skins/default/gallery.css ./skins/default/gallery.css
+--- ../mythweb-orig/skins/default/gallery.css	1969-12-31 19:00:00.000000000 -0500
++++ ./skins/default/gallery.css	2007-08-19 23:21:33.000000000 -0400
+@@ -0,0 +1,108 @@
++img {
++	border: 0px;
++	border-color: #000000;
++}
++
++table.current_path_and_viewsize {
++	margin-top:5px;
++	border:1px solid #626262;
++	padding:5px;
++	width:100%;	
++}
++
++a {
++	color:#000000; 
++	text-decoration:none;
++}
++
++a.header {
++	font-weight:bold;
++	font-style:italic;
++}
++
++a.folderlist {
++	font-style:italic;
++}
++
++td.current_path {
++	text-align:left;
++	width:auto;
++}
++
++td.change_viewsize_text {
++	text-align:right;
++	width:160px;
++}
++
++td.change_viewsize_selection {
++	text-align:right;
++	width:140px;
++}
++
++select.change_viewsize {
++	border:1px solid #323232;
++	background-color: #191c26;
++	color: #FFFFFF;
++}
++
++td.folder_navigation {
++	width:200px;
++	vertical-align:top;
++}
++
++table.folder_navigation {
++	margin-top:5px;
++	border:1px solid #626262;
++	padding:4px;
++	width:100%;	
++}
++
++div.folder_navigation_active {
++	background-color: #224477;
++	border:1px solid #191c26;
++	text-align:left;	
++	padding:4px;
++}
++
++div.folder_navigation {	
++	border:1px solid #191c26;
++	text-align:left;	
++	padding:4px;
++}
++
++td.image_listing {
++	width:auto;
++	vertical-align:top;
++}
++
++table.imagelist_and_navigation {
++	margin-top:5px;
++	margin-left:5px;
++	border:1px solid #626262;
++	padding:5px;
++	width:100%;	
++}
++
++td.image_navigation {
++	text-align:center;
++	vertical-align:middle;
++	width:20%;
++	border-width: 0px;
++}
++
++td.single_image {
++	font-size:9pt;
++	padding:5px;	
++	text-align:center;
++}
++
++img.single_image {
++	padding:7px;
++	border:1px solid #323232;
++}
++
++img.single_image_active {
++	background-color: #224477;
++	padding:7px;
++	border:1px solid #323232;
++}
+\ No newline at end of file
+diff -Naur ../mythweb-orig/skins/grey/gallery.css ./skins/grey/gallery.css
+--- ../mythweb-orig/skins/grey/gallery.css	1969-12-31 19:00:00.000000000 -0500
++++ ./skins/grey/gallery.css	2007-08-19 23:21:33.000000000 -0400
+@@ -0,0 +1,107 @@
++img {
++	border: 0px;
++	border-color: #000000;
++}
++
++table.current_path_and_viewsize {
++	margin-top:5px;
++	border:1px solid #626262;
++	padding:5px;
++	width:100%;	
++}
++
++a {
++	color:#000000; 
++	text-decoration:none;
++}
++
++a.header {
++	font-weight:bold;
++	font-style:italic;
++}
++
++a.folderlist {
++	font-style:italic;
++}
++
++td.current_path {
++	text-align:left;
++	width:auto;
++}
++
++td.change_viewsize_text {
++	text-align:right;
++	width:160px;
++}
++
++td.change_viewsize_selection {
++	text-align:right;
++	width:140px;
++}
++
++select.change_viewsize {
++	border:1px solid #323232;
++	background-color: #212121;
++}
++
++td.folder_navigation {
++	width:200px;
++	vertical-align:top;
++}
++
++table.folder_navigation {
++	margin-top:5px;
++	border:1px solid #626262;
++	padding:4px;
++	width:100%;	
++}
++
++div.folder_navigation_active {
++	background-color: #626262;
++	border:1px solid #212121;
++	text-align:left;	
++	padding:4px;
++}
++
++div.folder_navigation {	
++	border:1px solid #212121;
++	text-align:left;	
++	padding:4px;
++}
++
++td.image_listing {
++	width:auto;
++	vertical-align:top;
++}
++
++table.imagelist_and_navigation {
++	margin-top:5px;
++	margin-left:5px;
++	border:1px solid #626262;
++	padding:5px;
++	width:100%;	
++}
++
++td.image_navigation {
++	text-align:center;
++	vertical-align:middle;
++	width:20%;
++	border-width: 0px;
++}
++
++td.single_image {
++	font-size:9pt;
++	padding:5px;	
++	text-align:center;
++}
++
++img.single_image {
++	padding:7px;
++	border:1px solid #323232;
++}
++
++img.single_image_active {
++	background-color: #626262;
++	padding:7px;
++	border:1px solid #323232;
++}
+\ No newline at end of file
+diff -Naur ../mythweb-orig/skins/grey/settings.css ./skins/grey/settings.css
+--- ../mythweb-orig/skins/grey/settings.css	2007-08-19 23:20:00.000000000 -0400
++++ ./skins/grey/settings.css	2007-08-19 23:21:33.000000000 -0400
+@@ -94,7 +94,7 @@
+ 
+     #settings .-host {
+         text-align:     right;
+-        border-bottom:  2px solid #eee;
++        border-bottom:  2px solid #aaa;
+     }
+ 
+ /* A notification/warning */
+@@ -115,3 +115,33 @@
+         border:             2px solid #999;
+         border-top:         none;
+     }
++
++	#settings ._content input._text {
++		margin:				2px;
++		padding:			2px;
++		border:             1px solid #333333;
++	}
++
++	#settings ._content input._button {
++		margin:				2px;
++		padding:			2px;
++		border:             1px solid #333333;
++		color:				#DDDDDD;
++	}
++
++    #settings ._content table {
++        width:              100%;
++    }
++    #settings ._content table th, #settings ._content table td {
++        padding:            .5em;
++    }
++
++    #settings ._content th, #settings ._content td {
++        text-align:         right;
++        font-weight:        normal;
++        white-space:        nowrap;
++    }
++
++    #settings ._content tr._sep th, #settings ._content tr._sep td {
++        border-bottom:      1px solid #304943;
++    }
-- 
cgit v0.12

