Файл: modules/mail/index.php
Строк: 126
<?php
//Author: [J]iK
//E-mail: erik.f1@ya.ru
$title = 'Почта';
include_once($_SERVER["DOCUMENT_ROOT"].'/style/head.php');
mode('user');
$act=(!isset($_GET['m'])?null:$_GET['m']);
function cid($us){
global $user;
return ($us['cid']==$user['id']?$us['uid']:$us['cid']);
}
function crop_str($string, $limit)
{
if (strlen($string) >= $limit ) {
$substring_limited = substr($string,0, $limit);
return substr($substring_limited, 0, strrpos($substring_limited,' '));
} else {
//Если количество символов строки меньше чем задано, то просто возращаем оригинал
return $string;
}
}
switch($act){
default:
?>
<div class="title">Диалоги</div>
<?
$nstr=new navig('SELECT `id` FROM `msg_con` WHERE `cid`='.$user['id'].' or `uid`='.$user['id']);
$q=$db->query('SELECT * FROM `msg_con` WHERE `cid`='.$user['id'].' or `uid`='.$user['id'].' ORDER BY `time` DESC LIMIT '.$nstr->start.','.$nstr->nstr);
while($dl=$q->fetch_assoc()){
echo'<a href="/mail?m=dialog&sID='.$dl['id'].'">';
if($dl['msg']=='new' and $dl['out']==$user['id']){
?>
<div class="section">Диалог с <?=nick(cid($dl));?></div>
<div class="success"><?=output($dl['msge']);?>...</div>
<?php
}
elseif($dl['msg']=='new' and $dl['out']!=$user['id']){
?>
<div class="section">Диалог с <?=nick(cid($dl));?></div>
<div class="error"><?=output($dl['msge']);?>...</div>
<?php
}else{
?>
<div class="section">Диалог с <?=nick(cid($dl));?></div>
<div class="success"><?=output($dl['msge']);?>...</div>
<?php
}
echo '</a>';
}
if($q->num_rows==0)echo '<div class="error">Сообщения не найдены.</div>';
$nstr->panel();
break;
case'dialog':
$id=abs(intval($_GET['sID']));
$qw='SELECT `id` FROM `msg` WHERE `mid`='.$id.' and `uid`='.$user['id'].' or `mid`='.$id.' and `cid`='.$user['id'].' ORDER BY `time` DESC';
$nstr=new navig($qw);
$qw='SELECT * FROM `msg` WHERE `mid`='.$id.' and `uid`='.$user['id'].' or `mid`='.$id.' and `cid`='.$user['id'].' ORDER BY `time` DESC LIMIT '.$nstr->start.','.$nstr->nstr;
$q=$db->query($qw);
$ui=$q->fetch_assoc();
?>
<div class="title1">Диалог с <?=nick(cid($ui));?></div>
<?php
if($db->query('SELECT `bl` FROM `msg_con` WHERE `bl`="on" and `id`="'.$ui['mid'].'"')->num_rows==1){
echo'<div class="nvg"><a href="/mail?m=black_list&CONFIG&sID='.$ui['mid'].'&block">Добавить в чёрный список</a></div>';
}else{
echo'<div class="nvg"><a href="/mail?m=black_list&CONFIG&sID='.$ui['mid'].'&unblock">Удалить с чёрного списокa</a></div>';
}
?>
<div class="text">
<a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
<form method="post" action="/mail?m=send&uid=<?=cid($ui);?>">
<textarea name="msg"></textarea><br>
<input type="submit" value="Отправить">
</form>
</div>
<?php
unset($ui);
$q->data_seek(0);
while($mail=$q->fetch_assoc()){
$b='';$b2='';
//$nick=($mail['uid']==$user['id']?('Я ('.date('d.m.y H:i:s',$mail['time']).') -> '):(nick($mail['uid'])).' ('.date('d.m.y H:i:s',$mail['time']).') -> ');
if($mail['cid']==$user['id'] and $mail['msg']=="new"){
$db->query('UPDATE `msg` SET `msg`="read" WHERE `cid`='.$user['id'].' and `mid`="'.$id.'"');
$db->query('UPDATE `msg_con` SET `msg`="read", `time`='.time().' WHERE`id`="'.$id.'"');
$db->query('UPDATE`users`SET`msg`="read" WHERE `id`="'.$user['id'].'";');$b='<b><font color="red">';$b2='</font></b>';
}
//if($mail['uid']==$user['id'] and $mail['msg']=="new"){$b='<font color="green">';$b2='</font>';}
?>
<div class="section1">
<?=nick($mail['uid'])?> (<?=times($mail['time'])?>)
<p> <?=$b.output($mail['text']).$b2;?></p>
</div>
<?php
}
$nstr->panel();
break;
case'black_list':
if(isset($_GET['CONFIG'])){
$uid=intval($_GET['sID']);
if(isset($_GET['block'])){
$db->query('UPDATE `msg_con` SET `bl`="off" WHERE `id`='.$uid);
}
if(isset($_GET['unblock'])){
$db->query('UPDATE `msg_con` SET `bl`="on" WHERE `id`='.$uid);
}
header('location: /mail?m=black_list');exit;
}
$QW='SELECT `cid`,`uid`,`id` FROM `msg_con` WHERE `uid`="'.$user['id'].'" and `bl`="off" or `cid`="'.$user['id'].'" and `bl`="off" ';
$nstr=new navig($QW);
$QW.='LIMIT '.$nstr->start.','.$nstr->nstr;
$q=$db->query($QW);
while($bl=$q->fetch_assoc()){
$uid=cid($bl);
?>
<div class="section1">
<?=nick($uid);?> [<a href="/mail?m=black_list&CONFIG&sID=<?=$bl['id'];?>&unblock">Удалить со списка</a>]
</div>
<?php
}
if($q->num_rows==0)echo'<div class="error">В ваше чёрном списке пользователей нет.</div>';
$nstr->panel();
break;
case'send':
@$uid=intval($_GET['uid']);
if(isset($_POST['msg'])){
if($uid==$user['id']){die('<div class="error">Самомму себе писать запрещено.</div>');}
if($db->query('SELECT `id` FROM `users` WHERE `id`='.$uid.' LIMIT 1')->num_rows==0){die('<div class="error">Пользователь не найден.</div>');}
$q=$db->query('SELECT * FROM `msg_con` WHERE `cid`='.$user['id'].' and `uid`='.$uid.' or `cid`='.$uid.' and `uid`='.$user['id'].' LIMIT 1');
if($q->num_rows==0){
$db->query('INSERT INTO `msg_con` (`cid`,`uid`)VALUES("'.$uid.'","'.$user['id'].'")');
$d=$db->query('SELECT `id` FROM `msg_con` ORDER BY `id` DESC LIMIT 1')->fetch_assoc();
}else{
$d=$q->fetch_assoc();
}
if($d['bl']=='off')die('<div class="error">Вы в черном списке.</div>');
if(mb_strlen($_POST['msg'])<3){echo'<div class="error">Сообщение дольжно содержать более 3-х символов.</div>';exit;}
$db->query('INSERT INTO `msg` (`uid`,`cid`,`mid`,`text`,`time`,`msg`)VALUES("'.$user['id'].'","'.$uid.'","'.$d['id'].'","'.$db->real_escape_string($_POST['msg']).'","'.time().'","new")') or die($db->error);
$db->query('UPDATE `msg_con` SET `msge`="'.crop_str($db->real_escape_string($_POST['msg'].' '),50).'",`msg`="new",`out`="'.$uid.'",`time`="'.time().'" WHERE `id`="'.$d['id'].'";');
$db->query('UPDATE `users` SET `msg`="new" WHERE `id`="'.$uid.'";');
header('location: /mail?m=dialog&sID='.$d['id']);
}
?>
<div class="title">Сообщение к <?=nick($uid);?></div>
<div class="text">
<form method="post" action="/mail?m=send&uid=<?=$uid;?>">
<textarea name="msg"></textarea><br>
<input type="submit" value="Отправить">
</form>
</div>
<?php
break;
}
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
?>