View file ViPTurbo 3.0/forum/index.php

File size: 17.67Kb
<?
include('../include/path.php');

if($config['accforum']==1 || (isset($user) && ($rank&32)==32))
{


    if(isset($_GET['c']) && mysql_num_rows($cat=sql_query('SELECT * FROM `'.PRE.'forum_cats` WHERE `rank`<='.((isset($user))?$user['rank']:0).' AND `id`='.intval($_GET['c'])))!=0)
    {

       $cat=mysql_fetch_assoc($cat);

       if(isset($_GET['t']) && mysql_num_rows($theme=sql_query('SELECT * FROM `'.PRE.'forum_posts` WHERE `id`='.intval($_GET['t'])))!=0)
       {

         $theme=mysql_fetch_assoc($theme);

         if(isset($_GET['mod']) && isset($user))
         {

                  if($_GET['mod']=='del' && isset($_GET['id']) && $user['rank']>=32)
                  {

                     if(intval($_GET['id'])==$theme['id']) // если удаляем тему
                     {
                        if(isset($_GET['yes']))
                        {

                           sql_send('DELETE FROM `'.PRE.'forum_posts` WHERE `id`='.$theme['id'].' OR `id_thm`='.$theme['id']);

                           header('Location: index.php?c='.$cat['id'].'&'.SID);

                        }else
                        {
                          function put_content()
                          {

                             global $cat,$theme;

                             echo '<div class="header">Вы действительно хотите удалить тему?</div>';
                             echo '<div class="nav"><a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&mod=del&id='.$theme['id'].'&yes&'.SID.'">Да</a> / <a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&'.SID.'">Нет</a></div>';

                          }
                        }
                     }else
                     if(mysql_num_rows($post=sql_query('SELECT * FROM `'.PRE.'forum_posts` WHERE `id`='.intval($_GET['id'])))!=0)
                     {
                         $post=mysql_fetch_assoc($post);

                         if(isset($_GET['yes']))
                         {

                            sql_send('DELETE FROM `'.PRE.'forum_posts` WHERE `id`='.intval($_GET['id']));

                            sql_send('UPDATE `'.PRE.'users` SET `posts`=posts-1 WHERE `login`="'.$post['login'].'"');

                            sql_send('UPDATE `'.PRE.'forum_posts` SET `posts`=posts-1 WHERE `id`='.$theme['id']);

                            header('Location: index.php?c='.$cat['id'].'&t='.$theme['id'].'&'.SID);

                         }else
                         {

                            function put_content()
                            {

                               global $cat,$theme,$post;

                               echo '<div class="header">Вы действительно хотите удалить это сообщение?</div>';
                               echo '<div class="nav"><a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&mod=del&id='.$post['id'].'&yes&'.SID.'">Да</a> / <a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&'.SID.'">Нет</a></div>';

                            }

                         }

                     }else header('Location: index.php?c='.$cat['id'].'&t='.$theme['id'].'&'.SID);

                  }else
                  if($_GET['mod']=='ans' && isset($_POST['post']) && ($theme['close']!=1 || $user['rank']>=32))
                  {

                     if(strlen($_POST['post'])>2)
                     {
                        sql_send('INSERT INTO `'.PRE.'forum_posts` SET `login`="'.$user['login'].'", `time`='.time().', `id_thm`='.$theme['id'].', `post`="'.filtr($_POST['post']).'"');

                        sql_send('UPDATE `'.PRE.'forum_posts` SET `posts`=posts+1, `ltime`='.time().', `llogin`="'.$user['login'].'" WHERE `id`='.$theme['id']);

                        sql_send('UPDATE `'.PRE.'users` SET `posts`=posts+1 WHERE `login`="'.$user['login'].'"');
                     }

                     header('Location: index.php?c='.$cat['id'].'&t='.$theme['id'].'&p=9999&'.SID);

                  }else
                  if($user['rank']>=32 && $_GET['mod']=='open')
                  {

                     sql_send('UPDATE `'.PRE.'forum_posts` SET `close`=0 WHERE `id`='.$theme['id']);

                     header('Location: index.php?c='.$cat['id'].'&t='.$theme['id'].'&'.SID);

                  }else
                  if($user['rank']>=32 && $_GET['mod']=='close')
                  {

                     sql_send('UPDATE `'.PRE.'forum_posts` SET `close`=1 WHERE `id`='.$theme['id']);

                     header('Location: index.php?c='.$cat['id'].'&t='.$theme['id'].'&'.SID);

                  }else

                  header('Location: index.php?c='.$cat['id'].'&t='.$theme['id'].'&'.SID);

         }else
         {/*----------------- В Ы В О Д  Т Е М Ы  С  С О О Б Щ Е Н И Я М И---------------------*/

            $p=(isset($_GET['p']))?intval($_GET['p']):0;

            $onpage=(isset($GLOBALS['dat']['tpage']))?$GLOBALS['dat']['tpage']:10;

            $onpage=($p==0)?$onpage-1:$onpage;

            if(($pagCoun=ceil((mysql_num_rows(sql_query('SELECT `id` FROM `'.PRE.'forum_posts` WHERE `name`="" AND `id_thm`='.$theme['id'].' ORDER BY `time` ASC'))/$onpage)))<$p) $p=$pagCoun-1;

            $posts=sql_query('SELECT * FROM `'.PRE.'forum_posts` WHERE `name`="" AND `id_thm`='.$theme['id'].' ORDER BY `time` ASC limit '.(($p==0)?$p*$onpage:$p*$onpage-1).','.$onpage);

            function put_content()
            {

               global $theme,$cat,$posts,$user, $p,$onpage, $pagCoun;

               echo '<div class="title">Форум: <a href="index.php?c='.$cat['id'].'&'.SID.'">'.$cat['name'].'</a><br>'.$theme['name'].'</div>';

               $i=$p*$onpage+1;

               if($p==0)
               {
                 echo '<div class="header"><b>1.</b> <a href="../whois.php?login='.MyEncode($theme['login']).'">'.$theme['login'].'</a> <font color="'.((check_online($theme['login']))?'#66FF33">(On)':'#FF0000">(Off)').'</font>'.((isset($user['rank']) && ($user['rank']&32)==32)?' [<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&mod=del&amp;id='.$theme['id'].'&'.SID.'">Уд</a>|<a href="../adminpanel/ban.php?login='.MyEncode($theme['login']).'&'.SID.'">Бан</a>]':'').' <a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&answer='.MyEncode($theme['login']).'&amp'.SID.'">Отв</a></div>';

                 echo '<b>'.date('d.m.y, H:i', $theme['time']).'</b><br>'.bbc($theme['post']).'<br>';

                 $i++;

               }


               $interv=5; $sint=($interv-1)/2; $limn=$sint; $lime=$pagCoun-$sint;

               while($post=mysql_fetch_assoc($posts))
               {

                   echo '<div class="header"><b>'.$i.'.</b> <a href="../whois.php?login='.MyEncode($post['login']).'">'.$post['login'].'</a> <font color="'.((check_online($post['login']))?'#66FF33">(On)':'#FF0000">(Off)').'</font>'.((isset($user) && ($user['rank']&32)==32)?' [<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&mod=del&amp;id='.$post['id'].'&'.SID.'">Уд</a>|<a href="../adminpanel/ban.php?login='.MyEncode($post['login']).'&'.SID.'">Бан</a>]':'').' <a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&answer='.MyEncode($post['login']).'&amp;'.SID.'">Отв</a></div>';

                   echo '<b>'.date('d.m.y, H:i', $post['time']).'</b><br>'.bbc($post['post']).'<br>';

                   $i++;

               }

               if($pagCoun>1)
               {
                     echo'<div class="nav">стр ';
                     if($p>0)        echo '<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&p='.($p-1).'&amp;'.SID.'">&lt;&lt;</a> ';
                     if($interv>=$pagCoun)for($i=1;$i<=$pagCoun;$i++) { if (($i-1)==$p)  echo $i.' '; else  echo '<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }
                      else
                     {
                     if($p<=$limn) { for($i=1;$i<=$interv;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }}}
                     elseif($p>=$lime) { for($i=$pagCoun-$interv+1;$i<=$pagCoun;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }} }
                     else { for($i=$p+1-$sint;$i<=$p+1+$sint;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }} }
                     }
                     if(($i-2)>$p) echo '<a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&p='.($p+1).'&amp;'.SID.'">&gt;&gt;</a> ';
                     echo'</div>';
               }

               if(isset($user) && $user['rank']>=32)
                 if($theme['close']==1) echo '<div class="header"><a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&mod=open&amp;'.SID.'">Открыть тему</a></div>'; else echo '<div class="header"><a href="index.php?c='.$cat['id'].'&t='.$theme['id'].'&mod=close&amp;'.SID.'">Закрыть тему</a></div>';
               else
               if($theme['close']==1) echo '<div class="header">Тема закрыта</div>';

               if(($theme['close']==0 && isset($user)) || (isset($user) && $user['rank']>=32))
                echo '<div class="header">Быстрый ответ</div>
                <form action="index.php?c='.$cat['id'].'&t='.$theme['id'].'&mod=ans&amp;'.SID.'" method="post">
                <textarea cols="30" rows="5" name="post">'.((isset($_GET['answer'])?'[b]'.htmlspecialchars(MyDecode($_GET['answer'])).'[/b], ':'')).'</textarea><br>
                <input type="submit" value="Отправить">
                </form>
                <br>
                <div class="nav"><a href="index.php?c='.$cat['id'].'&'.SID.'">Назад</a></div>
                ';

            }

         }/*----------------- В Ы В О Д  И  С О З Д А Н И Е  Т Е М----------------*/

       }
       else
       {



           if(isset($_GET['mod']) && isset($user))
           {

              if($_GET['mod']=='new')
              {

                    if(isset($_POST['post']) && isset($_POST['name']))
                    {

                        if(strlen($_POST['name'])<=2) $error[]='- Тема слишком короткая.';
                        if(strlen($_POST['post'])<=2) $error[]='- Сообщение слишком короткое.';

                        if(!isset($error))
                        {

                          sql_send('UPDATE `'.PRE.'users` SET `posts`=posts+1 WHERE `login`="'.$user['login'].'"');

                          sql_send('INSERT INTO `'.PRE.'forum_posts` SET `login`="'.$user['login'].'", `llogin`="'.$user['login'].'", `time`='.time().', `ltime`='.time().', `name`="'.filtr($_POST['name']).'", `post`="'.filtr($_POST['post']).'", `c`='.$cat['id']);

                          header('Location: index.php?c='.$cat['id']);

                        }

                    }
                         function put_content()
                         {

                            global $error,$cat;

                            if(isset($error)) echo implode('<br>', $error).'<br>';

                            echo '<div class="title">Создание новой темы</div>';

                            echo '<form action="index.php?c='.$cat['id'].'&mod=new&amp;'.SID.'" method="post">';

                            echo 'Название темы:<br><input type="text" name="name" value="'.(isset($_POST['name'])?htmlspecialchars($_POST['name']):'').'"><br>';

                            echo '<textarea cols="30" rows="5" name="post">'.(isset($_POST['post'])?htmlspecialchars($_POST['post']):'').'</textarea><br>';

                            echo '<input type="submit" value="Создать"><br>';

                            echo '<div class="nav"><a href="index.php?c='.$cat['id'].'&'.SID.'">Назад</a></div>';

                            echo '</form>';

                         }

              }

           }else
           {

                  $onpage=isset($user['tpage'])?$user['tpage']:10;

                  $p=isset($_GET['p'])?intval($_GET['p']):0;

                  if(($pagCoun=ceil((mysql_num_rows(sql_query($q='SELECT * FROM `'.PRE.'forum_posts` WHERE `c`='.$cat['id'].' AND `name`!="" ORDER BY `ltime` DESC'))/$onpage)))<$p) $p=$pagCoun-1;

                  $themes=sql_query($q.=' limit '.($p*$onpage).','.$onpage);

                  function put_content()
                  {
                       global $cat,$themes,$user ,$p,$pagCoun;

                       echo '<div class="title">Форум: '.$cat['name'].'</div>';

                       if(mysql_num_rows($themes)==0) echo '- Тем нет<br>'; else
                       while($theme=mysql_fetch_assoc($themes))
                       {

                          echo '<div class="header">'.(($theme['close']==1)?'<b>#</b>':'').'<a href="index.php?c='.$theme['c'].'&t='.$theme['id'].'&'.SID.'">'.$theme['name'].'</a> ['.$theme['posts'].'] (<a href="../whois.php?login='.MyEncode($theme['llogin']).'&amp;'.SID.'">'.$theme['llogin'].'</a>) <a href="index.php?c='.$theme['c'].'&t='.$theme['id'].'&p=9999&'.SID.'">»</a></div>';

                       }

                       $interv=5; $sint=($interv-1)/2; $limn=$sint; $lime=$pagCoun-$sint;

                       if($pagCoun>1)
                       {
                          echo'<div class="nav">стр ';
                          if($p>0)        echo '<a href="index.php?c='.$cat['id'].'&p='.($p-1).'&amp;'.SID.'">&lt;&lt;</a> ';
                          if($interv>=$pagCoun)for($i=1;$i<=$pagCoun;$i++) { if (($i-1)==$p)  echo $i.' '; else  echo '<a href="index.php?c='.$cat['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }
                           else
                          {
                          if($p<=$limn) { for($i=1;$i<=$interv;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="index.php?c='.$cat['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }}}
                          elseif($p>=$lime) { for($i=$pagCoun-$interv+1;$i<=$pagCoun;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="index.php?c='.$cat['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }} }
                          else { for($i=$p+1-$sint;$i<=$p+1+$sint;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="index.php?c='.$cat['id'].'&p='.($i-1).'&amp;'.SID.'">'.$i.'</a> '; }} }
                          }
                          if(($i-2)>$p) echo '<a href="index.php?c='.$cat['id'].'&p='.($p+1).'&amp;'.SID.'">&gt;&gt;</a> ';
                          echo'</div>';
                       }

                       if(isset($user))echo '<br><a href="index.php?c='.$cat['id'].'&mod=new&amp;'.SID.'">Создать новую тему</a>';
                       echo '<div class="nav"><a href="index.php?'.SID.'">К категориям</a></div>';
                       echo '<div class="nav"><a href="../index.php?'.SID.'">На главную</a></div>';

                  }

           }

       }

    }
    else /*---------------- В Ы В О Д  Ф О Р У М О В  И  К А Т Е Г О Р И Й-----------------*/
    {

       $forums=sql_query('SELECT * FROM `'.PRE.'forum_forums` WHERE `rank`<='.((isset($user))?$user['rank']:0).' ORDER BY `id` ASC');

       $all_cats=sql_query('SELECT * FROM `'.PRE.'forum_cats` WHERE `rank`<='.((isset($user))?$user['rank']:0).' ORDER BY `id` ASC');

       while($cats[]=mysql_fetch_assoc($all_cats)) $sq[]='`c`='.$cats[count($cats)-1]['id'];

       if(isset($sq))
       {
          $all_posts=sql_query('SELECT `posts`,`c` FROM `'.PRE.'forum_posts` WHERE `name`!="" AND ('.implode(' OR ', $sq).')');

          while($posts_c=mysql_fetch_assoc($all_posts))
          {
             $posts[$posts_c['c']]=(isset($posts[$posts_c['c']]))?$posts[$posts_c['c']]+$posts_c['posts']:$posts_c['posts'];
             $themes[$posts_c['c']]=(isset($themes[$posts_c['c']]))?$themes[$posts_c['c']]+1:1;
          }
          
       }


       function put_content()
       {
           global $forums,$cats,$posts,$themes;

           echo '<div class="title">Форум</div>';

           if(mysql_num_rows($forums)!=0)
           {

            while($forum=mysql_fetch_assoc($forums))
            {

               echo '<div class="header">'.$forum['name'].'</div>';

               if (count($cats)==0) echo '<div></div>'; else
               {

                  echo '<div>';

                  foreach($cats as $key=>$cat)
                  {

                     if($cat['f']===$forum['id'])echo '<a href="index.php?c='.$cat['id'].'&'.SID.'">'.$cat['name'].'</a> ['.((isset($themes[$cat['id']]))?$themes[$cat['id']]:0).'/'.((isset($posts[$cat['id']]))?$posts[$cat['id']]:0).']<br>';

                  }

                  echo '</div>';

               }

            }
           }else echo 'Форумы не созданы.<br>';

           echo '<br><a href="search.php?'.SID.'">поиск</a>';
           echo '<div class="nav"><a href="../index.php?'.SID.'">На главную</a></div>';

       }

    }

}else
{

  function put_content()
  {

     $link = '10; URL=../?'.SID;
     function put_content()
      {
                  echo '- Доступ запрещен администрацией сайта<br><br>';
                  echo '<a href="../?'.SID.'">далее...</a>';

      }

  }

}
// подключение дизайна
design();?>