From 35fbe3be14ace42ce7ef61665ac2300d01d1ef46 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 18 May 2014 18:56:07 +0200 Subject: [PATCH] Diaspora: Better handling of "red"-links --- include/bb2diaspora.php | 3 ++- include/bbcode.php | 21 ++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 0ffbf0a1..eeed19d8 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -63,7 +63,8 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { /** * Transform #tags, strip off the [url] and replace spaces with underscore */ - $Text = preg_replace_callback('/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', create_function('$match', + $URLSearchString = "^\[\]"; + $Text = preg_replace_callback("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/i", create_function('$match', 'return \'#\'. str_replace(\' \', \'_\', $match[2]);' ), $Text); diff --git a/include/bbcode.php b/include/bbcode.php index 686bd41b..b036a5dc 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -40,11 +40,11 @@ function bb_remove_share_information($Text, $plaintext = false) { } function bb_cleanup_share($shared) { - if ($shared[2] != "type-link") - return($shared[3]); + if (!in_array($shared[2], array("type-link", "type-video"))) + return($shared[0]); if (!preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$shared[3], $bookmark)) - return($shared[3]); + return($shared[0]); $title = ""; $link = ""; @@ -747,9 +747,20 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal // Set up the parameters for a MAIL search string $MAILSearchString = $URLSearchString; + // Remove all hashtag addresses + if (!$tryoembed OR $simplehtml) + $Text = preg_replace("/([#@])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$1$3', $Text); + // Bookmarks in red - will be converted to bookmarks in friendica $Text = preg_replace("/#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '[bookmark=$1]$1[/bookmark]', $Text); $Text = preg_replace("/#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[bookmark=$1]$2[/bookmark]', $Text); + $Text = preg_replace("/#\[url\=[$URLSearchString]*\]\^\[\/url\]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/i", + "[bookmark=$1]$2[/bookmark]", $Text); + + if ($simplehtml == 2) { + $Text = preg_replace("/[^#@]\[url\=([^\]]*)\](.*?)\[\/url\]/ism",' $2 [url]$1[/url]',$Text); + $Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",' $2 [url]$1[/url]',$Text); + } if ($simplehtml == 5) $Text = preg_replace("/[^#@]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[url]$1[/url]', $Text); @@ -1063,11 +1074,11 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal // $Text = str_replace('
save_timestamp($stamp1, "parser");