Вход Регистрация
Файл: messenger.php
Строк: 260
<?
/***************************************************************************
 * ExBB v.1.1                                                              *
 * Copyright (c) 2002-20хх by Alexander Subhankulov aka Warlock            *
 *                                                                         *
 * http://www.exbb.revansh.com                                             *
 * email: admin@exbb.revansh.com                                           *
 *                                                                         *
 ***************************************************************************/
/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

session_start();

include(
'common.php');

$vars = parsed_vars();

if (!
$exbb['reged']) error($lang['PM_tit'],$lang['User_unreg'],'<meta http-equiv="refresh" content="3; url=loginout.php">',true);

if ((isset(
$vars['msg'])) && ($vars['msg'] == '')) { error($lang['PM'],$lang['Dont_chg_url']);}

include(
$exbb['home_path'] . 'language/' . $exbb['default_lang'] . '/lang_pm.php');

if (
$vars['action'] == 'new' || $vars['action'] == 'reply1') {

   
$touser = getmember($vars['touser']);
   
$touser = ($touser) ? unserialize($touser) : array('name'=> '???');

   
$from = $touser['name'];

   
$codemap = '<br><script language="JavaScript">ibcodes();</script>';
   
$smilesmap = '<br><script language="JavaScript">ibsmiles();</script>';
   
$java = '<script language="Javascript" src="smilesmap.js"></script><script language="Javascript" src="codesmap.js"></script>';

   if (
$vars['action'] == 'reply1') {

        
$filetoopen = 'messages/'.$exbb['mem_id'].'-msg.php';
        
$inboxmessages = get_file($filetoopen);
        if (!isset(
$inboxmessages[$vars['msg']])) error($lang['PM'],$lang['Correct_post']);

        
$from = $inboxmessages[$vars['msg']]['from'];
        
$date = $vars['msg'];
        
$messagetitle = 'RE:'.$inboxmessages[$vars['msg']]['title'];
        
$post = $inboxmessages[$vars['msg']]['msg'];
        
$post = str_replace('<br>',"n",$post);
        
$post = str_replace('<p>',"nn",$post);
        
$post = '[q]'.$post.'[/q]';
   }
   
$vars['action'] = 'new';
}
elseif (
$vars['action'] == 'outbox') {

        
$filetoopen = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-out.php';
        if (
file_exists($filetoopen)) {
          
$outboxmessages = get_file($filetoopen);
          
$totalinboxmessages = count($outboxmessages);
          
krsort($outboxmessages);
        } else { 
$totalinboxmessages = 0; $outboxmessages = array();}

        
# Prepare the messages.

        
foreach ($outboxmessages as $date=>$ms) {
            
$from = $ms['to'];
            
$messagetitle = '<a href="messenger.php?action=outread&msg='.$date.'">'.$ms['title'].'</a>';
            
$readstate = '&nbsp;';
            
$time = date("d.m.Y - H:i", $date + $exbb['usertime']*3600);
            include(
'./templates/'.$exbb['default_style'].'pm_inbox_data.tpl');
        }
} 
# end action
elseif ($vars['action'] == 'deleteall') {

        if (
$vars['where'] == 'inbox') {
                
$filetotrash = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-msg.php';
        }
        elseif (
$vars['where'] == 'outbox') {
                
$filetotrash = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-out.php';
        }

        if (
$filetotrash != '') {
                @
unlink($filetotrash);
        }
        else {
                
error($lang['PM'],$lang['PM_not_deleted'],'',0);
        }
      
error($lang['PM'],$lang['All_deleted_you'].$vars['where'],'<meta http-equiv="refresh" content="3; url=messenger.php?action='.$vars['where'].'">',false);

} 
# end action
elseif ($vars['action'] == 'outread') { # start showing messages

        
$filetoopen = 'messages/'.$exbb['mem_id'].'-out.php';
        
$outboxmessages = get_file($filetoopen);
        if (!isset(
$outboxmessages[$vars['msg']])) error($lang['PM'],$lang['Correct_post']);

        
$to = $outboxmessages[$vars['msg']]['to'];
        
$date = $vars['msg'];
        
$messagetitle = $outboxmessages[$vars['msg']]['title'];
        
$post = $outboxmessages[$vars['msg']]['msg'];

        
$date = $date + $exbb['usertime']*3600;
        
$date = longDate($date,1);

        
# Split the line
        
$post = ikoncode($post);
        if (
$exbb['emoticons']) {$post = setsmiles($post);}

} 
# end outread
elseif ($vars['action'] == 'send') {

        
$allusers = get_file($exbb['home_path'].'data/users.php');
        
$touser = preg_replace ($lang['search'], $lang['replace'], $vars['touser']);
        
$u_id = 0;
        foreach (
$allusers as $id=>$info) {
           if (
$info['n'] == $touser) {$u_id = $id; break;}
        }

        if (empty(
$u_id)) error($lang['Message_sending'],$lang['User_not_found'],'',0);
        
$touser = getmember($u_id);

        if (
$touser) {$touser = unserialize($touser);} else {error($lang['Message_sending'],$lang['User_not_found'],'',0);}

        
$membername = $touser['name'];

        
# Check for blanks

        
if (empty($vars['msgtitle']) || empty($vars['inpost']) || empty($vars['touser'])) { error($lang['Message_sending'],$lang['PM_fill']); }

        if (
strlen($vars['poslanie']) > $exbb['max_posts']) {error($lang['PM'],$lang['Big_post']);}

        
$currenttime = time();

        
$touser['new_pm'] = true;
        
$filetomake = $exbb['home_path'].'members/'.$u_id.'.php';
        
save_file($filetomake,$touser);

        
# Send the message to the user's file
        
$filetomake = $exbb['home_path'].'messages/'.$u_id.'-msg.php';

        
$inboxmessages = (file_exists($filetomake)) ? get_file($filetomake) : array();

        
$msg = fopen($filetomake,'w');
        
lock_file($msg);
        
# Write back to the 'to' users file
        
$inboxmessages[$currenttime]['from'] = $exbb['member'];
        
$inboxmessages[$currenttime]['title'] = $vars['msgtitle'];
        
$inboxmessages[$currenttime]['msg'] = $vars['inpost'];
        
$inboxmessages[$currenttime]['status'] = false;
        
save_opened_file($msg,$inboxmessages);
        unset(
$inboxmessages);

        
# Now, write it to the outbox of the sender

        
$filetomake = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-out.php';

        if (
file_exists($filetomake)) {
            
$outboxmessages = get_file($filetomake);
            
$msg = fopen($filetomake,'r+');
        } else {
            
$outboxmessages = array();
            
$msg = fopen($filetomake,'w');
        }
        
lock_file($msg);
        
#flock($msg,2);
        
$outboxmessages[$currenttime]['to'] = $vars['touser'];
        
$outboxmessages[$currenttime]['title'] = $vars['msgtitle'];
        
$outboxmessages[$currenttime]['msg'] = $vars['inpost'];
        
save_opened_file($msg,$outboxmessages);
        
error($lang['Message_sending'],"<b>$lang[Message_text] $lang[PM_for] $membername $lang[was_sent]</b><br>$lang[PM_stored]",'<meta http-equiv="refresh" content="3; url=messenger.php">',false);

} 
# end action
elseif ($vars['action'] == 'inbox') {

        
$inuser = getmember($exbb['mem_id']);
        if (
$inuser) {$inuser = unserialize($inuser);} else {error($lang['Message_sending'],$lang['User_not_found'],'',0);}
        
$inuser['new_pm'] = false;
        
$filetomake = $exbb['home_path'].'members/'.$exbb['mem_id'].'.php';
        
save_file($filetomake,$inuser);
        
# Pick up the messages (inbox)

        
$filetomake = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-msg.php';
        if (
file_exists($filetomake)) {
           
$inboxmessages = get_file($filetomake);
           
$totalinboxmessages = count($inboxmessages);
           
krsort($inboxmessages);
        } else {
           
$inboxmessages = array();
           
$totalinboxmessages = 0;
        }

        
# Display the messages.

        
foreach ($inboxmessages as $date=>$ms) {
            
$from = $ms['from'];
            
$messagetitle = '<a href="messenger.php?action=read&msg='.$date.'">'.$ms['title'].'</a>';
            
$readstate = (!$ms['status']) ? '<b>'.$lang['no'].'</b>' : $lang['yes'];
            
$time = date("d.m.Y - H:i", $date + $exbb['usertime']*3600);
            include(
'./templates/'.$exbb['default_style'].'pm_inbox_data.tpl');
        }
}
elseif (
$vars['action'] == 'read') { # start showing messages

        
$filetoopen = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-msg.php';
        
$inboxmessages = get_file($filetoopen);
        if (!isset(
$inboxmessages[$vars['msg']])) error($lang['PM'],$lang['Dont_chg_url']);
        if (!
$inboxmessages[$vars['msg']]['status']) {
             
$msg = fopen($filetoopen,'r+');
             
lock_file($msg);
             
#flock($msg,2);
             
$inboxmessages[$vars['msg']]['status'] = true;
             
save_opened_file($msg,$inboxmessages);
        }
        
$from = $inboxmessages[$vars['msg']]['from'];
        
$date = $vars['msg'];
        
$messagetitle = $inboxmessages[$vars['msg']]['title'];
        
$post = $inboxmessages[$vars['msg']]['msg'];

        
# Write back to as read

        
$date = $date + $exbb['usertime']*3600;
        
$date = longDate($date,'1');
        
$post = ikoncode($post);
        if (
$exbb['emoticons']) {$post = setsmiles($post);}

} 
# end read
elseif ($vars['action'] == 'delete') {

        
# Open the user's file
      
if ($vars['where'] == 'inbox') {
           
$filetoopen = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-msg.php';
      }
      elseif (
$vars['where'] == 'outbox') {
           
$filetoopen = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-out.php';
      }

      
$boxmessages = get_file($filetoopen);
      if (!isset(
$boxmessages[$vars['msg']])) error($lang['PM'],$lang['Dont_chg_url']);

      
# Write back to the 'to' users file
      
$msg = fopen($filetoopen,'w');
      
lock_file($msg);
      unset(
$boxmessages[$vars['msg']]);
      
save_opened_file($msg,$boxmessages);
      
error($lang['PM'],$lang['PM_deledet_you'].$vars['where'],'<meta http-equiv="refresh" content="3; url=messenger.php?action='.$vars['where'].'">',false);

} 
# end action
else {
        
# Pick up the messages
        
$filetoopen = $exbb['home_path'].'messages/'.$exbb['mem_id'].'-msg.php';

        
$unread = 0;
        
$totalmessages = 0;
        if (
file_exists($filetoopen)) {
            
$allmessages =  get_file($filetoopen);
            
$totalmessages = count($allmessages);
            foreach (
$allmessages as $date=>$ms) if (!$ms['status'])  $unread++;
        }
        
$vars['action'] = 'show';
     }


$title_page = $exbb['boardname'].' :: '.$lang['PM'];
include(
'./templates/'.$exbb['default_style'].'all_header.tpl');
include(
'./templates/'.$exbb['default_style'].'pm_'.$vars['action'].'.tpl');
include(
'./templates/'.$exbb['default_style'].'footer.tpl');
include(
'page_tail.php');
?>
Онлайн: 0
Реклама