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"> <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"> '.$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();
?>