View file modules/chat/inc/default.php

File size: 9.33Kb
<?
if(!defined('SHCMS_ENGINE')) {
	die( "Неправильное действие" );
}
	
	//Вывод определенных данных
    $off = $db->super_query( "SELECT * FROM `off_modules`" );
	
	if($off['off_chat'] == 1) 
	{
	
	    echo engine::error(Lang::__('Мини-Чат приостановлен с ').date::make_date($off['time_chat']),$off['text_chat']); //Ошибка об отключении и дополнительный текст
	    echo engine::home(array('Назад','/index.php'));	 
	    exit;
		
	}	
	
	
    $countall = $db->get_array( $db->query( "SELECT COUNT(*) FROM `chat`" ) );
	
	if($countall[0] > 0) 
	{

		//Доступ у кого имеются права 15 удаляем сообщения
		if( $groups->setAdmin( $user_group ) == 15 ) 
		{ 
		
	    	echo '<div class="mainname">'.Lang::__('Действие').'</div>';
			echo '<div class="mainpost">';
			echo '<div class="row"><img src="/engine/template/icons/delete.png">&nbsp;<a href="?do=all_delete">Удалить сообщения '.$count[0].'</a></div>';
			echo '</div>';
			
		}
		
	}

    //Из $_POST превращаем в обычные переменные и убираем слэши
    if( isset( $_POST['submit'] ) ) { $submit = $_POST['submit']; }
        
		if( isset( $_POST['smiles'] ) ) 
		{
		
		    header("Location: /modules/smiles.php");
			exit;
			
		}
		
    	if( isset( $submit ) ) 
		{
	
	    	//Из $_POST превращаем в обычные переменные
        	if(isset($_POST['text'])) { $text = $_POST['text']; }
		
       		//Если текст отсутствует
        	if( empty( $text ) ) 
			{
		
            	echo engine::error(Lang::__('Введите текст'));
	        	header('Refresh: 1; url=index.php');
            	exit;
			
        	}
			
		    //Антимат
		    if( $glob_core['antimat'] == 1 ) 
			{
			
			    $text = SwearFilter::filter( $text );
			
			}
			
			//Удаление ссылок из текстов
		    if( $glob_core['antilink'] == 1 ) 
			{
			
			    $text = engine::removing( $text );
			
			}	
			
			//Антиспам
            if( $glob_core['antiadv'] == 1 ) 
			{	
			
				$text = engine::antilink( $text );
		    
			}
			
			//Если пусть текст то обновим
	        if( engine::trim( $text ) == false ) 
			{
				header('Location: index.php');
				exit;
				
			}
			
			//Если пользователь авторизован
			if( $id_user == true ) 
			{	
			
    			$mysql = $db->query("INSERT INTO `chat` (`text`,`time`,`id_user`) VALUES ('".$db->safesql($text)."','".time()."','".$id_user."')");
        			
					//Если все правильно
        			if( $mysql == true ) 
					{
					
				    	$db->query("UPDATE `users` SET `points` = '".($users['points']+1)."' WHERE `id` = '".intval($id_user)."'"); // Начисление баллов
          				echo engine::success('Сообщение успешно добавлено');
          				header('Location: index.php');
            			exit;
        			
					}
					else 
					{
					
           				echo engine::error('Сообщение не добавлено');
            			header('Location: index.php');
            			exit;
						
        			}
       		}
    	}
		
    	//Если существует пользователь
		if( $id_user == true ) 
		{
            //Ответ на пост
		    if(isset($_GET['id_post']) and is_numeric($_GET['id_post'])) 
			{
		
		        //обработка поста из $_GET в обычную
	    	    $id_post = intval($_GET['id_post']); 
			
			    //Вывод сообщение из определенного id
			    $query = $db->query( "SELECT * FROM `chat` WHERE `id` = '".$id_post."'" );
			
				    //Выводим пост если есть и добавим в textarea ник
				    if( $db->num_rows( $query ) ) 
					{
					    
						$post = $db->get_array( $query );
					
						//Обрабатываем ник
						$nick = $user->users($post['id_user'],array('nick'));
						            						
		                    //Если существует ответ на письмо добавляется nick в текст
							if( isset( $_GET['otvet'] ) ) 
							{
							
								$otvet_edit = '[user='.$nick.'], ';
							
							}elseif( isset( $_GET['editor']) and $id_user == $post['id_user'] ) 
							{
							
							    $otvet_edit = $post['text'];
							
							}
							else 
							{
							
    							header("Location: index.php");

							}
 							
                        include_once('answer.php');
						
				    }		
	
	    if( isset( $_GET['otvet'] ) ) 
		{
	        
			$otvet = $db->super_query("SELECT * FROM `chat` WHERE `id` = '".$id_post."'");
			
				//Форма для печати сообщений
	    		echo '<div class="mainpost">';
	    
					if( $otvet['id_user'] != $id_user ) 
					{
		
            			$form = new form('?');
            			$form->textarea('Текст сообщения','text',$otvet_edit);
           			    $form->submit('Отправить','submit');
            			$form->display();
			
					}else 
					{
		
		    			echo engine::error(Lang::__('Вы не сможете ответить на ваш пост'),'<a href="index.php">Назад</a>'); //Предупреждение
		
					}
	    		
				echo '</div>';		
		
		}
		else 
		{		
	
	    	if( $id_user == true ) 
			{
		
				//Форма для печати сообщений
	    		echo '<div class="mainpost">';
					
					$form = new form('index.php?id_post='.$id_post.'&act=editor');
            		$form->textarea('Текст сообщения','text',$otvet_edit);
            		$form->submit('Отправить','submit_update');
            		$form->display();
	    		echo '</div>';		
			
			}
		
		}	
	
	
    		}else {
	
	    		if( $id_user == true ) 
				{
		
					//Форма для печати сообщений
					echo '<div class="mainname">'.Lang::__('Сообщение чата').'<span class="time"><a href="/">Назад</a></span></div>';
	    			echo '<div class="mainpost">';
            
						$form = new form('?');
            			$form->textarea(false,'text',$otvet);
           			    $form->submit('Отправить','submit');
            			$form->display();
	    
					echo '</div>';
		
				}
		
			}	
    
		}
	

		$row = $db->get_array($db->query("SELECT COUNT(*) FROM `chat`"));
    	$newlist = new Navigation($row[0],10, true); 
        
			//Если писем больше 1 выводит из базы данные
        if( $row[0] > 0 ) 
		{
		
            	//Выводим все данные и таблицы `chat`
	        $query = $db->query("SELECT * FROM `chat` ORDER BY `id` DESC ". $newlist->limit()."");
		
		}
		else 
		{
		
			echo '<div class="mainpost"><center><img src="/engine/template/icons/empty_.png"> Сообщений в чате не найдено!</center></div>';
			exit;
			
		}		
            while( $chat = $db->get_array( $query ) ) 
			{
			
		        //Вывод ника
                $nick = $user->users($chat['id_user'],array('nick'),true);
			    //Вывод id
                $id = $user->users($chat['id_user'],array('id'));
				$group = $user->users($chat['id_user'],array('group'));
				   
					if( $group == 1 ) 
					{
					    
						$userg = 'Пользователь';
					
					}
					if( $group == 15 ) 
					{
					    
						$userg = '<span style="color:green;font-weight:bold;">Администратор</span>';
					
					}
					
			        	//Путь к профилю пользователя
						echo '<div class="mainpost">';
                    	echo '<b style="font-size:13px;"><a href="../profile.php?act=view&id='.$id.'">'.$nick.'</a></b>';
                    	echo '<div class="details"><span><img src="/engine/template/icons/group.png">&nbsp;'.$userg.'</span>';
		                echo '<span><img src="/engine/template/icons/date.png">&nbsp;'.date::make_date($chat['time']).'</span>';
		                echo '<span class="time">';
						
							if( $id_user == true ) 
							{
						
					        	echo '<span><a title="Ответить" href="index.php?id_post='.$chat['id'].'&otvet"><img src="/engine/template/icons/replyall.png"></a></span>';
						
							}
							
							if( $id_user == $chat['id_user'] ) 
							{
						     
								echo '<span><a title="Редактировать"  href="index.php?id_post='.$chat['id'].'&editor"><img src="/engine/template/icons/edit.png"></a></span>';
						
							}
							
							if( $groups->setAdmin( $user_group ) == 15 ) 
							{
						    
								echo '<span><a title="Удалить" href="index.php?do=delete_post&id_post='.$chat['id'].'"><img src="/engine/template/icons/delete.png"></a></span>';
						
							}
						
						echo '</span></div>';
						
				if( empty( $chat['text'] ) ) 
				{
						
					echo engine::error(Lang::__('Пост пустой!'));
								
				}
				else 
				{

					echo '<div class="row">'.engine::input_text($chat['text']).'</div>';
					echo '</div>';
							
                }
            }
	
	//Вывод навигации
    echo $newlist->pagination(); 

?>