aboutsummaryrefslogtreecommitdiffstats
path: root/BSF/admin/include/functions_metadata.php
diff options
context:
space:
mode:
Diffstat (limited to 'BSF/admin/include/functions_metadata.php')
-rw-r--r--BSF/admin/include/functions_metadata.php298
1 files changed, 0 insertions, 298 deletions
diff --git a/BSF/admin/include/functions_metadata.php b/BSF/admin/include/functions_metadata.php
deleted file mode 100644
index e805aeba6..000000000
--- a/BSF/admin/include/functions_metadata.php
+++ /dev/null
@@ -1,298 +0,0 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | Piwigo - a PHP based picture gallery |
-// +-----------------------------------------------------------------------+
-// | Copyright(C) 2008 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. |
-// +-----------------------------------------------------------------------+
-
-include_once(PHPWG_ROOT_PATH.'/include/functions_metadata.inc.php');
-
-$page['datefields'] = array('date_creation', 'date_available');
-
-function get_sync_iptc_data($file)
-{
- global $conf, $page;
-
- $map = $conf['use_iptc_mapping'];
-
- $iptc = get_iptc_data($file, $map);
-
- foreach ($iptc as $pwg_key => $value)
- {
- if (in_array($pwg_key, $page['datefields']))
- {
- if (preg_match('/(\d{4})(\d{2})(\d{2})/', $value, $matches))
- {
- $iptc[$pwg_key] = $matches[1].'-'.$matches[2].'-'.$matches[3];
- }
- }
- }
-
- if (isset($iptc['keywords']))
- {
- // official keywords separator is the comma
- $iptc['keywords'] = preg_replace('/[.;]/', ',', $iptc['keywords']);
- $iptc['keywords'] = preg_replace('/^,+|,+$/', '', $iptc['keywords']);
-
- $iptc['keywords'] = implode(
- ',',
- array_unique(
- explode(
- ',',
- $iptc['keywords']
- )
- )
- );
- }
-
- foreach ($iptc as $pwg_key => $value)
- {
- $iptc[$pwg_key] = addslashes($iptc[$pwg_key]);
- }
-
- return $iptc;
-}
-
-function get_sync_exif_data($file)
-{
- global $conf, $page;
-
- $exif = get_exif_data($file, $conf['use_exif_mapping']);
-
- foreach ($exif as $pwg_key => $value)
- {
- if (in_array($pwg_key, $page['datefields']))
- {
- if (preg_match('/^(\d{4}).(\d{2}).(\d{2})/', $value, $matches))
- {
- $exif[$pwg_key] = $matches[1].'-'.$matches[2].'-'.$matches[3];
- }
- }
- $exif[$pwg_key] = addslashes($exif[$pwg_key]);
- }
-
- return $exif;
-}
-
-function update_metadata($files)
-{
- global $conf;
-
- if (!defined('CURRENT_DATE'))
- {
- define('CURRENT_DATE', date('Y-m-d'));
- }
-
- $datas = array();
- $tags_of = array();
- $has_high_images = array();
-
- $image_ids = array();
- foreach ($files as $id => $file)
- {
- array_push($image_ids, $id);
- }
-
- $query = '
-SELECT id
- FROM '.IMAGES_TABLE.'
- WHERE has_high = \'true\'
- AND id IN (
-'.wordwrap(implode(', ', $image_ids), 80, "\n").'
-)
-;';
-
- $result = pwg_query($query);
- while ($row = mysql_fetch_array($result))
- {
- array_push($has_high_images, $row['id']);
- }
-
- foreach ($files as $id => $file)
- {
- $data = array();
- $data['id'] = $id;
- $data['filesize'] = floor(filesize($file)/1024);
-
- if ($image_size = @getimagesize($file))
- {
- $data['width'] = $image_size[0];
- $data['height'] = $image_size[1];
- }
-
- if (in_array($id, $has_high_images))
- {
- $high_file = dirname($file).'/pwg_high/'.basename($file);
-
- $data['high_filesize'] = floor(filesize($high_file)/1024);
- }
-
- if ($conf['use_exif'])
- {
- $exif = get_sync_exif_data($file);
- }
-
- if ($conf['use_iptc'])
- {
- $iptc = get_sync_iptc_data($file);
- if (count($iptc) > 0)
- {
- foreach (array_keys($iptc) as $key)
- {
- if ($key == 'keywords' or $key == 'tags')
- {
- if (!isset($tags_of[$id]))
- {
- $tags_of[$id] = array();
- }
-
- foreach (explode(',', $iptc[$key]) as $tag_name)
- {
- array_push(
- $tags_of[$id],
- tag_id_from_tag_name($tag_name)
- );
- }
- }
- }
- }
- }
-
- $data['date_metadata_update'] = CURRENT_DATE;
-
- array_push($datas, $data);
- }
-
- if (count($datas) > 0)
- {
- $update_fields =
- array(
- 'filesize',
- 'width',
- 'height',
- 'high_filesize',
- 'date_metadata_update'
- );
-
- if ($conf['use_exif'])
- {
- $update_fields =
- array_merge(
- $update_fields,
- array_keys($conf['use_exif_mapping'])
- );
- }
-
- if ($conf['use_iptc'])
- {
- $update_fields =
- array_merge(
- $update_fields,
- array_diff(
- array_keys($conf['use_iptc_mapping']),
- array('tags', 'keywords')
- )
- );
- }
-
- mass_updates(
- IMAGES_TABLE,
- array(
- 'primary' => array('id'),
- 'update' => array_unique($update_fields)
- ),
- $datas
- );
- }
-
- set_tags_of($tags_of);
-}
-
-/**
- * returns an array associating element id (images.id) with its complete
- * path in the filesystem
- *
- * @param int id_uppercat
- * @param int site_id
- * @param boolean recursive ?
- * @param boolean only newly added files ?
- * @return array
- */
-function get_filelist($category_id = '', $site_id=1, $recursive = false,
- $only_new = false)
-{
- // filling $cat_ids : all categories required
- $cat_ids = array();
-
- $query = '
-SELECT id
- FROM '.CATEGORIES_TABLE.'
- WHERE site_id = '.$site_id.'
- AND dir IS NOT NULL';
- if (is_numeric($category_id))
- {
- if ($recursive)
- {
- $query.= '
- AND uppercats REGEXP \'(^|,)'.$category_id.'(,|$)\'
-';
- }
- else
- {
- $query.= '
- AND id = '.$category_id.'
-';
- }
- }
- $query.= '
-;';
- $result = pwg_query($query);
- while ($row = mysql_fetch_array($result))
- {
- array_push($cat_ids, $row['id']);
- }
-
- if (count($cat_ids) == 0)
- {
- return array();
- }
-
- $files = array();
-
- $query = '
-SELECT id, path
- FROM '.IMAGES_TABLE.'
- WHERE storage_category_id IN ('.implode(',', $cat_ids).')';
- if ($only_new)
- {
- $query.= '
- AND date_metadata_update IS NULL
-';
- }
- $query.= '
-;';
- $result = pwg_query($query);
- while ($row = mysql_fetch_array($result))
- {
- $files[$row['id']] = $row['path'];
- }
-
- return $files;
-}
-?> \ No newline at end of file