Вход Регистрация
Файл: comm/inc/forum.php
Строк: 261
<?php
/** Модуль Сообщества
 * @author      Kratos
 * @email       wssy@mail.ua
 * ICQ:         845348
 * @version     1.0.0 
 */
// Выбираем сообщество
$id_soo = (int)$_GET['id'];
// Проверка соостоит ли юзер в сообе
$user_comm func::UserComm($id_soo$user_id);

if(!
$id_soo){
    
header("Location: index.php");
}
// Проверка на наличие тем у форуме
$issetT forum::issetT($id_soo);
//Проверка действия
$do strip_tags($_GET['do']);
if(
in_array($do,array("newt","t","say","del","up","vip","delt"))){
    
$do $_GET['do'];
}else{
    
$do null;
}
//Проверка на бан
$uban func::banstat($id_soo$user_id);
if(
$uban){
     echo 
functions::display_error("Вас забанили!Осталось: " functions::timecount($uban time()) . ""); 
     echo 
'<a href="index.php?id='.$row['cat'].'">Назад</a>';
     require(
'../incfiles/end.php');
     exit();
     
 }
//Проверка закрыто ли сообщество
$row func::showUserComm($id_soo);
$access $row['access'];

switch(
$do){
    
// Создаем тему для общения
    
case'newt':
if(!
$user_comm or $access == and func::rightsUserComm($id_soo$user_id) < 7){
    
header("Location:?act=forum&id=$id_soo");exit();
        }
        
$error = array();
        if(
$_POST){
        
$name = isset($_POST['name']) ? functions::checkin(mb_substr(trim($_POST['name']), 050)) : '';
        
$text = isset($_POST['text']) ? functions::checkin(trim($_POST['text'])) : '';
        
$id_soo = (int)$_GET['id'];

  
        if (empty(
$name)){
            
$error[] = "Заполните поле названия!";
         }
        if (empty(
$text)) {
            
$error[] = "Заполните поле текст!";
         }
         if (
mb_strlen($name) < 5) {
             
$error[] = "Поле названия менее 5 символов!";
         }
        if (
mb_strlen($text) < 5) {
             
$error[] = "Поле текст менее 5 символов!";
         }
        
        if (!
$error){
            if(!
forum::newTheme($id_soo$name$text$user_id)){
            die(
'Неизвесная ошибка! Обратитесь к администрации!');
                    exit();
            }
         
header("Location:?act=forum&id=$id_soo");   
        }else{
            echo 
functions::display_error($error);
         }
        }
        
        echo 
'<div class="phdr">Создать тему</div>';
          
?>
<div class="menu">
    <form action="?act=forum&amp;do=newt&amp;id=<?=$id_soo?>" method="post">
 <p>
  Название темы(min 5)*:
<br/>
<input type="text" name="name" value=""     maxlength="50"/></p>
<p>Текст(min 5)*:<br/>
<input type="text" name="text" value=""/></p>
  <p><span style='color:red'>* - обязательные поля</span></p>
<input type="submit" name="send" value="Создать" />
    </form>
</div>


<?php
        
break;
        
//Вывод сообщений в теме
        
case 't':
          
          
$id_t = (int)strip_tags($_GET['idt']);
          
$total db::result(db::query("SELECT count(*) FROM `comm_forum` WHERE `refid` = $id_t"),0);
         if (
$start >= $total) {
       
// Исправляем запрос на несуществующую страницу
          
$start max(0$total - (($total $kmess) == $kmess : ($total $kmess)));
                }
          
$res forum::showMess($id_t$start$kmess);
          
$res2 forum::showTheme($id_t,$start,$kmess,'info');
          
$tema mysqli_fetch_assoc($res2);

          
//Запрос в бд
          
if(!forum::upTopicTime($id_t$user_id)){
              
forum::upTopicTime($id_t$user_id,'insert');
          }else{
              
forum::upTopicTime($id_t$user_id,'up');
          }
          if(
$total == 0){
             echo 
functions::display_error('Нет такой темы!''<a href="?act=forum&amp;id='.$id_soo.'">' $lng['back'] . '</a>');
             require(
'../incfiles/end.php');
             exit();
          }
             echo 
'<div class="phdr"><a href="?act=forum&amp;id='.$id_soo.'">Форум</a> | '.$tema['text'].'</div>';
         
         while(
$row mysqli_fetch_assoc($res)){
             
          
$uid func::showUsersInfo($row['from']);
          echo 
$i '<div class="list2">' '<div class="list1">';
          if (
$uid['sex']){
             echo 
'<img src="../theme/' $set_user['skin'] . '/images/' . ($uid['sex'] == 'm' 'm' 'w') . ($uid['datereg'] > time() - 86400 '_new' '') . '.png" width="16" height="16" align="middle" />&#160;';
          }else{
             echo 
'<img src="../images/del.png" width="12" height="12" align="middle" alt=""/>&#160;';
          }
         if(
$row['user_id'] != $user_id){
            echo 
'<a href="../users/profile.php?user=' $row['user_id'] . '">' $uid['name'] . '</a> ';
         }else{
            echo 
'<b>'.$uid['name'].'</b>';
         }
 

            
// Метка должности
           
$user_rights = array(
                        
=> '',
                        
=> ' (Модератор)',
                        
=> ' (Админ)',
                        
=> ' (Создатель)'
                    
);
            echo 
'<small>'.$user_rights[func::rightsUserComm($id_soo$row['user_id'])].'</small>';

             
// Метка Онлайн / Офлайн
            
echo (time() > $uid['lastdate'] + 300 '<span style="color:red"> [Off]</span> ' '<span class="green"> [ON]</span> ');
           echo 
' <span class="gray">(' functions::display_date($row['time']) . ')</span><br/>';
                               
// 
                    
if(func::rightsUserComm($id_soo$user_id) >= and $row['user_id'] != $user_id and func::rightsUserComm($id_soo$user_id) > func::rightsUserComm($id_soo$row['user_id'])){
                        echo 
' <small>(<span style="font-size:8pt"><a href="?act=musers&amp;us='.$row['user_id'].'&amp;id='.$id_soo.'">Изм</a> | ';
                        echo 
' <a href="?act=musers&amp;us='.$row['user_id'].'&amp;id='.$id_soo.'&amp;do=ban">Бан</a></span>)</small>';
                    }
           
$text functions::checkout($row['text'],1,1);
           
$text functions::smileys($text1);
            echo 
'<p>'.$text.'</p>';
         if (
$row['edit']) {
         
$use func::showUsersInfo($row['edit']);
        
// Если пост редактировался, показываем кем и когда
         
echo '<span class="gray"><small>Изм. <b>' $use['name'] . '</b> (' functions::display_date($row['tedit']) . ')</small></span>';
                    }
            if(
func::rightsUserComm($id_soo$user_id) >= 7){
            echo 
'<div class="sub"><a href="?act=forum&amp;do=up&amp;id='.$id_soo.'&amp;idp='.$row['id'].'&amp;idt='.$id_t.'">Изменить</a> | <a href="?act=forum&amp;do=del&amp;id='.$id_soo.'&amp;idp='.$row['id'].'&amp;idt='.$id_t.'">Удалить</a></div>';}
            echo 
'</div>';
                }
                
         if (
$total $kmess) {
            echo 
'<div class="topmenu">' functions::display_pagination('?act=forum&amp;do=t&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;'$start$total$kmess) . '</div>';
            echo 
'<p><form action="?act=forum&amp;id='.$id_soo.'&amp;do=t&amp;idt='.$id_t.'&amp;" method="post"><input type="text" name="page" size="2"/><input type="submit" value="' $lng['to_page'] . ' &gt;&gt;"/></form></p>';
                }
        
        echo 
'<div class="phdr">' $lng['total'] . ': ' $total '</div>';
        if(
$user_comm){
            if(
$access != or func::rightsUserComm($id_soo$user_id) >= 7){
            echo 
'<div class="func"><a href="?act=forum&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;do=say">Написать</a></div>';}
        }
        if(
func::rightsUserComm($id_soo$user_id) >= 7){
            if(!
$tema['vip']){
                echo 
'<div class="func"><a href="?act=forum&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;do=vip&amp;vip">Закрепить</a></div>';
            }else{
                echo 
'<div class="func"><a href="?act=forum&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;do=vip">Открепить</a></div>';
            }
            echo 
'<div class="func"><a href="?act=forum&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;do=delt">Удалить</a></div>';
        }
            break;
            
            
//Закрепления темы
           
case'vip':
               if(!
$user_comm or $access == and func::rightsUserComm($id_soo$user_id) < 7){
                
header("Location:?act=forum&id=$id_soo");exit();
                }
                
$vip = isset($_GET['vip']) ? 0;
                
$idt = (int)htmlspecialchars($_GET['idt']);
                if(
$vip == 1){
                   
forum::vipT($idt,1);
                   
header("Location:?act=forum&id=$id_soo&do=t&idt=$idt");
                   exit(); 
                }else{
                    
forum::vipT($idt,0);
                    
header("Location:?act=forum&id=$id_soo&do=t&idt=$idt");
                    exit();
                }
                
                break;
            
            
//Добавления поста!
            
case'say':
             
$id_t = (int)strip_tags($_GET['idt']);
                if(!
$user_comm or $access == and func::rightsUserComm($id_soo$user_id) < 7){
                    
header("Location:?act=forum&do=t&id=$id_soo&idt=$id_t");
                }
            if(
$_POST){
                
$msg = isset($_POST['msg']) ? functions::checkin(trim($_POST['msg'])) : '';
                
//Обрабатываем ссылки
                
$msg preg_replace_callback('~\[url=(http://.+?)\](.+?)\[/url\]|(http://(www.)?[0-9a-zA-Z.-]+.[0-9a-zA-Z]{2,6}[0-9a-zA-Z/?.~&amp;_=/%-:#]*)~''forum_link'$msg);
                
// Проверяем на минимальную длину
            
if (mb_strlen($msg) < 5) {
             echo 
functions::display_error($lng['error_message_short'], '<a href="?act=forum&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;do=say">' $lng['back'] . '</a>');
             require(
'../incfiles/end.php');
             exit;
            }
            
//Добавляем сообщения в бд
            
if(!forum::newMess($id_t$user_id$msg$id_soo)){
                 echo 
functions::display_error('Ошибка системы!!! Обратитесь к администрации!''<a href="?act=forum&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;do=say">' $lng['back'] . '</a>');
             require(
'../incfiles/end.php');
             exit;
            }else{
                
//Вычисляем страницу поста
                
$page ceil(db::result(db::query("SELECT COUNT(*) FROM `comm_forum` WHERE `type` = 'm' AND `refid` = '$id_t'"), 0) / $kmess);
                
header("Location:?act=forum&do=t&id=$id_soo&idt=$id_t&page=$page");
            }
            
            }
            echo 
'<form name="form" action="?act=forum&amp;id='.$id_soo.'&amp;idt='.$id_t.'&amp;do=say" method="post"><div class="gmenu">' .
                
'<p><h3>Сообщение</h3>';
            if (!
$is_mobile) {
                echo 
'</p><p>' bbcode::auto_bb('form''msg');
            }
            echo 
'<textarea rows="' $set_user['field_h'] . '" name="msg">' . (empty($_POST['msg']) ? '' functions::checkout($msg)) . '</textarea></p>';
            echo 
'<p><input type="submit" name="submit" value="Отправить" style="width: 107px; cursor: pointer"/></p></div></form>';    
                break;
                
//Удаления поста
                
case'del':
                  if(
func::rightsUserComm($id_soo$user_id) >= 7){
                
$id_soo = (int)htmlspecialchars($_GET['id']);
                
$id_t = (int)  htmlspecialchars($_GET['idt']);
                
$idp = (int)  htmlspecialchars($_GET['idp']);
                
$act strip_tags($_GET['stat']);
                
$onepost mysqli_fetch_assoc(db::query("SELECT `id` FROM `comm_forum` WHERE `refid` = ".$id_t." AND `type` = 'm' ORDER by time  LIMIT 1"));
                
$tpost forum::countPost($id_t);
                switch(
$act){
                 case 
'yes':
                 if(
$onepost['id'] == $idp and $tpost == 1){
                     
//Удаления поста!
                     
forum::deletePost($idp);
                     
//удаления темы!
                     
forum::deleteT($id_t);
                     
header("Location:?act=forum&id=$id_soo");
                 }else{
                 
                     if(!
forum::deletePost($idp)){
                        die(
'Ошибка! Обратитесь к администрации!');exit();
                        }   
                        
header("Location:?act=forum&id=$id_soo&idt=$id_t&do=t");
                        exit();
                 }
                     break;
                 
                 case 
'no':
                    
header("Location:?act=forum&do=t&id=$id_soo&idt=$id_t");exit();
                    break;
                
                 default:
                     echo 
'<div class="phdr">Удаления поста</div>';
                     echo 
'<div class="menu">Вы уверены, что хотите удалить?</div>';
                     echo 
'<div class="menu"><a href="?act=forum&amp;id='.$id_soo.'&amp;do=del&amp;idt='.$id_t.'&amp;idp='.$idp.'&amp;stat=yes">Да</a> 
                     | <a href="?act=forum&amp;do=del&amp;id='
.$id_soo.'&amp;idt='.$id_t.'&amp;idp='.$idp.'&amp;stat=no">Нет</a></div>';
                    break;
                    }
                
                   }else{
                       
header("Location:?act=forum&id=$id_soo");
                   }
                    break;
                    
            
//Изменения поста
            
case'up':
                if(
func::rightsUserComm($id_soo$user_id) >= 7){
                
$id_soo = (int)htmlspecialchars($_GET['id']);
                
$id_t = (int)htmlspecialchars($_GET['idt']);
                
$idp = (int)htmlspecialchars($_GET['idp']);
        
                if(!
$user_comm){
            
header("Location:?act=forum&id=$id_soo");exit();
        }
        
$error = array();
        
        if(
$_POST){
        
$text = isset($_POST['msg']) ? functions::checkin(trim($_POST['msg'])) : '';

        if (empty(
$text)) {
            
$error[] = "Заполните поле текст!";
         }
         if (
mb_strlen($text) < 5) {
            
$error[] = "Минимум 5 символов!";
         }
        
        if (!
$error){
            if(!
forum::upPost($idp,$text,$user_id)){
            die(
'Неизвесnная ошибка! Обратитесь к администрации!');
                    exit();
            }
         
header("Location:?act=forum&id=$id_soo&idt=$id_t&do=t");   
        }else{
            echo 
functions::display_error($error);
         }
        }
        
        echo 
'<div class="phdr">Изменить пост</div>';
        
$row mysqli_fetch_assoc(forum::showMess($idp$start$kmess1));
        
        echo 
'<form name="form" action="?act=forum&amp;do=up&amp;id='.$id_soo.'?>&amp;idt='.$id_t.'>&amp;idp='.$idp.'" method="post"><div class="gmenu">';
                        
'<p><h3>Сообщение</h3></p>';
            if (!
$is_mobile) {
                echo 
'<p>' bbcode::auto_bb('form''msg');
            }
            echo 
'<textarea rows="' $set_user['field_h'] . '" name="msg">'.functions::checkout($row['text']).'</textarea></p>';
            echo 
'<p><input type="submit" name="submit" value="Отправить" style="width: 107px; cursor: pointer"/></p></div></form>'
                }
        break;
         
//Удаления темы
                
case'delt':
                  if(
func::rightsUserComm($id_soo$user_id) >= 7){
                
$id_soo = (int)htmlspecialchars($_GET['id']);
                
$id_t = (int)htmlspecialchars($_GET['idt']);
                
$act strip_tags($_GET['stat']);
                
                switch(
$act){
                 case 
'yes':
                if(!
forum::deleteT($id_t)){
                    die(
'Ошибка! Обратитесь к администрации!');
                }   
                
header("Location:?act=forum&id=$id_soo");exit();
                exit();
                     break;
                 
                 case 
'no':
                    
header("Location:?act=forum&do=t&id=$id_soo&idt=$id_t");exit();
                    break;
                
                 default:
                     echo 
'<div class="phdr">Удаления поста</div>';
                     echo 
'<div class="menu">Вы уверены, что хотите удалить?</div>';
                     echo 
'<div class="menu"><a href="?act=forum&amp;id='.$id_soo.'&amp;do=delt&amp;idt='.$id_t.'&amp;stat=yes">Да</a> 
                     | <a href="?act=forum&amp;do=delt&amp;id='
.$id_soo.'&amp;idt='.$id_t.'&amp;stat=no">Нет</a></div>';
                    break;
                    }
                
                   }else{
                       
header("Location:?act=forum&id=$id_soo");
                   }
                    break;
                      
            
    default:
 echo 
'<div class="phdr"><a href="?act=comm&amp;id='.$id_soo.'">В сообщество</a> | Форум</div>';  
if(
$issetT != 0){
    
$res forum::showTheme($id_soo,$start,$kmess);
    
$i0;
    while(
$row mysqli_fetch_assoc($res)){
        
$lastuserpost db::query("SELECT `from` FROM `comm_forum` WHERE `refid` = ".$row['id']." AND `type` = 'm' ORDER by time DESC LIMIT 1");
        
$nam mysqli_fetch_assoc($lastuserpost);
        
$oneuserpost db::query("SELECT `from` FROM `comm_forum` WHERE `refid` = ".$row['id']." AND `type` = 'm' ORDER by time  LIMIT 1");
        
$onenam mysqli_fetch_assoc($oneuserpost);
        
//Последняя страница
        
$colmes db::result(db::query("SELECT COUNT(*) FROM `comm_forum` WHERE `type`='m' AND `refid`='" $row['id'] . "'"),0);
        
$cpg ceil($colmes $kmess);
        
$naml func::showUsersInfo($nam['from']);
        
$namo func::showUsersInfo($onenam['from']);
        
        
$np db::result(db::query("SELECT COUNT(*) FROM `comm_forum_rdm` WHERE `time` >= '" $row['time'] . "' AND `topic_id` = '" $row['id'] . "' AND `user_id`='$user_id'"), 0);
                        
// Значки
                        
$icons = array(
                            (
$np ? (!$row['vip'] ? '<img src="../theme/' $set_user['skin'] . '/images/op.gif" alt=""/>' '') : '<img src="../theme/' $set_user['skin'] . '/images/np.gif" alt=""/>'),
                            (
$row['vip'] ? '<img src="../theme/' $set_user['skin'] . '/images/pt.gif" alt=""/>' '')
                            
                        );
        
        echo 
$i '<div class="list2">' '<div class="list1">';
        echo 
functions::display_menu($icons'&#160;''&#160;');
        
//echo $row['vip'] ? '<img src="../theme/' . $set_user['skin'] . '/images/pt.gif" alt=""/>' : '<img src="../theme/' . $set_user['skin'] . '/images/np.gif" alt=""/>';
        
echo '<a href="?act=forum&amp;do=t&amp;id='.$id_soo.'&amp;idt='.$row['id'].'">'.$row['text'].'</a> ('.forum::countPost($row['id']).')';
        
// На посл. страницу
        
if ($cpg 1) {
            echo 
' <a href="?act=forum&amp;do=t&amp;id='.$id_soo.'&amp;idt='.$row['id'].'&amp;page=' $cpg '">»</a>';
           }
        
//Первый и последний кто оставил пост!
        
echo '<div class="sub">'.$namo['name'] .' / '.$naml['name'].'</div>';
        echo 
'</div>';
        
$i++;
        
    }
            if (
$issetT $kmess) {
    echo 
'<div class="topmenu">' functions::display_pagination('?act=forum&amp;id='.$id_soo.'&amp;'$start$issetT$kmess) . '</div>';
    echo 
'<p><form action="?act=forum&amp;id='.$id_soo.'&amp;" method="post"><input type="text" name="page" size="2"/><input type="submit" value="' $lng['to_page'] . ' &gt;&gt;"/></form></p>';
}
echo 
'<div class="phdr">' $lng['total'] . ': ' $issetT '</div>';
}else{
    echo 
'Тем пока нет!';
}
if(
$user_comm)
    if(
$access != or func::rightsUserComm($id_soo$user_id) >= 7){
    echo 
'<div class="func"><a href="?act=forum&amp;id='.$id_soo.'&amp;do=newt">Создать тему</a></div>';}
    break;
}
?>
Онлайн: 1
Реклама