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; + }