diff options
-rw-r--r-- | admin/include/functions_upload.inc.php | 6 | ||||
-rw-r--r-- | admin/site_reader_local.php | 9 | ||||
-rw-r--r-- | admin/site_reader_remote.php | 2 | ||||
-rw-r--r-- | install/db/100-database.php | 52 | ||||
-rw-r--r-- | install/piwigo_structure-mysql.sql | 2 | ||||
-rw-r--r-- | install/piwigo_structure-pdo-sqlite.sql | 2 | ||||
-rw-r--r-- | install/piwigo_structure-pgsql.sql | 2 | ||||
-rw-r--r-- | install/piwigo_structure-sqlite.sql | 2 | ||||
-rw-r--r-- | picture.php | 32 | ||||
-rw-r--r-- | tools/create_listing_file.php | 6 |
10 files changed, 112 insertions, 3 deletions
diff --git a/admin/include/functions_upload.inc.php b/admin/include/functions_upload.inc.php index 24400c5f5..a51a71ae9 100644 --- a/admin/include/functions_upload.inc.php +++ b/admin/include/functions_upload.inc.php @@ -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)) diff --git a/admin/site_reader_local.php b/admin/site_reader_local.php index 5addc3a95..da12e9398 100644 --- a/admin/site_reader_local.php +++ b/admin/site_reader_local.php @@ -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']) diff --git a/admin/site_reader_remote.php b/admin/site_reader_remote.php index 49fa317e8..3789005cb 100644 --- a/admin/site_reader_remote.php +++ b/admin/site_reader_remote.php @@ -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)) diff --git a/install/db/100-database.php b/install/db/100-database.php new file mode 100644 index 000000000..91a27f645 --- /dev/null +++ b/install/db/100-database.php @@ -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" +; +?>
\ No newline at end of file diff --git a/install/piwigo_structure-mysql.sql b/install/piwigo_structure-mysql.sql index 44c627b5f..31b5183ce 100644 --- a/install/piwigo_structure-mysql.sql +++ b/install/piwigo_structure-mysql.sql @@ -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', diff --git a/install/piwigo_structure-pdo-sqlite.sql b/install/piwigo_structure-pdo-sqlite.sql index a46c5929d..f89fd160f 100644 --- a/install/piwigo_structure-pdo-sqlite.sql +++ b/install/piwigo_structure-pdo-sqlite.sql @@ -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, diff --git a/install/piwigo_structure-pgsql.sql b/install/piwigo_structure-pgsql.sql index ca1c003e0..940768e85 100644 --- a/install/piwigo_structure-pgsql.sql +++ b/install/piwigo_structure-pgsql.sql @@ -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, diff --git a/install/piwigo_structure-sqlite.sql b/install/piwigo_structure-sqlite.sql index a46c5929d..f89fd160f 100644 --- a/install/piwigo_structure-sqlite.sql +++ b/install/piwigo_structure-sqlite.sql @@ -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, diff --git a/picture.php b/picture.php index d111d5301..1484814e2 100644 --- a/picture.php +++ b/picture.php @@ -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']; diff --git a/tools/create_listing_file.php b/tools/create_listing_file.php index 6cb509178..cb11d139e 100644 --- a/tools/create_listing_file.php +++ b/tools/create_listing_file.php @@ -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 |