diff options
author | rub <rub@piwigo.org> | 2007-05-01 13:57:52 +0000 |
---|---|---|
committer | rub <rub@piwigo.org> | 2007-05-01 13:57:52 +0000 |
commit | 20c284546fb68c4ec1bd50d0463a45b2d660c48e (patch) | |
tree | 70c76dbdb0a324dbe685c2b3a090113f0c7f95c5 | |
parent | f1494f18931ad354a05755c2c8dbfef1d51bfe87 (diff) |
Issue 0000684: History [Search] - Add a thumbnail display
o Display choice can be selected
o Display choice is saved on on cookie
o Small improvement picture link (hoverbox on all the link, alt&title on classic mode)
o New cookie functions and use
Enhance computing method of script_basename function.
http://forum.phpwebgallery.net/viewtopic.php?pid=58258#p58258
Merge BSF 1988:1989 into branch-1_7
git-svn-id: http://piwigo.org/svn/trunk@1992 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r-- | admin/history.php | 89 | ||||
-rw-r--r-- | include/functions.inc.php | 1 | ||||
-rw-r--r-- | include/functions_cookie.inc.php | 114 | ||||
-rw-r--r-- | include/functions_rate.inc.php | 71 | ||||
-rw-r--r-- | include/functions_session.inc.php | 62 | ||||
-rw-r--r-- | language/en_UK.iso-8859-1/admin.lang.php | 5 | ||||
-rw-r--r-- | language/fr_FR.iso-8859-1/admin.lang.php | 5 | ||||
-rw-r--r-- | template/yoga/admin/history.tpl | 13 |
8 files changed, 232 insertions, 128 deletions
diff --git a/admin/history.php b/admin/history.php index cdfe5ee81..a7056f838 100644 --- a/admin/history.php +++ b/admin/history.php @@ -28,11 +28,6 @@ * Display filtered history lines */ -// echo '<pre>$_POST: -// '; print_r($_POST); echo '</pre>'; -// echo '<pre>$_GET: -// '; print_r($_GET); echo '</pre>'; - // +-----------------------------------------------------------------------+ // | functions | // +-----------------------------------------------------------------------+ @@ -59,6 +54,7 @@ else } $types = array('none', 'picture', 'high', 'other'); +$display_thumbnails = array('no_display_thumbnail', 'display_thumbnail_classic', 'display_thumbnail_hoverbox'); // +-----------------------------------------------------------------------+ // | Check Access and exit when user status is not ok | @@ -114,6 +110,10 @@ if (isset($_POST['submit'])) ); } + $search['fields']['display_thumbnail'] = $_POST['display_thumbnail']; + // Display choise are also save to one cookie + pwg_set_cookie_var('history_display_thumbnail', $_POST['display_thumbnail']); + // TODO manage inconsistency of having $_POST['image_id'] and // $_POST['filename'] simultaneously @@ -560,37 +560,52 @@ SELECT 'image_id' => $line['image_id'], ) ); - - // <a class="thumbnail" href="#thumb">(1258)<span><img src="./galleries/category/thumbnail/th-dsc1258.png"></span></a> + $element = array( 'id' => $line['image_id'], 'file' => $file_of_image[$line['image_id']], 'path' => $path_of_image[$line['image_id']], 'tn_ext' => $tn_ext_of_image[$line['image_id']], ); - $image_string = ''; - if (!isset($conf['history_no_thumb']) or $conf['history_no_thumb']) { - $thumb_mode = "over"; - if (isset($conf['history_no_hover']) and $conf['history_no_hover']) { - $thumb_mode = "thumbnail"; - } - $image_string = '<a class="'.$thumb_mode.'" href="#thumb">' - .'('.$line['image_id'].') <span><img src="' - . get_thumbnail_url( $element ) - .'"></span></a><a href="'.$picture_url.'">'; - } - else { - $image_string= '<a href="'.$picture_url.'">'; - $image_string.= '('.$line['image_id'].')'; - } - + + $image_title = '('.$line['image_id'].')'; + if (isset($label_of_image[$line['image_id']])) { - $image_string.= ' '.$label_of_image[$line['image_id']]; + $image_title.= ' '.$label_of_image[$line['image_id']]; } else { - $image_string.= ' unknown filename'; + $image_title.= ' unknown filename'; + } + + $image_string = ''; + + switch ($page['search']['fields']['display_thumbnail']) + { + case 'no_display_thumbnail': + { + $image_string= '<a href="'.$picture_url.'">'.$image_title.'</a>'; + break; + } + case 'display_thumbnail_classic': + { + $image_string = + '<a class="thumbnail" href="'.$picture_url.'">' + .'<span><img src="'.get_thumbnail_url($element) + .'" alt="'.$image_title.'" title="'.$image_title.'">' + .'</span></a>'; + break; + } + case 'display_thumbnail_hoverbox': + { + $image_string = + '<a class="over" href="'.$picture_url.'">' + .'<span><img src="'.get_thumbnail_url($element) + .'" alt="'.$image_title.'" title="'.$image_title.'">' + .'</span>'.$image_title.'</a>'; + break; + } } } @@ -726,6 +741,8 @@ if (isset($page['search'])) $form['image_id'] = @$page['search']['fields']['image_id']; $form['filename'] = @$page['search']['fields']['filename']; + + $form['display_thumbnail'] = @$page['search']['fields']['display_thumbnail']; } else { @@ -735,6 +752,9 @@ else $form['start_month'] = $form['end_month'] = date('n'); $form['start_day'] = $form['end_day'] = date('j'); $form['types'] = $types; + // Hoverbox by default + $form['display_thumbnail'] = + pwg_get_cookie_var('history_display_thumbnail', $display_thumbnails[2]); } // start date @@ -809,7 +829,26 @@ while ($row = mysql_fetch_array($result)) ) ); } + +foreach ($display_thumbnails as $display_thumbnail) +{ + $selected = ''; + if ($display_thumbnail === $form['display_thumbnail']) + { + $selected = 'selected="selected"'; + } + + $template->assign_block_vars( + 'display_thumbnail', + array( + 'VALUE' => $display_thumbnail, + 'CONTENT' => l10n($display_thumbnail), + 'SELECTED' => $selected, + ) + ); +} + // +-----------------------------------------------------------------------+ // | html code display | // +-----------------------------------------------------------------------+ diff --git a/include/functions.inc.php b/include/functions.inc.php index becace1a4..e80e3cb3a 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -25,6 +25,7 @@ // +-----------------------------------------------------------------------+ include_once( PHPWG_ROOT_PATH .'include/functions_user.inc.php' ); +include_once( PHPWG_ROOT_PATH .'include/functions_cookie.inc.php' ); include_once( PHPWG_ROOT_PATH .'include/functions_session.inc.php' ); include_once( PHPWG_ROOT_PATH .'include/functions_category.inc.php' ); include_once( PHPWG_ROOT_PATH .'include/functions_xml.inc.php' ); diff --git a/include/functions_cookie.inc.php b/include/functions_cookie.inc.php new file mode 100644 index 000000000..28ef5ede9 --- /dev/null +++ b/include/functions_cookie.inc.php @@ -0,0 +1,114 @@ +<?php +// +-----------------------------------------------------------------------+ +// | PhpWebGallery - a PHP based picture gallery | +// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | +// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// +-----------------------------------------------------------------------+ +// | file : $Id$ +// | last update : $Date$ +// | last modifier : $Author$ +// | revision : $Revision$ +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// cookie_path returns the path to use for the PhpWebGallery cookie. +// If PhpWebGallery is installed on : +// http://domain.org/meeting/gallery/category.php +// cookie_path will return : "/meeting/gallery" +function cookie_path() +{ + if ( isset($_SERVER['REDIRECT_SCRIPT_NAME']) and + !empty($_SERVER['REDIRECT_SCRIPT_NAME']) ) + { + $scr = $_SERVER['REDIRECT_SCRIPT_NAME']; + } + else if ( isset($_SERVER['REDIRECT_URL']) ) + { // mod_rewrite is activated for upper level directories. we must set the + // cookie to the path shown in the browser otherwise it will be discarded. + if ( isset($_SERVER['PATH_INFO']) and !empty($_SERVER['PATH_INFO']) ) + { + $idx = strpos( $_SERVER['REDIRECT_URL'], $_SERVER['PATH_INFO'] ); + if ($idx !== false) + { + $scr = substr($_SERVER['REDIRECT_URL'], 0, $idx); + } + else + {//this should never happen + $scr='//'; + } + } + else + { + $scr = $_SERVER['REDIRECT_URL']; + } + } + else + { + $scr = $_SERVER['SCRIPT_NAME']; + } + $scr = substr($scr,0,strrpos( $scr,'/')); + + // add a trailing '/' if needed + $scr .= ($scr{strlen($scr)-1} == '/') ? '' : '/'; + + if ( substr(PHPWG_ROOT_PATH,0,3)=='../') + { // this is maybe a plugin inside pwg directory + // TODO - what if it is an external script outside PWG ? + $scr = $scr.PHPWG_ROOT_PATH; + while (1) + { + $new = preg_replace('#[^/]+/\.\.(/|$)#', '', $scr); + if ($new==$scr) + { + break; + } + $scr=$new; + } + } + return $scr; +} + +/** + * persistently stores a variable in pwg cookie + * @return boolean true on success + * @see pwg_get_cookie_var + */ +function pwg_set_cookie_var($var, $value) +{ + $_COOKIE['pwg_'.$var] = $value; + return + setcookie('pwg_'.$var, $value, + strtotime('+10 years'), cookie_path()); +} + +/** + * retrieves the value of a persistent variable in pwg cookie + * @return mixed + * @see pwg_set_cookie_var + */ +function pwg_get_cookie_var($var, $default = null) +{ + if (isset($_COOKIE['pwg_'.$var])) + { + return $_COOKIE['pwg_'.$var]; + } + else + { + return $default; + } +} + +?> diff --git a/include/functions_rate.inc.php b/include/functions_rate.inc.php index 3fe1a668e..a0486bd55 100644 --- a/include/functions_rate.inc.php +++ b/include/functions_rate.inc.php @@ -4,8 +4,7 @@ // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | // | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ -// | branch : BSF (Best So Far) -// | file : $RCSfile$ +// | file : $Id$ // | last update : $Date$ // | last modifier : $Author$ // | revision : $Revision$ @@ -59,57 +58,43 @@ function rate_picture($image_id, $rate) } $anonymous_id = implode ('.', $ip_components); - if (isset($_COOKIE['pwg_anonymous_rater'])) - { - if ($anonymous_id != $_COOKIE['pwg_anonymous_rater']) - { // client has changed his IP adress or he's trying to fool us - $query = ' + $save_anonymous_id = pwg_get_cookie_var('anonymous_rater', $anonymous_id); + + if ($anonymous_id != $save_anonymous_id) + { // client has changed his IP adress or he's trying to fool us + $query = ' SELECT element_id - FROM '.RATE_TABLE.' - WHERE user_id = '.$user['id'].' - AND anonymous_id = \''.$anonymous_id.'\' +FROM '.RATE_TABLE.' +WHERE user_id = '.$user['id'].' + AND anonymous_id = \''.$anonymous_id.'\' ;'; - $already_there = array_from_query($query, 'element_id'); + $already_there = array_from_query($query, 'element_id'); - if (count($already_there) > 0) - { - $query = ' + if (count($already_there) > 0) + { + $query = ' DELETE - FROM '.RATE_TABLE.' - WHERE user_id = '.$user['id'].' - AND anonymous_id = \''.$_COOKIE['pwg_anonymous_rater'].'\' - AND element_id NOT IN ('.implode(',', $already_there).') +FROM '.RATE_TABLE.' +WHERE user_id = '.$user['id'].' + AND anonymous_id = \''.$save_anonymous_id.'\' + AND element_id NOT IN ('.implode(',', $already_there).') ;'; - pwg_query($query); - } + pwg_query($query); + } - $query = ' + $query = ' UPDATE - '.RATE_TABLE.' - SET anonymous_id = \'' .$anonymous_id.'\' - WHERE user_id = '.$user['id'].' - AND anonymous_id = \'' . $_COOKIE['pwg_anonymous_rater'].'\' +'.RATE_TABLE.' +SET anonymous_id = \'' .$anonymous_id.'\' +WHERE user_id = '.$user['id'].' + AND anonymous_id = \'' . $save_anonymous_id.'\' ;'; - pwg_query($query); + pwg_query($query); + } // end client changed ip - setcookie( - 'pwg_anonymous_rater', - $anonymous_id, - strtotime('+10 years'), - cookie_path() - ); - } // end client changed ip - } // end client has cookie - else - { - setcookie( - 'pwg_anonymous_rater', - $anonymous_id, - strtotime('+10 years'), - cookie_path() - ); - } + pwg_get_cookie_var('anonymous_rater', $anonymous_id); } // end anonymous user + $query = ' DELETE FROM '.RATE_TABLE.' diff --git a/include/functions_session.inc.php b/include/functions_session.inc.php index d02fea3ae..8e49d9b0d 100644 --- a/include/functions_session.inc.php +++ b/include/functions_session.inc.php @@ -2,10 +2,9 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ -// | branch : BSF (Best So Far) -// | file : $RCSfile$ +// | file : $Id$ // | last update : $Date$ // | last modifier : $Author$ // | revision : $Revision$ @@ -75,63 +74,6 @@ if (isset($conf['session_save_handler']) session_set_cookie_params(0, cookie_path()); } -// cookie_path returns the path to use for the PhpWebGallery cookie. -// If PhpWebGallery is installed on : -// http://domain.org/meeting/gallery/category.php -// cookie_path will return : "/meeting/gallery" -function cookie_path() -{ - if ( isset($_SERVER['REDIRECT_SCRIPT_NAME']) and - !empty($_SERVER['REDIRECT_SCRIPT_NAME']) ) - { - $scr = $_SERVER['REDIRECT_SCRIPT_NAME']; - } - else if ( isset($_SERVER['REDIRECT_URL']) ) - { // mod_rewrite is activated for upper level directories. we must set the - // cookie to the path shown in the browser otherwise it will be discarded. - if ( isset($_SERVER['PATH_INFO']) and !empty($_SERVER['PATH_INFO']) ) - { - $idx = strpos( $_SERVER['REDIRECT_URL'], $_SERVER['PATH_INFO'] ); - if ($idx !== false) - { - $scr = substr($_SERVER['REDIRECT_URL'], 0, $idx); - } - else - {//this should never happen - $scr='//'; - } - } - else - { - $scr = $_SERVER['REDIRECT_URL']; - } - } - else - { - $scr = $_SERVER['SCRIPT_NAME']; - } - $scr = substr($scr,0,strrpos( $scr,'/')); - - // add a trailing '/' if needed - $scr .= ($scr{strlen($scr)-1} == '/') ? '' : '/'; - - if ( substr(PHPWG_ROOT_PATH,0,3)=='../') - { // this is maybe a plugin inside pwg directory - // TODO - what if it is an external script outside PWG ? - $scr = $scr.PHPWG_ROOT_PATH; - while (1) - { - $new = preg_replace('#[^/]+/\.\.(/|$)#', '', $scr); - if ($new==$scr) - { - break; - } - $scr=$new; - } - } - return $scr; -} - /** * returns true; used when the session_start() function is called * diff --git a/language/en_UK.iso-8859-1/admin.lang.php b/language/en_UK.iso-8859-1/admin.lang.php index 088a07f26..705821a55 100644 --- a/language/en_UK.iso-8859-1/admin.lang.php +++ b/language/en_UK.iso-8859-1/admin.lang.php @@ -609,4 +609,9 @@ $lang['Hour'] = 'Hour'; $lang['is_the_guest'] = 'guest'; $lang['is_the_default'] = 'default values'; $lang['High filesize'] = 'High filesize'; +$lang['no_display_thumbnail'] = 'No display'; +$lang['display_thumbnail_classic'] = 'Classic display'; +$lang['display_thumbnail_hoverbox'] = 'Hoverbox display'; +$lang['Thumbnails'] = 'Thumbnails'; + ?> diff --git a/language/fr_FR.iso-8859-1/admin.lang.php b/language/fr_FR.iso-8859-1/admin.lang.php index bdfbcca1a..9423002b8 100644 --- a/language/fr_FR.iso-8859-1/admin.lang.php +++ b/language/fr_FR.iso-8859-1/admin.lang.php @@ -610,4 +610,9 @@ $lang['Hour'] = 'Heure'; $lang['is_the_guest'] = 'invité'; $lang['is_the_default'] = 'valeurs par défaut'; $lang['High filesize'] = 'Taille du fichier HR'; +$lang['no_display_thumbnail'] = 'Pas d\'affichage'; +$lang['display_thumbnail_classic'] = 'Affichage classique'; +$lang['display_thumbnail_hoverbox'] = 'Affichage lors du survol'; +$lang['Thumbnails'] = 'Miniatures'; + ?> diff --git a/template/yoga/admin/history.tpl b/template/yoga/admin/history.tpl index 87058681f..d45824d4b 100644 --- a/template/yoga/admin/history.tpl +++ b/template/yoga/admin/history.tpl @@ -84,6 +84,19 @@ <input class="submit" type="submit" name="submit" value="{lang:submit}" /> </fieldset> +<fieldset>
+ <legend>{lang:Display}</legend>
+ <ul>
+ <li>
+ {lang:Thumbnails}
+ <select name="display_thumbnail">
+ <!-- BEGIN display_thumbnail -->
+ <option {display_thumbnail.SELECTED} value="{display_thumbnail.VALUE}">{display_thumbnail.CONTENT}</option>
+ <!-- END display_thumbnail -->
+ </select>
+ </li>
+ </ul>
+</fieldset>
</form> <!-- BEGIN summary --> |