Просмотр файла modules/messaging/message.php

Размер файла: 9.22Kb
<?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::__('Отправка личного сообщения для').'&nbsp;'.$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;