€
$
₴
₽
EN
RU
Vmeste.EU
Лента
Каталог
Файлы
Форумы
Услуги
Основное
Radiotalk
Пользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90 •
Посмотреть все темы
Bugs - ошибки системы чатов и их исправление!
1
...
105
106
107
...
184
87
k4at
@k4at
02.04.2012
Как бы сделать проверку на смену IP у пользователей в чате?
Если происходит смена, то перегружать или блокировать на несколько минут.
20090
Dimitry
@Dimitry
02.04.2012
если происходит смена то пользователь становится неавторизован в чате, провда возможно если через куки то останется авторизован.
20090
Dimitry
@Dimitry
03.04.2012
Исправление бага прокрутки Google Chrome
Сегодня обнаружил что в последней версии Хрома если указан DOCTYPE прокрутка не прокручивается, а прыгает.
Для исправления в скриптах чата jscripts.dat в функции прокрутки up() была обновлена строка которая начинается с
scr1=
Баг во всех чатах.
var loaded=0;
var scrolled=0;
function up() {
if(loaded==0) onloaded();
var scr=parent.left.document.body;
if(parent.left.document.compatMode != 'BackCompat')
scr=parent.left.document.documentElement;
scr1=parent.left.document.documentElement.scrollTop || parent.left.document.body.scrollTop;
scr2=parent.left.innerHeight;
if(scr2==undefined) scr2=scr.clientHeight;
scr3=scr.scrollHeight;
if (scr1+scr2>=scr3) return;
if (scrolled==1) {if (scr1+scr2+250<scr3) return;}
parent.left.scroll (0, scr =1+Math.round (scr1+1*(scr3-scr2-scr1)/(1+slowscroll)));
setTimeout ('up()', 20);
}
20090
Dimitry
@Dimitry
07.04.2012
Понял, проблема из-за того про происходит скрол при новом сообщении и это происходит в другом фрейме.
Решение, избавиться от фрейма сообщений и сделать DIV вместо него, щас пытаюсь что-то такое накалякать в сврём чате.
Также прошу обратить внимание на баги в мобильной версии из-за DOCTYPE
Если вы используйте свой mobile.inc и у вас прописан DOCTYPE, то проблема с размерами окна решается изменением синих строк, они расположены внизу шаблона моильной версии:
var width=document.documentElement.clientWidth;
var height=document.documentElement.clientHeight;
if(!width) width=200;
if(!height) height=200;
//alert(width+"x"+height);
if(width>480) width=480;
if(height>480) height=480;
//alert(width+"x"+height);
//set sizes
document.getElementById('users').style.width=(width-25)+'px';
document.getElementById('left').style.width=(width-25)+'px';
document.getElementById('left').style.height=(height-50)+'px';
document.getElementById('text0').style.width=(width-110)+'px';
document.getElementById('enter').style.display='none';
//load engine
if(engine=="ajax" || engine=="js") {ajax(1);}
else {parent.left.location.href="irc.html?"+myid;}
20090
Dimitry
@Dimitry
14.04.2012
Исправил, теперь можно банить, фильтрация на текст срабатывает уже после.
Также была исправлена и модифицированна мобильная версия
- исправлены размеры окна сообщений, также теперь сообщения выводятся в DIV и без прокрутки - она не нужна
- выводятся только последние 30 сообщений, можно увеличить кол-во
- исправлены баги для оперы мобаил (не путать с мини) - работает на AJAX отлично
- удалён движок JS, больше не требуется потому что AJAX поддерживается более чем у 99% посетителей
Изменения не документируются, проще смотреть стандартный фаил мобильной версии, он теперь доступен в шаблонах.
20090
Dimitry
@Dimitry
22.04.2012
Убрал я эту фишку или не фишку, вообщем теперь можно одновременно сидеть и с авторизайцией и без и писать одновременно с нескольких ников в одном браузере... Может быть это и баг, так как у пользователя создаётся впечатление что ничего не работает.
20090
Dimitry
@Dimitry
28.04.2012
распространённая проблема если у вас в стилях стоит цвет без решётки #
color:dedede; - это теперь не работает, правьте так color:#dedede;
mouse1
что значит не работают, они выводятся ведь теперь 😉
20090
Dimitry
@Dimitry
13.05.2012
Weber
в моём чате работает черех хром
Render
, исправил, это только в разделе пользователи думаю
20090
Dimitry
@Dimitry
14.05.2012
Да, баг привата в отдельном окне присутствует для чатов с пока ещё отдельным фреймом сообщений, исправить нужно строчку:
wr(set_time+symbol+set_nick+text+" <a href=# onclick='var pnick1=\""+pnick+"\"; parent.pu[pnick1]=window.open(\"index.php?inc=privat&\"+parent.yourkey+\"&pnick=\"+pnick1,\"\",\"scrollbars=no,width=500,height=400,resizable=yes\"); return false;'>приват окне</a>");
2615
Сергей
@Pegass
18.05.2012
Dimitry
, Довольно часто бывает уже после авторизации в админки, попадаешь в тот раздел на котором остановился в прошлый раз и если сразу его отредактировать и нажать сохранить выкидывает на страницу ввода пароля. Если же сначала перейти в другой раздел, а затем вернуться в нужный - то всё гуд.
20090
Dimitry
@Dimitry
18.05.2012
исправил, теперь кидает на старт
20090
Dimitry
@Dimitry
21.05.2012
Исправление блокировки правой кнопки мышки и перехода в текстовое поле при написании
(
для безфреймовой версии
)
Обновим в скриптах чата
jscripts.dat
функцию onloaded()
/* Дозагрузка - выполняется после загрузки фрейма сообщений */
function onloaded() {
window.setTimeout('scrolled=1;',5000);
if(interval) window.clearTimeout(interval);
if(topic) wr(topic);
for(var i = 0;i<rooms.length;i++) update(i,0);
/* Запретить правую кнопку мышки и ставить курсор в текстовое поле */
if(setcursor) document.onkeydown = function(){document.fmsg.text0.focus();}
if(nomousemenu) {
document.oncontextmenu = function(){return false;}
document.onmousedown = function(e){if(e && e.type == "contextmenu") return false;}
}
/* Добавления в никлист бота-робота, ниже структура */
room_r=0;status_r=0;inchat_r='1';
if(nick_r) {loaded=1; f(room_r,6,nick_r,'',inchat_r,'',color_r,'',mw_r,st_r,icon_r,status_r,love_r,clan_r);loaded=0;}
}
20090
Dimitry
@Dimitry
21.05.2012
Избавляемся от фрейма 😉
https://vmeste.eu/forum?pid=294793#p294793
20090
Dimitry
@Dimitry
23.05.2012
Изменения затронули только mysql версию.
С КОТОМ была проблема в том что бот реагировал на своё же имя, так как там было слово кот, то он брал фразы только по запросу кот, это исправил!
Также исправлены формулы активности бота, в параметрах указывается активность, это % вероятности ответа бота когда к нему обращаются.
А для свободных фраз это % вероятности делённый на 10.
Т.е. бот при активности = 100 будет выкидывать примерно каждое 10е сообщение свою реплику, если активность 50, то каждое 20е сообщение и так далее. (1000/активность = частота свободных фраз)
Если вы увеличите текущую активность в 2 раза, то активность бота будет примерно такой как была у вас раньше.
20090
Dimitry
@Dimitry
23.05.2012
Очки не начислялись, просто всегда выводило сообщение что ответ правильный, исрпавил.
128
Drongo
@Drongo
23.05.2012
Dimitry
пишет:
Возможно не на всех браузерах работает, каокй браузер?
браузер хром 19, в опере и мозиле также... Вот ещё в вебфтп появилось "Parse error: syntax error, unexpected ')' in /home/mpchat/html/adm_webftp.php on line 257"
20090
Dimitry
@Dimitry
23.05.2012
Да, это я не заметил как сделал ошибку, поправил.
Подгоняю последние скрипты под mysql.
2970
удалён
@Foggy
24.05.2012
Просидел в бездействии всю ночь в чате на ажаксе и вдруг на утро чат заявил, что Bad session.
20090
Dimitry
@Dimitry
24.05.2012
Drongo
, проверил, во всех браузерах работает, но 2 условия это исправление функции и безфреймовая система, а также не забыть включить параметр в скриптах чата
var setcursor=1;
Foggy
, Да, теперь пишет ошибку в случае если сессия рвётся и человек пытается написать сообщение.
Сессия становится недействительной только если IP сменился, видимо это произошло.
20090
Dimitry
@Dimitry
10.06.2012
SmoL
пишет:
В опере, 11.X, при обновлении кнопочкой <a href="#" onclick='parent.loadframes();' title='Обновить окно сообщений'>Обновить</a> перестает работать slowscroll (Замедление прокрутки сообщений), скорее всего оно из-за скрытия iframe с сообщениями. Как подправить?
В главном чате так же присутствует проблема.
Это баг оперы - параметры прокрутки не обновляются при очищении окна, но исправить его не сложно. Поменял местами и подредактировал 2 первые строчки. (только
для полностью безфреймовой версии
, для фреймовой там возможно не leftdiv.scrollTop=0; а другой параметр для прокрутки окна)
function up() {
var leftdiv=document.getElementById("leftdiv");
if(loaded==0) {
leftdiv.scrollTop=0;
onloaded();}
var left=leftdiv.scrollHeight-leftdiv.clientHeight-leftdiv.scrollTop;
if(left<=0 || (scrolled==1 && left>250)) return;
leftdiv.scrollTop=Math.ceil(leftdiv.scrollTop+left/(1+slowscroll));
setTimeout('up()',20);
}