diff options
author | zotlabs <mike@macgirvin.com> | 2018-04-26 20:27:14 -0700 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2018-04-27 09:58:17 +0200 |
commit | d0ba2cf6d469f2cbaef3749525eb19fcf36ed26d (patch) | |
tree | 9e66addfa68cb954c0c844de6ee1229a851ef4fc | |
parent | e33d8c288b86bf42b2471df4cb963395ed1664b9 (diff) | |
download | volse-hubzilla-d0ba2cf6d469f2cbaef3749525eb19fcf36ed26d.tar.gz volse-hubzilla-d0ba2cf6d469f2cbaef3749525eb19fcf36ed26d.tar.bz2 volse-hubzilla-d0ba2cf6d469f2cbaef3749525eb19fcf36ed26d.zip |
where possible strip zid parameter from links that get pasted into posts so that they will get a correct zid when rendered
-rw-r--r-- | include/bbcode.php | 8 | ||||
-rw-r--r-- | include/text.php | 2 | ||||
-rw-r--r-- | include/zid.php | 6 |
3 files changed, 11 insertions, 5 deletions
diff --git a/include/bbcode.php b/include/bbcode.php index 340fe6b25..345b5b025 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -85,12 +85,14 @@ function tryoembed($match) { function nakedoembed($match) { $url = ((count($match) == 2) ? $match[1] : $match[2]); - $o = oembed_fetch_url($url); + $strip_url = strip_escaped_zids($url); + + $o = oembed_fetch_url($strip_url); if ($o['type'] == 'error') - return $match[0]; + return str_replace($url,$strip_url,$match[0]); - return '[embed]' . $url . '[/embed]'; + return '[embed]' . $strip_url . '[/embed]'; } function tryzrlaudio($match) { diff --git a/include/text.php b/include/text.php index 55fc49560..af88c9f9c 100644 --- a/include/text.php +++ b/include/text.php @@ -3267,6 +3267,7 @@ 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); @@ -3296,7 +3297,6 @@ function cleanup_bbcode($body) { $body = scale_external_images($body,false); - return $body; } diff --git a/include/zid.php b/include/zid.php index 5275c6d5a..fe06948ba 100644 --- a/include/zid.php +++ b/include/zid.php @@ -60,7 +60,7 @@ function zid($s, $address = '') { $url_match = true; if ($mine && $myaddr && (! $url_match)) - $zurl = $s . (($num_slashes >= 3) ? '' : '/') . $achar . 'zid=' . urlencode($myaddr); + $zurl = $s . (($num_slashes >= 3) ? '' : '/') . (($achar === '?') ? '?f=&' : '&') . 'zid=' . urlencode($myaddr); else $zurl = $s; @@ -103,6 +103,10 @@ function strip_zats($s) { return preg_replace('/[\?&]zat=(.*?)(&|$)/ism','$2',$s); } +function strip_escaped_zids($s) { + $x = preg_replace('/&\;zid=(.*?)(&|$)/ism','$2',$s); + return strip_query_param($x,'f'); +} function clean_query_string($s = '') { |