aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/text.php13
-rw-r--r--mod/item.php10
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('/([@#]\&quot\;.*?\&quot\;)/',$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]';