]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/LinkbackPlugin.php
Merge branch '0.8.x' into invite-enabled
[quix0rs-gnu-social.git] / plugins / LinkbackPlugin.php
index 1b5365100eb686c8687b1191073dc640221ea6e5..93a0294c4ca9cbd23cd720c4909089b667494136 100644 (file)
@@ -99,18 +99,19 @@ class LinkbackPlugin extends Plugin
 
         if (array_key_exists('X-Pingback', $result->headers)) {
             $pb = $result->headers['X-Pingback'];
-        } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?/?>/',
+        } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?\/?>/',
                               $result->body,
                               $match)) {
             $pb = $match[1];
         }
 
-        $tb = $this->getTrackback($result->body, $result->final_url);
-
-        if (!empty($tb)) {
-            $this->trackback($result->final_url, $tb);
-        } else if (!empty($pb)) {
+        if (!empty($pb)) {
             $this->pingback($result->final_url, $pb);
+        } else {
+            $tb = $this->getTrackback($result->body, $result->final_url);
+            if (!empty($tb)) {
+                $this->trackback($result->final_url, $tb);
+            }
         }
 
         return $orig;
@@ -120,6 +121,12 @@ class LinkbackPlugin extends Plugin
     {
         $args = array($this->notice->uri, $url);
 
+        if (!extension_loaded('xmlrpc')) {
+            if (!dl('xmlrpc.so')) {
+                common_log(LOG_ERR, "Can't pingback; xmlrpc extension not available.");
+            }
+        }
+
         $request = xmlrpc_encode_request('pingback.ping', $args);
         $context = stream_context_create(array('http' => array('method' => "POST",
                                                                'header' =>
@@ -140,7 +147,7 @@ class LinkbackPlugin extends Plugin
     }
 
     // Largely cadged from trackback_cls.php by
-    // Ran Aroussi <ran@blogish.org>, GPL2
+    // Ran Aroussi <ran@blogish.org>, GPL2 or any later version
     // http://phptrackback.sourceforge.net/
 
     function getTrackback($text, $url)