fail gracefully when no IDs for tag cloud

This commit is contained in:
Evan Prodromou 2011-04-20 19:07:07 -04:00
parent 0c0aabeda5
commit 5899a3f5ee
2 changed files with 54 additions and 46 deletions

View File

@ -70,6 +70,9 @@ class InboxTagCloudSection extends TagCloudSection
$ids = $stream->getNoticeIds(0, Inbox::MAX_NOTICES, null, null);
if (empty($ids)) {
$tag = array();
} else {
$weightexpr = common_sql_weight('notice_tag.created', common_config('tag', 'dropoff'));
// @fixme should we use the cutoff too? Doesn't help with indexing per-user.
@ -99,6 +102,7 @@ class InboxTagCloudSection extends TagCloudSection
while ($t->fetch()) {
$tag[] = clone($t);
}
}
Memcached_DataObject::cacheSet($keypart, $tag, 3600);
}

View File

@ -71,6 +71,9 @@ class PublicTagCloudSection extends TagCloudSection
$ids = $stream->getNoticeIds(0, 500, null, null);
if (empty($ids)) {
$tag = array();
} else {
$weightexpr = common_sql_weight('notice_tag.created', common_config('tag', 'dropoff'));
// @fixme should we use the cutoff too? Doesn't help with indexing per-user.
@ -78,7 +81,7 @@ class PublicTagCloudSection extends TagCloudSection
$weightexpr . ' as weight ' .
'FROM notice_tag JOIN notice ' .
'ON notice_tag.notice_id = notice.id ' .
'WHERE notice.id in (' . implode(',', $ids) . ')'.
'WHERE notice.id in (' . implode(',', $ids) . ') '.
'GROUP BY notice_tag.tag ' .
'ORDER BY weight DESC ';
@ -100,6 +103,7 @@ class PublicTagCloudSection extends TagCloudSection
while ($t->fetch()) {
$tag[] = clone($t);
}
}
Memcached_DataObject::cacheSet($keypart, $tag, 60 * 60 * 24);
}