Файл: modules/messaging/message.php
Строк: 158
<?php
switch($do):
default:
$id = filter_input(INPUT_GET,'id',FILTER_SANITIZE_NUMBER_INT);
$id = intval($id);
//Передаем данные по $id и распределяем по папкам данные
if(!isset($id) and !is_numeric($id)) {
header('Location: menu.php');
exit;
}
/**
* Если $id == 1 Выводит "Новые письма"
* Если $id == 2 Выводит "Все мои переписки"
* Если $id == 3 Выводит "Неотправленные письма"
*/
if($id == 1) {
echo '<div class="mainname">'.Lang::__('Новые').'</div>';
}elseif($id == 2) {
echo '<div class="mainname">'.Lang::__('Мои переписки').'</div>';
}elseif($id == 3) {
echo '<div class="mainname">'.Lang::__('Черновики').'</div>';
}
echo '<div class="mainpost">';
/**
* Если $id == 1 Выводит счетчик "Новых писем"
* Если $id == 2 Выводит счетчик "Всех моих переписок"
* Если $id == 3 Выводит счетчик "Неотправленных писем"
*/
if($id == 1) {
$rows = $db->get_array($db->query("SELECT COUNT(*) FROM `messaging_topics` WHERE `id_user` = '".$id_user."' AND `time` > '".(time()-86400)."'"));
}elseif($id == 2) {
$rows = $db->get_array($db->query("SELECT COUNT(*) FROM `messaging_topics` WHERE `id_user` = '".$id_user."'"));
}elseif($id == 3) {
$rows = $db->get_array($db->query("SELECT COUNT(*) FROM `messaging_topics` WHERE `id_user` = '".$id_user."' AND `id_dir` = '3'"));
}
//Если папок не найдено
if($rows[0] == 0) {
echo engine::error(Lang::__('Тем не найдено!'));
echo '</div>';
exit;
}
//Постраничная навигация
$newlist = new Navigation($rows[0],10, true);
/**
* Выводим все темы и сообщения в личном ящике из папки Мои переписки за сутки
* Выводим все темы и сообщения в личном ящике из папки Мои переписки
* Выводим все темы и сообщения в личном ящике из папки Мои черновики
*/
if($id == 1) {
$user_topics = $db->query("SELECT * FROM `messaging_topics_user` WHERE `id_user` = '".$id_user."' AND `time` > '".(time()-86400)."' ORDER BY `id` DESC ". $newlist->limit()."");
}elseif($id == 2) {
$user_topics = $db->query("SELECT * FROM `messaging_topics_user` WHERE `id_user` = '".$id_user."' ORDER BY `id` DESC ". $newlist->limit()."");
}elseif($id == 3) {
$user_topics = $db->query("SELECT * FROM `messaging_topics_user` WHERE `id_user` = '".$id_user."' AND `id_dir` = '3' ORDER BY `id` DESC ". $newlist->limit()."");
}
//Выводим ваши темы
while($user_top = $db->get_array($user_topics)) {
echo '<div class="subpost">';
//Получаем из базы названия темы через $id
$messaging_topics = $db->get_array($db->query("SELECT * FROM `messaging_topics` WHERE `id` = '".$user_top['id_topics']."'"));
//Получаем из базы все сообщения и дополнительные данные
$messaging = $db->get_array($db->query("SELECT * FROM `messaging` WHERE `id_topics` = '".$messaging_topics['id']."'"));
//Получаем данные по автору темы
$nick = $user->users($messaging['id_user'],array('nick'),true);
//Получаем данные по получателю темы
$nick_post = $user->users($messaging['id_post'],array('nick'),true);
//Выводим Названия темы если есть
if($messaging['id_dir'] == 2) {
echo '<img src="/engine/template/icons/email.png"> <b><a href="?act=topics&id='.$messaging_topics['id'].'">'.$messaging_topics['name'].'</a></b>';
echo '<font style="margin-left:5px;font-size:11px;" color="green">'.Lang::__('Отправлено').'</font>';
}elseif($messaging['id_dir'] == 3) {
echo '<img src="/engine/template/icons/email.png"> <b><a href="?act=message&do=view&id='.$messaging_topics['id'].'">'.$messaging_topics['name'].'</a></b>';
echo '<font style="margin-left:5px;font-size:11px;" color="red">'.Lang::__('В черновике').'</font>';
}
echo '<span class="time"><a href="?act=delete_topics&TopicID='.$messaging_topics['id'].'"><img src="/engine/template/icons/delete.png"></a></span>';
echo '<br/>';
//Выводим Автора темы и Получателя
echo '<div class="desc">Автор: ';
echo '<a href="/modules/profile.php?act=view&id='.$messaging['id_user'].'">'.$nick.'</a>';
echo 'Получатель: <a href="/modules/profile.php?act=view&id='.$messaging['id_post'].'">'.$nick_post.'</a>';
echo '</div>';
echo '</div>';
}
//Вывод навигации
echo $newlist->pagination('act=message&id='.$id.'');
echo '</div>';
echo engine::home(array(Lang::__('Назад'),'messaging.php'));
break;
//Вывод по id данные из черновика
case 'view':
$id = filter_input(INPUT_GET,'id',FILTER_SANITIZE_NUMBER_INT);
$id = intval($id);
//Передаем данные по $id и распределяем по папкам данные
if(!isset($id) and !is_numeric($id)) {
header('Location: menu.php');
exit;
}
//Выводим данные из черновика по $id
$new_send = $db->get_array($db->query("SELECT * FROM `messaging_topics` WHERE `id` = '".$id."'"));
//Выводим текст в черновик из $id
$new_message = $db->get_array($db->query("SELECT * FROM `messaging` WHERE `id_topics` = '".$id."'"));
//Вывод ника
$nick = $user->users($new_send['id_post'],array('nick'));
//Проверяем если активна кнопка, введена название и введен текст то ....
if(isset($_POST['submit']) and isset($_POST['name']) and isset($_POST['text'])) {
//Обрабатываем тему
$name = filter_input(INPUT_POST,'name',FILTER_SANITIZE_STRING);
//Обрабатывает сообщение
$text = filter_input(INPUT_POST,'text',FILTER_SANITIZE_STRING);
$topic = engine::input_text($text);
//Если название темы превышает больше 255 символов вроизойдет ошибка
if(strlen($name) > 255) {
echo engine::error(Lang::__('Превышено максимальное количество символов')); //Текст ошибки
echo engine::home(array(Lang::__('Назад'),'?act=message&do=view&id='.$id.'')); //Переадресация
exit;
}
//Если название отсутствует
if(empty($name)) {
echo engine::error('Введите тему');
}elseif(!$topic){
echo engine::error('Введите сообщение');
}elseif(isset($_POST['submit'])) {
//Если правильно все добавляем данные в базу
$db->query("INSERT INTO `messaging_topics` (`id_user`,`id_post`,`id_dir`,`time`,`name`) VALUES ('".$id_user."','".$new_send['id_post']."','2','".TIME()."','".$db->safesql($name)."')");
//Выводим данные для следующей передачи
$message_topics = $db->get_array($db->query("SELECT * FROM `messaging_topics` WHERE `id_user` = '".$id_user."' AND `id_post` = '".$new_send['id_post']."' AND `name` = '".$name."'"));
//Добавим данные новые в новую таблицу и создаем таблицы для $id_user || $new_send['id_post']
$db->query("INSERT INTO `messaging_topics_user` (`id_user`,`id_dir`,`id_topics`,`time`) VALUES ('".$message_topics['id_user']."','2','".$message_topics['id']."','".time()."') , ('".$message_topics['id_post']."','2','".$message_topics['id']."','".time()."')");
//Передаем текст сообщенияв базу Mysqli
$db->query("INSERT INTO `messaging` (`id_dir`,`id_topics`,`id_user`,`id_post`,`text`,`time`,`action`) VALUES ('2','".$message_topics['id']."','".$message_topics['id_user']."','".$message_topics['id_post']."','".$db->safesql($topic)."','".TIME()."','0')");
//Переадресация
header("Location: /modules/messaging.php");
}
}
//Текст пересылки
echo '<div class="mainname">'.Lang::__('Отправка личного сообщения для').' '.$nick.'</div>';
echo '<div class="mainpost">';
$form = new form('?act=message&do=view&id='.$id.''); //Посылаем данные через $_POST
$form->input('<b>'.Lang::__('Тема').'</b>','name','text',$new_send['name']); // Название введенное и разрешение на редактирование
$form->textarea('Сообщение','text',$new_message['text']); //Текст введеннок и разрещение на редактирование
$form->submit('Отправить','submit'); //Кнопка отправки данных
$form->display(); //Выводим форму
echo '</div>';
break;
endswitch;