/** * @param int wiki id * @param int avatar size * * @return array most active admins from last week ordered desc */ public function getMostActiveAdmins($wikiId, $avatarSize) { $edits = $ids = $lastRevision = []; $admins = $this->getWikiAdmins($wikiId, $avatarSize); foreach ($admins as $admin) { if (isset($admin['userId'])) { $ids[] = $admin['userId']; } } $adminsEdits = DataMartService::getUserEditsByWikiId($ids, $wikiId); foreach ($admins as $key => $admin) { $userEdits = 0; if (empty($admin['userId']) || in_array($admin['userId'], self::$excludedWikiaUsers)) { unset($admins[$key]); continue; } if (isset($adminsEdits[$admin['userId']])) { $userEdits = $this->countAdminEdits($adminsEdits[$admin['userId']]); } $edits[$key] = $admins[$key]['edits'] = $userEdits; $lastRevision[$key] = $admins[$key]['lastRevision']; } array_multisort($edits, SORT_DESC, $lastRevision, SORT_DESC, $admins); return $admins; }