Файл: wapxl.ru/user/messages/adds.php
Строк: 116
<?
echo '<div class="col-md-8 col-sm-12 col-xs-12"><div class="panel panel-default">';
echo '<div class="panel-heading"> <b>Добавление собеседника</b></div>
<div class="panel-body">';
// Определяем диалог
$dialog = isset ($_REQUEST['dialog']) ? func::checkin($_REQUEST['dialog']) : false;
$resud = core:: $db -> queryFetch("SELECT * FROM `messages` WHERE `id`=?", array($dialog));
if (!empty($dialog) && !isset($resud['id'])){
func::errors('<b>Такого диалога нет!</b></div></div>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
}
// Проверка на участие в диалоге
$mess_users = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`=? and `aut`=?", array($dialog,core::$user['id'],0));
if ($mess_users->fetchColumn() == 0)func::errors('<b>Вы не участвуете в этом диалоге</b></div></div>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
if($resud['cols']==2){
$m = core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));
// создаем диалог между несколькими пользователями
$dbi = core::$db -> prepare("INSERT INTO `messages` SET `time`=?");
$dbi -> execute(core::$realtime);
// определяем ID созданного диалога
$dialog = core::$db -> lastInsertId();
// Получаем данные созданного диалога
$resu = core:: $db -> queryFetch("SELECT * FROM `messages` WHERE `id` = '" . $dialog . "'");
// Записываем пользователей которым доступен этот диалог
$dbi = core::$db -> prepare("INSERT INTO `mess_users` SET `user_id`=?, `dialog`=?");
$dbi -> execute(core::$user['id'],$dialog);
$dbi -> execute($m['user_id'],$dialog);
// Создаем сообщение
$msg = '[b]'.user::us(core::$user['id'],1).'[/b] пригласил побеседовать [b]'.user::us($m['user_id'],1).'[/b]';
$dbi = core::$db -> prepare("INSERT INTO `mess_dialog` SET `user_id`=?, `time`=?, `msg`=?, `dialog`=?");
$dbi -> execute(0,core::$realtime,$msg,$dialog);
// Определяем ид сообщения
$mess_id = core::$db -> lastInsertId();
//Выводим пользователей участвующих в диалоге, кроме того кто пишет сообщение
$read = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));
// Делаем запись в таблицу непрочтенных сообщений
while ($a = $read -> fetch()) {
$dbi = core::$db -> prepare("INSERT INTO `mess_read` SET `user_id`=?, `mess_id`=?, `dialog`=?");
$dbi -> execute($a['user_id'],$mess_id,$dialog);
}
header ('Location: messages.php?mod=adds&dialog='.$dialog.'&add&'.SID);
}
if (isset($_GET['add'])){
echo '<dl><dt></dt></dl><b>Многопользовательский диалог успешно создан!</b><br />Теперь вы можете добавлять в него участников.<dt></dt><dl></dl>';
}
echo '<a href="?" class="href">Диалоги</a> | ' . (empty($act) ? '<b>Добавление пользователей в диалог</b> ' : '<a href="?mod=adds&dialog='.$dialog.'" class="href"><b>Добавление пользователей в диалог</b></a>') . '<br />
<a href="?mod=dialog&dialog='.$dialog.'" class="href">Диалог</a> с ';
$read = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));
while ($r = $read -> fetch()) {
$k = $k++;
echo user::nik($r['user_id']).(($k>1) ? ', ' : '');
}
echo '<dl><dt></dt></dl>';
if (empty($act)){
echo '<form action="?mod=adds&dialog='.$dialog.'&act=ok" method="post" enctype="multipart/form-data">';
echo "Введите Ник или ID пользователя:<br /><input name='nk' maxlength='15' value='$nk' title='komu'/><br/>n";
echo '<br /><input type="submit" class="ibutton" value="Добавить"/></form><br /><br />';
echo '<a href="?mod=adds&dialog='.$dialog.'&act=friends" class="href">Выбрать из Друзей</a> <dl></dl>
<a href="?mod=adds&dialog='.$dialog.'&act=users" class="href">Все пользователи</a> <dl></dl>
';
}else if ($act=='friends'){
$k_post=core:: $db -> querySingle("select count(*) as num from `friends` WHERE `user_id`=? and `yes`=?", array(core::$user['id'],1));
$k_page=func::k_page($k_post,$max);
$page=func::page($k_page);
$start=$max*$page-$max;
if ($k_post==0)func::errors('<b>У вас нет друзей!</b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
$r = core::$db->query("Select * from `friends` WHERE `user_id`=? and `yes`=? order by `id` desc LIMIT $start, $max", array(core::$user['id'],1));
while ($a = $r -> fetch()) {
$res = core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`=?", array($dialog,$a['fr_id']));
echo '<b>'.user::nik($a['fr_id']).'</b> ' . (isset($res['id']) ? 'Участвует ' : '<a href="?mod=adds&dialog='.$dialog.'&act=ok&nk='.$a['fr_id'].'" class="href">Добавить</a>') . '<br />';
}
if ($k_page>1){
func::nav('?mod=adds&dialog='.$dialog.'&act=friends&',$k_page,$page); // Âûâîä ñòðàíèö
}
}else if ($act=='users'){
if(empty($_GET['order']))$order = 'id';
else $order = func::checkin($_GET['order']);
if($_GET['desc']=='') $desc = 'asc';
else $desc = func::checkin($_GET['desc']);
if($_GET['sex']=='') $sex = '';
else $sex = func::checkin($_GET['sex']);
echo '<div class="nav">';
$arrsex = array('-Все','1-Парни','0-Девушки');
foreach($arrsex as $vsex){
list ($osex,$nsex) = explode('-',$vsex);
if($sex!=$osex)echo '<a href="?mod=adds&dialog='.$dialog.'&act=users&desc='.$desc.'&order='.$order.'&sex='.$osex.'">'.$nsex.'</a>|';
else echo '<b>'.$nsex.'</b> | ';
}
echo '<br />Сортировать По: ';
$arr = array('id-ID','timereg-Дата реги','level-Уровень','posts-Посты','vote_us-Рейтинг','onl-Посл. авт.','total_on_site-Пробыл на сайте');
foreach($arr as $v){
list ($o,$n) = explode('-',$v);
if($order!=$o)echo '<a href="?mod=adds&dialog='.$dialog.'&act=users&desc='.$desc.'&sex='.$sex.'&order='.$o.'">'.$n.'</a>|';
else echo '<b>'.$n.'</b> | ';
}
echo '<br />Порядок:';
$ar = array('asc-123','desc-321');
foreach($ar as $d){
list ($d,$n) = explode('-',$d);
if($desc!=$d)echo '<a href="?mod=adds&dialog='.$dialog.'&act=users&order='.$order.'&sex='.$sex.'&desc='.$d.'">'.$n.'</a>|';
else echo '<b>'.$n.'</b> | ';
}
echo '</div>';
if($sex!='')$sexi = 'and sex = "'.$sex.'"'; else $sexi = '';
$k_post=core:: $db -> querySingle("select count(*) as num from users WHERE `id` != '".core::$user['id']."' ".$sexi."");
$k_page=func::k_page($k_post,$max);
$page=func::page($k_page);
$start=$max*$page-$max;
if ($k_post==0)func::errors('<b>Пока никого нет</b>');
if (($max*$page)<$k_post) $maxi = $max*$page; else $maxi = $k_post;
echo 'показаны '.($start+1).'-'.$maxi.' из '.$k_post.'<br /><br />';
$r = core::$db->query("Select * from `users` WHERE `id` != '".core::$user['id']."' ".$sexi." order by ".$order." ".$desc." LIMIT ".$start.", ".$max."");
while ($a = $r -> fetch()) {
$res = core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`=?", array($dialog,$a['id']));
echo '<b>'.user::nik($a['id']).'</b> ' . (isset($res['id']) ? 'Участвует ' : '<a href="?mod=adds&dialog='.$dialog.'&act=ok&nk='.$a['id'].'" class="href">Добавить</a>') . '<br />';
}
if ($k_page>1){
func::nav('?mod=adds&dialog='.$dialog.'&act=users&',$k_page,$page); // Âûâîä ñòðàíèö
}
}else if ($act=='ok'){
// Если пишем пользователю не из диалога
if(!empty($nk)){
// проверка на существование юзера
if (!user::user_inf($nk))func::errors('<b>Такого пользователя нет!</b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// попытки написать себе
if (user::user_inf($nk) == core::$user['id'])func::errors('<b>Себе пишешь?</b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// х-статус "Не беспокоить"
if (user::user_inf($nk,'xstatus')==2 && core::$user['level']<8)func::errors('<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// проверка на игнор
if (user::ignor(user::user_inf($nk),core::$user['id'])==1)func::errors('<b>Вы не можете писать этому пользователю, т.к. он отправил вас в игнор.</b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// Проверка на участие в диалоге
$mess_users = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`=?", array($dialog,user::user_inf($nk)));
if ($mess_users->fetchColumn() != 0)func::errors('<b>Этот пользователь уже участвует в этом диалоге</b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// Записываем пользователей которым доступен этот диалог
$dbi = core::$db -> prepare("INSERT INTO `mess_users` SET `user_id`=?, `dialog`=?");
$dbi -> execute(user::user_inf($nk),$dialog);
// Создаем сообщение
$msg = '[b]'.user::us(core::$user['id'],1).'[/b] пригласил побеседовать [b]'.user::us(user::user_inf($nk),1).'[/b]';
$dbi = core::$db -> prepare("INSERT INTO `mess_dialog` SET `user_id`=?, `time`=?, `msg`=?, `dialog`=?");
$dbi -> execute(0,core::$realtime,$msg,$dialog);
// Определяем ид сообщения
$mess_id = core::$db -> lastInsertId();
//Выводим пользователей участвующих в диалоге, кроме того кто пишет сообщение
$read = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));
// Делаем запись в таблицу непрочтенных сообщений
while ($a = $read -> fetch()) {
$dbi = core::$db -> prepare("INSERT INTO `mess_read` SET `user_id`=?, `mess_id`=?, `dialog`=?");
$dbi -> execute($a['user_id'],$mess_id,$dialog);
}
// изменяем время диалога
$dbi = core::$db -> prepare("UPDATE `messages` SET `time`=? WHERE `id`=?");
$dbi -> execute(core::$realtime,$dialog);
header ('Location: messages.php?mod='.$mod.'&dialog='.$dialog.'&'.SID);
}
}
echo '</div></div>';
?>