Перейти к содержимому


Фотография

Чат для 1.3

Форумы IBResource

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 30
VladiZlav
  • Участники
  • Cообщений: 3

Отправлено

А нужен ли инсталлер для БД?
[8<===]
Файлы, конечно, нужны. С описанием для глухонемых чего и куда ставить, если они отличаются от стандартного пакета x7chat.

ОК, забирайте файлы. Там в двух файлах прорисована шапка от vesvalo.net - удалите или перерисуйте на свою.
Если базу поставите инсталлером, то вообще прекрасно.

Я Вас приветствую. Не могли бы вы скинуть еще раз файлы Вашей версии чата с доработками? Я просто поставил у себя 2.0.5.1 и русскую кодировку я поборол, а вот с такими доработками как у Вас чат намного удобнее. Особенно обращение по нику! У меня интеграция с PhpBB 2.x.x Заранее спасибо!
ПРосто я почему не захотел более старую версию ставить - чтото много статей по интернету про SQL инъекции и прочие дыры в чате понаходил... :D

FatCat
  • Клиенты
  • Cообщений: 3 351
  • http://pharm-forum.ru
  • Город:נצרת עילית

Отправлено

Цепляю измененные мной файлы - отсортировал по дате.

Прикрепленные файлы

  • Прикрепленный файл  chat.zip   48,16К   8 скачиваний


VladiZlav
  • Участники
  • Cообщений: 3

Отправлено

FatCat спасибо огромное! К этому моменту в версии 2.0.5.1 уже решили проблему с фичей обращения по нику так что скорей всего откатт делатся уже не будет но в перспективе пригодится!!!! Еще раз спасибо! Мне просто в версии 2.0.4 рефреш постоянный не нравится - страница моргает постоянно :D

FatCat
  • Клиенты
  • Cообщений: 3 351
  • http://pharm-forum.ru
  • Город:נצרת עילית

Отправлено

Проблему с приватеми решили?
Если пришел вызов в приват, а ты его не сразу заметил и кликнул минут через 20 - будет ли видно первое сообщение в самом окне, или надо в логи залезать?

VladiZlav
  • Участники
  • Cообщений: 3

Отправлено

Проблему с приватеми решили?
Если пришел вызов в приват, а ты его не сразу заметил и кликнул минут через 20 - будет ли видно первое сообщение в самом окне, или надо в логи залезать?

Так приват автоматом в новом окне открывается - как его можно не заметить? Хотя разве что при отсутствии у компа... Но пока не довелось так проверить.. Кстати за файл loger.php отдельное спасибо - очень полезная вещь!!!! Еще очень хочу прикрутить к новой версии фичу последних сообщений за 15 минут для вновь входящего но не вкурю как, версии файлов кардинально отличаются.

FatCat
  • Клиенты
  • Cообщений: 3 351
  • http://pharm-forum.ru
  • Город:נצרת עילית

Отправлено

приват автоматом в новом окне открывается

Если в браузере включена давилка всплывающих окон - не открывается.


Кстати за файл loger.php отдельное спасибо - очень полезная вещь!!!!

Полезна в сочетании с функцией входа в чат первого посетителя, когда старый лог копируется в архив, и создается новый лог. Таким образом автоматически на каждую полную беседу создается свой лог.


Еще очень хочу прикрутить к новой версии фичу последних сообщений за 15 минут для вновь входящего но не вкурю как, версии файлов кардинально отличаются.

Модифицировать код генерации приветствия входящему. Если перед этим есть запрос к таблице сообщений чата - модифицировать запрос, чтобы забирать из него соощения последних 15 минут. Если нет такого запроса, то самому написать и добавить.

