From 0cf41888ae911af8f323240637bae6306ac021b5 Mon Sep 17 00:00:00 2001 From: James Meyer 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 -# Contributor: Philipp Giebel - 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 "Jump to"" + "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 @@ ++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 ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ '
'."\n"; ++ $this->showFolderTree( $current_path, $folderList ); ++ echo ''."\n"; ++ if ($this->onlyDirectoriesAvailable( $current_path, $folderList, $image_viewsize, $image_index ) == false ) { ++ echo ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ '
'."\n"; ++ $this->showNavigation( $current_path, $folderList, $image_viewsize, $image_index ); ++ echo '
'."\n"; ++ $this->showImages( $current_path, $folderList, $image_viewsize, $image_index ); ++ echo '
'."\n"; ++ } else { ++ echo ' '; ++ } ++ echo '
'."\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 ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ '
'. ++ t('Current path').': '; ++ $folders = explode('/', $current_path); ++ for ($i=1; $i < count($folders); $i++) { ++ echo ''. ++ $folders[$i].''."\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 ''. ++ t('Switch view mode').':  '. ++ '
'."\n". ++ ''."\n". ++ ''. ++ ''; ++ echo '
'."\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 ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ '
'."\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 '
'; ++ $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 '
'; ++ } ++ } ++ echo '
'."\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 = ''; ++ return $link; ++ } ++ ++ // ======================================================= ++ function displayFolderLink( $link, $folder, $folderCount ) { ++ echo ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''."\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 ''."\n". ++ ''. ++ ''. ++ ''; ++ // 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 ''."\n"; ++ // stretch the table cells to equal size ++ echo ''."\n"; ++ // if the max number of columns are reached close the row ++ if ( $current_col == $max_cols ) echo ''."\n"; ++ // reset the column count back to zero ++ $current_col++; ++ if ( $current_col == $max_cols ) $current_col = 0; ++ } ++ } ++ echo '
'. ++ ' '. ++ '
'."\n". ++ // display the image centered and put border around it ++ '
'."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ '
'."\n". ++ '
'."\n". ++ // show the filename ++ $folderList[$i]."\n". ++ '
'."\n". ++ '
'; ++ } ++ ++ ++ // ======================================================= ++ 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 ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ ''."\n". ++ '
 '."\n". ++ ''."\n"; ++ // display the goto first page link ++ if ($image_index != 1) { ++ echo ''."\n". ++ // display the right arrow ++ ''. ++ ''."\n"; ++ } else { ++ echo ''."\n"; ++ } ++ // display the previous page icon if there are more than one entries ++ if ($image_index != 1) { ++ echo ''."\n". ++ // display the left arrow ++ ''. ++ ''."\n"; ++ } else { ++ echo ''."\n"; ++ } ++ echo ''."\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". ++ ''."\n"; ++ // display the next page link ++ if (($image_index + $max_number) < count($folderList)) { ++ echo ''."\n". ++ // display the right arrow ++ ''. ++ ''."\n"; ++ } else { ++ echo ''."\n"; ++ } ++ // display the goto last page link ++ if (($image_index + $max_number) < count($folderList)) { ++ echo ''."\n". ++ // display the right arrow ++ ''. ++ ''."\n"; ++ } else { ++ echo ''."\n"; ++ } ++ echo ' '."\n". ++ '
'."\n"; ++ } ++ ++ // ======================================================= ++ function showFullsizeImage( $current_path, $folderList, $image_index ) { ++ echo ''."\n". ++ ''."\n". ++ ''.$folderList[$image_index].''."\n". ++ ''."\n". ++ ''."\n". ++ '
'."\n". ++ 'config['cache_path'].$current_path.'/'. ++ fullsize.'_'.$folderList[$image_index].'">'."\n". ++ '
'."\n". ++ ''."\n". ++ ''; ++ } ++ ++ // ======================================================= ++} +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 @@ ++ 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 @@ ++ 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 @@ ++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[] = ''; ++ ++ // 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 @@ ++showConfig(); ++ ++class GalleryConfigTheme ++{ ++ function GalleryConfigTheme() ++ { ++ ++ } ++ ++ function showConfig() ++ { ++ echo '
'. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ ''. ++ '
'. ++ t('Gallery image path').': '. ++ ''. ++ ''. ++ '
'. ++ t('Path where the thumbnails are').': '. ++ ''. ++ ''. ++ '
'. ++ t('Default view size').': '. ++ ''. ++ ''. ++ '
'. ++ t('Horizontal screen resolution').': '. ++ ''. ++ ''. ++ '
'. ++ t('List of available view sizes').': '. ++ ''. ++ ''. ++ '
'. ++ t('List of allowed image formats').': '. ++ ''. ++ ''. ++ '
'. ++ ''. ++ ''. ++ ''. ++ '
'. ++ '
'; ++ } ++} ++ ++?> +\ 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 @@ ++', ++ '', ++ ++// Print a basic overview of what this module does ++ t('welcome: gallery'), ++ ++// Next, print a list of possible subsectons ++ #### ++ ++// Close the 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 "Jump to"" + "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 "Jump to"" + TV Programm "Gehe zu" + "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 @@ +
+ ++ href="gallery" onmouseover="return help_text('')" onmouseout="return help_text()"> ++ MythGallery ++ ++ + href="settings" onmouseover="return help_text('')" onmouseout="return help_text()"> + <?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