From 7045b920efb6f5f9cd4a7eb2b7abaabe14b99634 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 21 Aug 2016 17:38:36 -0700 Subject: make zid() do the right things when confronted with url fragments --- include/channel.php | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'include/channel.php') diff --git a/include/channel.php b/include/channel.php index 1179697a4..47db7e806 100644 --- a/include/channel.php +++ b/include/channel.php @@ -1381,6 +1381,11 @@ function zid($s,$address = '') { if (! strlen($s) || strpos($s,'zid=')) return $s; + $m = parse_url($s); + $fragment = ((array_key_exists('fragment',$m) && $m['fragment']) ? $m['fragment'] : false); + if($fragment !== false) + $s = str_replace('#' . $fragment,'',$s); + $has_params = ((strpos($s,'?')) ? true : false); $num_slashes = substr_count($s, '/'); if (! $has_params) @@ -1401,6 +1406,11 @@ function zid($s,$address = '') { else $zurl = $s; + // put fragment at the end + + if($fragment) + $zurl .= '#' . $fragment; + $arr = array('url' => $s, 'zid' => urlencode($myaddr), 'result' => $zurl); call_hooks('zid', $arr); -- cgit v1.2.3