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; }