]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Support multiple attachments per facebook update
authorCraig Andrews <candrews@integralblue.com>
Thu, 27 Aug 2009 01:54:57 +0000 (21:54 -0400)
committerCraig Andrews <candrews@integralblue.com>
Thu, 27 Aug 2009 01:54:57 +0000 (21:54 -0400)
lib/facebookutil.php

index e31a71f5ebbd45602e5d7d5ed18e1bdd2ea80236..67c6ecbdf1c7c0d5757d381dad012f466b700494 100644 (file)
@@ -178,20 +178,38 @@ function format_attachments($attachments)
     $fbattachment          = array();
     $fbattachment['media'] = array();
 
-    // Facebook only supports one attachment per item
+    foreach($attachments as $attachment)
+    {
+        $fbmedia = get_fbmedia_for_attachment($attachment);
+        if($fbmedia){
+            $fbattachment['media'][]=$fbmedia;
+        }else{
+            $fbattachment['name'] = ($attachment->title ?
+                                  $attachment->title : $attachment->url);
+            $fbattachment['href'] = $attachment->url;
+        }
+    }
+    if(count($fbattachment['media'])>0){
+        unset($fbattachment['name']);
+        unset($fbattachment['href']);
+    }
+    return $fbattachment;
+}
 
-    $attachment = $attachments[0];
+/**
+* given an File objects, returns an associative array suitable for Facebook media
+*/
+function get_fbmedia_for_attachment($attachment)
+{
     $fbmedia    = array();
 
     if (strncmp($attachment->mimetype, 'image/', strlen('image/')) == 0) {
         $fbmedia['type']         = 'image';
         $fbmedia['src']          = $attachment->url;
         $fbmedia['href']         = $attachment->url;
-        $fbattachment['media'][] = $fbmedia;
     } else if ($attachment->mimetype == 'audio/mpeg') {
         $fbmedia['type']         = 'mp3';
         $fbmedia['src']          = $attachment->url;
-        $fbattachment['media'][] = $fbmedia;
     }else if ($attachment->mimetype == 'application/x-shockwave-flash') {
         $fbmedia['type']         = 'flash';
 
@@ -200,14 +218,10 @@ function format_attachments($attachments)
         // $fbmedia['imgsrc']='';
 
         $fbmedia['swfsrc']       = $attachment->url;
-        $fbattachment['media'][] = $fbmedia;
     }else{
-        $fbattachment['name'] = ($attachment->title ?
-                                 $attachment->title : $attachment->url);
-        $fbattachment['href'] = $attachment->url;
+        return false;
     }
-
-    return $fbattachment;
+    return $fbmedia;
 }
 
 function remove_facebook_app($flink)