]> git.mxchange.org Git - friendica.git/blobdiff - include/bbcode.php
Repeated items that are transmitted to text based networks now contain the address...
[friendica.git] / include / bbcode.php
index db931614c1597a246a1bcf8054f7ad5da760f061..ee251f1f1e00d792ab34aecca5332c093ddfbfc7 100644 (file)
@@ -36,7 +36,12 @@ function stripcode_br_cb($s) {
 
 function tryoembed($match){
        $url = ((count($match)==2)?$match[1]:$match[2]);
-//     logger("tryoembed: $url");
+
+       // Always embed the SSL version
+       $url = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"),
+                               array("https://www.youtube.com/", "https://player.vimeo.com/"), $url);
+
+       //logger("tryoembed: $url");
 
        $o = oembed_fetch_url($url);
 
@@ -338,11 +343,15 @@ function bb_ShareAttributesSimple2($match) {
 function GetProfileUsername($profile, $username) {
        $friendica = preg_replace("=https?://(.*)/profile/(.*)=ism", "$2@$1", $profile);
        if ($friendica != $profile)
-               return($friendica);
+               return($friendica." (".$username.")");
 
        $diaspora = preg_replace("=https?://(.*)/u/(.*)=ism", "$2@$1", $profile);
        if ($diaspora != $profile)
-               return($diaspora);
+               return($diaspora." (".$username.")");
+
+       $twitter = preg_replace("=https?://twitter.com/(.*)=ism", "$1@twitter.com", $profile);
+       if ($twitter != $profile)
+               return($twitter." (".$username.")");
 
        $StatusnetHost = preg_replace("=https?://(.*)/user/(.*)=ism", "$1", $profile);
        if ($StatusnetHost != $profile) {
@@ -351,7 +360,7 @@ function GetProfileUsername($profile, $username) {
                        $UserData = fetch_url("http://".$StatusnetHost."/api/users/show.json?user_id=".$StatusnetUser);
                        $user = json_decode($UserData);
                        if ($user)
-                               return($user->screen_name."@".$StatusnetHost);
+                               return($user->screen_name."@".$StatusnetHost." (".$username.")");
                }
        }
 
@@ -423,8 +432,8 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
 
        // removing multiplicated newlines
        if (get_config("system", "remove_multiplicated_lines")) {
-               $search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]");
-               $replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]");
+               $search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]", "[/li]\n", "\n[li]", "\n[ul]", "[/ul]\n");
+               $replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]", "[/li]", "[li]", "[ul]", "[/ul]");
                do {
                        $oldtext = $Text;
                        $Text = str_replace($search, $replace, $Text);
@@ -638,19 +647,19 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
 
        // Youtube extensions
        if ($tryoembed) {
-               $Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);        
-               $Text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);        
-               $Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism",'tryoembed',$Text); 
+               $Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
+               $Text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
+               $Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism",'tryoembed',$Text);
        }
 
-       $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); 
-       $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); 
+       $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
+       $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
        $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
 
        if ($tryoembed)
-               $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $Text);
+               $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="https://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $Text);
        else
-               $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", "http://www.youtube.com/watch?v=$1", $Text);
+               $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", "https://www.youtube.com/watch?v=$1", $Text);
 
 
        if ($tryoembed) {
@@ -662,9 +671,9 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
        $Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
 
        if ($tryoembed)
-               $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $Text);
+               $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="https://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $Text);
        else
-               $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", "http://vimeo.com/$1", $Text);
+               $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", "https://vimeo.com/$1", $Text);
 
 //     $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
 
@@ -714,22 +723,29 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
        // Only do it when it has to be done - for performance reasons
        // Update: Now it is done every time - since bad structured html can break a whole page
        //if (!$tryoembed) {
-//             $doc = new DOMDocument();
-//             $doc->preserveWhiteSpace = false;
+       //      $doc = new DOMDocument();
+       //      $doc->preserveWhiteSpace = false;
 
-//             $Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8");
+       //      $Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8");
 
-//             $doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
-//             @$doc->loadHTML($doctype."<html><body>".$Text."</body></html>");
+       //      $doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
+       //      @$doc->loadHTML($doctype."<html><body>".$Text."</body></html>");
 
-//             $Text = $doc->saveHTML();
-//             $Text = str_replace(array("<html><body>", "</body></html>", $doctype), array("", "", ""), $Text);
+       //      $Text = $doc->saveHTML();
+       //      $Text = str_replace(array("<html><body>", "</body></html>", $doctype), array("", "", ""), $Text);
 
-//             $Text = str_replace('<br></li>','</li>', $Text);
+       //      $Text = str_replace('<br></li>','</li>', $Text);
 
-//             $Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
+       //      $Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
        //}
 
+       // Clean up some useless linebreaks in lists
+       //$Text = str_replace('<br /><ul','<ul ', $Text);
+       //$Text = str_replace('</ul><br />','</ul>', $Text);
+       //$Text = str_replace('</li><br />','</li>', $Text);
+       //$Text = str_replace('<br /><li>','<li>', $Text);
+       //      $Text = str_replace('<br /><ul','<ul ', $Text);
+
        // Remove all hashtag addresses
        if (!$tryoembed AND get_config("system", "remove_hashtags_on_export")) {
                $pattern = '/#<a.*?href="(.*?)".*?>(.*?)<\/a>/is';