]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
improved exif code - catching pngs, gifs, etc
authorCash Costello <cash.costello@gmail.com>
Sun, 7 Jun 2009 01:28:16 +0000 (01:28 +0000)
committerCash Costello <cash.costello@gmail.com>
Sun, 7 Jun 2009 01:28:16 +0000 (01:28 +0000)
The display code should be moved to a view to keep it separate from the controller code

actions/upload.php
lib/exif.php

index da8af6e699e5941a9514ccfe479121eae3b35870..717c3274ff0c19e833d065de210ce9c7dd394c74 100644 (file)
                }\r
 \r
                //get and store the exif data\r
-               td_get_exif($file);     \r
+               td_get_exif($file);\r
                array_push($uploaded_images, $file->guid);\r
 \r
                if($river_view == "all") {\r
index 1bebb5fdcd7b888029784798053b2f7946537acc..5382fbc9f8396225f1369b1681d2eca5bc948aa5 100644 (file)
@@ -1,27 +1,39 @@
 <?php
 include_once dirname(__FILE__) . "/tidypics.php";
 
-function td_get_exif($file_guid) {
-       $file = new ElggFile($file_guid);
+function td_get_exif($file) {
+       $mime = $file->mimetype;
+       if ($mime != 'image/jpeg' && $mime != 'image/pjpeg')
+               return;
+
        $filename = $file->getFilenameOnFilestore();
        $exif = exif_read_data($filename);
-       create_metadata($file->getGUID(), "tp_exif", serialize($exif), "string", $file->getObjectOwnerGUID(), 2);
+       create_metadata($file->getGUID(), "tp_exif", serialize($exif), "string", $file->getObjectOwnerGUID(), ACCESS_PUBLIC);
 }
 
 function tp_exif_formatted($file_guid) {
+
        $metadata_exif = get_metadata_byname($file_guid, "tp_exif");
        if(!$metadata_exif) { //try to load it from the file if its not in the database
-               td_get_exif($file_guid);
+               $file = new ElggFile($file_guid);
+               td_get_exif($file);
+               unset($file);
                $metadata_exif = get_metadata_byname($file_guid, "tp_exif");
        }
        
        if($metadata_exif) {
+
                $exif = unserialize($metadata_exif["value"]);
                
                //got the code snippet below from http://www.zenphoto.org/support/topic.php?id=17
                //convert the raw values to understandible values
                $Fnumber = explode("/", $exif['FNumber']);
-               $Fnumber = $Fnumber[0] / $Fnumber[1];
+               
+               if ($Fnumber[1] != 0)
+                       $Fnumber = $Fnumber[0] / $Fnumber[1];
+               else
+                       $Fnumber = 0;
+               
                if(!$Fnumber) {
                        $Fnumber = "N/A";
                } else {
@@ -29,7 +41,10 @@ function tp_exif_formatted($file_guid) {
                }
                
                $Focal = explode("/", $exif['FocalLength']);
-               $Focal = $Focal[0] / $Focal[1];
+               if ($Focal[1] != 0)
+                       $Focal = $Focal[0] / $Focal[1];
+               else
+                       $Focal = 0;
                if(!$Focal || round($Focal) == "0") $Focal = 0;
                if(round($Focal) == 0) {
                        $Focal = "N/A";