diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-07-23 14:45:44 -0700 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-07-23 14:45:44 -0700 |
commit | 0dab5f58723cba8b5915c694a8200e242cc9ec02 (patch) | |
tree | 240bc8ff72c69bde7789d08493eeee87de1f1a38 /classes/Notice.php | |
parent | 749d9bfbbf65d962804bea1fa510039da185179f (diff) | |
parent | 7fff454ff931635dc1aca6a67af194b25567a65b (diff) |
Merge branch '0.8.x' of git@gitorious.org:laconica/mainline into 0.8.x
Diffstat (limited to 'classes/Notice.php')
-rw-r--r-- | classes/Notice.php | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/classes/Notice.php b/classes/Notice.php index 413d281f3..c2770edbe 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -98,13 +98,21 @@ class Notice extends Memcached_DataObject function saveTags() { /* extract all #hastags */ - $count = preg_match_all('/(?:^|\s)#([A-Za-z0-9_\-\.]{1,64})/', strtolower($this->content), $match); + $count = preg_match_all('/(?:^|\s)#([\pL\pN_\-\.]{1,64})/', strtolower($this->content), $match); if (!$count) { return true; } + + //turn each into their canonical tag + //this is needed to remove dupes before saving e.g. #hash.tag = #hashtag + $hashtags = array(); + for($i=0; $i<count($match[1]); $i++) { + $hashtags[] = common_canonical_tag($match[1][$i]); + } + /* Add them to the database */ - foreach(array_unique($match[1]) as $hashtag) { + foreach(array_unique($hashtags) as $hashtag) { /* elide characters we don't want in the tag */ $this->saveTag($hashtag); } @@ -113,8 +121,6 @@ class Notice extends Memcached_DataObject function saveTag($hashtag) { - $hashtag = common_canonical_tag($hashtag); - $tag = new Notice_tag(); $tag->notice_id = $this->id; $tag->tag = $hashtag; |