ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Bugs - ошибки системы чатов и их исправление!

 

20090
Dimitry @Dimitry
В форуме так должно быть, модераторы сами решают что удалить, а что нет.

4619
Web3r @Web3r
Похоже, функция плавного скроллинга перестает работать после достижения масимума сообщений в var maxmsgs;
Или у меня одного так?

2615
Сергей @Pegass
Web3r пишет:

Похоже, функция плавного скроллинга перестает работать после достижения масимума сообщений в var maxmsgs;
Или у меня одного так?

нет, не у одного)))

исправляется так

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 && ++delayed>20) || (scrolled==1 && left>250))
{
delayed=0;

if(loaded==1 && maxmsgs>0) {
var alld=document.querySelectorAll('#leftdiv > div');
var count=alld.length;
if(maxmsgs<count) {for(var i=count-maxmsgs-1;i>=0;i--){if(alld[i].parentNode) alld[i].parentNode.removeChild(alld[i]);}}
}
return;
}
leftdiv.scrollTop=Math.ceil(leftdiv.scrollTop+left/(1+slowscroll));
setTimeout('up()',20);
}

/* Удаляет старое сообщ. печатает новое и прокручивает вниз */
function wr(text) {
var leftdiv=document.getElementById("leftdiv");
var div=document.createElement('div'); div.innerHTML=text;
leftdiv.appendChild(div);
if(loaded==1) up();
}

Отредактировано Pegass - 28.01.2014
20090
Dimitry @Dimitry
И в чём именно тут исправление? Может и мне поправить?
Или скорее из-за чего проблема возникает, у себя в чате такого не замечал да и не жаловался никто.

2615
Сергей @Pegass
проблема возникает из-за того, что сначала удаляется верхний блок из-за чего прокрутка резко падает вниз, а затем начинает работать плавный скрол, понятное дело в воздух, в коде выше я переместил удаление блока после отработки плавного скрола)))

20090
Dimitry @Dimitry
Ну т.е. ты сделал удаление лишних строк сразу после окончания действия прокрутки?

2615
Сергей @Pegass
Dimitry пишет:

Ну т.е. ты сделал удаление лишних строк сразу после окончания действия прокрутки?

точно)))

2970
удалён @Foggy
А что за delayed и где оно объявляется?

20090
Dimitry @Dimitry
Pegass пишет:

Dimitry пишет:

Ну т.е. ты сделал удаление лишних строк сразу после окончания действия прокрутки?

точно)))

В твоём коде есть новый баг, если во время прокрутки приходит более одного сообщения, а это частов в активных чатах, то получится так что прийдёт 2-3, а удалено будет одно. В результате получим картину когда всё равно будет рост кол-ва сообщений, надо как то иначе делать...

2615
Сергей @Pegass
Ну наверное можно так
for(i=0;i<count-maxmsg;i++)
{
leftdiv.removeChild(leftdiv.getElementsByTagName('div')[0]);//тут вроде всегда 0, хотя может и i - не помню))))
}

Отредактировано Pegass - 29.01.2014
4619
Web3r @Web3r
Открытие любого стандартного файла всегда происходит в codemirror, откуда невозможно скопировать. Надо бы обычный textarea поставить.

20090
Dimitry @Dimitry
почему нельзя скопировать? 😲

2615
Сергей @Pegass
1- действительно бывает такой глюк, что сочетание ctrl+a ctrl+c ctrl+v не приводит к желаемому результату(точнее ctrl+a выделяет не всё), но не всегда так бывает и главное ХЗ почему
2 - вроде есть же везде кнопка перейти к обычному виду)))

Отредактировано Pegass - 01.02.2014
4619
Web3r @Web3r
Dimitry пишет:

почему нельзя скопировать?

У меня не появляется контекстное меню "копировать", "вырезать"... Через ctrl не копируется... Firefox 27...

Pegass пишет:

2 - вроде есть же везде кнопка перейти к обычному виду)))

**********

И ещё пожелание: к textarea добавить spellcheck="false", хотя бы на css-стили... Постоянно всё подсвечивается, приходится отключать проверку орфографии каждое сохранение.

20090
Dimitry @Dimitry
Наверное глюк FF, никогда такой проблемы не встречал.
А вообще конечно codemirror не моя разработка, поэтому и что-то иcправлять сложно (
Попробую скоро обновить версию, может пропадут проблемки.

disableSpellcheck
Should the editor disable spell-checking on browsers that support it (Firefox 2+). Default is true, since for most code spell-checking is useless. Can be changed with the setSpellCheck(on) method.

4619
Web3r @Web3r
Dimitry, попробуй добавить spellcheck="false" непосредственно к textarea:
<textarea name="mess" class="code" style="width: 100%" rows="25" spellcheck="false">

И ещё пара недочетов:
1. При сообщении о бане выводится "К сожалению, Вы были заблокированы до..." - пропущена запятая.
2. В "управлении баном" из фразы про анонимные прокси - не нуливой IP, а нулевой.

20090
Dimitry @Dimitry
Исправление PHP скриптов для совместимости с php5.4


в functions.php найти
if(!mysql_num_rows($res)) return "";

заменить на
if(!mysql_num_rows($res)) return array();

31
Татьяна @Takit-ta
Дим, проблемку помоги пожалуйста разобрать..

Участник попросил переименовать ему ник, через главную админку попыталась это сделать, выдало ошибку:

Ошибка синтаксиса поля nick!
Ошибка синтаксиса поля email!
Ошибка синтаксиса поля birthday!

Результат, ник не переименовался, но все настройки, набранное время, поинты и т.п. всё обнулилось.

Из-за чего такое могло произойти?

20090
Dimitry @Dimitry
Web3r, spellcheck="false" сделал тут на форуме, работает?

бебебе
Takit-ta, сложно сказать, копать надо

4619
Web3r @Web3r
Dimitry, теперь в codemirror не проверятся. Хотелось бы в чате на обычные textarea тоже.

Отредактировано Web3r - 03.02.2014