summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Lang <mail@adrianlang.de>2009-01-26 15:03:38 +0100
committerEvan Prodromou <evan@controlyourself.ca>2009-01-26 15:03:38 +0100
commita80a536e4104bf1b621a86b72d35c7f637d7afd5 (patch)
treeec74fdf02ebd7bc35b240a6b67dedb0417732c34
parent12b9d4346f75027d3a4f804db72222fbe2282e5d (diff)
Fix canonical tags in notice and in URLs
-rw-r--r--actions/tag.php7
-rw-r--r--classes/Notice.php6
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;