diff --git a/include/bbcode.php b/include/bbcode.php
index 13061958c..a4ad09ccf 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -2,7 +2,23 @@
require_once("include/oembed.php");
require_once('include/event.php');
require_once('include/map.php');
+require_once('mod/proxy.php');
+function bb_PictureCacheExt($matches) {
+ if (strpos($matches[3], "data:image/") === 0)
+ return ($matches[0]);
+
+ $matches[3] = proxy_url($matches[3]);
+ return "[img=".$matches[1]."x".$matches[2]."]".$matches[3]."[/img]";
+}
+
+function bb_PictureCache($matches) {
+ if (strpos($matches[1], "data:image/") === 0)
+ return ($matches[0]);
+
+ $matches[1] = proxy_url($matches[1]);
+ return "[img]".$matches[1]."[/img]";
+}
function bb_map_coords($match) {
// the extra space in the following line is intentional
@@ -101,9 +117,9 @@ function bb_attachment($Text, $simplehtml = false, $tryoembed = true) {
$text = $oembed;
else {
if (($image != "") AND !strstr(strtolower($oembed), "![]()

', $url, $image, $title);
+ $text .= sprintf('
', $url, proxy_url($image), $title);
elseif (($preview != "") AND !strstr(strtolower($oembed), "![]()

', $url, $preview, $title);
+ $text .= sprintf('
', $url, proxy_url($preview), $title);
$text .= $oembed;
@@ -455,7 +471,7 @@ function bb_replace_images($body, $images) {
// We're depending on the property of 'foreach' (specified on the PHP website) that
// it loops over the array starting from the first element and going sequentially
// to the last element
- $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '
', $newbody);
+ $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '
', $newbody);
$cnt++;
}
@@ -585,7 +601,7 @@ function bb_ShareAttributes($share, $simplehtml) {
default:
$headline = trim($share[1]).'
";
@@ -1102,13 +1118,17 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
"
" . $t_wrote . "$2
",
$Text);
+
// [img=widthxheight]image source[/img]
- //$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '
', $Text);
+ $Text = preg_replace_callback("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", 'bb_PictureCacheExt', $Text);
+
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '
', $Text);
$Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '
', $Text);
// Images
// [img]pathtoimage[/img]
+ $Text = preg_replace_callback("/\[img\](.*?)\[\/img\]/ism", 'bb_PictureCache', $Text);
+
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '
', $Text);
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '
', $Text);
diff --git a/include/oembed.php b/include/oembed.php
index d4d7ce05e..0e1238360 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -157,7 +157,7 @@ function oembed_format_object($j){
case "rich": {
// not so safe..
if (!get_config("system","no_oembed_rich_content"))
- $ret.= $jhtml;
+ $ret.= proxy_parse_html($jhtml);
}; break;
}
diff --git a/include/text.php b/include/text.php
index 0002f074e..c5b28b508 100644
--- a/include/text.php
+++ b/include/text.php
@@ -1410,9 +1410,6 @@ function prepare_body(&$item,$attach = false, $preview = false) {
put_item_in_cache($item, true);
$s = $item["rendered-html"];
- require_once("mod/proxy.php");
- $s = proxy_parse_html($s);
-
$prep_arr = array('item' => $item, 'html' => $s, 'preview' => $preview);
call_hooks('prepare_body', $prep_arr);
$s = $prep_arr['html'];
diff --git a/mod/display.php b/mod/display.php
index be5dd7cae..f945f9fe6 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -115,8 +115,8 @@ function display_fetchauthor($a, $item) {
if (count($r)) {
$profiledata["photo"] = proxy_url($r[0]["photo"]);
- $profiledata["address"] = proxy_parse_html(bbcode($r[0]["location"]));
- $profiledata["about"] = proxy_parse_html(bbcode($r[0]["about"]));
+ $profiledata["address"] = bbcode($r[0]["location"]);
+ $profiledata["about"] = bbcode($r[0]["about"]);
if ($r[0]["nick"] != "")
$profiledata["nickname"] = $r[0]["nick"];
}
@@ -127,9 +127,9 @@ function display_fetchauthor($a, $item) {
if ($profiledata["photo"] == "")
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
if ($profiledata["address"] == "")
- $profiledata["address"] = proxy_parse_html(bbcode($r[0]["location"]));
+ $profiledata["address"] = bbcode($r[0]["location"]);
if ($profiledata["about"] == "")
- $profiledata["about"] = proxy_parse_html(bbcode($r[0]["about"]));
+ $profiledata["about"] = bbcode($r[0]["about"]);
if (($profiledata["nickname"] == "") AND ($r[0]["nick"] != ""))
$profiledata["nickname"] = $r[0]["nick"];
}
@@ -193,8 +193,8 @@ function display_fetchauthor($a, $item) {
$r = q("SELECT `avatar`, `nick`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'", dbesc(normalise_link($profiledata["url"])));
if (count($r)) {
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
- $profiledata["address"] = proxy_parse_html(bbcode($r[0]["location"]));
- $profiledata["about"] = proxy_parse_html(bbcode($r[0]["about"]));
+ $profiledata["address"] = bbcode($r[0]["location"]);
+ $profiledata["about"] = bbcode($r[0]["about"]);
if ($r[0]["nick"] != "")
$profiledata["nickname"] = $r[0]["nick"];
}
diff --git a/mod/follow.php b/mod/follow.php
index 2c8452b1b..25169e403 100644
--- a/mod/follow.php
+++ b/mod/follow.php
@@ -100,7 +100,7 @@ function follow_content(&$a) {
'$request' => $request,
'$location' => bbcode($r[0]["location"]),
'$location_label' => t("Location:"),
- '$about' => proxy_parse_html(bbcode($r[0]["about"], false, false)),
+ '$about' => bbcode($r[0]["about"], false, false),
'$about_label' => t("About:"),
'$keywords' => $r[0]["keywords"],
'$keywords_label' => t("Tags:")
diff --git a/mod/notifications.php b/mod/notifications.php
index 69ab592af..95ebff96f 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -235,7 +235,7 @@ function notifications_content(&$a) {
'$fullname' => $rr['name'],
'$location' => bbcode($rr['glocation'], false, false),
'$location_label' => t('Location:'),
- '$about' => proxy_parse_html(bbcode($rr['gabout'], false, false)),
+ '$about' => bbcode($rr['gabout'], false, false),
'$about_label' => t('About:'),
'$keywords' => $rr['gkeywords'],
'$keywords_label' => t('Tags:'),