Merge pull request #1940 from annando/1510-proxy-problems
Bugfix: The proxy function had problems with embedded pictures
This commit is contained in:
commit
b60cf21f8a
6 changed files with 34 additions and 17 deletions
|
@ -2,7 +2,23 @@
|
||||||
require_once("include/oembed.php");
|
require_once("include/oembed.php");
|
||||||
require_once('include/event.php');
|
require_once('include/event.php');
|
||||||
require_once('include/map.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) {
|
function bb_map_coords($match) {
|
||||||
// the extra space in the following line is intentional
|
// the extra space in the following line is intentional
|
||||||
|
@ -101,9 +117,9 @@ function bb_attachment($Text, $simplehtml = false, $tryoembed = true) {
|
||||||
$text = $oembed;
|
$text = $oembed;
|
||||||
else {
|
else {
|
||||||
if (($image != "") AND !strstr(strtolower($oembed), "<img "))
|
if (($image != "") AND !strstr(strtolower($oembed), "<img "))
|
||||||
$text .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br />', $url, $image, $title);
|
$text .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br />', $url, proxy_url($image), $title);
|
||||||
elseif (($preview != "") AND !strstr(strtolower($oembed), "<img "))
|
elseif (($preview != "") AND !strstr(strtolower($oembed), "<img "))
|
||||||
$text .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $url, $preview, $title);
|
$text .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $url, proxy_url($preview), $title);
|
||||||
|
|
||||||
$text .= $oembed;
|
$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
|
// 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
|
// it loops over the array starting from the first element and going sequentially
|
||||||
// to the last element
|
// to the last element
|
||||||
$newbody = str_replace('[$#saved_image' . $cnt . '#$]', '<img src="' . $image .'" alt="' . t('Image/photo') . '" />', $newbody);
|
$newbody = str_replace('[$#saved_image' . $cnt . '#$]', '<img src="' . proxy_url($image) .'" alt="' . t('Image/photo') . '" />', $newbody);
|
||||||
$cnt++;
|
$cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -585,7 +601,7 @@ function bb_ShareAttributes($share, $simplehtml) {
|
||||||
default:
|
default:
|
||||||
$headline = trim($share[1]).'<div class="shared_header">';
|
$headline = trim($share[1]).'<div class="shared_header">';
|
||||||
if ($avatar != "")
|
if ($avatar != "")
|
||||||
$headline .= '<img src="'.$avatar.'" height="32" width="32" >';
|
$headline .= '<img src="'.proxy_url($avatar).'" height="32" width="32" >';
|
||||||
|
|
||||||
$headline .= sprintf(t('<span><a href="%s" target="_blank">%s</a> wrote the following <a href="%s" target="_blank">post</a>'.$reldate.':</span>'), $profile, $author, $link);
|
$headline .= sprintf(t('<span><a href="%s" target="_blank">%s</a> wrote the following <a href="%s" target="_blank">post</a>'.$reldate.':</span>'), $profile, $author, $link);
|
||||||
$headline .= "</div>";
|
$headline .= "</div>";
|
||||||
|
@ -1102,13 +1118,17 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
"<br /><strong class=".'"author"'.">" . $t_wrote . "</strong><blockquote>$2</blockquote>",
|
"<br /><strong class=".'"author"'.">" . $t_wrote . "</strong><blockquote>$2</blockquote>",
|
||||||
$Text);
|
$Text);
|
||||||
|
|
||||||
|
|
||||||
// [img=widthxheight]image source[/img]
|
// [img=widthxheight]image source[/img]
|
||||||
//$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="height: $2px; width: $1px;" >', $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", '<img src="$3" style="width: $1px;" >', $Text);
|
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="width: $1px;" >', $Text);
|
||||||
$Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$3" style="width: $1px;" >', $Text);
|
$Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$3" style="width: $1px;" >', $Text);
|
||||||
|
|
||||||
// Images
|
// Images
|
||||||
// [img]pathtoimage[/img]
|
// [img]pathtoimage[/img]
|
||||||
|
$Text = preg_replace_callback("/\[img\](.*?)\[\/img\]/ism", 'bb_PictureCache', $Text);
|
||||||
|
|
||||||
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
|
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
|
||||||
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
|
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,7 @@ function oembed_format_object($j){
|
||||||
case "rich": {
|
case "rich": {
|
||||||
// not so safe..
|
// not so safe..
|
||||||
if (!get_config("system","no_oembed_rich_content"))
|
if (!get_config("system","no_oembed_rich_content"))
|
||||||
$ret.= $jhtml;
|
$ret.= proxy_parse_html($jhtml);
|
||||||
}; break;
|
}; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1410,9 +1410,6 @@ function prepare_body(&$item,$attach = false, $preview = false) {
|
||||||
put_item_in_cache($item, true);
|
put_item_in_cache($item, true);
|
||||||
$s = $item["rendered-html"];
|
$s = $item["rendered-html"];
|
||||||
|
|
||||||
require_once("mod/proxy.php");
|
|
||||||
$s = proxy_parse_html($s);
|
|
||||||
|
|
||||||
$prep_arr = array('item' => $item, 'html' => $s, 'preview' => $preview);
|
$prep_arr = array('item' => $item, 'html' => $s, 'preview' => $preview);
|
||||||
call_hooks('prepare_body', $prep_arr);
|
call_hooks('prepare_body', $prep_arr);
|
||||||
$s = $prep_arr['html'];
|
$s = $prep_arr['html'];
|
||||||
|
|
|
@ -115,8 +115,8 @@ function display_fetchauthor($a, $item) {
|
||||||
|
|
||||||
if (count($r)) {
|
if (count($r)) {
|
||||||
$profiledata["photo"] = proxy_url($r[0]["photo"]);
|
$profiledata["photo"] = proxy_url($r[0]["photo"]);
|
||||||
$profiledata["address"] = proxy_parse_html(bbcode($r[0]["location"]));
|
$profiledata["address"] = bbcode($r[0]["location"]);
|
||||||
$profiledata["about"] = proxy_parse_html(bbcode($r[0]["about"]));
|
$profiledata["about"] = bbcode($r[0]["about"]);
|
||||||
if ($r[0]["nick"] != "")
|
if ($r[0]["nick"] != "")
|
||||||
$profiledata["nickname"] = $r[0]["nick"];
|
$profiledata["nickname"] = $r[0]["nick"];
|
||||||
}
|
}
|
||||||
|
@ -127,9 +127,9 @@ function display_fetchauthor($a, $item) {
|
||||||
if ($profiledata["photo"] == "")
|
if ($profiledata["photo"] == "")
|
||||||
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
|
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
|
||||||
if ($profiledata["address"] == "")
|
if ($profiledata["address"] == "")
|
||||||
$profiledata["address"] = proxy_parse_html(bbcode($r[0]["location"]));
|
$profiledata["address"] = bbcode($r[0]["location"]);
|
||||||
if ($profiledata["about"] == "")
|
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"] != ""))
|
if (($profiledata["nickname"] == "") AND ($r[0]["nick"] != ""))
|
||||||
$profiledata["nickname"] = $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"])));
|
$r = q("SELECT `avatar`, `nick`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'", dbesc(normalise_link($profiledata["url"])));
|
||||||
if (count($r)) {
|
if (count($r)) {
|
||||||
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
|
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
|
||||||
$profiledata["address"] = proxy_parse_html(bbcode($r[0]["location"]));
|
$profiledata["address"] = bbcode($r[0]["location"]);
|
||||||
$profiledata["about"] = proxy_parse_html(bbcode($r[0]["about"]));
|
$profiledata["about"] = bbcode($r[0]["about"]);
|
||||||
if ($r[0]["nick"] != "")
|
if ($r[0]["nick"] != "")
|
||||||
$profiledata["nickname"] = $r[0]["nick"];
|
$profiledata["nickname"] = $r[0]["nick"];
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,7 @@ function follow_content(&$a) {
|
||||||
'$request' => $request,
|
'$request' => $request,
|
||||||
'$location' => bbcode($r[0]["location"]),
|
'$location' => bbcode($r[0]["location"]),
|
||||||
'$location_label' => t("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:"),
|
'$about_label' => t("About:"),
|
||||||
'$keywords' => $r[0]["keywords"],
|
'$keywords' => $r[0]["keywords"],
|
||||||
'$keywords_label' => t("Tags:")
|
'$keywords_label' => t("Tags:")
|
||||||
|
|
|
@ -235,7 +235,7 @@ function notifications_content(&$a) {
|
||||||
'$fullname' => $rr['name'],
|
'$fullname' => $rr['name'],
|
||||||
'$location' => bbcode($rr['glocation'], false, false),
|
'$location' => bbcode($rr['glocation'], false, false),
|
||||||
'$location_label' => t('Location:'),
|
'$location_label' => t('Location:'),
|
||||||
'$about' => proxy_parse_html(bbcode($rr['gabout'], false, false)),
|
'$about' => bbcode($rr['gabout'], false, false),
|
||||||
'$about_label' => t('About:'),
|
'$about_label' => t('About:'),
|
||||||
'$keywords' => $rr['gkeywords'],
|
'$keywords' => $rr['gkeywords'],
|
||||||
'$keywords_label' => t('Tags:'),
|
'$keywords_label' => t('Tags:'),
|
||||||
|
|
Loading…
Reference in a new issue