New: non picture files are now logged in history when downloaded. The

history filter was redesigned: #history.is_high replaced by
#history.image_type = high. The filter is simpler.


git-svn-id: http://piwigo.org/svn/trunk@1844 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2007-02-20 23:40:02 +00:00
parent ed97ed33d3
commit 3b46143435
7 changed files with 136 additions and 113 deletions

View File

@@ -127,8 +127,11 @@ if ( empty($file) )
}
if ($_GET['part'] == 'h') {
$is_high = true;
pwg_log($_GET['id'], $is_high);
pwg_log($_GET['id'], 'high');
}
else if ($_GET['part'] == 'e')
{
pwg_log($_GET['id'], 'other');
}
$http_headers = array();

View File

@@ -58,6 +58,8 @@ else
$page['start'] = 0;
}
$types = array('none', 'picture', 'high', 'other');
// +-----------------------------------------------------------------------+
// | Check Access and exit when user status is not ok |
// +-----------------------------------------------------------------------+
@@ -94,8 +96,7 @@ if (isset($_POST['submit']))
);
}
$search['fields']['pictures'] = $_POST['pictures'];
$search['fields']['high'] = $_POST['high'];
$search['fields']['types'] = $_POST['types'];
// echo '<pre>'; print_r($search); echo '</pre>';
@@ -184,43 +185,32 @@ SELECT rules
);
}
if (isset($page['search']['fields']['pictures']))
if (isset($page['search']['fields']['types']))
{
$clause = null;
$local_clauses = array();
if ($page['search']['fields']['pictures'] == 'no')
{
$clause = 'image_id IS NULL';
foreach ($types as $type) {
if (in_array($type, $page['search']['fields']['types'])) {
$clause = 'image_type ';
if ($type == 'none')
{
$clause.= 'IS NULL';
}
else
{
$clause.= "= '".$type."'";
}
array_push($local_clauses, $clause);
}
}
if ($page['search']['fields']['pictures'] == 'only')
{
$clause = 'image_id IS NOT NULL';
}
if (isset($clause))
{
array_push($clauses, $clause);
}
}
if (isset($page['search']['fields']['high']))
{
$clause = null;
if ($page['search']['fields']['high'] == 'no')
if (count($local_clauses) > 0)
{
$clause = "is_high IS NULL or is_high = 'false'";
}
if ($page['search']['fields']['high'] == 'only')
{
$clause = "is_high = 'true'";
}
if (isset($clause))
{
array_push($clauses, $clause);
array_push(
$clauses,
implode(' OR ', $local_clauses)
);
}
}
@@ -236,8 +226,10 @@ SELECT rules
SELECT COUNT(*)
FROM '.HISTORY_TABLE.'
WHERE '.$where_separator.'
';
;';
// echo '<pre>'.$query.'</pre>';
list($page['nb_lines']) = mysql_fetch_row(pwg_query($query));
$query = '
@@ -250,7 +242,7 @@ SELECT
category_id,
tag_ids,
image_id,
is_high
image_type
FROM '.HISTORY_TABLE.'
WHERE '.$where_separator.'
LIMIT '.$page['start'].', '.$conf['nb_logs_page'].'
@@ -344,6 +336,7 @@ SELECT id, IF(name IS NULL, file, name) AS label
? $label_of_image[$line['image_id']]
: 'deleted '.$line['image_id'])
: $line['image_id'],
'TYPE' => $line['image_type'],
'SECTION' => $line['section'],
'CATEGORY' => isset($line['category_id'])
? ( isset($name_of_category[$line['category_id']])
@@ -354,18 +347,6 @@ SELECT id, IF(name IS NULL, file, name) AS label
'T_CLASS' => ($i++ % 2) ? 'row1' : 'row2',
)
);
if (isset($line['image_id']))
{
if ($line['is_high'] == 'true')
{
$template->assign_block_vars('detail.high', array());
}
else
{
$template->assign_block_vars('detail.no_high', array());
}
}
}
}
@@ -425,8 +406,7 @@ if (isset($page['search']))
$form['end_day'] = (int)$tokens[2];
}
$form['pictures'] = $page['search']['fields']['pictures'];
$form['high'] = $page['search']['fields']['high'];
$form['types'] = $page['search']['fields']['types'];
}
else
{
@@ -435,8 +415,7 @@ else
$form['start_year'] = $form['end_year'] = date('Y');
$form['start_month'] = $form['end_month'] = date('n');
$form['start_day'] = $form['end_day'] = date('j');
$form['pictures'] = 'yes';
$form['high'] = 'yes';
$form['types'] = $types;
}
// start date
@@ -453,26 +432,23 @@ $template->assign_vars(
)
);
foreach (array('pictures', 'high') as $block)
foreach ($types as $option)
{
foreach (array('yes', 'no', 'only') as $item)
$selected = '';
if (in_array($option, $form['types']))
{
$selected = '';
if ($item == $form[$block])
{
$selected = 'selected="selected"';
}
$template->assign_block_vars(
$block.'_option',
array(
'VALUE' => $item,
'CONTENT' => l10n($item),
'SELECTED' => $selected,
)
);
$selected = 'selected="selected"';
}
$template->assign_block_vars(
'types_option',
array(
'VALUE' => $option,
'CONTENT' => l10n($option),
'SELECTED' => $selected,
)
);
}
// +-----------------------------------------------------------------------+

