Пример #1
0
 public function getArticlesCreated($limit)
 {
     $dbr = wfGetDB(DB_SLAVE);
     global $wgMemc;
     $MAX_INITIAL_DISPLAYED = 5;
     $cacheKey = wfMemcKey(ProfileStats::CACHE_PREFIX, 'created', $this->user->getID(), $limit);
     $result = $wgMemc->get($cacheKey);
     if (!$this->isOwnPage && $result) {
         return $result;
     }
     $order = array();
     $order['ORDER BY'] = 'fe_timestamp DESC';
     if ($limit) {
         $order['LIMIT'] = $limit;
     }
     $res = $dbr->select(array('firstedit', 'page'), array('page_id', 'page_title', 'page_namespace', 'fe_timestamp', 'page_counter'), array('fe_page=page_id', 'fe_user' => $this->user->getID(), "page_title not like 'Youtube%'", 'page_is_redirect' => 0, 'page_namespace' => NS_MAIN), __METHOD__, $order);
     if ($res) {
         foreach ($res as $row) {
             $results[] = $row;
         }
     }
     if ($results) {
         $fas = ProfileBox::getFeaturedArticles();
         foreach ($results as $i => $row) {
             $row->fa = isset($fas[$row->page_title]) ? (bool) $fas[$row->page_title] : false;
             $title = Title::makeTitle($row->page_namespace, $row->page_title);
             $rs = $dbr->selectField('pagelist', array('count(*)'), array('pl_page' => $title->getArticleID(), 'pl_list' => 'risingstar'), __METHOD__) > 0;
             if ($rs) {
                 $row->rs = true;
             } else {
                 $row->rs = false;
             }
             $row->title = $title;
             // People like Ttrimm can have 1200+ articles created, so we
             // want to make sure we don't generate that many db queries
             if ($i >= $MAX_INITIAL_DISPLAYED) {
                 break;
             }
         }
     }
     $wgMemc->set($cacheKey, $results, 60 * 10);
     return $results;
 }