feature 2548 multisize
- rewrote local site sync + metadata sync git-svn-id: http://piwigo.org/svn/trunk@12831 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
6c3ff240cb
commit
d0b5df605c
9 changed files with 187 additions and 358 deletions
|
@ -382,19 +382,7 @@ DELETE
|
|||
// synchronize metadata
|
||||
if ('metadata' == $action)
|
||||
{
|
||||
$query = '
|
||||
SELECT id, path
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id IN ('.implode(',', $collection).')
|
||||
;';
|
||||
$id_to_path = array();
|
||||
$result = pwg_query($query);
|
||||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$id_to_path[$row['id']] = $row['path'];
|
||||
}
|
||||
|
||||
update_metadata($id_to_path);
|
||||
sync_metadata($collection);
|
||||
|
||||
array_push(
|
||||
$page['infos'],
|
||||
|
|
|
@ -48,7 +48,7 @@ function get_sync_iptc_data($file)
|
|||
$month = 1;
|
||||
$day = 1;
|
||||
}
|
||||
|
||||
|
||||
$iptc[$pwg_key] = $year.'-'.$month.'-'.$day;
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +109,75 @@ function get_sync_exif_data($file)
|
|||
return $exif;
|
||||
}
|
||||
|
||||
function update_metadata($files)
|
||||
|
||||
function get_sync_metadata_attributes()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$update_fields = array('filesize', 'width', 'height');
|
||||
|
||||
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_keys($conf['use_iptc_mapping'])
|
||||
);
|
||||
}
|
||||
|
||||
return array_unique($update_fields);
|
||||
}
|
||||
|
||||
function get_sync_metadata($infos)
|
||||
{
|
||||
global $conf;
|
||||
$file = PHPWG_ROOT_PATH.$infos['path'];
|
||||
$fs = @filesize($file);
|
||||
|
||||
if ($fs===false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$infos['filesize'] = floor($fs/1024);
|
||||
|
||||
if (isset($infos['representative_ext']))
|
||||
{
|
||||
$file = original_to_representative($file, $infos['representative_ext']);
|
||||
}
|
||||
|
||||
if ($image_size = @getimagesize($file))
|
||||
{
|
||||
$infos['width'] = $image_size[0];
|
||||
$infos['height'] = $image_size[1];
|
||||
}
|
||||
|
||||
if ($conf['use_exif'])
|
||||
{
|
||||
$exif = get_sync_exif_data($file);
|
||||
$infos = array_merge($infos, $exif);
|
||||
}
|
||||
|
||||
if ($conf['use_iptc'])
|
||||
{
|
||||
$iptc = get_sync_iptc_data($file);
|
||||
$infos = array_merge($infos, $iptc);
|
||||
}
|
||||
|
||||
return $infos;
|
||||
}
|
||||
|
||||
|
||||
function sync_metadata($ids)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
@ -120,82 +188,40 @@ function update_metadata($files)
|
|||
|
||||
$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
|
||||
SELECT id, path, representative_ext
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE has_high = \'true\'
|
||||
AND id IN (
|
||||
'.wordwrap(implode(', ', $image_ids), 80, "\n").'
|
||||
WHERE id IN (
|
||||
'.wordwrap(implode(', ', $ids), 160, "\n").'
|
||||
)
|
||||
;';
|
||||
|
||||
$has_high_images = array_from_query($query, 'id');
|
||||
|
||||
foreach ($files as $id => $file)
|
||||
$result = pwg_query($query);
|
||||
while ($data = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$data = array();
|
||||
$data['id'] = $id;
|
||||
$data['filesize'] = floor(filesize($file)/1024);
|
||||
|
||||
if ($image_size = @getimagesize($file))
|
||||
$data = get_sync_metadata($data);
|
||||
if ($data === false)
|
||||
{
|
||||
$data['width'] = $image_size[0];
|
||||
$data['height'] = $image_size[1];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (in_array($id, $has_high_images))
|
||||
$id = $data['id'];
|
||||
foreach (array('keywords', 'tags') as $key)
|
||||
{
|
||||
$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 (count($exif) == 0 and isset($data['high_filesize']))
|
||||
if (isset($data[$key]))
|
||||
{
|
||||
$exif = get_sync_exif_data($high_file);
|
||||
}
|
||||
$data = array_merge($data, $exif);
|
||||
}
|
||||
|
||||
if ($conf['use_iptc'])
|
||||
{
|
||||
$iptc = get_sync_iptc_data($file);
|
||||
if (count($iptc) == 0 and isset($data['high_filesize']))
|
||||
{
|
||||
$iptc = get_sync_iptc_data($high_file);
|
||||
}
|
||||
$data = array_merge($data, $iptc);
|
||||
|
||||
if (count($iptc) > 0)
|
||||
{
|
||||
foreach (array_keys($iptc) as $key)
|
||||
if (!isset($tags_of[$id]))
|
||||
{
|
||||
if ($key == 'keywords' or $key == 'tags')
|
||||
{
|
||||
if (!isset($tags_of[$id]))
|
||||
{
|
||||
$tags_of[$id] = array();
|
||||
}
|
||||
$tags_of[$id] = array();
|
||||
}
|
||||
|
||||
foreach (explode(',', $iptc[$key]) as $tag_name)
|
||||
{
|
||||
array_push(
|
||||
$tags_of[$id],
|
||||
tag_id_from_tag_name($tag_name)
|
||||
);
|
||||
}
|
||||
}
|
||||
foreach (explode(',', $data[$key]) as $tag_name)
|
||||
{
|
||||
array_push(
|
||||
$tags_of[$id],
|
||||
tag_id_from_tag_name($tag_name)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -207,41 +233,19 @@ SELECT id
|
|||
|
||||
if (count($datas) > 0)
|
||||
{
|
||||
$update_fields =
|
||||
array(
|
||||
'filesize',
|
||||
'width',
|
||||
'height',
|
||||
'high_filesize',
|
||||
'date_metadata_update'
|
||||
);
|
||||
$update_fields = get_sync_metadata_attributes();
|
||||
array_push($update_fields, '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')
|
||||
)
|
||||
);
|
||||
}
|
||||
$update_fields = array_diff(
|
||||
$update_fields,
|
||||
array('tags', 'keywords')
|
||||
);
|
||||
|
||||
mass_updates(
|
||||
IMAGES_TABLE,
|
||||
array(
|
||||
'primary' => array('id'),
|
||||
'update' => array_unique($update_fields)
|
||||
'update' => $update_fields
|
||||
),
|
||||
$datas,
|
||||
MASS_UPDATES_SKIP_EMPTY
|
||||
|
@ -300,10 +304,8 @@ SELECT id
|
|||
return array();
|
||||
}
|
||||
|
||||
$files = array();
|
||||
|
||||
$query = '
|
||||
SELECT id, path
|
||||
SELECT id, path, representative_ext
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE storage_category_id IN ('.implode(',', $cat_ids).')';
|
||||
if ($only_new)
|
||||
|
@ -314,12 +316,6 @@ SELECT id, path
|
|||
}
|
||||
$query.= '
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$files[$row['id']] = $row['path'];
|
||||
}
|
||||
|
||||
return $files;
|
||||
return hash_from_query($query, 'id');
|
||||
}
|
||||
?>
|
|
@ -480,7 +480,7 @@ SELECT
|
|||
{
|
||||
$conf['use_exif'] = false;
|
||||
}
|
||||
update_metadata(array($image_id=>$file_path));
|
||||
sync_metadata(array($image_id));
|
||||
|
||||
invalidate_user_cache();
|
||||
|
||||
|
|
|
@ -94,14 +94,7 @@ SELECT category_id
|
|||
|
||||
if (isset($_GET['sync_metadata']))
|
||||
{
|
||||
$query = '
|
||||
SELECT path
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id = '.$_GET['image_id'].'
|
||||
;';
|
||||
list($path) = pwg_db_fetch_row(pwg_query($query));
|
||||
update_metadata(array($_GET['image_id'] => $path));
|
||||
|
||||
sync_metadata(array( intval($_GET['image_id'])));
|
||||
array_push($page['infos'], l10n('Metadata synchronized from file'));
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,15 @@ var $site_url;
|
|||
function LocalSiteReader($url)
|
||||
{
|
||||
$this->site_url = $url;
|
||||
global $conf;
|
||||
if (!isset($conf['flip_file_ext']))
|
||||
{
|
||||
$conf['flip_file_ext'] = array_flip($conf['file_ext']);
|
||||
}
|
||||
if (!isset($conf['flip_picture_ext']))
|
||||
{
|
||||
$conf['flip_picture_ext'] = array_flip($conf['picture_ext']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -68,15 +77,11 @@ function get_full_directories($basedir)
|
|||
* Returns an array with all file system files according to $conf['file_ext']
|
||||
* and $conf['picture_ext']
|
||||
* @param string $path recurse in this directory
|
||||
* @return array like "pic.jpg"=>array('tn_ext'=>'jpg' ... )
|
||||
* @return array like "pic.jpg"=>array('representative_ext'=>'jpg' ... )
|
||||
*/
|
||||
function get_elements($path)
|
||||
{
|
||||
global $conf;
|
||||
if (!isset($conf['flip_file_ext']))
|
||||
{
|
||||
$conf['flip_file_ext'] = array_flip($conf['file_ext']);
|
||||
}
|
||||
|
||||
$subdirs = array();
|
||||
$fs = array();
|
||||
|
@ -93,9 +98,13 @@ function get_elements($path)
|
|||
|
||||
if ( isset($conf['flip_file_ext'][$extension]) )
|
||||
{
|
||||
$tn_ext = $this->get_tn_ext($path, $filename_wo_ext);
|
||||
$representative_ext = null;
|
||||
if (! isset($conf['flip_picture_ext'][$extension]) )
|
||||
{
|
||||
$representative_ext = $this->get_representative_ext($path, $filename_wo_ext);
|
||||
}
|
||||
$fs[ $path.'/'.$node ] = array(
|
||||
'tn_ext' => $tn_ext,
|
||||
'representative_ext' => $representative_ext,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -123,7 +132,7 @@ function get_elements($path)
|
|||
// files update/synchronization
|
||||
function get_update_attributes()
|
||||
{
|
||||
return array('tn_ext', 'has_high', 'representative_ext');
|
||||
return array('representative_ext');
|
||||
}
|
||||
|
||||
function get_element_update_attributes($file)
|
||||
|
@ -132,19 +141,17 @@ function get_element_update_attributes($file)
|
|||
$data = array();
|
||||
|
||||
$filename = basename($file);
|
||||
$dirname = dirname($file);
|
||||
$filename_wo_ext = get_filename_wo_extension($filename);
|
||||
$extension = get_extension($filename);
|
||||
|
||||
$data['tn_ext'] = $this->get_tn_ext($dirname, $filename_wo_ext);
|
||||
$data['has_high'] = $this->get_has_high($dirname, $filename);
|
||||
|
||||
if ( !isset($conf['flip_picture_ext'][$extension]) )
|
||||
$representative_ext = null;
|
||||
if (! isset($conf['flip_picture_ext'][$extension]) )
|
||||
{
|
||||
$data['representative_ext'] = $this->get_representative_ext(
|
||||
$dirname, $filename_wo_ext
|
||||
);
|
||||
$dirname = dirname($file);
|
||||
$filename_wo_ext = get_filename_wo_extension($filename);
|
||||
$representative_ext = $this->get_representative_ext($dirname, $filename_wo_ext);
|
||||
}
|
||||
|
||||
$data['representative_ext'] = $representative_ext;
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
@ -152,83 +159,13 @@ function get_element_update_attributes($file)
|
|||
// metadata update/synchronization according to configuration
|
||||
function get_metadata_attributes()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$update_fields = array('filesize', 'width', 'height', 'high_filesize', 'high_width', 'high_height');
|
||||
|
||||
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_keys($conf['use_iptc_mapping'])
|
||||
);
|
||||
}
|
||||
|
||||
return $update_fields;
|
||||
return get_sync_metadata_attributes();
|
||||
}
|
||||
|
||||
// returns a hash of attributes (metadata+filesize+width,...) for file
|
||||
function get_element_metadata($file, $has_high = false)
|
||||
function get_element_metadata($infos)
|
||||
{
|
||||
global $conf;
|
||||
if (!is_file($file))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
$data = array();
|
||||
|
||||
$data['filesize'] = floor(filesize($file)/1024);
|
||||
|
||||
if ($image_size = @getimagesize($file))
|
||||
{
|
||||
$data['width'] = $image_size[0];
|
||||
$data['height'] = $image_size[1];
|
||||
}
|
||||
|
||||
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'])
|
||||
{
|
||||
$exif = get_sync_exif_data($file);
|
||||
if (count($exif) == 0 and isset($data['high_filesize']))
|
||||
{
|
||||
$exif = get_sync_exif_data($high_file);
|
||||
}
|
||||
$data = array_merge($data, $exif);
|
||||
}
|
||||
|
||||
if ($conf['use_iptc'])
|
||||
{
|
||||
$iptc = get_sync_iptc_data($file);
|
||||
if (count($iptc) == 0 and isset($data['high_filesize']))
|
||||
{
|
||||
$iptc = get_sync_iptc_data($high_file);
|
||||
}
|
||||
$data = array_merge($data, $iptc);
|
||||
}
|
||||
|
||||
return $data;
|
||||
return get_sync_metadata($infos);
|
||||
}
|
||||
|
||||
|
||||
|
@ -248,34 +185,6 @@ function get_representative_ext($path, $filename_wo_ext)
|
|||
return null;
|
||||
}
|
||||
|
||||
function get_tn_ext($path, $filename_wo_ext)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$base_test =
|
||||
$path.'/thumbnail/'.$conf['prefix_thumbnail'].$filename_wo_ext.'.';
|
||||
|
||||
foreach ($conf['picture_ext'] as $ext)
|
||||
{
|
||||
$test = $base_test.$ext;
|
||||
if (is_file($test))
|
||||
{
|
||||
return $ext;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function get_has_high($path, $filename)
|
||||
{
|
||||
if (is_file($path.'/pwg_high/'.$filename))
|
||||
{
|
||||
return 'true';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
|
@ -80,6 +80,7 @@ $infos = array();
|
|||
|
||||
if ($site_is_remote)
|
||||
{
|
||||
fatal_error('remote sites not supported');
|
||||
include_once(PHPWG_ROOT_PATH.'admin/site_reader_remote.php');
|
||||
$local_listing = null;
|
||||
if ( isset($_GET['local_listing'])
|
||||
|
@ -98,10 +99,6 @@ else
|
|||
$general_failure = true;
|
||||
if (isset($_POST['submit']))
|
||||
{
|
||||
if (!isset($conf['flip_picture_ext']))
|
||||
{
|
||||
$conf['flip_picture_ext'] = array_flip($conf['picture_ext']);
|
||||
}
|
||||
if ($site_reader->open())
|
||||
{
|
||||
$general_failure = false;
|
||||
|
@ -312,7 +309,7 @@ SELECT id_uppercat, MAX(rank)+1 AS next_rank
|
|||
'visible','status','rank','global_rank'
|
||||
);
|
||||
mass_inserts(CATEGORIES_TABLE, $dbfields, $inserts);
|
||||
|
||||
|
||||
// add default permissions to categories
|
||||
$category_ids = array();
|
||||
foreach ($inserts as $category)
|
||||
|
@ -321,7 +318,7 @@ SELECT id_uppercat, MAX(rank)+1 AS next_rank
|
|||
}
|
||||
add_permission_on_category($category_ids, get_admins());
|
||||
}
|
||||
|
||||
|
||||
$counts['new_categories'] = count($inserts);
|
||||
}
|
||||
|
||||
|
@ -373,7 +370,7 @@ SELECT id, path
|
|||
WHERE storage_category_id IN ('
|
||||
.wordwrap(
|
||||
implode(', ', $cat_ids),
|
||||
80,
|
||||
160,
|
||||
"\n"
|
||||
).')';
|
||||
$db_elements = simple_hash_from_query($query, 'id', 'path');
|
||||
|
@ -410,60 +407,43 @@ SELECT id, path
|
|||
continue;
|
||||
}
|
||||
|
||||
if ( isset( $conf['flip_picture_ext'][get_extension($filename)] )
|
||||
and !isset($fs[$path]['tn_ext']) )
|
||||
{ // For a picture thumbnail is mandatory and for non picture element,
|
||||
// thumbnail and representative are optionnal
|
||||
array_push(
|
||||
$errors,
|
||||
array(
|
||||
'path' => $path,
|
||||
'type' => 'PWG-UPDATE-2'
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
$insert = array(
|
||||
'id' => $next_element_id++,
|
||||
'file' => $filename,
|
||||
'date_available' => CURRENT_DATE,
|
||||
'path' => $path,
|
||||
'representative_ext' => $fs[$path]['representative_ext'],
|
||||
'storage_category_id' => $db_fulldirs[$dirname],
|
||||
'added_by' => $user['id'],
|
||||
);
|
||||
|
||||
if ( $_POST['privacy_level']!=0 )
|
||||
{
|
||||
$insert = array(
|
||||
'id' => $next_element_id++,
|
||||
'file' => $filename,
|
||||
'date_available' => CURRENT_DATE,
|
||||
'path' => $path,
|
||||
'tn_ext' => isset($fs[$path]['tn_ext'])
|
||||
? $fs[$path]['tn_ext']
|
||||
: null,
|
||||
'storage_category_id' => $db_fulldirs[$dirname],
|
||||
'added_by' => $user['id'],
|
||||
);
|
||||
|
||||
if ( $_POST['privacy_level']!=0 )
|
||||
{
|
||||
$insert['level'] = $_POST['privacy_level'];
|
||||
}
|
||||
|
||||
array_push(
|
||||
$inserts,
|
||||
$insert
|
||||
);
|
||||
|
||||
array_push(
|
||||
$insert_links,
|
||||
array(
|
||||
'image_id' => $insert['id'],
|
||||
'category_id' => $insert['storage_category_id'],
|
||||
)
|
||||
);
|
||||
|
||||
array_push(
|
||||
$infos,
|
||||
array(
|
||||
'path' => $insert['path'],
|
||||
'info' => l10n('added')
|
||||
)
|
||||
);
|
||||
|
||||
$caddiables[] = $insert['id'];
|
||||
$insert['level'] = $_POST['privacy_level'];
|
||||
}
|
||||
|
||||
array_push(
|
||||
$inserts,
|
||||
$insert
|
||||
);
|
||||
|
||||
array_push(
|
||||
$insert_links,
|
||||
array(
|
||||
'image_id' => $insert['id'],
|
||||
'category_id' => $insert['storage_category_id'],
|
||||
)
|
||||
);
|
||||
|
||||
array_push(
|
||||
$infos,
|
||||
array(
|
||||
'path' => $insert['path'],
|
||||
'info' => l10n('added')
|
||||
)
|
||||
);
|
||||
|
||||
$caddiables[] = $insert['id'];
|
||||
}
|
||||
|
||||
if (count($inserts) > 0)
|
||||
|
@ -560,26 +540,12 @@ if (isset($_POST['submit'])
|
|||
$datas = array();
|
||||
foreach ( $files as $id=>$file )
|
||||
{
|
||||
$file = $file['path'];
|
||||
$data = $site_reader->get_element_update_attributes($file);
|
||||
if ( !is_array($data) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$extension = get_extension($file);
|
||||
if ( isset($conf['flip_picture_ext'][$extension]) )
|
||||
{
|
||||
if ( !isset($data['tn_ext']) )
|
||||
{
|
||||
array_push(
|
||||
$errors,
|
||||
array(
|
||||
'path' => $file,
|
||||
'type' => 'PWG-UPDATE-2'
|
||||
)
|
||||
);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$data['id']=$id;
|
||||
array_push($datas, $data);
|
||||
|
@ -655,32 +621,9 @@ if (isset($_POST['submit']) and isset($_POST['sync_meta'])
|
|||
$datas = array();
|
||||
$tags_of = array();
|
||||
|
||||
$has_high_images = array();
|
||||
|
||||
$image_ids = array();
|
||||
foreach ($files as $id => $file)
|
||||
foreach ( $files as $id => $element_infos )
|
||||
{
|
||||
array_push($image_ids, $id);
|
||||
}
|
||||
|
||||
if (count($image_ids) > 0)
|
||||
{
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE has_high = \'true\'
|
||||
AND id IN (
|
||||
'.wordwrap(implode(', ', $image_ids), 80, "\n").'
|
||||
)';
|
||||
$has_high_images = array_from_query($query, 'id' );
|
||||
}
|
||||
|
||||
foreach ( $files as $id=>$file )
|
||||
{
|
||||
$data = $site_reader->get_element_metadata(
|
||||
$file,
|
||||
in_array($id, $has_high_images)
|
||||
);
|
||||
$data = $site_reader->get_element_metadata($element_infos);
|
||||
|
||||
if ( is_array($data) )
|
||||
{
|
||||
|
@ -709,7 +652,7 @@ SELECT id
|
|||
}
|
||||
else
|
||||
{
|
||||
array_push($errors, array('path' => $file, 'type' => 'PWG-ERROR-NO-FS'));
|
||||
array_push($errors, array('path' => $element_infos['path'], 'type' => 'PWG-ERROR-NO-FS'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -817,7 +760,7 @@ else
|
|||
'meta_all' => false,
|
||||
'meta_empty_overrides' => false,
|
||||
);
|
||||
|
||||
|
||||
$cat_selected = array();
|
||||
|
||||
if (isset($_GET['cat_id']))
|
||||
|
|
|
@ -42,10 +42,7 @@ final class SrcImage
|
|||
}
|
||||
elseif (!empty($infos['representative_ext']))
|
||||
{
|
||||
$pi = pathinfo($infos['path']);
|
||||
$file_wo_ext = get_filename_wo_extension($pi['basename']);
|
||||
$this->rel_path = $pi['dirname'].'/pwg_representative/'
|
||||
.$file_wo_ext.'.'.$infos['representative_ext'];
|
||||
$this->rel_path = original_to_representative($infos['path'], $infos['representative_ext']);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -731,6 +731,16 @@ function check_theme_installed($theme_id)
|
|||
return file_exists($conf['themes_dir'].'/'.$theme_id.'/'.'themeconf.inc.php');
|
||||
}
|
||||
|
||||
/** Transforms an original path to its pwg representative */
|
||||
function original_to_representative($path, $representative_ext)
|
||||
{
|
||||
$pos = strrpos($path, '/');
|
||||
$path = substr_replace($path, 'pwg_representative/', $pos+1, 0);
|
||||
$pos = strrpos($path, '.');
|
||||
return substr_replace($path, $representative_ext, $pos+1);
|
||||
}
|
||||
|
||||
|
||||
/* Returns the PATH to the thumbnail to be displayed. If the element does not
|
||||
* have a thumbnail, the default mime image path is returned. The PATH can be
|
||||
* used in the php script, but not sent to the browser.
|
||||
|
|
|
@ -1741,7 +1741,7 @@ SELECT
|
|||
|
||||
// update metadata from the uploaded file (exif/iptc)
|
||||
require_once(PHPWG_ROOT_PATH.'admin/include/functions_metadata.php');
|
||||
update_metadata(array($image_id=>$file_path));
|
||||
sync_metadata(array($image_id));
|
||||
}
|
||||
|
||||
$info_columns = array(
|
||||
|
@ -1925,16 +1925,9 @@ SELECT id, name, permalink
|
|||
|
||||
// update metadata from the uploaded file (exif/iptc), even if the sync
|
||||
// was already performed by add_uploaded_file().
|
||||
$query = '
|
||||
SELECT
|
||||
path
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id = '.$image_id.'
|
||||
;';
|
||||
list($file_path) = pwg_db_fetch_row(pwg_query($query));
|
||||
|
||||
require_once(PHPWG_ROOT_PATH.'admin/include/functions_metadata.php');
|
||||
update_metadata(array($image_id=>$file_path));
|
||||
sync_metadata(array($image_id));
|
||||
|
||||
return array(
|
||||
'image_id' => $image_id,
|
||||
|
@ -3328,7 +3321,7 @@ SELECT id, path, tn_ext, has_high, width, height
|
|||
global $conf;
|
||||
$conf['use_exif'] = false;
|
||||
$conf['use_iptc'] = false;
|
||||
update_metadata(array($image['id'] => $image['path']));
|
||||
sync_metadata(array($image['id']));
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue