Просмотр файла modules/chat/index.php

Размер файла: 11.55Kb
<?
define('SHCMS_ENGINE',true);
include_once('../../engine/system/core.php');

        $templates->template('Общение'); //Название страницы
		
    switch($do):
 
    default:
	
	//Отключения чата
	//Вывод определенных данных
    $off_forum = $db->get_array($db->query("SELECT * FROM `off_modules`"));
	
	if($off_forum['off_chat'] == 1) {
	    echo engine::error(Lang::__('Мини-Чат приостановлен с ').date::make_date($off_forum['time_chat']),$off_forum['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('Введите текст');
	        header('Refresh: 1; url=index.php');
            exit;
        }
		    //Если antimat = 1 вот будет задействован антимат функция (Данную функцию советую включить чтобы не было мата на сайте)
		    if($glob_core['antimat'] == 1) {
			    $text = SwearFilter::filter($text);
			}
		    if($glob_core['antilink'] == 1) {
			    $text = engine::removing($text);
			}			
		$text = engine::antilink($text);
		
	            if(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(isset($id_user)) {
        		//Ответ на пост
		if(isset($_GET['id_post']) and is_numeric($_GET['id_post'])) {
		
		    //обработка поста из $_GET в обычную
	    	$id_post = (int) $_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");
							}
 							
							switch($act):
							
							
							    case 'editor':

                                    if(isset($_POST['submit_update'])) {
	    	    	    	    	    //Из $_POST превращаем в обычные переменные
        	    	    	    	    if(isset($_POST['text'])) {$text = $_POST['text'];}
										
										
										                    //Антимат
       	    	    	    	    	        		    if($glob_core['antimat'] == 1) {
			                                                    $text = SwearFilter::filter($text);
			                                                }
															
												//Если текст отсутствует
        	    	    	    	    	    if(empty($text)) {
           	    	    	    	    	    	echo engine::error('Введите текст');
	        	    	    	    	    	    header('Refresh: 1; url=index.php');
            	    	    	    	    	    exit;
        	    	    	    	    	    }					
												
							        $ok_post = $db->query("UPDATE `chat` SET `text` = '".$text."' ,`id_user` = '".intval($id_user)."', `time` = '".time()."' WHERE `id` = '".$id_post."'");
									    if($ok_post == true) {
										    echo engine::success(Lang::__('Ваш пост успешно обновлен!'));
											echo engine::home(array(Lang::__('Назад'),'index.php'));
											exit;
										}else {
										    echo engine::error(Lang::__('Ваш пост не обновлен!'));
											echo engine::home(array(Lang::__('Назад'),'index.php'));
											exit;
										}
									}
							    break;

							endswitch;
				}		
				
				
				
	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->submit('Смайлы','smiles');
            $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()."");
        // А если меньше 0 то выводит это сообщение
		
		}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(); 

    break;
	
	//Удаление поста $id
	case 'delete_post':
	
	    include_once(H.'modules/chat/inc/delete.php');
		
	break;
	
	//Удаление всех сообщений
	case 'all_delete':
	
    //Отключения чата
	//Вывод определенных данных
	
    $off_forum = $db->get_array($db->query("SELECT * FROM `off_modules`"));
	
	if($off_forum['off_chat'] == 1) {
	
	    echo engine::error(Lang::__('Мини-Чат приостановлен с ').date::make_date($off_forum['time_chat']),$off_forum['text_chat']); //Ошибка об отключении и дополнительный текст
	    echo engine::home(array('Назад','/index.php'));	 
	    exit;
		
	}	
	    include_once(H.'modules/chat/inc/alldelete.php');
		
	break;

	
endswitch;	

     echo engine::home(array('Назад','/index.php'));	 
?>