diff options
author | Adrian Lang <mail@adrianlang.de> | 2009-01-26 15:03:38 +0100 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-01-26 15:03:38 +0100 |
commit | a80a536e4104bf1b621a86b72d35c7f637d7afd5 (patch) | |
tree | ec74fdf02ebd7bc35b240a6b67dedb0417732c34 | |
parent | 12b9d4346f75027d3a4f804db72222fbe2282e5d (diff) |
Fix canonical tags in notice and in URLs
-rw-r--r-- | actions/tag.php | 7 | ||||
-rw-r--r-- | classes/Notice.php | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/actions/tag.php b/actions/tag.php index 039cd9660..803026e62 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -24,13 +24,18 @@ class TagAction extends Action function prepare($args) { parent::prepare($args); - $this->tag = $this->trimmed('tag'); + $taginput = $this->trimmed('tag'); + $this->tag = common_canonical_tag($taginput); if (!$this->tag) { common_redirect(common_local_url('publictagcloud'), 301); return false; } + if ($this->tag != $taginput) { + common_redirect(common_local_url('tag', array('tag' => $this->tag))); + } + $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; return true; } diff --git a/classes/Notice.php b/classes/Notice.php index c597137fe..2cdf80f1c 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -91,11 +91,11 @@ class Notice extends Memcached_DataObject return true; } - /* elide characters we don't want in the tag */ - $match[1] = str_replace(array('-', '_', '.'), '', $match[1]); - /* Add them to the database */ foreach(array_unique($match[1]) as $hashtag) { + /* elide characters we don't want in the tag */ + $hashtag = common_canonical_tag($hashtag); + $tag = DB_DataObject::factory('Notice_tag'); $tag->notice_id = $this->id; $tag->tag = $hashtag; |