diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/functions_metadata.inc.php | 44 | ||||
-rw-r--r-- | include/picture_metadata.inc.php | 21 |
2 files changed, 32 insertions, 33 deletions
diff --git a/include/functions_metadata.inc.php b/include/functions_metadata.inc.php index 2b298606f..95ed2befc 100644 --- a/include/functions_metadata.inc.php +++ b/include/functions_metadata.inc.php @@ -117,31 +117,25 @@ function get_exif_data($filename, $map) // Read EXIF data if ($exif = @read_exif_data($filename)) { - if ($map != null) - { - foreach ($map as $key => $field) - { - if (strpos($field, ';') === false) - { - if (isset($exif[$field])) - { - $result[$key] = $exif[$field]; - } - } - else - { - $tokens = explode(';', $field); - if (isset($exif[$tokens[0]][$tokens[1]])) - { - $result[$key] = $exif[$tokens[0]][$tokens[1]]; - } - } - } - } - else - { - $result = $exif; - } + $exif = trigger_event('format_exif_data', $exif, $filename ); + foreach ($map as $key => $field) + { + if (strpos($field, ';') === false) + { + if (isset($exif[$field])) + { + $result[$key] = $exif[$field]; + } + } + else + { + $tokens = explode(';', $field); + if (isset($exif[$tokens[0]][$tokens[1]])) + { + $result[$key] = $exif[$tokens[0]][$tokens[1]]; + } + } + } } return $result; diff --git a/include/picture_metadata.inc.php b/include/picture_metadata.inc.php index 9c5a4a980..b87ae0700 100644 --- a/include/picture_metadata.inc.php +++ b/include/picture_metadata.inc.php @@ -29,15 +29,20 @@ include_once(PHPWG_ROOT_PATH.'/include/functions_metadata.inc.php'); if (($conf['show_exif']) and (function_exists('read_exif_data'))) { - $exif = get_exif_data($picture['current']['image_path'], null); + $exif_mapping = array(); + foreach ($conf['show_exif_fields'] as $field) + { + $exif_mapping[$field] = $field; + } + + $exif = get_exif_data($picture['current']['image_path'], $exif_mapping); if (count($exif) == 0 and $picture['current']['has_high']) { - $exif = get_exif_data($picture['current']['high_url'], null); + $exif = get_exif_data($picture['current']['high_url'], $exif_mapping); } + if (count($exif) > 0) { - $exif = trigger_event('format_exif_data', $exif, $picture['current'] ); - $tpl_meta = array( 'TITLE' => 'EXIF Metadata', 'lines' => array(), @@ -60,14 +65,14 @@ if (($conf['show_exif']) and (function_exists('read_exif_data'))) else { $tokens = explode(';', $field); - if (isset($exif[$tokens[0]][$tokens[1]])) + if (isset($exif[$field])) { $key = $tokens[1]; - if (isset($lang['exif_field_'.$tokens[1]])) + if (isset($lang['exif_field_'.$key])) { - $key = $lang['exif_field_'.$tokens[1]]; + $key = $lang['exif_field_'.$key]; } - $tpl_meta['lines'][$key] = $exif[$tokens[0]][$tokens[1]]; + $tpl_meta['lines'][$key] = $exif[$field]; } } } |