Exemplo n.º 1
0
 private function filterHiddenCategories($categories)
 {
     global $wgMemc;
     wfProfileIn(__METHOD__);
     if (!is_array(self::$hiddenCategories)) {
         $memcKey = wfMemcKey('hidden-categories');
         self::$hiddenCategories = $wgMemc->get($memcKey);
         if (!is_array(self::$hiddenCategories)) {
             $dbr = wfGetDB(DB_SLAVE);
             $res = $dbr->query("SELECT page_title FROM page JOIN page_props ON page_id=pp_page AND pp_propname='hiddencat';");
             self::$hiddenCategories = array();
             while ($row = $dbr->fetchObject($res)) {
                 self::$hiddenCategories[] = $row->page_title;
             }
             $wgMemc->set($memcKey, self::$hiddenCategories, 60 * 60);
         }
     }
     $categories = array_values(array_diff($categories, self::$hiddenCategories));
     wfProfileOut(__METHOD__);
     return $categories;
 }
Exemplo n.º 2
0
 /**
  * Get list of hidden categories (cached in memcached using WikiaDataAccess).
  *
  * Using WikiaDataAccess to limit number of processes regenerating cache and prevent delay when other
  * process is already regenerating data. The stalled data is returned in the latter case.
  *
  * @see https://wikia-inc.atlassian.net/browse/PLATFORM-615
  *
  * @return array
  */
 private function getHiddenCategories()
 {
     wfProfileIn(__METHOD__);
     $fname = __METHOD__;
     if (!is_array(self::$hiddenCategories)) {
         self::$hiddenCategories = WikiaDataAccess::cacheWithLock(wfMemcKey('hidden-categories-v2'), WikiaResponse::CACHE_SHORT, function () use($fname) {
             $dbr = wfGetDB(DB_SLAVE);
             $res = $dbr->query("SELECT page_title FROM page JOIN page_props ON page_id=pp_page AND pp_propname='hiddencat' LIMIT " . self::HIDDEN_CATEGORIES_LIMIT, $fname);
             $hiddenCategories = array();
             while ($row = $dbr->fetchObject($res)) {
                 $hiddenCategories[] = $row->page_title;
             }
             return $hiddenCategories;
         });
     }
     wfProfileOut(__METHOD__);
     return self::$hiddenCategories;
 }