public static function suggestCategoryInterests() { global $wgUser; $interests = array(); if ($wgUser->getId() == 0) { return $interests; } $dbr = wfGetDB(DB_SLAVE); $res = ProfileBox::fetchEditedData($wgUser->getName(), 10); while ($row = $dbr->fetchObject($res)) { $t = Title::newFromId($row->page_id); if ($t && $t->exists()) { $interests = array_merge($interests, CatSearch::getParentCats($t)); } } $interests = array_unique($interests); foreach ($interests as $k => $interest) { if (CatSearch::ignoreCategory($interest)) { unset($interests[$k]); } } // Give them some random top-level categories if they haven't done any edits yet if (!sizeof($interests)) { global $wgCategoryNames; $topCats = array_values($wgCategoryNames); $rnd = rand(1, 6); for ($i = 1; $i < 4; $i++) { $interests[] = str_replace(" ", "-", $topCats[$i * $rnd]); } } return array_slice(array_values($interests), 0, 3); }