View file modules/messaging/message.php

File size: 9.94Kb
<?

switch($do):

default:

//Передаем данные по $id и распределяем по папкам данные
if(isset($_GET['id']) and is_numeric($_GET['id'])) {

//Переобразуем из $_GET в обычную $id
$id = (int) $_GET['id'];
        if($id == 1) {
		    //Если $id == 1 то выведит название Новые
			echo '<div class="mainname">'.Lang::__('Новые').'</div>';		
		}elseif($id == 2) {
		    //Если $id == 2 то выведит название Мои переписки
			echo '<div class="mainname">'.Lang::__('Мои переписки').'</div>';
		}elseif($id == 3) {
		//Или если $id == 3 то выведит название Мои Черновики    
			echo '<div class="mainname">'.Lang::__('Черновики').'</div>';		
		}
		//Стиль для красоты вывода
		echo '<div class="mainpost">';
		if($id == 1) {
		    //если $id == 1 то выведит данные из базы по $id = 1
		    $results = $db->query("SELECT COUNT(*) FROM `messaging_topics` WHERE `id_user` = '".$id_user."' AND `time` > '".(time()-86400)."'");		
		}elseif($id == 2) {
		    //если $id == 2 то выведит данные из базы по $id = 2
		    $results = $db->query("SELECT COUNT(*) FROM `messaging_topics` WHERE `id_user` = '".$id_user."'");
		}elseif($id == 3) {
		//если $id == 3 то выведит данные из базы по $id  = 3
		    $results = $db->query("SELECT COUNT(*) FROM `messaging_topics` WHERE `id_user` = '".$id_user."' AND `id_dir` = '3'");
		}
		//Обрабатываем результат
		if ($results) {
        	/* Переход к строке №400 */
        	$results->data_seek(399);
        	/* Получение строки */
        	$rows = $results->fetch_row();
   		}            
		
		//Если папок не найдено
		if($rows[0] == 0) {
		    echo engine::error(Lang::__('Тем не найдено!'));
			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">Автор: <a href="/modules/profile.php?act=view&id='.$messaging['id_user'].'">'.$nick.'</a> 
						                        Получатель: <a href="/modules/profile.php?act=view&id='.$messaging['id_post'].'">'.$nick_post.'</a>';
					    echo '</div>';
					//Закрываем основной блок div в while	
					echo '</div>';
				}
		        //Вывод навигации
            echo $newlist->pagination('act=message&id='.$id.''); 			
        echo '</div>';

    echo engine::home(array(Lang::__('Назад'),'messaging.php'));
    }
break;


//Вывод по id данные из черновика
case 'view':
//Передаем данные по $id и распределяем по папкам данные
if(isset($_GET['id']) and is_numeric($_GET['id'])) {

//Переобразуем из $_GET в обычную $id
$id = (int) $_GET['id'];

    //Выводим данные из черновика по $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 = engine::proc_name($_POST['name']);
		
		//Обрабатывает сообщение
   		$topic = engine::input_text($_POST['text']);	
	        
			//Если название темы превышает больше 255 символов вроизойдет ошибка
	        if(strlen($name) > 255) { // MAX 255
			    echo engine::error(Lang::__('Превышено максимальное количество символов')); //Текст ошибки
				echo engine::home(array(Lang::__('Назад'),'?act=message&do=view&id='.$id.'')); //Переадресация
				exit; //Закрыть дальнейшие действие в коде
			}
			//Если не введена название темы ...
	        if(!$name) {
			    echo engine::error('Введите тему');
			//Если не введена текст сообщения	
			}elseif(!$topic){
			    echo engine::error('Введите сообщение');
			}elseif(isset($_POST['submit'])) {
			    //Если правильно все добавляем данные в базу MYSQLI
			    $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->text('<div class="submit">'); //Блок кнопки
	$form->submit('Отправить','submit'); //Кнопка отправки данных
	$form->text(Lang::__('или').'&nbsp;<a class="cancel" href="/modules/messaging.php">'.Lang::__('Отмена').'</a>'); //Отмена
	$form->text('</div>'); //Закрытия блока
	$form->display(); //Выводим форму
	
}
break;

endswitch;