diff options
author | Stefan Parviainen <saparvia@caterva.eu> | 2015-01-12 20:01:07 +0100 |
---|---|---|
committer | Stefan Parviainen <saparvia@caterva.eu> | 2015-01-12 20:01:07 +0100 |
commit | adc9564b5cc5f1fc410220514285927052cdfe4a (patch) | |
tree | b2b71519398dbd68e9f641719bc334d087d267a3 /include/text.php | |
parent | cce51f5a49c23d25d9fced179710b6f661463a35 (diff) | |
download | volse-hubzilla-adc9564b5cc5f1fc410220514285927052cdfe4a.tar.gz volse-hubzilla-adc9564b5cc5f1fc410220514285927052cdfe4a.tar.bz2 volse-hubzilla-adc9564b5cc5f1fc410220514285927052cdfe4a.zip |
Refactor mention code to make it more reusable
Diffstat (limited to 'include/text.php')
-rw-r--r-- | include/text.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/text.php b/include/text.php index e0bf393e5..035c092a6 100644 --- a/include/text.php +++ b/include/text.php @@ -2350,3 +2350,33 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag) { return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $newname, 'url' => $url, 'contact' => $r[0]); } + +function linkify_tags($a, &$body, $uid, $profile_uid) { + $str_tags = ''; + $tagged = array(); + $result = array(); + + $tags = get_tags($body); + if(count($tags)) { + foreach($tags as $tag) { + // If we already tagged 'Robert Johnson', don't try and tag 'Robert'. + // Robert Johnson should be first in the $tags array + + $fullnametagged = false; + for($x = 0; $x < count($tagged); $x ++) { + if(stristr($tagged[$x],$tag . ' ')) { + $fullnametagged = true; + break; + } + } + if($fullnametagged) + continue; + + $success = handle_tag($a, $body, $access_tag, $str_tags, ($uid) ? $uid : $profile_uid , $tag); + $results[] = array('success' => $success, 'access_tag' => $access_tag); + if($success['replaced']) $tagged[] = $tag; + } + } + return $results; +} + |