Вход Регистрация
Файл: CMS/chat/index.php
Строк: 141
<?php
define
('CMS',TRUE);
require(
'cfg.php');

if (!empty(
$id) && !empty($mod) && $mod == 'chat') {

    
$where = ($is_logged) ? "`user` = '" $log "'" "`ip` = '" $ip "'"

    
$is_user = (int) $db->selectCell("SELECT `time` FROM ?_chat_who WHERE " $where " AND `room` = ?"$id);

    if (
$is_user 0) {

        
$db->query("UPDATE ?_chat_who SET `time` = ?, `ip` = ?, `ua` = ? WHERE `room` = ? AND " $whereSITE_TIME$ip$brow$id);
    }
    else {

        
$db->query("INSERT INTO ?_chat_who SET `user` = ?, `room` = ?, `time` = ?, `ip` = ?, `ua` = ?"$username$idSITE_TIME$ip$brow);

    }

    
$data $db->selectRow("SELECT *, (SELECT COUNT(*) FROM ?_chat_who WHERE ?_chat_who.`room` = ?_chat_rooms.`id`) AS `count`
                            FROM ?_chat_rooms WHERE `id` = ?"
$id);

    if (!empty(
$data)) {

        if (
$config['chat_refresh'] > 0header('Refresh: ' num($config['chat_refresh']) . '; url=' gen_uri('chat'$idRND));

        
show_header('Чат - ' $data['name'] . ' (' num($data['count']) . ')');

        if (!empty(
$data['pass']) && $data['type'] == 3) {

            
show_auth_room($id$data['pass']);
        }
        else if (
$data['type'] == 2) { // Ком-та только для друзей

            
$arr_friends $db->selectCol("SELECT `friends_login` FROM ?_friends WHERE `users_login` = ?"$data['user']);

            if (
$is_logged) {

                if (
$log <> $data['user'] && !in_array($log,$arr_friends)) {

                    
show_error('Комната только для друзей пользователя ' users_anketa($data['user']));
                    echo 
'<div class="b">';
                    echo 
icon('return.png') . ' <a href="' gen_uri('index'''RND) . '">Прихожая</a><br />';
                    echo 
'</div>';
                    
show_footer();
                    exit();
                }
            }
            else {

                
show_error('Комната только для друзей пользователя ' users_anketa($data['user']));
                echo 
'<div class="b">';
                echo 
icon('return.png') . ' <a href="' gen_uri('index'''RND) . '">Прихожая</a><br />';
                echo 
'</div>';
                
show_footer();
                exit();
            }
        }
        else if (
$data['type'] == 1) {

          
show_xxx_room();
        }

        
$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 * FROM ?_chat_post WHERE `room` = ?
                                          ORDER BY `time` DESC LIMIT ?d, ?d"
$id$from$onpage );

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

            if (
$is_admin) echo '<form action="?rnd=' $_SESSION['token'] . '" method="post">';

            
$i 0;

            foreach(
$rows as $row) {
                
$i++;
                echo 
'<div class="b">';
                echo 
'<div class="img">' user_avatars($row['user']) . '</div>';
                echo 
users_anketa($row['user']) . ' ';
                echo 
date('H:i:s'$row['time']) . ' ' user_online($row['user']);
                if (
$row['user'] <> $log) echo '<span style="float:right;"><a href="?reply=' num($row['id']) . '#form">ответить</a></span>';

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

                    echo 
'<br /><b>Приватное</b>';

                    if (
$is_logged && $row['privat'] == $log) {

                        echo 
'<br />' nl2br(bb_code($row['msg']));
                    }
                }
                else {

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

                if (
$is_admin) {

                    echo 
'<br /><input type="checkbox" name="del[]" value="' num($row['id']) . '" /> ';
                    echo 
'(' $row['ip'] . ' / ' $row['ua'] . ')<br />';
                }
                echo 
'</div>';
            }

            if (
$is_admin) echo '<div class="b"><input type="submit" name="del_msg" value="Удалить выбранное" class="btns" /></form></div>';

            echo 
show_pages(gen_uri('chat'$id));
        }
        else 
show_error('Cообщений пока нет..');

        if (
$is_logged) {

            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'$idRND), 'post'' name="form" id="form"');
            
$form->addCode('Сообщение: <small>[<a href="' gen_uri($mod$id'smiles=1') . '">Смайлы</a>] ');
            
$form->addCode('[<a href="' gen_uri($mod$id'code=1') . '">ББ-коды</a>]</small><br />');

            if (!empty(
$_GET['reply'])) {

                
$row $db->selectRow("SELECT `user` FROM ?_chat_post WHERE `id` = ?"num($_GET['reply']));
                
$form->addTextarea('''text', !empty($row['user']) ? '[b]' nickname($row['user']) . '[/b], ' '');
                
$form->addCheckBox(array(''' Приватное'), 'privat');
                
$form->addHidden('reply'num($_GET['reply']));
            }
            else 
$form->addTextarea('''text'request('text'));

            
$form->addHidden('room'num($data['id']));
            
$form->addHidden('rnd'$_SESSION['token']);
            echo 
$form->Submit('Отправить''send');
            unset(
$form);

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

                if (!empty(
$_GET['clear'])) { // Очистка комнаты

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

                    
$db->query("DELETE FROM ?_chat_post WHERE `room` = ? AND `user` = ?"$id$log);

                    
$db->query("OPTIMIZE TABLE ?_chat_post, ?_chat_rooms, ?_chat_who");

                    
$inSes->addMessage('Комната успешно очищена!''ok');

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

                  
gen_red('chat'$idRND);
                }

                echo 
'<div class="b">';
                echo 
icon('error.gif''icons');
                echo 
'<a href="?clear=' $id '&amp;rnd=' $_SESSION['token'] . '">Очистить комнату</a>';
                echo 
'<br />Осталось: ' makestime($data['time'] - SITE_TIME);
                echo 
'</div>';
            }
        }
        else 
show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');

        echo 
'<div class="b">';
        echo 
icon('return.png') . ' <a href="' gen_uri('index') . '">Прихожая</a><br />';
        echo 
'</div>';
    }
    else {

        
$inSes->addMessage('Ошибка! Комната не найдена!');
        
gen_red('index');
    }
}
else {

    
show_header('Чат - прихожая');

    
$rows $db->select("SELECT *, (SELECT COUNT(*) FROM ?_chat_who WHERE ?_chat_who.`room` = ?_chat_rooms.`id`) AS `count`
                         FROM ?_chat_rooms ORDER BY `pos` ASC;"
);

    if (!empty(
$rows) && count($rows)) {

        foreach(
$rows as $row) {

            
$idr  num($row['id']);
            
$icon = ($row['type'] == 1)   ? '18.gif'   'chat.gif';
            
$icon = ($row['type'] == || $row['type'] == 3) ? 'lock.png' $icon;

            echo 
'<div class="b">' icon($icon'icons');
            echo 
'<a href="' gen_uri('chat'$idr) . '">' $row['name'] . '</a> (' num($row['count']) . ')';
            if (
$is_admin) {

                echo 
' [<a href="?edit_room=' $idr '">Ред.</a> | ';
                echo 
' <a href="?del_room=' $idr '&amp;rnd=' $_SESSION['token'] . '">Уд.</a> | ';
                echo 
' <a href="?clear_room=' $idr '&amp;rnd=' $_SESSION['token'] . '">Очистить</a>]';
            }
            if (!empty(
$row['about'])) echo '<br />' bb_code($row['about']);
            echo 
'</div>';

        }
    }
    else 
show_error('Нет комнат..');

    if (
$is_admin) {

        
$access = array(=> ''=> '');

        
$bots = array(=> 'Нет'=> 'Умник'=> 'Шутник'=> 'Умник и Шутник');

        if (!empty(
$_GET['edit_room'])) {

            
$room $db->selectRow("SELECT * FROM ?_chat_rooms WHERE `id` = ? LIMIT 1"num($_GET['edit_room']));

            
$form = new cmsForm('?rnd=' $_SESSION['token'], 'post');
            
$form->addText('Название комнаты:''name'$room['name']);
            
$form->addTextarea('Описание:''about'$room['about']);
            
$form->addText('Позиция:''pos'num($room['pos']), ' size="3"');
            
$form->addCheckBox('Для взрослых: ''type'$room['type']);
            
$form->addHidden('edit_room'$room['id']);
            echo 
$form->Submit('Изменить');
            unset(
$form);
        }
        else if (!empty(
$_GET['add_room'])) {

            
$form = new cmsForm('?rnd=' $_SESSION['token'], 'post');
            
$form->addText('Название комнаты:''name'request('name'));
            
$form->addTextarea('Описание:''about'request('about'));
            
$form->addText('Позиция:''pos'request('pos''0'), ' size="3"');
            
$form->addCheckBox('Для взрослых: ''type');
            echo 
$form->Submit('Создать''add_room');
            unset(
$form);
        }
        else {

            echo 
'<div class="b">';
            echo 
icon('add.png') . ' <a href="?add_room=1">Создать комнату</a><br />';
            echo 
icon('mail.png') . ' <a href="?clear_chat=1&amp;rnd=' $_SESSION['token'] . '">Очистить чат</a><br />';
            echo 
'</div>';
        }
    }
}
    
show_footer();
?>
Онлайн: 3
Реклама