From 12f4787b67561be8afc78620823b81e290cddfaa Mon Sep 17 00:00:00 2001 From: zotlabs Date: Mon, 13 Aug 2018 23:11:10 -0700 Subject: issue with mdpost addon and archive.org links which contain a full url as a path/query component --- include/bbcode.php | 2 ++ include/markdown.php | 4 ++-- include/text.php | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/bbcode.php b/include/bbcode.php index 345b5b025..6f22509e6 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -953,12 +953,14 @@ function bbcode($Text, $options = []) { $Text = preg_replace_callback("/[^\^]\[url\]([$URLSearchString]*)\[\/url\]/ism", 'tryoembed', $Text); } } + if (strpos($Text,'[/url]') !== false) { $Text = preg_replace("/\#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '#^$1', $Text); $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '#^$2', $Text); $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '$1', $Text); $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $Text); } + if (strpos($Text,'[/zrl]') !== false) { $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '#^$1', $Text); $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '#^$2', $Text); diff --git a/include/markdown.php b/include/markdown.php index 1b3538306..f4944e2cc 100644 --- a/include/markdown.php +++ b/include/markdown.php @@ -82,10 +82,10 @@ function markdown_to_bb($s, $use_zrl = false, $options = []) { $s = preg_replace_callback("/\[img\](.*?)\[\/img\]/ism", 'use_zrl_cb_img', $s); $s = preg_replace_callback("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", 'use_zrl_cb_img_x', $s); } - $s = preg_replace_callback("/([^\]\=\{]|^)(https?\:\/\/)([a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\@\(\)]+)/ismu", 'use_zrl_cb_link',$s); + $s = preg_replace_callback("/([^\]\=\{\/]|^)(https?\:\/\/)([a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\@\(\)]+)/ismu", 'use_zrl_cb_link',$s); } else { - $s = preg_replace("/([^\]\=\{]|^)(https?\:\/\/)([a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\@\(\)]+)/ismu", '$1[url=$2$3]$2$3[/url]',$s); + $s = preg_replace("/([^\]\=\{\/]|^)(https?\:\/\/)([a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\@\(\)]+)/ismu", '$1[url=$2$3]$2$3[/url]',$s); } // remove duplicate adjacent code tags diff --git a/include/text.php b/include/text.php index e894c5ce5..e57450020 100644 --- a/include/text.php +++ b/include/text.php @@ -3251,17 +3251,17 @@ function cleanup_bbcode($body) { * First protect any url inside certain bbcode tags so we don't double link it. */ - $body = preg_replace_callback('/\[code(.*?)\[\/(code)\]/ism','\red_escape_codeblock',$body); $body = preg_replace_callback('/\[url(.*?)\[\/(url)\]/ism','\red_escape_codeblock',$body); $body = preg_replace_callback('/\[zrl(.*?)\[\/(zrl)\]/ism','\red_escape_codeblock',$body); - $body = preg_replace_callback("/([^\]\='".'"'."\/\{]|^|\#\^)(https?\:\/\/[a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\\ +\,\(\)]+)/ismu", '\nakedoembed', $body); + $body = preg_replace_callback("/([^\]\='".'"'."\/\{]|^|\#\^)(https?\:\/\/[a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\\ +\,\(\)]+)/ismu", '\red_zrl_callback', $body); + $body = preg_replace_callback('/\[\$b64zrl(.*?)\[\/(zrl)\]/ism','\red_unescape_codeblock',$body); $body = preg_replace_callback('/\[\$b64url(.*?)\[\/(url)\]/ism','\red_unescape_codeblock',$body); $body = preg_replace_callback('/\[\$b64code(.*?)\[\/(code)\]/ism','\red_unescape_codeblock',$body); -- cgit v1.2.3 From f4f610f1a3b3826f960e3db2026bf2204e939fe8 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 14 Aug 2018 18:19:34 -0700 Subject: more backporting for zot6 --- include/channel.php | 3 +++ include/text.php | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) (limited to 'include') diff --git a/include/channel.php b/include/channel.php index 2d0231bba..82d500e83 100644 --- a/include/channel.php +++ b/include/channel.php @@ -2797,3 +2797,6 @@ function pchan_to_chan($pchan) { return $chan; } +function channel_url($channel) { + return (($channel) ? z_root() . '/channel/' . $channel['channel_address'] : z_root()); +} diff --git a/include/text.php b/include/text.php index e57450020..c4f253a27 100644 --- a/include/text.php +++ b/include/text.php @@ -3412,3 +3412,41 @@ function get_forum_channels($uid) { return $r; } + +function print_array($arr, $level = 0) { + + $o = EMPTY_STR; + $tabs = EMPTY_STR; + + if(is_array($arr)) { + for($x = 0; $x <= $level; $x ++) { + $tabs .= "\t"; + } + $o .= '[' . "\n"; + if(count($arr)) { + foreach($arr as $k => $v) { + if(is_array($v)) { + $o .= $tabs . '[' . $k . '] => ' . print_array($v, $level + 1) . "\n"; + } + else { + $o .= $tabs . '[' . $k . '] => ' . print_val($v) . ",\n"; + } + } + } + $o .= substr($tabs,0,-1) . ']' . (($level) ? ',' : ';' ). "\n"; + return $o; + } + +} + +function print_val($v) { + if(is_bool($v)) { + if($v) return 'true'; + return 'false'; + } + if(is_string($v)) { + return "'" . $v . "'"; + } + return $v; + +} -- cgit v1.2.3