コード例 #1
0
 public static function getBlockedIDs($profile_id, $offset, $limit)
 {
     $cacheKey = 'qvitterblocked:' . $profile_id;
     $queryoffset = $offset;
     $querylimit = $limit;
     if ($offset + $limit <= self::CACHE_WINDOW) {
         // Oh, it seems it should be cached
         $ids = self::cacheGet($cacheKey);
         if (is_array($ids)) {
             return array_slice($ids, $offset, $limit);
         }
         // Being here indicates we didn't find anything cached
         // so we'll have to fill it up simultaneously
         $queryoffset = 0;
         $querylimit = self::CACHE_WINDOW;
     }
     $blocks = new Profile_block();
     $blocks->blocker = $profile_id;
     $blocks->selectAdd('blocked');
     $blocks->whereAdd("blocked != {$profile_id}");
     $blocks->orderBy('modified DESC');
     $blocks->limit($queryoffset, $querylimit);
     if (!$blocks->find()) {
         return array();
     }
     $ids = $blocks->fetchAll('blocked');
     // If we're simultaneously filling up cache, remember to slice
     if ($queryoffset === 0 && $querylimit === self::CACHE_WINDOW) {
         self::cacheSet($cacheKey, $ids);
         return array_slice($ids, $offset, $limit);
     }
     return $ids;
 }