cache notice and user counts in sitemap index

This commit is contained in:
Evan Prodromou 2010-04-12 12:13:48 -04:00
parent da8b231d2e
commit 09e5046dd3
1 changed files with 28 additions and 18 deletions

View File

@ -101,20 +101,25 @@ class SitemapindexAction extends Action
function getUserCounts() function getUserCounts()
{ {
// XXX: cachemeplease $userCounts = User::cacheGet('sitemap:user:counts');
$user = new User(); if ($userCounts === false) {
$user->selectAdd(); $user = new User();
$user->selectAdd('date(created) as regdate, count(*) as regcount');
$user->groupBy('regdate');
$user->find(); $user->selectAdd();
$user->selectAdd('date(created) as regdate, count(*) as regcount');
$user->groupBy('regdate');
$userCounts = array(); $user->find();
while ($user->fetch()) { $userCounts = array();
$userCounts[$user->regdate] = $user->regcount;
while ($user->fetch()) {
$userCounts[$user->regdate] = $user->regcount;
}
User::cacheSet('sitemap:user:counts', $userCounts);
} }
return $userCounts; return $userCounts;
@ -122,20 +127,25 @@ class SitemapindexAction extends Action
function getNoticeCounts() function getNoticeCounts()
{ {
// XXX: cachemeplease $noticeCounts = Notice::cacheGet('sitemap:notice:counts');
$notice = new Notice(); if ($noticeCounts === false) {
$notice->selectAdd(); $notice = new Notice();
$notice->selectAdd('date(created) as postdate, count(*) as postcount');
$notice->groupBy('postdate');
$notice->find(); $notice->selectAdd();
$notice->selectAdd('date(created) as postdate, count(*) as postcount');
$notice->groupBy('postdate');
$noticeCounts = array(); $notice->find();
while ($notice->fetch()) { $noticeCounts = array();
$noticeCounts[$notice->postdate] = $notice->postcount;
while ($notice->fetch()) {
$noticeCounts[$notice->postdate] = $notice->postcount;
}
Notice::cacheSet('sitemap:notice:counts', $noticeCounts);
} }
return $noticeCounts; return $noticeCounts;