]> git.mxchange.org Git - friendica-addons.git/blobdiff - facebook/facebook.php
add reminder if configuration was not done by the admin
[friendica-addons.git] / facebook / facebook.php
index 30f728628f0cb8786546752822d838d83a7c49a3..4c1c0a14142dcc34e5768ceb103454fc0d5f2f2c 100644 (file)
@@ -3,7 +3,8 @@
  * Name: Facebook Connector
  * Version: 1.3
  * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- *         Tobias Hößl <https://github.com/CatoTH/>
+ * Author: Tobias Hößl <https://github.com/CatoTH/>
+ *
  */
 
 /**
@@ -162,10 +163,11 @@ function facebook_init(&$a) {
                }
        }
 
-
        if($a->argc != 2)
                return;
+
        $nick = $a->argv[1];
+
        if(strlen($nick))
                $r = q("SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1",
                                dbesc($nick)
@@ -381,10 +383,12 @@ function fb_get_friends_sync_full($uid, $access_token, $persons) {
         if($s) {
             $results = json_decode($s);
             logger('fb_get_friends: info: ' . print_r($results,true), LOGGER_DATA);
-            foreach ($results as $contact) {
-                if ($contact->code != 200) logger('fb_get_friends: not found: ' . print_r($contact,true), LOGGER_DEBUG);
-                else fb_get_friends_sync_parsecontact($uid, json_decode($contact->body));
-            }
+                       if(count($results)) {
+                   foreach ($results as $contact) {
+                   if ($contact->code != 200) logger('fb_get_friends: not found: ' . print_r($contact,true), LOGGER_DEBUG);
+                       else fb_get_friends_sync_parsecontact($uid, json_decode($contact->body));
+               }
+                       }
         }
     }
 }
@@ -758,7 +762,7 @@ function facebook_plugin_admin(&$a, &$o){
                elseif (is_array($subs)) {
                        $o .= t('The given API Key seems to work correctly.') . '<br>';
                        $working_connection = true;
-               } else $o .= t('The correctness of the API Key could not be detected. Somthing strange\'s going on.') . '<br>';
+               } else $o .= t('The correctness of the API Key could not be detected. Something strange\'s going on.') . '<br>';
        }
        
        $o .= '<label for="fb_appid">' . t('App-ID / API-Key') . '</label><input id="fb_appid" name="appid" type="text" value="' . escape_tags($appid ? $appid : "") . '"><br style="clear: both;">';
@@ -1004,6 +1008,10 @@ function facebook_post_hook(&$a,&$b) {
                                        if(preg_match("/\[img\](.*?)\[\/img\]/is",$b['body'],$matches))
                                                $image = $matches[1];
 
+                               // When saved into the database the content is sent through htmlspecialchars
+                               // That means that we have to decode all image-urls
+                               $image = htmlspecialchars_decode($image);
+
                                // Checking for a bookmark element
                                $body = $b['body'];
                                if (strpos($body, "[bookmark") !== false) {
@@ -1087,13 +1095,13 @@ function facebook_post_hook(&$a,&$b) {
 
                                // Fallback - if message is empty
                                if(!strlen($msg))
-                                       $msg = $link;
+                                       $msg = $linkname;
 
                                if(!strlen($msg))
-                                       $msg = $image;
+                                       $msg = $link;
 
                                if(!strlen($msg))
-                                       $msg = $linkname;
+                                       $msg = $image;
 
                                // If there is nothing to post then exit
                                if(!strlen($msg))
@@ -1110,10 +1118,10 @@ function facebook_post_hook(&$a,&$b) {
                                                'access_token' => $fb_token,
                                                'message' => $msg
                                        );
-                                       if(isset($image)) {
+                                       if(trim($image) != "") {
                                                $postvars['picture'] = $image;
                                        }
-                                       if(isset($link)) {
+                                       if(trim($link) != "") {
                                                $postvars['link'] = $link;
 
                                                // The following doesn't work - why?
@@ -1121,7 +1129,7 @@ function facebook_post_hook(&$a,&$b) {
                                                        $postvars['source'] = $link;
                                                }
                                        }
-                                       if(isset($linkname))
+                                       if(trim($linkname) != "")
                                                $postvars['name'] = $linkname;
                                }
 
@@ -1236,8 +1244,12 @@ function facebook_post_local(&$a,&$b) {
                $fb_enable = (($fb_post && x($_REQUEST,'facebook_enable')) ? intval($_REQUEST['facebook_enable']) : 0);
 
                // if API is used, default to the chosen settings
-               if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'facebook','post_by_default')))
-                       $fb_enable = 1;
+               // but allow a specific override
+
+               if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'facebook','post_by_default'))) {
+                       if(! x($_REQUEST,'facebook_enable'))
+                               $fb_enable = 1;
+               }
 
                if(! $fb_enable)
                        return;