diff -Naur cpg1410/displayimage.php coppermine2/displayimage.php
--- cpg1410/displayimage.php 2006-10-29 22:58:36.000000000 -0500
+++ coppermine2/displayimage.php 2007-04-21 01:51:10.000000000 -0400
@@ -149,7 +149,7 @@
$path_to_pic = $CONFIG['fullpath'] . $CURRENT_PIC_DATA['filepath'] . $CURRENT_PIC_DATA['filename'];
- if ($CONFIG['read_exif_data']) $exif = exif_parse_file($path_to_pic);
+ if ($CONFIG['read_exif_data']) $exif = exif_parse_file($path_to_pic, 0);
if (isset($exif) && is_array($exif)) {
array_walk($exif, 'sanitize_data');
diff -Naur cpg1410/include/exif_php.inc.php coppermine2/include/exif_php.inc.php
--- cpg1410/include/exif_php.inc.php 2006-10-29 22:56:50.000000000 -0500
+++ coppermine2/include/exif_php.inc.php 2007-04-21 02:43:34.000000000 -0400
@@ -24,7 +24,7 @@
define("EXIF_CACHE_FILE","exif.dat");
require("include/exif.php");
-function exif_parse_file($filename)
+function exif_parse_file($filename, $addfile )
{
global $CONFIG, $lang_picinfo;
@@ -82,15 +82,21 @@
$exifParsed = array();
- foreach ($exif as $key => $val) {
- if (strpos($showExifStr,"|".$key) && isset($val)){
- $exifParsed[$lang_picinfo[$key]] = $val;
- //$exifParsed[$key] = $val;
- }
+
+ foreach ($exif as $key => $val)
+ {
+ if ( $addfile == 0 )
+ {
+ if (strpos($showExifStr,"|".$key) && isset($val))
+ {
+ $exifParsed[$lang_picinfo[$key]] = $val;
+ }
+ }
+ else
+ $exifParsed[$key] = $val;
}
ksort($exifParsed);
-
return $exifParsed;
}
?>
diff -Naur cpg1410/include/functions.inc.php coppermine2/include/functions.inc.php
--- cpg1410/include/functions.inc.php 2006-10-29 22:56:50.000000000 -0500
+++ coppermine2/include/functions.inc.php 2007-04-21 03:01:40.000000000 -0400
@@ -896,8 +896,8 @@
'nd' => 'filename DESC',
'ta'=>'title ASC',
'td'=>'title DESC',
- 'da' => 'pid ASC',
- 'dd' => 'pid DESC',
+ 'da' => 'ptime ASC, pid ASC',
+ 'dd' => 'ptime DESC, pid DESC',
'pa' => 'position ASC',
'pd' => 'position DESC',
);
@@ -2995,4 +2995,4 @@
$query = "DELETE FROM {$CONFIG['TABLE_VOTE_STATS']} WHERE $clause";
cpg_db_query($query);
}
-?>
\ No newline at end of file
+?>
diff -Naur cpg1410/include/picmgmt.inc.php coppermine2/include/picmgmt.inc.php
--- cpg1410/include/picmgmt.inc.php 2006-10-29 22:56:50.000000000 -0500
+++ coppermine2/include/picmgmt.inc.php 2007-04-21 15:35:20.000000000 -0400
@@ -23,6 +23,10 @@
include("include/iptc.inc.php");
}
+if($CONFIG['read_exif_data'] ){
+ include("include/exif_php.inc.php");
+}
+
// Add a picture to an album
function add_picture($aid, $filepath, $filename, $position = 0, $title = '', $caption = '', $keywords = '', $user1 = '', $user2 = '', $user3 = '', $user4 = '', $category = 0, $raw_ip = '', $hdr_ip = '', $iwidth = 0, $iheight = 0)
{
@@ -90,6 +94,29 @@
cpg_die(ERROR, $msg, __FILE__, __LINE__);
}
}
+
+
+ if ( $CONFIG['read_exif_data'])
+ {
+ $exif = exif_parse_file($image, 1);
+
+
+ $size = count($exif);
+ }
+
+ if (isset($exif) && is_array($exif) && isset($exif['DateTime'])) {
+ // Transform EXIF date format to unixtime
+ $picture_time = mktime(substr($exif['DateTime'], 11, 2), substr($exif['DateTime'], 14, 2), substr($exif['DateTime'], 17, 2), substr($exif['DateTime'], 5, 2), substr($exif['DateTime'], 8, 2), substr($exif['DateTime'], 0, 4) );
+ $creation_time = time();
+ }
+ else
+ {
+ $picture_time = time();
+ $creation_time = $picture_time;
+ }
+
+
+
// Test if picture requires approval
if (GALLERY_ADMIN_MODE) {
$approved = 'YES';
@@ -112,6 +139,7 @@
$CURRENT_PIC_DATA['total_filesize'] = $total_filesize;
$CURRENT_PIC_DATA['pwidth'] = $imagesize[0];
$CURRENT_PIC_DATA['pheight'] = $imagesize[1];
+ $CURRENT_PIC_DATA['ptime'] = $picture_time;
$CURRENT_PIC_DATA['owner_id'] = $user_id;
$CURRENT_PIC_DATA['owner_name'] = $username;
$CURRENT_PIC_DATA['title'] = $title;
@@ -127,7 +155,12 @@
$CURRENT_PIC_DATA['position'] = $position;
$CURRENT_PIC_DATA = CPGPluginAPI::filter('add_file_data',$CURRENT_PIC_DATA);
- $query = "INSERT INTO {$CONFIG['TABLE_PICTURES']} (aid, filepath, filename, filesize, total_filesize, pwidth, pheight, ctime, owner_id, owner_name, title, caption, keywords, approved, user1, user2, user3, user4, pic_raw_ip, pic_hdr_ip, position) VALUES ('{$CURRENT_PIC_DATA['aid']}', '" . addslashes($CURRENT_PIC_DATA['filepath']) . "', '" . addslashes($CURRENT_PIC_DATA['filename']) . "', '{$CURRENT_PIC_DATA['filesize']}', '{$CURRENT_PIC_DATA['total_filesize']}', '{$CURRENT_PIC_DATA['pwidth']}', '{$CURRENT_PIC_DATA['pheight']}', '" . time() . "', '{$CURRENT_PIC_DATA['owner_id']}', '{$CURRENT_PIC_DATA['owner_name']}','{$CURRENT_PIC_DATA['title']}', '{$CURRENT_PIC_DATA['caption']}', '{$CURRENT_PIC_DATA['keywords']}', '{$CURRENT_PIC_DATA['approved']}', '{$CURRENT_PIC_DATA['user1']}', '{$CURRENT_PIC_DATA['user2']}', '{$CURRENT_PIC_DATA['user3']}', '{$CURRENT_PIC_DATA['user4']}', '{$CURRENT_PIC_DATA['pic_raw_ip']}', '{$CURRENT_PIC_DATA['pic_hdr_ip']}', '{$CURRENT_PIC_DATA['position']}')";
+// $query = "INSERT INTO {$CONFIG['TABLE_PICTURES']} (aid, filepath, filename, filesize, total_filesize, pwidth, pheight, ctime, owner_id, owner_name, title, caption, keywords, approved, user1, user2, user3, user4, pic_raw_ip, pic_hdr_ip, position) VALUES ('{$CURRENT_PIC_DATA['aid']}', '" . addslashes($CURRENT_PIC_DATA['filepath']) . "', '" . addslashes($CURRENT_PIC_DATA['filename']) . "', '{$CURRENT_PIC_DATA['filesize']}', '{$CURRENT_PIC_DATA['total_filesize']}', '{$CURRENT_PIC_DATA['pwidth']}', '{$CURRENT_PIC_DATA['pheight']}', '" . time() . "', '{$CURRENT_PIC_DATA['owner_id']}', '{$CURRENT_PIC_DATA['owner_name']}','{$CURRENT_PIC_DATA['title']}', '{$CURRENT_PIC_DATA['caption']}', '{$CURRENT_PIC_DATA['keywords']}', '{$CURRENT_PIC_DATA['approved']}', '{$CURRENT_PIC_DATA['user1']}', '{$CURRENT_PIC_DATA['user2']}', '{$CURRENT_PIC_DATA['user3']}', '{$CURRENT_PIC_DATA['user4']}', '{$CURRENT_PIC_DATA['pic_raw_ip']}', '{$CURRENT_PIC_DATA['pic_hdr_ip']}', '{$CURRENT_PIC_DATA['position']}')";
+
+
+ $query = "INSERT INTO {$CONFIG['TABLE_PICTURES']} (aid, filepath, filename, filesize, total_filesize, pwidth, pheight, ctime, ptime, owner_id, owner_name, title, caption, keywords, approved, user1, user2, user3, user4, pic_raw_ip, pic_hdr_ip, position) VALUES ('{$CURRENT_PIC_DATA['aid']}', '" . addslashes($CURRENT_PIC_DATA['filepath']) . "', '" . addslashes($CURRENT_PIC_DATA['filename']) . "', '{$CURRENT_PIC_DATA['filesize']}', '{$CURRENT_PIC_DATA['total_filesize']}', '{$CURRENT_PIC_DATA['pwidth']}', '{$CURRENT_PIC_DATA['pheight']}', '" . time() . "', '{$CURRENT_PIC_DATA['ptime']}', '{$CURRENT_PIC_DATA['owner_id']}', '{$CURRENT_PIC_DATA['owner_name']}','{$CURRENT_PIC_DATA['title']}', '{$CURRENT_PIC_DATA['caption']}', '{$CURRENT_PIC_DATA['keywords']}', '{$CURRENT_PIC_DATA['approved']}', '{$CURRENT_PIC_DATA['user1']}', '{$CURRENT_PIC_DATA['user2']}', '{$CURRENT_PIC_DATA['user3']}', '{$CURRENT_PIC_DATA['user4']}', '{$CURRENT_PIC_DATA['pic_raw_ip']}', '{$CURRENT_PIC_DATA['pic_hdr_ip']}', '{$CURRENT_PIC_DATA['position']}')";
+
+
$result = cpg_db_query($query);
return $result;
@@ -291,4 +324,4 @@
return true;
}
}
-?>
\ No newline at end of file
+?>
diff -Naur cpg1410/lang/english.php coppermine2/lang/english.php
--- cpg1410/lang/english.php 2006-10-29 22:56:32.000000000 -0500
+++ coppermine2/lang/english.php 2007-04-21 02:29:54.000000000 -0400
@@ -1904,6 +1904,11 @@
'Displays log files', //cpg1.4
);
$lang_util_php = array(
+ 'update_sort' => 'Update Sorting Date Filed',
+ 'update_sort_what' => 'Choose which date will be used to sort the pictures',
+ 'update_sort_exif' => 'Picture taken date - EXIF (If no date if found the upload date will be used.)',
+ 'update_sort_creation' => 'Upload date',
+ 'update_sort_no_exif' => 'No EXIF data',
'title' => 'Admin utilities (Resize pictures)',
'what_it_does' => 'What it does',
'file' => 'File',
@@ -2106,4 +2111,4 @@
'link' => 'this link', //cpg1.4
);
}
-?>
\ No newline at end of file
+?>
diff -Naur cpg1410/upload.php coppermine2/upload.php
--- cpg1410/upload.php 2006-10-29 22:58:38.000000000 -0500
+++ coppermine2/upload.php 2007-04-21 15:36:25.000000000 -0400
@@ -1218,7 +1218,6 @@
if (!(move_uploaded_file($_FILES['file_upload_array']['tmp_name'][$counter], $path_to_image))) {
// The file upload has failed.
-
$file_failure_array[] = array( 'failure_ordinal'=>$failure_ordinal, 'file_name'=> $file_name, 'error_code'=>$lang_upload_php['impossible']);
// There is no need for further tests or action, so skip the remainder of the iteration.
diff -Naur cpg1410/util.php coppermine2/util.php
--- cpg1410/util.php 2006-10-29 22:58:40.000000000 -0500
+++ coppermine2/util.php 2007-04-21 02:58:38.000000000 -0400
@@ -51,8 +51,15 @@
'),
+ 'exif_date' => array('updatesortingdate', $lang_util_php['update_sort'],'
+
+ '. $lang_util_php['update_sort_what'] .' (2):
+
+
'),
+
'del_titles' => array('del_titles', $lang_util_php['delete_title'], $lang_util_php['delete_title_explanation']),
+
'del_orig' => array('del_orig', $lang_util_php['delete_original'], $lang_util_php['delete_original_explanation']),
'del_norm' => array('del_norm', $lang_util_php['delete_intermediate'], $lang_util_php['delete_intermediate_explanation']),
@@ -65,6 +72,7 @@
'reset_views' => array('reset_views', $lang_util_php['reset_views'], $lang_util_php['reset_views_explanation']),
+
'php_info' => array('', '' . $lang_util_php['phpinfo'] . '', $lang_util_php['phpinfo_explanation']),
'upd_db' => array('', '' . $lang_util_php['update_db'].'',$lang_util_php['update_db_explanation']),
@@ -206,6 +214,57 @@
}
}
+function updatesortingdate()
+{
+ $albumid = $_POST['albumid'];
+ $dateselect = $_POST['dateselect'];
+ global $lang_util_php, $CONFIG;
+
+ $query = "SELECT UNIX_TIMESTAMP(mtime) as mtime, {$CONFIG['TABLE_PICTURES']}.* FROM {$CONFIG['TABLE_PICTURES']} WHERE aid = '$albumid'";
+ $result = MYSQL_QUERY($query);
+ $num = mysql_numrows($result);
+
+ $i = 0;
+ while ($i < $num) {
+ $filename = $CONFIG['fullpath'] . mysql_result($result, $i, "filepath") . mysql_result($result, $i, "filename");
+ $pid = mysql_result($result, $i, "pid");
+ $pdate = mysql_result($result, $i, "ctime");
+
+ if($dateselect == '0')
+ {
+ $query = "SELECT * FROM {$CONFIG['TABLE_EXIF']} WHERE filename='$filename' ";
+ $result2 = MYSQL_QUERY($query);
+
+ if(mysql_numrows($result2) == 1)
+ {
+ $exif = unserialize(mysql_result($result2, 0, "exifData"));
+
+ if (isset($exif) && is_array($exif) && isset($exif['DateTime']))
+ {
+ $pdate = mktime(substr($exif['DateTime'], 11, 2), substr($exif['DateTime'], 14, 2), substr($exif['DateTime'], 17, 2), substr($exif['DateTime'], 5, 2), substr($exif['DateTime'], 8, 2), substr($exif['DateTime'], 0, 4) );
+ }
+
+ $newdate = date('Y:m:d H:i:s', $pdate);
+ }
+ else
+ {
+ $newdate = $lang_util_php['update_sort_no_exif'];
+ }
+ else // Creation date
+ {
+ $newdate = date('Y:m:d H:i:s', $pdate);
+ }
+
+ print $lang_util_php['file'] . ': '. $filename.' ⇒ '. $newdate .'
';
+ my_flush();
+
+ $query = "UPDATE {$CONFIG['TABLE_PICTURES']} SET ptime='$pdate' WHERE pid='$pid' ";
+ MYSQL_QUERY($query);
+
+ ++$i;
+ }
+}
+
function filloptions()
{
global $CONFIG, $lang_util_php;