View file xmyx.ru/club/act/topic.php

File size: 15.87Kb
<?

/*
 * Author - Tw1nGo
 * VK - https://vk.com/tw1ngo93
*/

# Проверяем группу
if (isset($_GET['id'])){
    $group = mysql_fetch_assoc(mysql_query("SELECT * FROM `groups` WHERE `id` = '".abs(intval($_GET['id']))."' LIMIT 1"));
}
if (!isset($_GET['id']) || !isset($group) || $group['id'] <= 0){
    header("Location: /groups");
    exit;
}
# Проверяем топик
if (isset($_GET['them'])){
    $board = mysql_fetch_assoc(mysql_query("SELECT * FROM `groups_board` WHERE `id` = '".abs(intval($_GET['them']))."' LIMIT 1"));
    $ank = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '".$board['id_user']."' LIMIT 1"));
}
if (!isset($_GET['them']) || !isset($board) || $board['id'] <= 0){
    header("Location: /groups");
    exit;
}

$b_zakrep = mysql_fetch_array(mysql_query("SELECT * FROM `groups_board` WHERE `zakrep` = '1' AND `id_group` = '".$group['id']."' LIMIT 1"));
$b_closes = mysql_fetch_array(mysql_query("SELECT * FROM `groups_board` WHERE `close` = '1' AND `id_group` = '".$group['id']."' LIMIT 1"));


