iChat 7.0 Final Release [DLE 9.x — 10.0]

iChat 7.0 Final Release [DLE 9.x — 10.0]

Название: iChat
Версия: 7.0
Версия движка DLE: 9.x
Кодировка: windows-1251
Описание:
Всем нам уже известный чат от RooTM,все та же версия только исправлены не которые баги!
Список изменений:
— Модуль переведен на использование системы управления базами данных SQLite.
— Автоматическое добавления смайлов.
— Устранена проблема недостаточная фильтрация входящих данных.
— Добавлена защита от запуска AJAX файлов непосредственно с адресной строки.
— Добавлена возможность использовать аватар в шаблоне сообщений.
— Добавлена возможность задавать максимальное количество смайлов в сообщении.
— Своя папка с кэш-файлами.
— Загрузка смайлов с помощью AJAX.
— В настройках чата заменен id-шник на более уникальный.
— Исправлены ошибки в шаблонах(практически валидные),а также небольшой редизайн.
— Улучшенная функция «цитировать».
— Добавлена защита от выполнения скрипта без кэширования.
— Добавлена возможность задавать время автообновления для гостей.
— Добавлено кэширование AJAX-ответов для правил и смайлов.
— Добавлено удаления пробелов из начала и конца AJAX-ответов(Исправляет баг с «no need refresh»).
— Проведена оптимизация файлов refresh.php и add.php.
— Во все папки добавлен файл .htaccess.
— Исправлен небольшой баг(Не учитывался выбор шаблона) в rules.php.
— Обновлены Jquery UI эффекты к актуальным версиям.
— Добавлено отображение количества сообщений в настройках чата.
Инструкция внутри архива
 Скриншоты





 ДополниельноУстановка:
1.Cкопируйте все файлы из папки UPLOAD в данном архиве на ваш сервер.
1.1.Установите права для записи (CHMOD 777) для папки /engine/modules/iChat/data/, а также для всех папок, находящихся внутри.
2.В шаблон, в нужном месте вставьте следующее: {include file=»engine/modules/iChat/show.php»} для отображения чата.
Код кнопки «Чат в новом окне»:

<input class="bbcodes" style="font-size: 11px; float: left;" title="Чат в новом окне" onclick="window.open('/engine/modules/iChat/window.php', '_iChat', 'toolbar=0,location=0,status=0, left=0, top=0, menubar=0,scrollbars=yes,resizable=0,width=620,height=605');" type="button" value="Чат в новом окне" /

 Автоматическая конвертация текстовых ссылок в тексте в кликабельныев add.php и edit.php найти это:

$message = preg_replace( "#\[leech\](\S.+?)\[/leech\]#ie", "iChat_build_url(array('html' => '\\1', 'show' => '\\1'))", $message ); 

выше добавить это:

$message = preg_replace("#(^|\s|>)((http|https|ftp)://\w+[^\s\[\]\<]+)#i", '\\1[leech]\\2[/leech]', $message); 

P.S. Будет добавлено в новую версию чата!
 Блокируем сообщения, которые содержать незакрытые тегив engine/modules/iChat/ajax/add.php найти это:

if ($is_logged AND in_array($member_id['name'], explode(",",  $chat_cfg['no_access'] ))) $error = $chat_lang['no_access']; 

выше добавить это:

preg_match_all( '/\[(b|i|u|s|color=([^\]]+))]/is' , $message , $count_start_tag );
preg_match_all( '/\[\/(b|i|u|s|color)]/is' , $message , $count_end_tag );
if( count($count_start_tag[0]) != count($count_end_tag[0]) ) $error = "Сообщения содержит незакрытые теги.";

P.S. Будет добавлено в новую версию чата!
Аналогичный хак для DataLife Engine v.9.4
в engine/modules/addcomments.php найти это:

if( intval($config['comments_minlen']) AND dle_strlen( str_replace(" ", "", strip_tags(trim($comments))), $config['charset'] ) < $config['comments_minlen'] ) {
    $stop[] = $lang['news_err_40'];
    $CN_HALT = TRUE;
} 

выше добавить это:

preg_match_all( '/\[(b|i|u|s|color=([^\]]+))]/is' , $_POST['comments'], $count_start_tag );
preg_match_all( '/\[\/(b|i|u|s|color)]/is' , $_POST['comments'], $count_end_tag );
if( count($count_start_tag[0]) != count($count_end_tag[0]) ) {
    $stop[] = "Сообщения содержит незакрытые теги.";
    $CN_HALT = TRUE;
}


 Если есть ошибка «Warning: Unexpected character in input»в add.php и edit.php заменить это

            $message = preg_replace( "#\[leech\](\S.+?)\[/leech\]#ie", "\iChat_build_url(array('html' => '\\1', 'show' => '\\1'))", $message );
            $message = preg_replace( "#\[leech\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/leech\]#ie", "\iChat_build_url(array('html' => '\\1', 'show' => '\\2'))", $message );
            $message = preg_replace( "#\[leech\s*=\s*(\S.+?)\s*\](.*?)\[\/leech\]#ie", "iChat_build_url(array('html' => '\\1', 'show' => '\\2'))", $message ); 

на это

            $message = preg_replace( "#\[leech\](\S.+?)\[/leech\]#ie", "\iChat_build_url(array('html' => '\\1', 'show' => '\\1'))", $message );
            $message = preg_replace( "#\[leech\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/leech\]#ie", "iChat_build_url(array('html' => '\\1', 'show' => '\\2'))", $message );
            $message = preg_replace( "#\[leech\s*=\s*(\S.+?)\s*\](.*?)\[\/leech\]#ie", "iChat_build_url(array('html' => '\\1', 'show' => '\\2'))", $message ); 

Новость отредактировал: Qnut

Причина: Обновлено