function getOnlineUsersInfo($sUserId, $bInit) { global $aXmlTemplates; $aSaved = getSavedUsers(); $aActive = getActiveUsers($sUserId); $aFriends = getFriends($sUserId); saveUsers($aActive); $sContents = ""; if ($bInit) { $aFullUsers = array_unique(array_merge($aActive['online'], $aFriends)); } else { $aFullUsers = array_diff($aActive['online'], $aSaved['online'], $aFriends); $aNewOfflineUsers = array_intersect($aSaved['online'], $aActive['offline']); $aNewOnlineUsers = array_intersect($aSaved['offline'], $aActive['online'], $aFriends); for ($i = 0; $i < count($aNewOfflineUsers); $i++) { $sContents .= parseXml($aXmlTemplates['user'], $aNewOfflineUsers[$i], FALSE_VAL); } for ($i = 0; $i < count($aNewOnlineUsers); $i++) { $sContents .= parseXml($aXmlTemplates['user'], $aNewOnlineUsers[$i], TRUE_VAL); } } $rResult = getUsersMedia($aFullUsers); if ($rResult != null) { for ($i = 0; $i < mysql_num_rows($rResult); $i++) { $aUser = mysql_fetch_assoc($rResult); $aUserInfo = getUserInfo($aUser['ID']); $sOnline = in_array($aUser['ID'], $aActive['online']) ? TRUE_VAL : FALSE_VAL; $sFriend = in_array($aUser['ID'], $aFriends) ? TRUE_VAL : FALSE_VAL; $sMusic = $aUser['CountMusic'] > 0 ? TRUE_VAL : FALSE_VAL; $sVideo = $aUser['CountVideo'] > 0 ? TRUE_VAL : FALSE_VAL; $sContents .= parseXml($aXmlTemplates['user'], $aUser['ID'], $aUserInfo['nick'], $aUserInfo['sex'], $aUserInfo['age'], $aUserInfo['photo'], $aUserInfo['profile'], $sOnline, $sFriend, $sMusic, $sVideo); } } return makeGroup($sContents, "users"); }
/** * Gets new user's mails except already got mails($sGotMails) by specified user id */ function getMails($sId, $sGotMails, $aFullUsers) { global $aXmlTemplates; $sNotIn = empty($sGotMails) ? "" : " AND `ID` NOT IN(" . $sGotMails . ")"; $sQuery = "SELECT `ID`, `Sender`, SUBSTRING(`Text`, 1, 150) AS `Body` FROM `sys_messages` WHERE `Recipient` = '" . $sId . "' AND `New`='1'" . $sNotIn . " AND NOT FIND_IN_SET('recipient', `Trash`)"; $rResult = getResult($sQuery); $aMails = array(); $aSenders = array(); for ($i = 0; $i < mysql_num_rows($rResult); $i++) { $aMail = mysql_fetch_assoc($rResult); if (!in_array($aMail['Sender'], $aFullUsers)) { $aSenders[] = $aMail['Sender']; } $aMails[] = $aMail; } $aSenders = array_unique($aSenders); $aMediaUsers = array(); $rMedia = getUsersMedia($aSenders); if ($rMedia != null) { for ($i = 0; $i < mysql_num_rows($rMedia); $i++) { $aUser = mysql_fetch_assoc($rMedia); $sUserId = $aUser['ID']; $aMediaUsers[$sUserId] = getUserInfo($sUserId); $aMediaUsers[$sUserId]['music'] = $aUser['CountMusic'] > 0 ? TRUE_VAL : FALSE_VAL; $aMediaUsers[$sUserId]['video'] = $aUser['CountVideo'] > 0 ? TRUE_VAL : FALSE_VAL; } } $sResult = ""; for ($i = 0; $i < count($aMails); $i++) { $sSenderId = $aMails[$i]['Sender']; $aMails[$i]['Body'] = strip_tags($aMails[$i]['Body']); if (is_array($aMediaUsers[$sSenderId])) { $aUser = $aMediaUsers[$sSenderId]; $sResult .= parseXml($aXmlTemplates["message"], $aMails[$i]['ID'], $sSenderId, $aMails[$i]['Body'], $aUser['nick'], $aUser['sex'], $aUser['age'], $aUser['photo'], $aUser['profile'], $aUser['music'], $aUser['video']); } else { $sResult .= parseXml($aXmlTemplates["message"], $aMails[$i]['ID'], $sSenderId, $aMails[$i]['Body']); } } return makeGroup($sResult, "mails"); }