コード例 #1
0
ファイル: functions.inc.php プロジェクト: dalinhuang/shopexts
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");
}
コード例 #2
0
/**
 * 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");
}