<?
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"> <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"> '.$userg.'</span>';
echo '<span><img src="/engine/template/icons/date.png"> '.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'));
?>