View File

@@ -410,7 +410,7 @@ function replace_search( $string, $search )
return $string;
}
function pwg_log($image_id = null, $is_high = false)
function pwg_log($image_id = null, $image_type = null)
{
global $conf, $user, $page;
@@ -468,7 +468,7 @@ INSERT INTO '.HISTORY_TABLE.'
section,
category_id,
image_id,
is_high,
image_type,
tag_ids
)
VALUES
@@ -484,7 +484,7 @@ INSERT INTO '.HISTORY_TABLE.'
'.(isset($page['section']) ? "'".$page['section']."'" : 'NULL').',
'.(isset($page['category']) ? $page['category'] : 'NULL').',
'.(isset($image_id) ? $image_id : 'NULL').',
'.(isset($image_id) ? "'".boolean_to_string($is_high)."'" : 'NULL').',
'.(isset($image_id) ? "'".$image_type."'" : 'NULL').',
'.(isset($tags_string) ? "'".$tags_string."'" : 'NULL').'
)
;';

View File

@@ -0,0 +1,73 @@
<?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 |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $Id: 45-database.php 1741 2007-01-22 21:47:03Z vdigital $
// | last update : $Date: 2007-01-22 22:47:03 +0100 (lun., 22 janv. 2007) $
// | last modifier : $Author: vdigital $
// | revision : $Revision: 1741 $
// +-----------------------------------------------------------------------+
// | 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. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Replace #history.is_high by #history.image_type';
include_once(PHPWG_ROOT_PATH.'include/constants.php');
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
$query = "
ALTER TABLE ".HISTORY_TABLE."
ADD COLUMN image_type ENUM('picture', 'high', 'other') DEFAULT NULL
;";
pwg_query($query);
$query = "
UPDATE ".HISTORY_TABLE."
SET image_type = 'high'
WHERE is_high = 'true'
;";
pwg_query($query);
$query = "
UPDATE ".HISTORY_TABLE."
SET image_type = 'picture'
WHERE is_high = 'false'
;";
pwg_query($query);
$query = "
ALTER TABLE ".HISTORY_TABLE."
DROP COLUMN is_high
;";
pwg_query($query);
echo
"\n"
.'"'.$upgrade_description.'"'.', ended'
."\n"
;
?>

View File

@@ -126,7 +126,7 @@ CREATE TABLE `phpwebgallery_history` (
`tag_ids` varchar(50) default NULL,
`image_id` mediumint(8) default NULL,
`summarized` enum('true','false') default 'false',
`is_high` enum('true','false') default NULL,
`image_type` enum('picture','high','other') default NULL,
PRIMARY KEY (`id`),
KEY `history_i1` (`summarized`)
) TYPE=MyISAM;

View File

@@ -812,7 +812,7 @@ if ($metadata_showable and isset($_GET['metadata']))
include(PHPWG_ROOT_PATH.'include/picture_metadata.inc.php');
}
//------------------------------------------------------------ log informations
pwg_log($picture['current']['id']);
pwg_log($picture['current']['id'], 'picture');
include(PHPWG_ROOT_PATH.'include/page_header.php');
trigger_action('loc_end_picture');

View File

@@ -49,36 +49,14 @@
</li>
</ul>
<ul>
<li><label></label></li>
<li></li>
</ul>
<label>
{lang:Pictures}
<select name="pictures">
<!-- BEGIN pictures_option -->
<option
value="{pictures_option.VALUE}"
{pictures_option.SELECTED}
>
{pictures_option.CONTENT}
{lang:Element type}
<select name="types[]" multiple="multiple" size="4">
<!-- BEGIN types_option -->
<option value="{types_option.VALUE}" {types_option.SELECTED}>
{types_option.CONTENT}
</option>
<!-- END pictures_option -->
</select>
</label>
<label>
{lang:High quality}
<select name="high">
<!-- BEGIN high_option -->
<option
value="{high_option.VALUE}"
{high_option.SELECTED}
>
{high_option.CONTENT}
</option>
<!-- END high_option -->
<!-- END types_option -->
</select>
</label>
@@ -101,7 +79,7 @@
<th>{lang:user}</th>
<th>{lang:IP}</th>
<th>{lang:image}</th>
<th>{lang:high quality}</th>
<th>{lang:Element type}</th>
<th>{lang:section}</th>
<th>{lang:category}</th>
<th>{lang:tags}</th>
@@ -113,14 +91,7 @@
<td>{detail.USER}</td>
<td>{detail.IP}</td>
<td>{detail.IMAGE}</td>
<td>
<!-- BEGIN high -->
<img src="{themeconf:icon_dir}/check.png" alt="{lang:yes}">
<!-- END high -->
<!-- BEGIN no_high -->
<img src="{themeconf:icon_dir}/uncheck.png" alt="{lang:no}">
<!-- END no_high -->
</td>
<td>{detail.TYPE}</td>
<td>{detail.SECTION}</td>
<td>{detail.CATEGORY}</td>
<td>{detail.TAGS}</td>