X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fbbcode.php;h=46e34a1fd505467dcd2021a39489751978e0f8f3;hb=24e0fffa2e6bbbdab7b3bcd26b92f08e6fce68fa;hp=70cd22d5f9c0eaa960c3aad0ac18a8f8e8f7a8e6;hpb=f0d5c97c0801e944a520f972a9f80fae04fd80cf;p=friendica.git
diff --git a/include/bbcode.php b/include/bbcode.php
index 70cd22d5f9..46e34a1fd5 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -101,8 +101,14 @@ function bb_remove_share_information($Text, $plaintext = false, $nolink = false)
if ($nolink)
return $data["text"].$data["after"];
- if ($plaintext)
+ $title = htmlentities($data["title"], ENT_QUOTES, 'UTF-8', false);
+ $text = htmlentities($data["text"], ENT_QUOTES, 'UTF-8', false);
+ if ($plaintext OR (($title != "") AND strstr($text, $title)))
$data["title"] = $data["url"];
+ elseif (($text != "") AND strstr($title, $text)) {
+ $data["text"] = $data["title"];
+ $data["title"] = $data["url"];
+ }
if (($data["text"] == "") AND ($data["title"] != "") AND ($data["url"] == ""))
return $data["title"].$data["after"];
@@ -115,10 +121,10 @@ function bb_remove_share_information($Text, $plaintext = false, $nolink = false)
if (($data["url"] != "") AND ($data["title"] != ""))
$text .= "\n[url=".$data["url"]."]".$data["title"]."[/url]";
- elseif (($link != ""))
+ elseif (($data["url"] != ""))
$text .= "\n".$data["url"];
- return $text.$data["after"];
+ return $text."\n".$data["after"];
}
function bb_cleanstyle($st) {
@@ -390,18 +396,22 @@ function bb_ShareAttributes($share, $simplehtml) {
$itemcache = get_itemcachepath();
- // relative dates only make sense when they aren't cached
- if ($itemcache == "") {
- preg_match("/posted='(.*?)'/ism", $attributes, $matches);
- if ($matches[1] != "")
- $posted = $matches[1];
+ preg_match("/posted='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $posted = $matches[1];
- preg_match('/posted="(.*?)"/ism', $attributes, $matches);
- if ($matches[1] != "")
- $posted = $matches[1];
+ preg_match('/posted="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $posted = $matches[1];
+ // relative dates only make sense when they aren't cached
+ if ($itemcache == "")
$reldate = (($posted) ? " " . relative_date($posted) : '');
- }
+
+ // We only call this so that a previously unknown contact can be added.
+ // This is important for the function "get_contact_details_by_url".
+ // This function then can fetch an entry from the contact table.
+ get_contact($profile, 0);
$data = get_contact_details_by_url($profile);
@@ -418,8 +428,8 @@ function bb_ShareAttributes($share, $simplehtml) {
if (isset($data["name"]))
$author = $data["name"];
- if (isset($data["photo"]))
- $avatar = $data["photo"];
+ if (isset($data["micro"]))
+ $avatar = $data["micro"];
$preshare = trim($share[1]);
@@ -483,13 +493,22 @@ function bb_ShareAttributes($share, $simplehtml) {
$text .= "
".$link;
break;
default:
- $headline = trim($share[1]).'
'.trim($share[3]).""; + $text = trim($share[1])."\n"; + + $avatar = proxy_url($avatar, false, PROXY_SIZE_THUMB); + + $tpl = get_markup_template('shared_content.tpl'); + $text .= replace_macros($tpl, + array( + '$profile' => $profile, + '$avatar' => $avatar, + '$author' => $author, + '$link' => $link, + '$posted' => $posted, + '$reldate' => $reldate, + '$content' => trim($share[3]) + ) + ); break; } return($text); @@ -705,6 +724,13 @@ function bb_CleanPictureLinks($text) { return ($text); } +function bb_highlight($match) { + if(in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby', + 'vbscript','avrc','dtd','java','xml','cpp','python','javascript','js','sh'])) + return text_highlight($match[2],strtolower($match[1])); + return $match[0]; +} + // BBcode 2 HTML was written by WAY2WEB.net // extended to work with Mistpark/Friendica - Mike Macgirvin @@ -757,6 +783,11 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal if (!$tryoembed) $Text = preg_replace("/\[share(.*?)avatar\s?=\s?'.*?'\s?(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","\n[share$1$2]$3[/share]",$Text); + // Check for [code] text here, before the linefeeds are messed with. + // The highlighter will unescape and re-escape the content. + if (strpos($Text,'[code=') !== false) { + $Text = preg_replace_callback("/\[code=(.*?)\](.*?)\[\/code\]/ism", 'bb_highlight', $Text); + } // Convert new line chars to html