bug:1791 display hd dimensions instead of websize dimensions

git-svn-id: http://piwigo.org/svn/trunk@10157 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
mistic100 2011-04-08 09:09:13 +00:00
commit 797ddead2a
10 changed files with 112 additions and 3 deletions

View file

@ -347,11 +347,15 @@ SELECT
{
$update['has_high'] = 'true';
$update['high_filesize'] = $high_infos['filesize'];
$update['high_width'] = $high_infos['width'];
$update['high_height'] = $high_infos['height'];
}
else
{
$update['has_high'] = 'false';
$update['high_filesize'] = null;
$update['high_width'] = null;
$update['high_height'] = null;
}
if (isset($level))
@ -387,6 +391,8 @@ SELECT
{
$insert['has_high'] = 'true';
$insert['high_filesize'] = $high_infos['filesize'];
$insert['high_width'] = $high_infos['width'];
$insert['high_height'] = $high_infos['height'];
}
if (isset($level))

View file

@ -154,7 +154,7 @@ function get_metadata_attributes()
{
global $conf;
$update_fields = array('filesize', 'width', 'height', 'high_filesize');
$update_fields = array('filesize', 'width', 'height', 'high_filesize', 'high_width', 'high_height');
if ($conf['use_exif'])
{
@ -199,8 +199,13 @@ function get_element_metadata($file, $has_high = false)
if ($has_high)
{
$high_file = dirname($file).'/pwg_high/'.basename($file);
$data['high_filesize'] = floor(filesize($high_file)/1024);
if ($high_size = @getimagesize($high_file))
{
$data['high_width'] = $high_size[0];
$data['high_height'] = $high_size[1];
}
}
if ($conf['use_exif'])

View file

@ -43,7 +43,7 @@ function RemoteSiteReader($url, $listing_url)
'tn_ext', 'representative_ext', 'has_high',
);
$this->metadata_attributes = array(
'filesize', 'width', 'height', 'high_filesize'
'filesize', 'width', 'height', 'high_filesize', 'high_width', 'high_height',
);
if (!isset($listing_url))

View file

@ -0,0 +1,52 @@
<?php
// +-----------------------------------------------------------------------+
// | Piwigo - a PHP based photo gallery |
// +-----------------------------------------------------------------------+
// | Copyright(C) 2008-2011 Piwigo Team http://piwigo.org |
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
// +-----------------------------------------------------------------------+
// | 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 = 'add high_width and high_height fields into IMAGES_TABLE';
if ('mysql' == $conf['dblayer'])
{
$query = 'ALTER TABLE '.IMAGES_TABLE.'
ADD COLUMN `high_width` smallint(9) unsigned default NULL,
ADD COLUMN `high_height` smallint(9) unsigned default NULL;';
}
if (in_array($conf['dblayer'], array('pgsql', 'sqlite', 'pdo-sqlite')))
{
$query = 'ALTER TABLE '.IMAGES_TABLE.'
ADD COLUMN "high_width" INTEGER,
ADD COLUMN "high_height" INTEGER;';
}
pwg_query($query);
echo
"\n"
. $upgrade_description
."\n"
;
?>

View file

@ -192,6 +192,8 @@ CREATE TABLE `piwigo_images` (
`path` varchar(255) NOT NULL default '',
`storage_category_id` smallint(5) unsigned default NULL,
`high_filesize` mediumint(9) unsigned default NULL,
`high_width` smallint(9) unsigned default NULL,
`high_height` smallint(9) unsigned default NULL,
`level` tinyint unsigned NOT NULL default '0',
`md5sum` char(32) default NULL,
`added_by` smallint(5) NOT NULL default '0',

View file

@ -188,6 +188,8 @@ CREATE TABLE piwigo_images
"path" VARCHAR(255) default '' NOT NULL,
"storage_category_id" INTEGER,
"high_filesize" INTEGER,
"high_width" INTEGER,
"high_height" INTEGER,
"level" INTEGER default 0 NOT NULL,
"md5sum" CHAR(32),
"added_by" INTEGER default 0 NOT NULL,

View file

@ -232,6 +232,8 @@ CREATE TABLE "piwigo_images"
"path" VARCHAR(255) default '' NOT NULL,
"storage_category_id" INTEGER,
"high_filesize" INTEGER,
"high_width" INTEGER,
"high_height" INTEGER,
"level" INTEGER default 0 NOT NULL,
"md5sum" CHAR(32),
"added_by" INTEGER default 0 NOT NULL,

View file

@ -188,6 +188,8 @@ CREATE TABLE piwigo_images
"path" VARCHAR(255) default '' NOT NULL,
"storage_category_id" INTEGER,
"high_filesize" INTEGER,
"high_width" INTEGER,
"high_height" INTEGER,
"level" INTEGER default 0 NOT NULL,
"md5sum" CHAR(32),
"added_by" INTEGER default 0 NOT NULL,

View file

@ -919,6 +919,31 @@ if ($picture['current']['is_picture'] and isset($picture['current']['width']) )
}
}
// hd size in pixels
if ($picture['current']['is_picture'] AND $picture['current']['has_high'])
{
if (!empty($picture['current']['high_width']))
{
$infos['INFO_DIMENSIONS'] = $picture['current']['high_width'].'*'.$picture['current']['high_height'];
}
else
{
$hi_size = @getimagesize($hi_url);
if ($hi_size !== false)
{
pwg_query('
UPDATE ' . IMAGES_TABLE . '
SET
high_width = \'' . $hi_size[0].'\',
high_height = \''.$hi_size[1] .'\'
WHERE id = ' . $picture['current']['id'] . ';
');
$infos['INFO_DIMENSIONS'] = $hi_size[0].'*'.$hi_size[1];
}
}
}
// filesize
if (!empty($picture['current']['filesize']))
{
@ -926,6 +951,13 @@ if (!empty($picture['current']['filesize']))
sprintf(l10n('%d Kb'), $picture['current']['filesize']);
}
// hd filesize
if ($picture['current']['has_high'] and !empty($picture['current']['high_filesize']))
{
$infos['INFO_FILESIZE'] =
sprintf(l10n('%d Kb'), $picture['current']['high_filesize']);
}
// number of visits
$infos['INFO_VISITS'] = $picture['current']['hit'];

View file

@ -738,6 +738,12 @@ function pwg_scan_file($file_full, &$line)
$high_file = $file_dir.'/'.$conf['high'].'/'.$file_base;
$element['high_filesize'] = floor(filesize($high_file) / 1024);
if ($high_size = @getimagesize($high_file))
{
$element['high_width'] = $high_size[0];
$element['high_height'] = $high_size[1];
}
}
// get EXIF meta datas