]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
bundle users by reg date
authorEvan Prodromou <evan@status.net>
Mon, 12 Apr 2010 14:11:45 +0000 (10:11 -0400)
committerEvan Prodromou <evan@status.net>
Wed, 28 Apr 2010 22:41:27 +0000 (18:41 -0400)
plugins/Sitemap/usersitemap.php

index b7cc939a9f00816cc2ff19452da7de19368dfb2d..42cadaca7d9b116831e1d03b6ef15a834c5e6311 100644 (file)
@@ -49,8 +49,16 @@ class UsersitemapAction extends SitemapAction
     {
         parent::prepare($args);
 
+        $y = $this->trimmed('year');
+
+        $m = $this->trimmed('month');
+        $d = $this->trimmed('day');
+
         $i = $this->trimmed('index');
 
+        $y += 0;
+        $m += 0;
+        $d += 0;
         $i += 0;
 
         $offset = ($i-1) * SitemapPlugin::USERS_PER_MAP;
@@ -58,7 +66,19 @@ class UsersitemapAction extends SitemapAction
 
         $this->user = new User();
 
-        $this->user->orderBy('id');
+        $begindt = sprintf('%04d-%02d-%02d 00:00:00', $y, $m, $d);
+
+        // XXX: estimates 1d == 24h, which screws up days
+        // with leap seconds (1d == 24h + 1s). Thankfully they're
+        // few and far between.
+
+        $enddt   = common_sql_date(strtotime($begindt) + (24 * 60 * 60));
+
+        $this->user->whereAdd("created >= '$begindt'");
+        $this->user->whereAdd("created <  '$enddt'");
+
+        $this->user->orderBy('created');
+
         $this->user->limit($offset, $limit);
 
         $this->user->find();