/**
  * @brief Generates row data for user if ajax call was sent from Special:LookupUser
  * 
  * @param array $activityData data retrieved from LookupContribsCore::checkUserActivity()
  * 
  * @return array
  * 
  * @author Andrzej 'nAndy' Łukaszewski
  */
 public static function prepareLookupUserData($activityData, $username)
 {
     global $wgLang, $wgContLang;
     $rows = array();
     foreach ($activityData as $row) {
         $rows[] = array($row['id'], $row['title'], $row['url'], $wgLang->timeanddate(wfTimestamp(TS_MW, $row['last_edit']), true), $wgContLang->formatNum($row['editcount']), LookupUserPage::getUserData($username, $row['id'], $row['url']), LookupUserPage::getUserData($username, $row['id'], $row['url'], true));
     }
     return $rows;
 }
Example #2
0
 /**
  * @brief: Ajax call loads data for two new columns: user rights and blocked
  *
  * @author Andrzej 'nAndy' Łukaszewski
  */
 public function requestApiAboutUser()
 {
     wfProfileIn(__METHOD__);
     global $wgRequest, $wgMemc;
     $userName = $wgRequest->getVal('username');
     $wikiUrl = $wgRequest->getVal('url');
     $wikiId = $wgRequest->getVal('id');
     $apiUrl = $wikiUrl . 'api.php?action=query&list=users&ususers=' . urlencode($userName) . '&usprop=blockinfo|groups|editcount&format=php';
     $cachedData = $wgMemc->get(LookupUserPage::getUserLookupMemcKey($userName, $wikiId));
     if (!empty($cachedData)) {
         $result = array('success' => true, 'data' => $cachedData);
     } else {
         $result = Http::get($apiUrl);
         if ($result !== false) {
             $result = @unserialize($result);
             if (isset($result['query']['users'][0])) {
                 $userData = $result['query']['users'][0];
                 if (!isset($userData['groups'])) {
                     $userData['groups'] = false;
                 } else {
                     $userData['groups'] = LookupUserPage::selectGroups($userData['groups']);
                 }
                 if (true === LookupUserPage::isUserFounder($userName, $wikiId)) {
                     $userData['groups'][] = wfMsg('lookupuser-founder');
                 }
                 if (!isset($userData['blockedby'])) {
                     $userData['blocked'] = false;
                 } else {
                     $userData['blocked'] = true;
                 }
                 $result = array('success' => true, 'data' => $userData);
                 $wgMemc->set(LookupUserPage::getUserLookupMemcKey($userName, $wikiId), $userData, 3600);
                 //1h
             } else {
                 $result = array('success' => false);
             }
         } else {
             $result = array('success' => false);
         }
     }
     wfProfileOut(__METHOD__);
     return json_encode($result);
 }