Посмотрел как у меня сделан вывод прошлых сообщений при входе.
Был код:
$script .= "window.parent.document.getElementById('message_window').innerHTML += '<b><font color=\"$sysmsg_color\">{$x7c->room_data['greeting']}</font></b><br>';\n";
Это вывод строки приветствия.
Я сделал вывод прошлых сообщений перед приветствием, значит и код пишем перед этим кодом.
Запрос к БД: сообщения в этой комнате:
$query = $db->DoQuery("SELECT user,type,body_parsed,time,id FROM {$prefix}messages WHERE 
									room='$_GET[room]' AND time>1 AND type='1' 
									ORDER BY time ASC");
Запускаю счетчик числа сообщений:
$counter_rows = 0;
Запускаю цикл, в цикле считаю строки
while($row = $db->Do_Fetch_Row($query)){
$counter_rows++;
перевожу ники и тексты в метасимволы, чтобы избежать проблем с кодировками
$row[0]=c2m($row[0]);$row[2]=c2m($row[2]);
перевожу время в читабельный формат
$timestamp = format_timestamp($row[3]);
и вывожу саму строку
$script .= "window.parent.document.getElementById('message_window').innerHTML += '<span class=\"other_persons\"><span style=\"cursor:hand\" class=\"other_persons\" onClick=\"java script:chatIn.msgi.value = \' $row[0] >>> \'+chatIn.msgi.value;\">$row[0]</span>$timestamp:</span> $row[2]<br>';\r\n";
закрываю цикл
}

Если ноль строк (не было начала беседы)
if($counter_rows == 0)
Запускаю ротатор логов:
{
include("./lib/logs.php");
$log = new logs(1,$_GET['room']);
$log->clear();
}

Перед тем как удалить старый лог-файл
unlink($logfile);
я добавил сохранение копии прошлого лога, если его длина не нулевая:
if( file_exists( $logfile ) )
			{
				if( filesize( $logfile ) > 0 )
				{
					$testerd = str_replace('/logs/','_',$logfile);
					$testerd2 = str_replace('/','_',$testerd);
					if($testerd==$testerd2){
					$timercur=str_replace('/','_',$logfile)."_".date("Y_M_d_H_i").".log";
					$timercur=str_replace('._logs_','logs/',$timercur);
					copy($logfile, $timercur);
				}
			}


FatCat
  • Клиенты
  • Cообщений: 3 351
  • http://pharm-forum.ru
  • Город:נצרת עילית

Отправлено

Тут нужда заставила чуть поковырять движок этого чата. Ужасно.
Про быдлокод в css.php не говорю: куча ошибок в серверных логах, но хоть не критично.
А вот что в механизме отправки сообщений на сервер, это жестоко...
$parsed_msg = $starttags.$_GET['msg'].$endtags;
// ...
send_message($parsed_msg,$x7c->room_name);
// ...
function send_message($body,$room){
// ...
$db->DoQuery("INSERT INTO {$prefix}messages VALUES('0','$x7s->username','1','$body','$body_parsed','$room','$time')"); _linenums:0'>$parsed_msg = $starttags.$_GET['msg'].$endtags;// ...send_message($parsed_msg,$x7c->room_name);// ...function send_message($body,$room){// ...$db->DoQuery("INSERT INTO {$prefix}messages VALUES('0','$x7s->username','1','$body','$body_parsed','$room','$time')");
А ведь он ставится в единую базу с форумом...

mambalenachka
  • Участники
  • Cообщений: 1
  • http://
  • Город:RASSIAN MOSCOW
  • Интересы:музыка ,спорт,пиво

Отправлено

Всем привет Вообщем пишу чат для локальной сети, и нужно сделать так, чтобы первая программа передала данные из Edit3в данном случае ник на вторую, и чтобы этот ник
отображался на второй программе в Memo1 перед сообщением... Подскажите пожалуйста как это сделать. Заранее спасибо

Clayot
  • Участники
  • Cообщений: 4
  • http://
  • Город:Russia
  • Интересы:Баскетбол

Отправлено

Вряд ли, т.к. мг есть кроме нашей из союзных гильдий ток ещё у 1й гильдии и все и потом фракционый чат это весьма сложный адон, который требует наблюдения за ним, и постояного обновление самого адона

Nikolaj Koparanov
  • Участники
  • Cообщений: 1

Отправлено

Не удивляйтесь загадочным путям папок... Я использовал куски из другого мода.

xChat.php, чтоб работал русский

Создаём папку sources/charset
И аплоудим туда файлфайл class_convert_charset.php


Создаём папку sources/charset/i18n/convertcharset
Аплоудим туда файлик

Создаём папку sources/charset/i18n/convertcharset/ConvertTables
Аплоудим туда файлик (Разархивируйте его. Должен называться windows-1251)

Скины, ланги, админку закидываем согласно инструкции..
xchat.js заливаем вот этот
По идее должно работать.


Спасибо!

Сообщение отредактировал Nikolaj Koparanov: 09 Январь 2013 - 00:10


PALADIN+
  • Участники
  • Cообщений: 1 182
  • http://rpg-zone.ru/
  • Город:Таганрог
  • Интересы:Литература (fantasy), музыка (русский рок), ролевые игры (фрпг)

Отправлено

Да не за что. Напиши если что-то получится с этим xChat.php

А то я от него давно отказался, т.к. по словам хостера он создавал большую нагрузку.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных