aboutsummaryrefslogtreecommitdiff
path: root/exif.module
diff options
context:
space:
mode:
authorSilvio <s1lv10@uol.com.br>2010-04-27 18:29:29 -0300
committerSilvio <s1lv10@uol.com.br>2010-04-27 18:29:29 -0300
commitb69b1c6c7de82c2b1c943d9f31b7e659ab4e1924 (patch)
tree9a5d5080653f58382171db9b7158a166a60f33d3 /exif.module
parent0d60e32584aeb64d0f4b8844c5ef49e57a0eada2 (diff)
downloadexif-b69b1c6c7de82c2b1c943d9f31b7e659ab4e1924.tar.gz
exif-b69b1c6c7de82c2b1c943d9f31b7e659ab4e1924.tar.bz2
Syncing to CVS head with proposed changes applied by the module maintainer
Diffstat (limited to 'exif.module')
-rwxr-xr-xexif.module42
1 files changed, 31 insertions, 11 deletions
diff --git a/exif.module b/exif.module
index 324512c..734ee92 100755
--- a/exif.module
+++ b/exif.module
@@ -1,5 +1,5 @@
<?php
-// $Id: exif.module,v 1.9.2.13 2010/03/19 22:17:00 rapsli Exp $:
+// $Id: exif.module,v 1.9.2.15 2010/04/27 20:53:13 rapsli Exp $:
/**
* @file implementing the drupal api
@@ -108,8 +108,14 @@ function exif_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
$data1 = _exif_reformat($exif->readExifTags($file, $ar_exif_fields));
$data2 = $exif->readIPTCTags($file, $ar_exif_fields);
- $data3 = $exif->readXMPTags($file, $ar_exif_fields);
- $data = array_merge($data1, $data2, $data3);
+
+ if (class_exists('SXMPFiles')) {
+ $data3 = $exif->readXMPTags($file, $ar_exif_fields);
+ $data = array_merge($data1, $data2, $data3);
+ }
+ else {
+ $data = array_merge($data1, $data2);
+ }
// Loop through every exif enabled field and set its value to the
// corresponding exif value. If no exif value was found, set the field
@@ -330,11 +336,25 @@ function _exif_reformat($data) {
if (is_array($value)) {
$value = array_change_key_case($value, CASE_LOWER);
}
- if ($key == 'gps_latitude') {
- $value = _exif_DMS2D($value, $data['gps_gpslatituderef']);
- }
- elseif ($key == 'gps_longitude') {
- $value = _exif_DMS2D($value, $data['gps_gpslongituderef']);
+
+ // Check for individual keys
+ switch ($key) {
+ case 'gpslatitude':
+ $value = _exif_DMS2D($value, $data['gpslatituderef']);
+ break;
+
+ case 'gpslongitude':
+ $value = _exif_DMS2D($value, $data['gpslongituderef']);
+ break;
+
+ case 'gps_gpslatitude':
+ $value = _exif_DMS2D($value, $data['gps_gpslatituderef']);
+ break;
+
+ case 'gps_gpslongitude':
+ $value = _exif_DMS2D($value, $data['gps_gpslongituderef']);
+ break;
+
}
}
return $data;
@@ -345,13 +365,13 @@ function _exif_reformat($data) {
*/
function _exif_DMS2D($value, $ref) {
$parts = split('/', $value[0]);
- $dec = $parts[0] / $parts[1];
+ $dec = (float) ((float) $parts[0] / (float) $parts[1]);
$parts = split('/', $value[1]);
- $dec += ($parts[0] / $parts[1]) / 60;
+ $dec += (float) (((float) $parts[0] / (float) $parts[1]) / 60);
$parts = split('/', $value[2]);
- $dec += ($parts[0] / $parts[1]) / 3600;
+ $dec += (float) (((float) $parts[0] / (float) $parts[1]) / 3600);
if ($ref == 'S' || $ref == 'W') $dec *= -1;
return $dec;