]> git.mxchange.org Git - friendica.git/commitdiff
use reltoabs - primarily for github activity feeds
authorfriendica <info@friendica.com>
Wed, 18 Jan 2012 00:30:32 +0000 (16:30 -0800)
committerfriendica <info@friendica.com>
Wed, 18 Jan 2012 00:30:32 +0000 (16:30 -0800)
include/items.php
include/text.php

index 0bd77582a52b428c516ae414cc7fdcdd9bdc4a56..a939bfc88bd9de9eb0eb81625d2da2d4f954fd39 100644 (file)
@@ -295,6 +295,11 @@ function get_atom_elements($feed,$item) {
        $res['body'] = unxmlify($item->get_content());
        $res['plink'] = unxmlify($item->get_link(0));
 
+       if($res['plink'])
+               $base_url = implode('/', array_slice(explode('/',$res['plink']),0,3));
+       else
+               $base_url = '';
+
        // look for a photo. We should check media size and find the best one,
        // but for now let's just find any author photo
 
@@ -414,6 +419,8 @@ function get_atom_elements($feed,$item) {
 
        if((strpos($res['body'],'<') !== false) || (strpos($res['body'],'>') !== false)) {
 
+               $res['body'] = reltoabs($res['body'],$base_url);
+
                $res['body'] = html2bb_video($res['body']);
 
                $res['body'] = oembed_html2bbcode($res['body']);
index 1db88ca2c8b80b00e31467ede6fe04befaeabaae..416e19927c4a0221e73d40dc063505eb3d4afbdd 100644 (file)
@@ -1065,3 +1065,37 @@ function array_xmlify($val){
        if (is_array($val)) return array_map('array_xmlify', $val);
        return xmlify((string) $val);
 }
+
+
+function reltoabs($text, $base)
+{
+  if (empty($base))
+    return $text;
+
+  $base = rtrim($base,'/');
+
+  $base2 = $base . "/";
+       
+  // Replace links
+  $pattern = "/<a([^>]*) href=\"(?!http|https|\/)([^\"]*)\"/";
+  $replace = "<a\${1} href=\"" . $base2 . "\${2}\"";
+  $text = preg_replace($pattern, $replace, $text);
+
+  $pattern = "/<a([^>]*) href=\"(?!http|https)([^\"]*)\"/";
+  $replace = "<a\${1} href=\"" . $base . "\${2}\"";
+  $text = preg_replace($pattern, $replace, $text);
+
+  // Replace images
+  $pattern = "/<img([^>]*) src=\"(?!http|https|\/)([^\"]*)\"/";
+  $replace = "<img\${1} src=\"" . $base2 . "\${2}\"";
+  $text = preg_replace($pattern, $replace, $text); 
+
+  $pattern = "/<img([^>]*) src=\"(?!http|https)([^\"]*)\"/";
+  $replace = "<img\${1} src=\"" . $base . "\${2}\"";
+  $text = preg_replace($pattern, $replace, $text); 
+
+
+  // Done
+  return $text;
+}
+