Вход Регистрация
Файл: CMS/comm/comm_chat.php
Строк: 192
<?php

if (!defined('CMS')) { die('Access Denied!'); }

$data '';
$data $db->selectRow("SELECT ?_comm_comm.*, ?_comm_category.*
                       FROM ?_comm_comm LEFT JOIN ?_comm_category 
                       ON ?_comm_comm.`comm_cats_id` = ?_comm_category.`cats_id` 
                       WHERE `comm_url` = ? LIMIT 1;"
$soo);


if (empty(
$data) || !is_array($data)) {

    
$inSes->addMessage('Ошибка! Сообщество не найдено или ссылка неверна!');
    
gen_red('index'''RND);
}

$arr_admins = @explode(','$data['comm_admins']);
$users      = array();

if (
$is_logged) {

    
$users $db->selectRow("SELECT * FROM ?_comm_users WHERE `cu_comm` = ? AND `cu_user` = ? LIMIT 1;"$data['comm_id'], $log);

    if (
$data['comm_user'] == $log) {

        
$is_admin_soo true;
    }

    if (
in_array($log$arr_admins) && $users['cu_admin'] == 1) {

        
$is_moder_soo true;
    }
}

if (
$data['comm_status'] == && empty($users)) {

    
$inSes->addMessage('Чат только для участников сообщества!');
    
gen_red('index'''RND);
}

# Добавление сообщения
if (!empty($_POST['add_chat'])) {

    
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';

    
$_SESSION['captcha_key']      = !empty($_SESSION['captcha_key'])      ? $_SESSION['captcha_key']      : NULL;
    
$_SESSION['captcha_failures'] = !empty($_SESSION['captcha_failures']) ? $_SESSION['captcha_failures'] : 0;
    
$_SESSION[SP]['crc32']        = !empty($_SESSION[SP]['crc32'])        ? $_SESSION[SP]['crc32']        : NULL;

    if (
$is_logged) {

      if (!empty(
$users)) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

          if (
cms_strlen($msg) >= && cms_strlen($msg) < $config['chat_max_text']) {

            if ( 
crc32($msg) <> $_SESSION[SP]['crc32'] ) {

              if (
is_quarantine($log)) {

                if (
is_flood($log)) {

                  
$_SESSION[SP]['crc32'] = crc32($msg);

                  
$msg antimat($msg);
                  
$msg smiles($msg);

                  
//$db->query("UPDATE ?_users SET `users_allguest` = (`users_allguest` + 1), `users_point` = (`users_point` + 1), `users_money` = (`users_money` + 5) WHERE `users_login` = ?;", $config['chat_add_point'], $config['chat_add_money'], $log);

                  
$db->query("INSERT INTO ?_comm_chat (`chat_comm`, `chat_user`, `chat_text`, `chat_ip`, `chat_brow`, `chat_time`) 
                              VALUES (?, ?, ?, ?, ?, ?);"
$data['comm_id'], $log$msg$ip$browSITE_TIME);

                  
$inSes->addMessage('Сообщение успешно добавлено!''ok');

                  
gen_red('chat'''RND);

                }
                else 
$error 'Антифлуд! Разрешается отправлять сообщения раз в ' flood_period() . ' секунд!';
              }
              else 
$error 'Карантин! Вы не можете писать в течении ' round($config['allow_karantin'] / 3600) . ' часов!';
            }
            else 
$error 'Ошибка! Ваше сообщение <u>уже было</u> добавлено!';
          }
          else 
$error 'Ошибка! Слишком длинное или короткое сообщение!';
        }
        else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';
      }
      else 
$error 'Ошибка! Добавлять сообщения могут только участники сообщества!';
    }
    else 
$error 'Вы не авторизованы, чтобы добавить сообщение, необходимо';

    if (!empty(
$error)) $inSes->addMessage($error'error'); 


switch(
$mod):
  case 
'chat':

    
show_header('Чат ' $data['comm_name']);
    echo 
'<div class="b"><a href="#down">' icon('down.png') . '</a> ';
    echo 
'<a href="' gen_uri('chat'''RND) . '">Обновить</a>';

    if (!empty(
$mod) && in_array($mod,array('code','smiles','rules'))):

        echo 
'<a href="' gen_uri('chat'''RND) . '">Чат</a></div>';

        include( 
MODULES_PATH $mod '.inc.php' );

    else:

        echo 
'</div>';

    
$onpage = !empty($config['chat_num']) ? num($config['chat_num']) : 10;

    if (
$page 1$from = ($page 1) * $onpage; else $from 0;

    
$rows $db->selectPage$total"SELECT `c`.*, `u`.`users_gender`, `v`.`visit_nowtime`
                                      FROM ?_comm_chat `c`
                                      LEFT JOIN ?_users_visit `v`
                                      ON `c`.`chat_user` = `v`.`visit_user`
                                      LEFT JOIN ?_users `u`
                                      ON `c`.`chat_user` = `u`.`users_login`
                                      WHERE `chat_comm` = ?
                                      ORDER BY `chat_time` DESC
                                      LIMIT ?d, ?d"
$data['comm_id'], $from$onpage );

    if (!empty(
$rows) && $total 0) {

        
$i $from 1;
        foreach(
$rows as $row) {

            echo 
'<div class="b" id="u-' $i '"> ';
            echo 
$i .  '. ' user_visit_icon($row['chat_user'], $row['users_gender'], $row['visit_nowtime']) . ' ';
            echo 
users_anketa($row['chat_user']);

            if (
$is_logged && $log == $row['chat_user'] && $row['chat_time'] + 600 SITE_TIME) {

                echo 
'<div class="right"><a href="' gen_uri('chat_edit'$row['chat_id'], RND) . '">Редактировать</a></div>';
            }
            else if (!empty(
$log) && $log != $row['chat_user']) {

                echo 
'<div class="right">';
                echo 
'<a href="' gen_uri('chat_reply'$row['chat_id'], RND) . '">Отв</a> | ';
                echo 
'<a href="' gen_uri('chat_quote'$row['chat_id'], RND) . '">Цит</a>';
                echo 
'</div>';
            }

            echo 
' <small>(' get_date($row['chat_time']) . ')</small><br />';

            echo 
nl2br(bb_code($row['chat_text'])) . '<br />';

            if (!empty(
$row['chat_edit'])) {

                echo 
icon('exclamation_small.gif''icons');
                echo 
'<small>Отредактировано: ' nickname($row['chat_edit']) . ' (' get_date($row['chat_edit_time']) . ')</small><br />';
            }

            if (!empty(
$row['chat_reply'])) {

                echo 
nl2br(bb_code($row['chat_reply'])) . '<br />';
            }

            if (!empty(
$config['anonymity'])) {

                echo 
'<span class="data">(' $row['chat_brow'] . ', ' $row['chat_ip'] . ')</span><br />';
            }
            echo 
'</div>';
            
$i++;
        }

        echo 
show_pages('chat'RND'p');
    }
    else {

        
show_error('Сообщений нет, будь первым!');
    }

    endif;

    if (
$is_logged) {

        
$form = new cmsForm('?rnd=' $_SESSION['token'], 'post'' name="form" id="form"');
        
$form->addTextarea('Сообщение:''text'request('text'));
        echo 
$form->Submit('Написать''add_chat');
        unset(
$form);
    }
    else {

        
show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');
    } 

    echo 
'<div class="b">';
    echo 
'<a href="#up">' icon('up.png') . '</a> ';

  break;
  case 
'chat_reply':

    
show_header('Ответ на сообщение');

    if (
$is_logged) {

      
$post $db->selectRow("SELECT * FROM ?_comm_chat WHERE `chat_id` = ?  AND `chat_comm` = ? LIMIT 1;"$id$data['comm_id']);

      if (!empty(
$post)) {

        echo 
'<div class="b" style="min-height:30px;">';
        echo 
'<div class="img">' user_avatars($post['chat_user']) . '</div>';

        if (
$post['chat_user'] == $config['guest_name']) {
            echo 
'<b>' $post['chat_user'] . '</b> <small>(' get_date($post['chat_time']) . ')</small>';
        } else {
            echo 
'<b>' users_anketa($post['chat_user']) . '</b> <small>(' get_date($post['chat_time']) . ')</small><br />';
            echo 
user_title($post['chat_user']) . ' ' user_online($post['chat_user']);
        }
        echo 
'</div>';
        echo 
'<div class="b">Сообщение: ' nl2br(bb_code($post['chat_text'])) . '</div>';
        if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
        else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );

        
$form = new cmsForm(gen_uri('chat'$id'rnd=' $_SESSION['token']), 'post'' name="form" id="form"');
        
$form->addCode(blink('*') . ' Сообщение: <small>');
        
$form->addCode('[<a href="' gen_uri('chat_reply'$id'smiles=1') . '">Смайлы</a>] ');
        
$form->addCode('[<a href="' gen_uri('chat_reply'$id'code=1') . '">ББ-коды</a>]</small>');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
        
$form->addTextarea('''text''[b]' nickname($post['chat_user']) . '[/b] '' id="msg" style="width:98%;"');
        echo 
$form->Submit('Ответить''add_chat');
        unset(
$form);
      }
      else {

        
show_error('Ошибка! Выбранное вами сообщение для ответа не существует!');
      } 
    }
    else {

      
show_login('Вы не авторизованы, чтобы отвечать на сообщения, необходимо');
    }

    echo 
'<div class="b">' icon('return.png') . ' <a href="' gen_uri('chat'''RND) . '">В чат</a> | ';

  break;
  case 
'chat_quote':

    
show_header('Цитирование');

    if (
$is_logged) {

      
$post $db->selectRow("SELECT * FROM ?_comm_chat WHERE `chat_id` = ?  AND `chat_comm` = ? LIMIT 1;"$id$data['comm_id']);

      if (!empty(
$post)) {

        if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
        else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );
        
$post['chat_text'] = nosmiles($post['chat_text']);
        
$post['chat_text'] = preg_replace('|[q](.*?)[/q](<br />)?|'''$post['chat_text']);
        
$post['chat_text'] = str_replace(array('<br>''<br/>''<br />'), "n"$post['chat_text']);
        
$text '[q][b]' nickname($post['chat_user']) . '[/b] (' get_date($post['chat_time']) . ')';
        
$text .= "n" $post['chat_text'] . "[/q]n";
        
$form = new cmsForm(gen_uri('chat'$id'rnd=' $_SESSION['token']), 'post'' name="form" id="form"');
        
$form->addCode(blink('*') . ' Сообщение: <small>');
        
$form->addCode('[<a href="' gen_uri('chat_quote'$id'smiles=1') . '">Смайлы</a>] ');
        
$form->addCode('[<a href="' gen_uri('chat_quote'$id'code=1') . '">ББ-коды</a>]</small>');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
        
$form->addTextarea('Сообщение:''text'$text' id="msg" style="width:98%;"');
        echo 
$form->Submit('Цитировать''add_chat');
        unset(
$form);
      }
      else {

        
show_error('Ошибка! Выбранное вами сообщение для ответа не существует!');
      } 
    }
    else {

      
show_login('Вы не авторизованы, чтобы отвечать на сообщения, необходимо');
    }

    echo 
