- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/mysql/messages.php
- Класс: CSocNetMessages
- Вызов: CSocNetMessages::GetMessagesUsers
static function GetMessagesUsers($userID, $arNavStartParams = false, $online_interval = 120)
{
global $DB;
$userID = intval($userID);
if ($userID <= 0)
return false;
$strSql =
"SELECT U.ID, U.ACTIVE, U.LOGIN, U.NAME, U.LAST_NAME, U.SECOND_NAME, U.PERSONAL_PHOTO, U.PERSONAL_GENDER, COUNT(M.ID) as TOTAL, MAX(M.DATE_CREATE) as MAX_DATE, ".
" IF(U.LAST_ACTIVITY_DATE > DATE_SUB(NOW(), INTERVAL ".intval($online_interval)." SECOND), 'Y', 'N') IS_ONLINE, ".
" ".$DB->DateToCharFunction("MAX(M.DATE_CREATE)", "FULL")." as MAX_DATE_FORMAT, ".
" SUM(CASE WHEN M.DATE_VIEW IS NULL AND M.TO_USER_ID = ".$userID." THEN 1 ELSE 0 END) as UNREAD ".
"FROM b_user U, b_sonet_messages M ".
"WHERE ".
" (M.IS_LOG IS NULL OR NOT M.IS_LOG = 'Y') ".
" AND ( ".
" M.TO_USER_ID = ".$userID." ".
" AND M.FROM_USER_ID = U.ID ".
" AND M.TO_DELETED = 'N' ".
" OR ".
" M.FROM_USER_ID = ".$userID." ".
" AND M.TO_USER_ID = U.ID ".
" AND M.FROM_DELETED = 'N' ".
" ) ".
"GROUP BY U.ID, U.NAME, U.LAST_NAME, U.SECOND_NAME, U.PERSONAL_PHOTO, U.PERSONAL_GENDER ".
"ORDER BY UNREAD DESC, MAX_DATE DESC ";
if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) <= 0)
{
$strSql_tmp =
"SELECT DISTINCT FROM_USER_ID ".
"FROM b_sonet_messages M ".
"WHERE ".
"(M.IS_LOG IS NULL OR NOT M.IS_LOG = 'Y') ".
"AND M.TO_USER_ID = ".$userID." ".
"AND M.TO_DELETED = 'N' ".
"UNION DISTINCT ".
"SELECT DISTINCT TO_USER_ID ".
"FROM b_sonet_messages ".
"WHERE ".
"(IS_LOG IS NULL OR NOT IS_LOG = 'Y') ".
"AND FROM_USER_ID = ".$userID." ".
"AND FROM_DELETED = 'N'";
$dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."
Line: ".__LINE__);
$cnt = 0;
if ($dbRes)
$cnt = $dbRes->SelectedRowsCount();
$dbRes = new CDBResult();
$dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
}
else
{
if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) > 0)
$strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
$dbRes = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
}
return $dbRes;
}