', $type);
- $bookmark = array(sprintf('[bookmark=%s]%s[/bookmark]', $url, $title), $title, $url);
+ $bookmark = array(sprintf('[bookmark=%s]%s[/bookmark]', $url, $title), $url, $title);
if ($tryoembed)
$oembed = tryoembed($bookmark);
else
$oembed = $bookmark[0];
if (($image != "") AND !strstr(strtolower($oembed), "
', $image, $title); // To-Do: Anführungszeichen in "alt"
+ $text .= sprintf('![%s](%s)
', $url, $image, $title);
elseif (($preview != "") AND !strstr(strtolower($oembed), "
', $preview, $title); // To-Do: Anführungszeichen in "alt"
+ $text .= sprintf('![%s](%s)
', $url, $preview, $title);
$text .= $oembed;
@@ -86,7 +92,7 @@ function bb_attachment($Text, $plaintext = false, $tryoembed = true) {
return($Text);
}
-function bb_rearrange_link($shared) {
+/* function bb_rearrange_link($shared) {
if ($shared[1] != "type-link")
return($shared[0]);
@@ -113,6 +119,66 @@ function bb_rearrange_link($shared) {
$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) {
@@ -145,7 +211,7 @@ function bb_cleanup_share($shared, $plaintext, $nolink) {
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)
@@ -156,6 +222,10 @@ function bb_cleanup_share($shared, $plaintext, $nolink) {
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 != ""))
@@ -197,7 +267,8 @@ function stripcode_br_cb($s) {
}
function tryoembed($match){
- $url = ((count($match)==2)?$match[1]:$match[2]);
+ //$url = ((count($match)==2)?$match[1]:$match[2]);
+ $url = $match[1];
// Always embed the SSL version
$url = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"),
@@ -207,7 +278,8 @@ function tryoembed($match){
$o = oembed_fetch_url($url);
- //echo ""; var_dump($match, $url, $o); killme();
+ if (isset($match[2]))
+ $o->title = $match[2];
if ($o->type=="error") return $match[0];
@@ -452,7 +524,7 @@ function bb_ShareAttributes($share, $simplehtml) {
case 2:
$text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' '.$userid_compact.":
".$share[3];
break;
- case 3:
+ case 3: // Diaspora
$headline = '";
@@ -484,14 +556,20 @@ function bb_ShareAttributes($share, $simplehtml) {
case 5:
$text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' '.$userid_compact.":
".$share[3];
break;
- case 6:
+ case 6: // app.net
$text = $preshare.">> @".$userid_compact.":
".$share[3];
break;
- case 7:
- $text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8')." @".$userid_compact." ".$share[3];
+ case 7: // statusnet/GNU Social
+ $text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8')." @".$userid_compact.": ".$share[3];
break;
- case 8:
- $text = $preshare."RT @".$userid_compact." ".$share[3];
+ case 8: // twitter
+ $text = $preshare."RT @".$userid_compact.": ".$share[3];
+ break;
+ case 9: // Google+/Facebook
+ $text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' '.$userid_compact.":
".$share[3];
+
+ if ($link != "")
+ $text .= "
".$link;
break;
default:
$headline = trim($share[1]).'