'<div class="b">' icon('return.png') . ' <a href="' gen_uri('chat'''RND) . '">В чат</a> | ';

  break;
  case 
'chat_edit':

    if (
$is_logged) {

      
$post $db->selectRow("SELECT * FROM ?_comm_chat
                              WHERE `chat_id` = ?  AND `chat_comm` = ?  AND `chat_user` = ? LIMIT 1;"
$id$data['comm_id'], $log);

      if (!empty(
$post)) {

        if (
$post['chat_time'] + 600 SITE_TIME) {

          if (!empty(
$_POST['submit'])) {

            
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';

            if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

              if (
cms_strlen($msg) >= && cms_strlen($msg) < $config['chat_max_text']) {

                
$msg antimat($msg);
                
$msg smiles($msg);

                
$db->query("UPDATE ?_comm_chat SET `chat_text` = ?, `chat_edit` = ?, `chat_edit_time` = ? 
                            WHERE `chat_id` = ?;"
$msg$logSITE_TIME,  num($post['chat_id']));

                
$inSes->addMessage('Сообщение успешно отредактировано!''ok');

                
gen_red('chat'''RND);

              }
              else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
            }
            else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
          }

          
show_header('Поправка сообщения');
          
$post['chat_text'] = nosmiles($post['chat_text']);
          
$post['chat_text'] = str_replace(array('<br>''<br/>''<br />'), "n"$post['chat_text']);
          
$post['chat_text'] = html_entity_decode($post['chat_text'], ENT_QUOTES'UTF-8');
          echo 
'<div class="b"> <b>' nickname($post['chat_user']) . '</b> <small>(' get_date($post['chat_time']) . ')</small><br /></div>';
          if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
          else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );
          
$form = new cmsForm(gen_uri('chat_edit'$id'rnd=' $_SESSION['token']), 'post'' name="form" id="form"');
          
$form->addCode(blink('*') . ' Сообщение: <small>');
          
$form->addCode('[<a href="' gen_uri('chat_edit'$id'smiles=1') . '">Смайлы</a>] ');
          
$form->addCode('[<a href="' gen_uri('chat_edit'$id'code=1') . '">ББ-коды</a>]</small>');
          
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
          
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
          
$form->addTextarea('''text'$post['chat_text'], ' id="msg" style="width:98%;"');
          echo 
$form->Submit('Редактировать''submit');
          unset(
$form);
        }
        else {

            
show_header('Поправка сообщения');
            
show_error('Ошибка! Редактирование невозможно, прошло более 10 минут!!');
        } 
      }
      else {

          
show_header('Поправка сообщения');
          
show_error('Ошибка! Сообщение удалено или вы не автор этого сообщения!');
      } 
    }
    else {

      
show_header('Поправка сообщения');
      
show_login('Вы не авторизованы, чтобы редактировать сообщения, необходимо');
    }

    echo 
'<div class="b">' icon('return.png') . ' <a href="' gen_uri('chat'''RND) . '">В чат</a> | ';

  break;

endswitch;

echo 
' <a href="' gen_uri('index'''RND) . '">В сообщество</a> | ';
echo 
'<a href="../' gen_uri('cats'$data['cats_id'], RND) . '">' $data['cats_name'] . '</a></div>';

show_footer();

?>
Онлайн: 2
Реклама