Вход Регистрация
Файл: modules/chat/controller/controller.php
Строк: 100
<?php
/**
 * Класс для работы с чатом
 * 
 * @package Classes
 * @author Shamsik
 * @link http://shcms.ru
 */

class controller {
    
/*
     * Обрабатываем отправленный текст
     * 
     * @param $param 
     */

    
public static function comment($param) {
        global 
$db$_date$glob_core$id_user$error;

        
//Проверка переданного $_POST
        
$text filter_input(INPUT_POST'text'FILTER_SANITIZE_STRING);
        
//Экранируем специальные символы
        
$text $db->safesql($text);

        if (
engine::trim($text) == false and empty($text)) {
            
$error['text'][] = 'Сообщение не введено';
        }
        
//Короткие сообщение не должны отправляться
        
if (strlen($text) < 5) {
            
$error['text'][] = 'Сообщение должно быть больше 5 символов';
        }
        
//В сообщение не должно присутствовать мат
        
if ($glob_core['antimat'] == 1) {
            
$text SwearFilter::filter($text);
        }
        
//В сообщение не должен присутствовать реклама (ссылки)
        
if ($glob_core['antiadv'] == 1) {
            
$text engine::antilink($text);
        }
        
//Удаляем ссылки из текстов
        
if ($glob_core['antilink'] == 1) {
            
$text engine::removing($text);
        }
        
//Если хотябы одна ошибка найдется в $error то не допустится
        
if (empty($error)) {
            
//Записываем сообщение в базу
            
$chat $db->query("INSERT INTO `chat` (`text`,`time`,`id_user`)
                    VALUES ('
{$text}','{$_date}','{$id_user}')");
            if (
$chat == true) {
                
//Начисление баллов пользователю
                
user::points();
                
//Переадресция после успешной отправки
                
header('Location: index.php');
            } else {
                
$error['text'][] = 'Сообщение не добавлено';
            }
        }
    }

    
/**
     * HTML форма добавления сообщений
     * 
     * @param form()
     */

    
public static function form() {
        global 
$error$id_user;
        
//Привелегие пользователя
        
$group user::users($id_user, array('group'));
        
//Если у пользователя привилегия 15
        
if ($group == 15) {
            
$view '<a href="?do=all">' Lang::__('Удаляем все') . '</a>';
        }
        echo 
'<div class="mainname">' Lang::__('Сообщение') . '';
        echo 
'<span class="time">' $view '</span>';
        echo 
'</div>';
        echo 
'<div class="mainpost">';
        
//HTML форма
        
$form = new form('?');
        
$form->textarea(false'text'false, (isset($error['text']) ? '<span style="color:red"><small>' implode('<br />'$error['text']) . '</small></span><br />' ''));
        
$form->submit('Отправить''submit',true,'btn btn-success');
        
$form->display();

        echo 
'</div>';
        
//Переход на главную
        
echo engine::home(array(Lang::__('Назад'), '/index.php'));
    }

    
/**
     * Вывод всех сообщений чата
     * 
     * @param output()
     */

    
public static function output() {
        global 
$db$id_user;
        
//Счетчик вывода сообщений По умолчанию 10
        
$count $db->get_array($db->query("SELECT COUNT(*) FROM `chat`"));
        
$list = new Navigation($count[0], 10true);
        
//Если в базе есть хоть одно сообщение то выводим их все.
        
if ($count[0] > 0) {
            
$query $db->query("SELECT * FROM `chat` ORDER BY `id` DESC " $list->limit() . "");
        } else {
            echo 
'<div class="mainname">'.Lang::__('Не найдено ничего').'</div>';
            echo 
'<div class="mainpost"><center>' Lang::__('Сообщений не найдено') . '</center></div>';
            exit;
        }

        echo 
'<div class="mainpost">';
        echo 
'<ul class="List_withminiphoto Pad_list">';
        
//Вывод всех сообщений
        
while ($chat $db->get_array($query)) {
            
//Получаем данные о пользователе
            
$profile $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '{$chat[id_user]}'"));
            
//Получение данных о привилегий
            
$group user::users($id_user, array('group'));
            
//Если у привилегии 15 то выполняем действие
            
if ($group == 15) {
                
$viewd '<a href="?do=delete&id=' $chat['id'] . '">';
                
$viewd .= '<img src="/engine/template/icons/delete.png"></a>';
            }

            echo 
'<li class="clearfix row3">';
            
//Путь к аватарам
            
$avatar '/upload/avatar/' $profile['avatar'];

            
//Если нет аватара выводим аватар по умолчанию
            
if ($profile['avatar'] == false and file_exists($avatar) == false) {
                echo 
'<a href="/engine/template/icons/default_large.png" class="UserPhotoLink left">';
                echo 
'<img src="/engine/template/icons/default_large.png" class="UserPhoto UserPhoto_mini"></a>';
            } else {
                echo 
'<a href="' $avatar '" title="Просмотр профиля" class="UserPhotoLink left">';
                echo 
'<img src="' $avatar '" class="UserPhoto UserPhoto_mini"></a>';
            }

            echo 
'<div class="list_content">';
            
//Ник Автора сообщения
            
echo '<a href="../profile.php?id=' $profile['id'] . '"><b>' $profile['nick'] . '</b></a>';
            echo 
'<span class="time">' $viewd '</span>';
            echo 
'<div class="details">';
            
//Привиление пользователя
            
echo '<span><img src="/engine/template/icons/group.png">&nbsp;' user::group($chat['id_user']) . '</span>';
            
//Время добавление сообщения
            
echo '<span><img src="/engine/template/icons/date.png">&nbsp;' date::make_date($chat['time']) . '</span>';
            echo 
'</div>';
            
//Текст сообщения
            
echo '<div class="lighter row2">' engine::input_text($chat['text']) . '</div>';
            echo 
'</div>';
            echo 
'</li>';
        }

        echo 
'</ul>';
        echo 
'</div>';

        
//Получаем постаничную навигацию
        
echo $list->pagination();
    }

}
Онлайн: 1
Реклама