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
This commit is contained in:
parent
f1494f1893
commit
20c284546f
8 changed files with 232 additions and 128 deletions
|
|
@ -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 |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
114
include/functions_cookie.inc.php
Normal file
114
include/functions_cookie.inc.php
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -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).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
|
||||
$query = '
|
||||
UPDATE
|
||||
'.RATE_TABLE.'
|
||||
SET anonymous_id = \'' .$anonymous_id.'\'
|
||||
WHERE user_id = '.$user['id'].'
|
||||
AND anonymous_id = \'' . $_COOKIE['pwg_anonymous_rater'].'\'
|
||||
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);
|
||||
}
|
||||
|
||||
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()
|
||||
);
|
||||
}
|
||||
$query = '
|
||||
UPDATE
|
||||
'.RATE_TABLE.'
|
||||
SET anonymous_id = \'' .$anonymous_id.'\'
|
||||
WHERE user_id = '.$user['id'].'
|
||||
AND anonymous_id = \'' . $save_anonymous_id.'\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
} // end client changed ip
|
||||
|
||||
pwg_get_cookie_var('anonymous_rater', $anonymous_id);
|
||||
} // end anonymous user
|
||||
|
||||
$query = '
|
||||
DELETE
|
||||
FROM '.RATE_TABLE.'
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue