]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #1433 from tugelbend/develop
authorfabrixxm <fabrix.xm@gmail.com>
Sun, 22 Mar 2015 08:55:45 +0000 (09:55 +0100)
committerfabrixxm <fabrix.xm@gmail.com>
Sun, 22 Mar 2015 08:55:45 +0000 (09:55 +0100)
bugfix #1307

1  2 
include/bbcode.php

diff --combined include/bbcode.php
index 3cf67af692d58c35cb3fb2a2b65dc4231e093ff8,73e2d67413210a8ad20a30b9b2636d7edf3617a2..63406689a160ba20da15a1c9c68b724c627ce43b
@@@ -42,7 -42,7 +42,7 @@@ function bb_attachment($Text, $plaintex
                                $title = $matches[1];
  
                        //$title = htmlentities($title, ENT_QUOTES, 'UTF-8', false);
-                       $title = bbcode(html_entity_decode($title), false, false, true);
+                       $title = bbcode(html_entity_decode($title, ENT_QUOTES, 'UTF-8'), false, false, true);
                        $title = str_replace(array("[", "]"), array("&#91;", "&#93;"), $title);
  
                        $image = "";
@@@ -168,8 -168,6 +168,8 @@@ function bb_remove_share_information($T
  }
  
  function bb_cleanup_share($shared, $plaintext, $nolink) {
 +      $shared[1] = trim($shared[1]);
 +
        if (!in_array($shared[2], array("type-link", "type-video")))
                return($shared[0]);
  
                return($shared[0]);
  
        if ($nolink)
 -              return(trim($shared[1]));
 +              return($shared[1]);
  
        $title = "";
        $link = "";
        if (isset($bookmark[1][0]))
                $link = $bookmark[1][0];
  
 +      if (($shared[1] != "") AND (strpos($title, $shared[1]) !== false))
 +              $shared[1] = $title;
 +
        if (($title != "") AND ((strpos($shared[1],$title) !== false) OR
                (similar_text($shared[1],$title) / strlen($title)) > 0.9))
                $title = "";
@@@ -681,8 -676,6 +681,8 @@@ function bb_RemovePictureLinks($match) 
        if(is_null($text)){
                $a = get_app();
  
 +              $stamp1 = microtime(true);
 +
                $ch = @curl_init($match[1]);
                @curl_setopt($ch, CURLOPT_NOBODY, true);
                @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                @curl_exec($ch);
                $curl_info = @curl_getinfo($ch);
  
 +              $a->save_timestamp($stamp1, "network");
 +
                if (substr($curl_info["content_type"], 0, 6) == "image/")
                        $text = "[url=".$match[1]."]".$match[1]."[/url]";
                else {
@@@ -735,8 -726,6 +735,8 @@@ function bb_CleanPictureLinksSub($match
        if(is_null($text)){
                $a = get_app();
  
 +              $stamp1 = microtime(true);
 +
                $ch = @curl_init($match[1]);
                @curl_setopt($ch, CURLOPT_NOBODY, true);
                @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                @curl_exec($ch);
                $curl_info = @curl_getinfo($ch);
  
 +              $a->save_timestamp($stamp1, "network");
 +
                // if its a link to a picture then embed this picture
                if (substr($curl_info["content_type"], 0, 6) == "image/")
                        $text = "[img]".$match[1]."[/img]";
@@@ -787,6 -774,8 +787,6 @@@ function bb_CleanPictureLinks($text) 
  
  function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = false, $forplaintext = false) {
  
 -      $stamp1 = microtime(true);
 -
        $a = get_app();
  
        // Hide all [noparse] contained bbtags by spacefying them
  
        // removing multiplicated newlines
        if (get_config("system", "remove_multiplicated_lines")) {
 -              $search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]", "[/li]\n", "\n[li]", "\n[ul]", "[/ul]\n", "\n\n[share ", "[/attachment]\n");
 -              $replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]", "[/li]", "[li]", "[ul]", "[/ul]", "\n[share ", "[/attachment]");
 +              $search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]", "[/li]\n", "\n[li]", "\n[ul]", "[/ul]\n", "\n\n[share ", "[/attachment]\n",
 +                              "\n[h1]", "[/h1]\n", "\n[h2]", "[/h2]\n", "\n[h3]", "[/h3]\n", "\n[h4]", "[/h4]\n", "\n[h5]", "[/h5]\n", "\n[h6]", "[/h6]\n");
 +              $replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]", "[/li]", "[li]", "[ul]", "[/ul]", "\n[share ", "[/attachment]",
 +                              "[h1]", "[/h1]", "[h2]", "[/h2]", "[h3]", "[/h3]", "[h4]", "[/h4]", "[h5]", "[/h5]", "[h6]", "[/h6]");
                do {
                        $oldtext = $Text;
                        $Text = str_replace($search, $replace, $Text);
        $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1">$1</a>', $Text);
        $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
  
 +      // Check for headers
 +      $Text = preg_replace("(\[h1\](.*?)\[\/h1\])ism",'<h1>$1</h1>',$Text);
 +      $Text = preg_replace("(\[h2\](.*?)\[\/h2\])ism",'<h2>$1</h2>',$Text);
 +      $Text = preg_replace("(\[h3\](.*?)\[\/h3\])ism",'<h3>$1</h3>',$Text);
 +      $Text = preg_replace("(\[h4\](.*?)\[\/h4\])ism",'<h4>$1</h4>',$Text);
 +      $Text = preg_replace("(\[h5\](.*?)\[\/h5\])ism",'<h5>$1</h5>',$Text);
 +      $Text = preg_replace("(\[h6\](.*?)\[\/h6\])ism",'<h6>$1</h6>',$Text);
 +
        // Check for bold text
        $Text = preg_replace("(\[b\](.*?)\[\/b\])ism",'<strong>$1</strong>',$Text);
  
                                        '<a href="https://www.youtube.com/watch?v=$1" target="_blank">https://www.youtube.com/watch?v=$1</a>', $Text);
  
        if ($tryoembed) {
 -              $Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text); 
 -              $Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text); 
 +              $Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text);
 +              $Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text);
        }
  
        $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$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);
  
 -
        // oembed tag
        $Text = oembed_bbcode2html($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';
 -              $Text = preg_replace($pattern, '#$2', $Text);
 -      }
 -*/
        call_hooks('bbcode',$Text);
  
 -      $a->save_timestamp($stamp1, "parser");
 -
        return trim($Text);
  }
  ?>