# Изменение темы
if (isset($user) && ($user['id'] == $ank['id'] || $user['level'] >= 4) && isset($_GET['tab']) && $_GET['tab'] == 'edit'){

if(isset($_POST['cfms']) && isset($_POST['title']) && isset($_POST['message'])){

$name = my_esc($_POST['title']);

if (strlen2($name) == 0){
	$err = 'Введите заголовок обсуждения.';
}
else{
if (strlen2($name) < 5)$err = 'Короткий заголовок обсуждения, min: 5.';
if (strlen2($name) > 50)$err = 'Длинный заголовок обсуждения, max: 50.';
}
$name = my_esc($name);

$text_obs = my_esc($_POST['message']);

if (strlen2($text_obs) == 0){
	$err = 'Введите текст обсуждения.';
}
else{
if (strlen2($text_obs) < 5)$err = 'Короткий текст обсуждения, min: 5.';
if (strlen2($text_obs) > 500)$err = 'Длинный текст обсуждения, max: 500.';
}
$text_obs = my_esc($text_obs);

if (!isset($err)){
	mysql_query("UPDATE `groups_board` SET `title` = '".$name."', `text` = '".$text_obs."' WHERE `id` = '".$board['id']."' LIMIT 1");
	header("Location: ?act=topic&them=".$board['id']."");
	exit;

}

}

$set['title'] = 'Редактируем тему | '.text($board['title']);
include_once H.'sys/inc/thead.php';

// Конфигурационный файл
require 'config.php';

shapka_VK(true, '?act=topic&them='.$board['id'].'', 'Редактирование');

?>
<div class="pcont fit_box">
  <div class="form_item  create_message form_item_page" style="border-bottom: 1px solid #efefef !important;">
  <?
  err();
  ?>
    <form method="post" action="?act=topic&them=<?= $board['id']?>&tab=edit&amp;hash=<?= $passgen?>">
      
      <dl class="fi_row">
        <dt class="fi_label">Заголовок</dt>
        <dd class="iwrap"><input name="title" class="textfield" value="<?= text($board['title'])?>" type="text"></dd>
      </dl>
      <dl class="fi_row">
        <dt class="fi_label">Текст</dt>
        <dd class="iwrap"><textarea name="message" class="textfield" rows="10"><?= text($board['text'])?></textarea></dd>
      </dl>
      <div class="fi_row">
        <div class="cp_buttons_block">
          <input class="button" value="Соханить" name="cfms" type="submit"> 
          <?php emoji::showContent() ?>   
        </div>     
      </div>
    </form>
  </div>
</div>
<?

}
# Закрепить и Открепить тему
elseif (isset($user) && ($user['id'] == $ank['id'] || $user['level'] >= 4) && isset($_GET['tab']) && $_GET['tab'] == 'fix_topic'){

if ($b_zakrep['id'] != $board['id']){
	mysql_query("UPDATE `groups_board` SET `zakrep` = '0' WHERE `id_group` = '".$group['id']."'");
	mysql_query("UPDATE `groups_board` SET `zakrep` = '1' WHERE `id` = '".$board['id']."' AND `id_group` = '".$group['id']."' LIMIT 1");
	
	$_SESSION['message'] = '<b>Тема закреплена.</b><br>Теперь эта тема всегда будет выводиться над остальными в списке обсуждений.';
	header("Location: ?act=topic&them=".$board['id']."");
	exit;
} 
else{
	mysql_query("UPDATE `groups_board` SET `zakrep` = '0' WHERE `id_group` = '".$group['id']."'");
	$_SESSION['message'] = '<b>Тема больше не закреплена.</b><br>Эта тема будет выводиться на своём месте в списке обсуждений.';
	header("Location: ?act=topic&them=".$board['id']."");
	exit;
}
 
}
# Удалить тему
elseif (isset($user) && ($user['id'] == $ank['id'] || $user['level'] >= 4) && isset($_GET['tab']) && $_GET['tab'] == 'delete_topic'){
	mysql_query("DELETE FROM `groups_board_komm` WHERE `id_board` = '".$board['id']."' AND `id_group` = '".$group['id']."'");
	mysql_query("DELETE FROM `groups_board` WHERE `id` = '".$board['id']."' LIMIT 1");
	$_SESSION['message'] = 'Тема удалена из списка обсуждений группы.';
	header("Location: ?act=board");
	exit;
}
# Закрыть и Открыть тему
elseif (isset($user) && ($user['id'] == $ank['id'] || $user['level'] >= 4) && isset($_GET['tab']) && $_GET['tab'] == 'close_topic'){

if ($b_closes['id'] != $board['id']){
	mysql_query("UPDATE `groups_board` SET `close` = '0' WHERE `id` = '".$board['id']."' AND `id_group` = '".$group['id']."'");
	mysql_query("UPDATE `groups_board` SET `close` = '1' WHERE `id` = '".$board['id']."' AND `id_group` = '".$group['id']."' LIMIT 1");
	
	$_SESSION['message'] = '<b>Тема закрыта.</b><br>Участники группы больше не смогут оставлять сообщения в этой теме.';
	header("Location: ?act=topic&them=".$board['id']."");
	exit;
} 
else{
	mysql_query("UPDATE `groups_board` SET `close` = '0' WHERE `id` = '".$board['id']."' AND `id_group` = '".$group['id']."'");
	$_SESSION['message'] = '<b>Тема открыта.</b><br>Все участники группы смогут оставлять сообщения в этой теме.';
	header("Location: ?act=topic&them=".$board['id']."");
	exit;
}
 
}
# Вывод самой темы
else{

$set['title'] = text($board['title']) . ' | ' . text($group['title']);
include_once H.'sys/inc/thead.php';

// Конфигурационный файл
require 'config.php';


# Написание коммента
if (isset($user) && isset($_POST['cfms']) && isset($_POST['message'])){

$msg = $_POST['message'];
$mat = antimat($msg);

if ($mat)$err = 'В наборе вашего текста обнаружен мат: ' . $mat;

if (strlen2($msg) == 0){
$err = 'Введите текст комментария.'; 
}
else{
if (strlen2($msg) > 500)$err = 'Ваше сообщение слишком длинное, max: 500.'; 
if (strlen2($msg) < 2)$err = 'Ваше сообщение короткое, min: 2.'; 
}
$msg = my_esc($msg);

        if (!isset($err)){
        mysql_query("INSERT INTO `groups_board_komm` (`id_user`, `id_group`, `id_board`, `text`, `time`) values ('".$user['id']."', '".$group['id']."', '".$board['id']."', '".$msg."', '".$time."')");
	header("Location: ?act=topic&them=".$board['id']."");
	exit;   
        }
}
# Удаление коммента
if (isset($_GET['dell_comm']) && isset($user) && ($user['id'] == $group['id_user'] || $user['level'] >= 4) && mysql_result(mysql_query("SELECT COUNT(*) FROM `groups_board_komm` WHERE `id_board` = '".$board['id']."' AND `id_group` = '".$group['id']."' AND `id` = '".abs(intval($_GET['dell_comm']))."'"), 0) > 0)
{
    mysql_query("DELETE FROM `groups_board_komm` WHERE `id_board` = '".$board['id']."' AND `id_group` = '".$group['id']."' AND `id` = '".abs(intval($_GET['dell_comm']))."' LIMIT 1");
    header("Location: ?act=topic&them=".$board['id']."");
    exit;
}
# Редактор коммента
elseif (isset($_GET['edit_comm']) && isset($user) && mysql_result(mysql_query("SELECT COUNT(*) FROM `groups_board_komm` WHERE `id_board` = '".$board['id']."' AND `id_group` = '".$group['id']."' AND `id` = '".abs(intval($_GET['edit_comm']))."'"), 0) > 0)
{
$edit_comm = mysql_fetch_assoc(mysql_query("SELECT * FROM `groups_board_komm` WHERE `id_board` = '".$board['id']."' AND `id_group` = '".$group['id']."' AND `id` = '".abs(intval($_GET['edit_comm']))."' LIMIT 1"));
$an_us = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '".$edit_comm['id_user']."' LIMIT 1"));  

if(isset($user) && ($user['id'] == $an_us['id'] && $edit_comm['time'] > time()-600 || $user['id'] == $group['id_user'] || $user['level'] >= 4)){

if(isset($_POST['save']) && isset($_POST['edit_post'])){

$msg = $_POST['edit_post'];
$mat = antimat($msg);

if ($mat)$err = 'В наборе вашего текста обнаружен мат: ' . $mat;

if (strlen2($msg) > 500)$err = 'Ваше сообщение слишком длинное, max: 500.'; 
if (strlen2($msg) < 2)$err = 'Ваше сообщение короткое, min: 2.'; 

$msg = my_esc($msg);


if(!isset($err)){

	mysql_query("UPDATE `groups_board_komm` SET `text` = '".$msg."' WHERE `id` = '".$edit_comm['id']."' AND `id_board` = '".$board['id']."' AND `id_group` = '".$group['id']."' LIMIT 1");
	$_SESSION['message'] = 'Сообщение изменено.';
	header ("Location: ?act=topic&them=".$board['id']."&p=".intval($_GET['p']));
	exit;
}

}


shapka_VK(true, '?act=topic&them='.$board['id'].'', 'Редактируем');

?>
<div class="pcont bl_cont">
      <div class="create_post create_post_extra create_message create_post_page">
      <?
      err();
      ?>
        <form id="feed_add_form" action="?act=topic&them=<?= $board['id']?>&edit_comm=<?= $edit_comm['id']?>" method="post">
          <div class="MentionContainer Mention_inited">
            <div class="iwrap">
              <textarea name="edit_post" class="textfield" rows="5" placeholder="Введите текст сообщения.." onkeyup="Mention.onKeyUp(event, this);" onkeydown="Mention.onKeyDown(event, this);" onfocus="Mention.onFocus(event, this);"><?= text($edit_comm['text'])?></textarea>
            </div>
          </div>
          <div class="ibwrap">
            <div class="cp_buttons_block">
              <input class="button" value="Сохранить" name="save" type="submit">
              
            </div>   <?php emoji::showContent() ?>         
          </div>
        </form>
      </div>      
</div>
<?

include_once H.'sys/inc/tfoot.php';
exit;

}
else{
	header("Location: ?act=topic&them=".$board['id']."");
	exit;
}
}

shapka_VK(true, '?act=board', 'Обсуждения');

?>
<div class="pcont bl_cont">
<?


if(isset($user) && $user['id'] == $ank['id'] || $user['level'] >= 4){
?>
<div class="head_actions_wrap<?= (isset($_GET['menu_opened']) ? ' head_actions_opened' : '') ?>">
<div class="topic_head_panel">
<a class="topic_header" href="?act=topic&them=<?= $board['id']?><?= (isset($_GET['menu_opened']) ? '' : '&amp;menu_opened') ?>" onclick="UI.topicToggle(); return false;">
<i class="i_actions">&nbsp;</i><h2 class="hp_header"><?= text($board['title'])?></h2>
</a>

<div class="topic_group"><?= output_text($board['text'])?></div>

<div class="topic_group"><a class=" al_p<?= $board['id']?> _p<?= $board['id']?>" href="/group<?= $group['id']?>"><?= text($group['title'])?></a></div>
</div>
<ul class="context_menu head_actions">
<li><a href="?act=topic&them=<?= $board['id']?>&tab=edit" class="cm_item bli"><span class="cm_label">Изменить тему</span></a></li>
<li><a href="?act=topic&them=<?= $board['id']?>&tab=fix_topic" class="cm_item bli"><span class="cm_label"><?= ($b_zakrep['id'] == 0 ? 'Закрепить тему' : 'Не закреплять тему')?></span></a></li>
<li><a href="?act=topic&them=<?= $board['id']?>&tab=close_topic" class="cm_item bli"><span class="cm_label"><?= ($b_closes['id'] == 0 ? 'Закрыть тему' : 'Открыть тему')?></span></a></li>
<li><a href="?act=topic&them=<?= $board['id']?>&tab=delete_topic" class="cm_item bli" onclick="return confirm('Вы уверены, что хотите удалить эту тему?');"><span class="cm_label">Удалить тему</span></a></li>
</ul>
</div>	
<?
}
else{
?>
<div class="topic_head_panel">
  <div class="topic_header">
    <h2 class="hp_header"><?= output_text($board['title'])?></h2>
  </div>
  <div class="topic_group"><?= output_text($board['text'])?></div>
  <div class="topic_group"><a class=" al_p<?= $board['id']?> _p<?= $board['id']?>" href="/group<?= $group['id']?>"><?= text($group['title'])?></a></div>
</div>
<?
}


$k_post = mysql_result(mysql_query("SELECT COUNT(*) FROM `groups_board_komm` WHERE `id_board` = '".$board['id']."'"), 0);
$k_page = k_page($k_post,$set['p_str']);
$page = page($k_page);
$start = $set['p_str']*$page-$set['p_str'];
$q = mysql_query("SELECT * FROM `groups_board_komm` WHERE `id_board` = '".$board['id']."' ORDER BY `id` ASC LIMIT $start, $set[p_str]");

$sms = array('сообщение', 'сообщения', 'сообщений');

if ($k_post == 0){
?>
<div class="service_msg_box">
<div class="service_msg service_msg_null">Тему еще не обсуждали.</div>
</div>
<?
}
else{
?>
<h4 class="slim_header"><?= des2num($k_post, $sms )?></h4>
<div style="margin: 3px 10px;">
<?
err();
}
?>
</div>
<div class="wall_replies bl_cont">
<?

while ($post = mysql_fetch_array($q)){
	
	$post_ank = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '".$post['id_user']."' LIMIT 1"));
	$post_ank['nick'] = u_nick($post_ank['id']);
?>
<div class="post_item " id="topic_comment-<?= $post['id']?>">
<a name="post<?= $post['id']?>" class="anchor"></a>
<a class="al_u<?= $post_ank['id']?>" href="/id<?= $post_ank['id']?>"><?= avka50($post_ank['id'], 'pi_img')?></a>
<div class="pi_cont">
<div class="pi_head">
<div><a class="pi_author al_u<?= $post_ank['id']?> _u<?= $post_ank['id']?>" href="/id<?= $post_ank['id']?>"><?= $post_ank['nick']?></a> <?= on_($post_ank['id'])?></div>
</div>
<div class="pi_body">
<div class="pi_text"><?= output_text($post['text'])?></div>
<div class="pi_info">
<a class="item_date" href="?act=topic&them=<?= $board['id']?>&post=<?= $post['id']?>#post<?= $post['id']?>"><?= vremja($post['time'])?></a>
</div>
<div class="pi_links">
<?
if (isset($user) && ($user['id'] == $post_ank['id'] && $post['time'] > time()-600 || $user['id'] == $group['id_user'] || $user['level'] >= 4)){
?>
<a href="?act=topic&them=<?= $board['id']?>&edit_comm=<?= $post['id']?>" class="pia_item">Редактировать</a> 
<?
if (isset($user) && ($user['id'] == $group['id_user'] || $user['level'] >= 4)){
?>
<span class="ti_info"> - </span>
<?
}
}
if (isset($user) && ($user['id'] == $group['id_user'] || $user['level'] >= 4)){
?> 
<a href="?act=topic&them=<?= $board['id']?>&dell_comm=<?= $post['id']?>" class="pia_item">Удалить</a>
<?
}
?>
</div>
</div>
</div>
</div>
<?
}

if ($k_post && $k_page > 1)
	str_vk("?act=topic&them=".$board['id']."&",$k_page,$page);



if(isset($user) && $board['close'] == 0 || $user['level'] >= 4){
?>
<div class="bl_cont" id="nc_form">    
  <div class="create_post create_message post_item">
    <a name="post_add" class="anchor"></a>
      <a class="al_reply_owner_selected_image" href="/id<?= $user['id']?>"><?= avka50($user['id'], 'pi_img _reply_owner_selected_image')?></a>
      <div class="pi_cont">
        <form action="?act=topic&them=<?= $board['id']?>&hash=<?= $passgen?>" method="post">         
          <div class="MentionContainer">
            <div class="iwrap">
              <textarea name="message" class="textfield" rows="2" id="nc_message" onkeyup="Mention.onKeyUp(event, this);" onfocus="Mention.onFocus(event, this);"></textarea>
            </div>
          </div>
          <div class="ibwrap">
            <div class="cp_buttons_block cp_buttons_block_relative clearfix">
              <div class="cp_buttons_block_left clearfix">
                <input class="button" value="Отправить" id="nc_submit" name="cfms" type="submit">  
                
              </div><?php emoji::showContent() ?> 
            </div>
          </div>
        </form>
      </div>
    </div>    
</div>
<?
}

?>
</div>
</div>
<?
}