diff options
-rwxr-xr-x | include/text.php | 13 | ||||
-rw-r--r-- | mod/item.php | 10 |
2 files changed, 21 insertions, 2 deletions
diff --git a/include/text.php b/include/text.php index 520c9c506..6507a3e1f 100755 --- a/include/text.php +++ b/include/text.php @@ -574,9 +574,20 @@ function get_tags($s) { $s = preg_replace('/\[style=(.*?)\]/sm','',$s); + // match any double quoted tags + + if(preg_match_all('/([@#]\"\;.*?\"\;)/',$s,$match)) { + foreach($match[1] as $mtch) { + $ret[] = $mtch; + } + } + // Match full names against @tags including the space between first and last // We will look these up afterward to see if they are full names or not recognisable. + + + if(preg_match_all('/(@[^ \x0D\x0A,:?]+ [^ \x0D\x0A@,:?]+)([ \x0D\x0A@,:?]|$)/',$s,$match)) { foreach($match[1] as $mtch) { if(strstr($mtch,"]")) { @@ -627,7 +638,7 @@ function get_tags($s) { usort($ret,'tag_sort_length'); - //logger('get_tags: ' . print_r($ret,true)); +// logger('get_tags: ' . print_r($ret,true)); return $ret; } diff --git a/mod/item.php b/mod/item.php index e263867ae..e88f9a2a3 100644 --- a/mod/item.php +++ b/mod/item.php @@ -922,8 +922,16 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag) { $replaced = true; } if(! $replaced) { + //base tag has the tags name only - $basetag = str_replace('_',' ',substr($tag,1)); + + if((substr($tag,0,7) === '#"') && (substr($tag,-6,6) === '"')) { + $basetag = substr($tag,7); + $basetag = substr($basetag,0,-6); + } + else + $basetag = str_replace('_',' ',substr($tag,1)); + //create text for link $url = $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag); $newtag = '#[zrl=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/zrl]'; |