Example #1
0
 private function getCachedTitles()
 {
     global $wgMemc, $wgUser;
     $titles = array();
     $cacheKey = SearchForm::getCacheKey();
     $cacheData = $wgMemc->get($cacheKey);
     if (!isset($cacheData) || $cacheData === false) {
         $dbr =& wfGetDB(DB_SLAVE);
         $use_index = $dbr->useIndexClause('user_timestamp');
         extract($dbr->tableNames('page', 'revision', 'index_checkpoint'));
         $sql = "SELECT\n            page_namespace,page_title\n            FROM {$index_checkpoint},{$page},{$revision} {$use_index}\n            WHERE ic_name='revisions' AND page_id=rev_page AND rev_user = {$wgUser->getID()} AND rev_timestamp >= ic_rev_timestamp\n             ORDER BY rev_timestamp DESC";
         $sql = $dbr->limitResult($sql, 50);
         $rows = $dbr->query($sql, 'SpecialSearch');
         while ($row = $dbr->fetchObject($rows)) {
             $t = Title::makeTitle($row->page_namespace, $row->page_title);
             $titleString = $t->getPrefixedText();
             if (!in_array($titleString, $titles)) {
                 $titles[] = $titleString;
             }
         }
         $dbr->freeResult($rows);
         $cacheData = join('|', $titles);
         $wgMemc->set($cacheKey, $cacheData, self::CACHE_EXP_TIME);
     } else {
         if ($cacheData) {
             $titles = explode('|', $cacheData);
         }
     }
     return $titles;
 }