Вход Регистрация
Файл: message.php
Строк: 132
<?php
/**
 * messages system
 * 
 * @package Sngine
 * @author Zamblek
 */

// fetch kernal
require('kernal.php');

// check access level
AccessLevel('restricted');

// page header
PageHeader($translate->__("Messages"));

// check data ID
if(!isset($_GET['id']) || $_GET['id'] == || $_GET['id'] == "") {
    
SystemError($translate->__("Invalid Link"), $translate->__("You may have clicked an expired link or mistyped the address."));
}else {
    
// check if user authorized to see conversation
    
$getConversation $db->query(sprintf("SELECT conv.ID, conv.Recipients, user.Viewed FROM messages_conversations conv INNER JOIN messages_conversations_users user ON conv.ID = user.ConversationID WHERE user.ConversationID = %s AND user.UserID = %s AND user.Deleted = 'N'"SafeSQL($_GET['id'], 'int'),SafeSQL($userArray['UserID'], 'int') )) or SQLError();
    if(
$getConversation->num_rows == 0) {
        
SystemError($translate->__("Invalid Link"), $translate->__("That message could not be found."));
    }
    
$conversation $getConversation->fetch_array(MYSQLI_ASSOC);
}

// mark as read if not
if($conversation['Viewed'] == 'N') {
    
$db->query(sprintf("UPDATE messages_conversations_users SET Viewed = 'Y' WHERE ConversationID = %s AND UserID = %s"SafeSQL($_GET['id'], 'int'), SafeSQL($userArray['UserID'], 'int'))) or SQLError();
}

// get conversation recipients
if($conversation['Recipients'] < 2) {
    
// just one to one conversation
    
$getRecipients $db->query(sprintf("SELECT user.UserID, user.UserName, user.UserFirstName, user.UserLastName, user.UserAvatarPathMedium AS UserAvatarPath FROM messages_conversations_users conv INNER JOIN users user ON conv.UserID = user.UserID WHERE conv.ConversationID = %s AND conv.UserID != %s"SafeSQL($_GET['id'], 'int'), SafeSQL($userArray['UserID'], 'int') )) or SQLError();
    
$recipient $getRecipients->fetch_array(MYSQLI_ASSOC);
    
$conversation['users'] = $recipient;
    
$conversation['hasOthers'] = false;
}else {
    
// more than 2 recipients
    
$getRecipients $db->query(sprintf("SELECT user.UserID, user.UserName, user.UserFirstName, user.UserLastName, user.UserAvatarPathMedium AS UserAvatarPath FROM messages_conversations_users conv INNER JOIN users user ON conv.UserID = user.UserID WHERE conv.ConversationID = %s AND conv.UserID != %s"SafeSQL($_GET['id'], 'int'), SafeSQL($userArray['UserID'], 'int') )) or SQLError();
    
$counter 1;
    while(
$recipient $getRecipients->fetch_array(MYSQLI_ASSOC)) {
        if(
$counter 2) {
            
$conversation['users'] = $recipient;
        }else {
            
$conversation['otherUsers'][] = $recipient;
        }
        
$counter++;
    }
    
$conversation['others'] = $conversation['Recipients'] - 1;
    
$conversation['hasOthers'] = true;
}
$smarty->assign('conversation'$conversation);

// get conversation messages
$getMessages $db->query(sprintf("SELECT msg.*, user.UserName, user.UserFirstName, user.UserLastName, user.UserAvatarPathMedium AS UserAvatarPath FROM messages msg INNER JOIN users user ON msg.UserID = user.UserID WHERE msg.ConversationID = %s ORDER BY msg.Time ASC"SafeSQL($_GET['id'], 'int'))) or SQLError();
while(
$message $getMessages->fetch_array(MYSQLI_ASSOC)) {
    
// check if user deleted this message
    
$checkDeleted $db->query(sprintf("SELECT * FROM messages_users WHERE MessageID = %s AND UserID = %s AND Deleted = 'N'"SafeSQL($message['ID'], 'int'), SafeSQL($userArray['UserID'], 'int') )) or SQLError();
    if(
$checkDeleted->num_rows 0) {
        
// decode text
        
$message['Text'] = DecodeText($message['Text']);
        
$messages[] = $message;
    }
}
$smarty->assign('messages'$messages);
    
// page footer
PageFooter("message");

?>
Онлайн: 1
Реклама