summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2008-09-28 14:18:12 -0400
committerEvan Prodromou <evan@controlyourself.ca>2008-09-28 14:18:12 -0400
commit11eed225b799c14519ee46305be11566dbbb22b8 (patch)
tree4dc135243def012483817dffed9c98ed70c2e2b6
parentddf2dce601e312fc06b38cb0dfb15857ff98ff7f (diff)
blow the cached streams for tags on a new notice
darcs-hash:20080928181812-5ed1f-708380f239b17b2a53b7279aa4a55af11156a5e8.gz
-rw-r--r--classes/Notice.php16
-rw-r--r--classes/Notice_tag.php7
2 files changed, 23 insertions, 0 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index e72892966..3402e2b30 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -140,6 +140,22 @@ class Notice extends Memcached_DataObject
$this->blowNoticeCache();
$this->blowRepliesCache();
$this->blowPublicCache();
+ $this->blowTagCache();
+ }
+
+ function blowTagCache() {
+ $cache = common_memcache();
+ if ($cache) {
+ $tag = new Notice_tag();
+ $tag->notice_id = $this->id;
+ if ($tag->find()) {
+ while ($tag->fetch()) {
+ $tag->blowCache();
+ }
+ }
+ $tag->free();
+ unset($tag);
+ }
}
function blowSubsCache() {
diff --git a/classes/Notice_tag.php b/classes/Notice_tag.php
index e9f00d6d1..5ab6e332a 100644
--- a/classes/Notice_tag.php
+++ b/classes/Notice_tag.php
@@ -45,4 +45,11 @@ class Notice_tag extends Memcached_DataObject
'notice_tag:notice_stream:' . $tag,
$offset, $limit);
}
+
+ function blowCache() {
+ $cache = common_memcache();
+ if ($cache) {
+ $cache->delete(common_cache_key('notice_tag:notice_stream:' . $this->tag));
+ }
+ }
}