Вход Регистрация
Файл: upload/core/elements/dialog_list.php
Строк: 26
<?php
$userId     
$GLOBALS['userId'];
$activePeer $GLOBALS['activePeer'];

$res dbquery("
  SELECT
    CASE
      WHEN sender_id = ? THEN receiver_id
      ELSE sender_id
    END AS peer_id,
    MAX(id) AS last_message_id
  FROM messages
  WHERE sender_id = ? OR receiver_id = ?
  GROUP BY peer_id
  ORDER BY last_message_id DESC
"
, [$userId$userId$userId]);

$messages = [];

while (
$row FetchAssoc($res)) {

    
$peerId $row['peer_id'];

    
// Последнее сообщение
    
$lastMsg FetchAssoc(dbquery("
        SELECT k_text 
        FROM messages 
        WHERE id = ?
    "
, [$row['last_message_id']]));

    
// Данные собеседника
    
$peer FetchAssoc(dbquery("
        SELECT * 
        FROM users 
        WHERE id = ?
    "
, [$peerId]));

    
// Непрочитанные
    
$unread FetchAssoc(dbquery("
        SELECT COUNT(*) AS cnt
        FROM messages
        WHERE sender_id = ? 
          AND receiver_id = ? 
          AND readed = 0
    "
, [$peerId$userId]));

    
$messages[] = [
        
'active' => ($activePeer == $peerId),

        
'peer' => [
            
'id'     => $peerId,
            
'avatar' => GetAvatar($peer['avatar']),
            
'login'  => $peer['login'],
            
'online' => onlineDot($peer['id'], 'nick-online')
        ],

        
'unread'  => intval($unread['cnt']),
        
'preview' => chars(bbnonmes($lastMsg['k_text']))
    ];
}

// Рендер компонента
$messages_cmp $view->render('components/messages/list.html', [
    
'messages' => $messages,
    
'home'     => homeLink()
]);
?>
Онлайн: 5
Реклама