summaryrefslogtreecommitdiff
path: root/classes/Notice.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2009-07-23 14:45:44 -0700
committerEvan Prodromou <evan@controlyourself.ca>2009-07-23 14:45:44 -0700
commit0dab5f58723cba8b5915c694a8200e242cc9ec02 (patch)
tree240bc8ff72c69bde7789d08493eeee87de1f1a38 /classes/Notice.php
parent749d9bfbbf65d962804bea1fa510039da185179f (diff)
parent7fff454ff931635dc1aca6a67af194b25567a65b (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.php14
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;