$type = "";
preg_match("/type='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
- $type = $matches[1];
+ $type = strtolower($matches[1]);
preg_match('/type="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "")
- $type = $matches[1];
+ $type = strtolower($matches[1]);
if ($type == "")
return($match[0]);
if ($matches[1] != "")
$title = $matches[1];
- $image = "";
- preg_match("/image='(.*?)'/ism", $attributes, $matches);
- if ($matches[1] != "")
- $image = $matches[1];
+ $title = htmlentities($title, ENT_QUOTES, 'UTF-8', false);
- preg_match('/image="(.*?)"/ism', $attributes, $matches);
- if ($matches[1] != "")
- $image = $matches[1];
+ $image = "";
+ if ($type != "video") {
+ preg_match("/image='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $image = $matches[1];
+
+ preg_match('/image="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $image = $matches[1];
+ }
$preview = "";
- preg_match("/preview='(.*?)'/ism", $attributes, $matches);
- if ($matches[1] != "")
- $preview = $matches[1];
-
- preg_match('/preview="(.*?)"/ism', $attributes, $matches);
- if ($matches[1] != "")
- $preview = $matches[1];
+ if ($type != "video") {
+ preg_match("/preview='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $preview = $matches[1];
+
+ preg_match('/preview="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $preview = $matches[1];
+ }
if ($plaintext)
$text = sprintf('<a href="%s" target="_blank">%s</a>', $url, $title);
$oembed = $bookmark[0];
if (($image != "") AND !strstr(strtolower($oembed), "<img "))
- $text .= sprintf('<img src="%s" alt="%s" class="attachment-image" />', $image, $title); // To-Do: Anführungszeichen in "alt"
+ $text .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br />', $url, $image, $title);
elseif (($preview != "") AND !strstr(strtolower($oembed), "<img "))
- $text .= sprintf('<img src="%s" alt="%s" class="attachment-preview" />', $preview, $title); // To-Do: Anführungszeichen in "alt"
+ $text .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $url, $preview, $title);
$text .= $oembed;
return($Text);
}
-function bb_rearrange_link($shared) {
+/* function bb_rearrange_link($shared) {
if ($shared[1] != "type-link")
return($shared[0]);
$newshare = "[class=type-link]".$newshare."[/class]";
return($newshare);
+} */
+
+function bb_rearrange_share($shared) {
+ if (!in_array(strtolower($shared[2]), array("type-link", "type-audio", "type-video")))
+ return($shared[0]);
+
+ if (!preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$shared[3], $bookmark))
+ return($shared[0]);
+
+ $type = substr(trim(strtolower($shared[2])), 5);
+
+ $title = "";
+ $url = "";
+ $preview = "";
+ $description = "";
+
+ if (isset($bookmark[2][0]))
+ $title = $bookmark[2][0];
+
+ if (isset($bookmark[1][0]))
+ $url = $bookmark[1][0];
+
+ $cleanedshare = trim($shared[3]);
+ $cleanedshare = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $cleanedshare);
+ preg_match("/\[img\](.*?)\[\/img\]/ism", $cleanedshare, $matches);
+
+ if ($matches)
+ $preview = trim($matches[1]);
+
+ preg_match("/\[quote\](.*?)\[\/quote\]/ism", $cleanedshare, $matches);
+ if ($matches)
+ $description = trim($matches[1]);
+
+ $url = str_replace(array("[", "]"), array("[", "]"), htmlentities($url, ENT_QUOTES, 'UTF-8', false));
+ $title = str_replace(array("[", "]"), array("[", "]"), htmlentities($title, ENT_QUOTES, 'UTF-8', false));
+ $preview = str_replace(array("[", "]"), array("[", "]"), htmlentities($preview, ENT_QUOTES, 'UTF-8', false));
+
+ $Text = trim($shared[1])."\n[attachment type='".$type."'";
+
+ if ($url != "")
+ $Text .= " url='".$url."'";
+ if ($title != "")
+ $Text .= " title='".$title."'";
+ if ($preview != "") {
+ require_once("include/Photo.php");
+ $picturedata = get_photo_info($preview);
+
+ if (count($picturedata) > 0) {
+ // if the preview picture is larger than 500 pixels then show it in a larger mode
+ // But only, if the picture isn't higher than large (To prevent huge posts)
+ if (($picturedata[0] >= 500) AND ($picturedata[0] >= $picturedata[1]))
+ $Text .= " image='".$preview."'";
+ else
+ $Text .= " preview='".$preview."'";
+ } else
+ $Text .= " preview='".$preview."'";
+ }
+ $Text .= "]".$description."[/attachment]";
+
+ return($Text);
}
function bb_remove_share_information($Text, $plaintext = false, $nolink = false) {
if (isset($bookmark[1][0]))
$link = $bookmark[1][0];
- if (strpos($shared[1],$title) !== false)
+ if (($title != "") AND (strpos($shared[1],$title) !== false))
$title = "";
// if (strpos($shared[1],$link) !== false)
if (($text == "") AND ($title != "") AND ($link == ""))
$text .= "\n\n".trim($title);
+ // If the link already is included in the post, don't add it again
+ if (($link != "") AND strpos($text, $link))
+ return(trim($text));
+
if (($link != "") AND ($title != ""))
$text .= "\n[url=".trim($link)."]".trim($title)."[/url]";
elseif (($link != ""))
if (isset($match[2]))
$o->title = $match[2];
- //echo "<pre>"; var_dump($match, $url, $o); killme();
-
if ($o->type=="error") return $match[0];
$html = oembed_format_object($o);
return($text);
}
-function GetProfileUsername($profile, $username, $compact = false) {
+function GetProfileUsername($profile, $username, $compact = false, $getnetwork = false) {
$twitter = preg_replace("=https?://twitter.com/(.*)=ism", "$1@twitter.com", $profile);
if ($twitter != $profile) {
- if ($compact)
+ if ($getnetwork)
+ return(NETWORK_TWITTER);
+ elseif ($compact)
return($twitter);
else
return($username." (".$twitter.")");
$appnet = preg_replace("=https?://alpha.app.net/(.*)=ism", "$1@alpha.app.net", $profile);
if ($appnet != $profile) {
- if ($compact)
+ if ($getnetwork)
+ return(NETWORK_APPNET);
+ elseif ($compact)
return($appnet);
else
return($username." (".$appnet.")");
$gplus = preg_replace("=https?://plus.google.com/(.*)=ism", "$1@plus.google.com", $profile);
if ($gplus != $profile) {
- if ($compact)
+ if ($getnetwork)
+ return(NETWORK_GPLUS);
+ elseif ($compact)
return($gplususername." (".$username.")");
else
return($username." (".$gplus.")");
$friendica = preg_replace("=https?://(.*)/profile/(.*)=ism", "$2@$1", $profile);
if ($friendica != $profile) {
- if ($compact)
+ if ($getnetwork)
+ return(NETWORK_DFRN);
+ elseif ($compact)
return($friendica);
else
return($username." (".$friendica.")");
$diaspora = preg_replace("=https?://(.*)/u/(.*)=ism", "$2@$1", $profile);
if ($diaspora != $profile) {
- if ($compact)
+ if ($getnetwork)
+ return(NETWORK_DIASPORA);
+ elseif ($compact)
return($diaspora);
else
return($username." (".$diaspora.")");
$UserData = fetch_url("http://".$StatusnetHost."/api/users/show.json?user_id=".$StatusnetUser);
$user = json_decode($UserData);
if ($user) {
- if ($compact)
+ if ($getnetwork)
+ return(NETWORK_STATUSNET);
+ elseif ($compact)
return($user->screen_name."@".$StatusnetHost);
else
return($username." (".$user->screen_name."@".$StatusnetHost.")");
if ($rest == "") {
$pumpio = preg_replace("=https?://([\.\w]+)/([\.\w]+)(.*)=ism", "$2@$1", $profile);
if ($pumpio != $profile) {
- if ($compact)
+ if ($getnetwork)
+ return(NETWORK_PUMPIO);
+ elseif ($compact)
return($pumpio);
else
return($username." (".$pumpio.")");
$Text = preg_replace("/\n\[code\]/ism", "[code]", $Text);
$Text = preg_replace("/\[\/code\]\n/ism", "[/code]", $Text);
+ // Rearrange shares to attachments
+ $Text = preg_replace_callback("((.*?)\[class=(.*?)\](.*?)\[\/class\])ism", "bb_rearrange_share",$Text);
+
// Handle attached links or videos
$Text = bb_attachment($Text, ($simplehtml != 4) AND ($simplehtml != 0), $tryoembed);
// Rearrange shared links
- if (get_config("system", "rearrange_shared_links") AND (!$simplehtml OR $tryoembed))
- $Text = preg_replace_callback("(\[class=(.*?)\](.*?)\[\/class\])ism","bb_rearrange_link",$Text);
+// if (get_config("system", "rearrange_shared_links") AND (!$simplehtml OR $tryoembed))
+// $Text = preg_replace_callback("(\[class=(.*?)\](.*?)\[\/class\])ism","bb_rearrange_link",$Text);
// when the content is meant exporting to other systems then remove the avatar picture since this doesn't really look good on these systems
if (!$tryoembed)