From 20c284546fb68c4ec1bd50d0463a45b2d660c48e Mon Sep 17 00:00:00 2001 From: rub Date: Tue, 1 May 2007 13:57:52 +0000 Subject: 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 --- admin/history.php | 89 +++++++++++++++++------- include/functions.inc.php | 1 + include/functions_cookie.inc.php | 114 +++++++++++++++++++++++++++++++ include/functions_rate.inc.php | 71 ++++++++----------- include/functions_session.inc.php | 62 +---------------- language/en_UK.iso-8859-1/admin.lang.php | 5 ++ language/fr_FR.iso-8859-1/admin.lang.php | 5 ++ template/yoga/admin/history.tpl | 13 ++++ 8 files changed, 232 insertions(+), 128 deletions(-) create mode 100644 include/functions_cookie.inc.php 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 '
$_POST:
-// '; print_r($_POST); echo '
'; -// echo '
$_GET:
-// '; print_r($_GET); echo '
'; - // +-----------------------------------------------------------------------+ // | 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'], ) ); - - // (1258) + $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 = '' - .'('.$line['image_id'].') '; - } - else { - $image_string= ''; - $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= ''.$image_title.''; + break; + } + case 'display_thumbnail_classic': + { + $image_string = + '' + .''.$image_title.'' + .''; + break; + } + case 'display_thumbnail_hoverbox': + { + $image_string = + '' + .''.$image_title.'' + .''.$image_title.''; + 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 @@ + 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 @@ +
+ {lang:Display} + +
-- cgit v1.2.3