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

Разные вопросы по никлисту...

 

419
БОЦМАН @БОЦМАН
Выложите пожалуйста у кого полчилось 2 правильных кода 2х функций у кого всё работает без багов! Я запарился уже переставлять уже строки местами... 😀

20090
Dimitry @Dimitry
Пераое неправильно, посмотри повнимательнее!!

135
Volkodav @Volkodav
Да ты бы сам показал а то я смотрю эт тема уже давно идёт и некто понять не может.... поажи на примере!) 🙄

135
Volkodav @Volkodav
Ещё вопрос я как сделала что бы таблица сливалась с фоном , но теперь у викторины не видно таблицы ! Можно как нидб сделать чтобы у викторины было идно?

419
БОЦМАН @БОЦМАН
Помоему Димку забавляет наша тупость! 😁 А может он просто прикольнулся...Хотяяя 1 апреля уже было 😁 Прикольно,но в главном чате разделения нет в никлисте 😁

20090
Dimitry @Dimitry
Просто мне оно ненужно, у меня стандартные скрипты )

135
Volkodav @Volkodav
А на мой вопрос ответит кто нить?

20090
Dimitry @Dimitry
Сделай стиль для викторины какой тебе нужен
.header-body table {}
.header-body td {}

135
Volkodav @Volkodav
В том то и дело я не могу найти куда для викторины вписать!!!

20090
Dimitry @Dimitry
Стили которые я написал как раз для викторины, это стили также фрейма сообщений и приватного!

135
Volkodav @Volkodav
Нет ты не понял... я емею ведну где это найти что бы поменять....??

1138
pingWIN @pingWIN
Дизайн -> Стили

419
БОЦМАН @БОЦМАН
Вот такая вот бака в Opera!
После разеления никлиста по полам в OPERE при заходе в чат никлист грузится без багов,при переходе в любую комнату чата никлист перестаёт грузиться!!!
Стоит разделение по полам без счётчиков. Возможно это произходит из за того,что стираешь строку:
parent.users.document.getElementById(obj+"c").innerHTML=ucc[obj+"c"];

20090
Dimitry @Dimitry
Я дополнил обновление, 2й пункт нужно сделать заного (это как раз для комнат)

164
fomich @fomich
Народ .. не получаеться разделить ... помогите .. делаю так ...

Формирование никлиса :
/* Функции добавления и удаления пользователей в массиве никлиста */
var uc = 0;
var us = new Array();
var ucc=new Array();
function separate(obj,c) {
if(ucc[obj+"c"]==null) ucc[obj+"c"]=c; else ucc[obj+"c"]+=c;
parent.users.document.getElementById(obj+"c").innerHTML=ucc[obj+"c"];
if(c==1) return parent.users.document.getElementById(obj).rowIndex+1;
}

function add(nick,colornick,st,mw,icon,status,inchat,time,room){
if(loaded==0) return;
var l=us.length;
for(var i = 0;i<l;i++ ) if(us[i]!=null && us[i][0]==nick)break;
us[i]=new Array(nick,colornick,st,mw,icon,status,room);
if (i==l) {uc++; update(room,1);}
if(room==myroom) {
nickid="!"+nick;
obj=parent.users.document.getElementById(nickid);
ul=parent.users.document.getElementById('ul');
if(obj) ul.deleteRow(obj.rowIndex);
var index=ul.rows.length;
if(mw=='0') index=separate("man",1);
else if(mw=='1') index=separate("woman",1);
else if(mw=='') index=separate("noman",1);
var obj=ul.insertRow(index); obj.id=nickid;
format(i,obj);
}}

function del(nick,colornick,st,mw,icon,status,inchat,time,room) {
if(loaded==0) return;
for(var i=0; i<us.length; i++)
if( us[i] != null && us[i][0] == nick ) {uc--; update(us[i][6],-1); us[i] = null; break;}
if(room==myroom) {
nickid="!"+nick;
obj=parent.users.document.getElementById(nickid);
ul=parent.users.document.getElementById('ul');
ul.deleteRow(obj.rowIndex);
if(mw=='0') index=separate("man",-1);
else if(mw=='1') index=separate("woman",-1);
else if(mw=='') index=separate("noman",-1);

}}

потом в Подготовка фреймов :

userlist="<table id=ul width=100%></table>"; это я не нашел ....

/* Подготовка таблицы никлиста */
uc = 0;
us = new Array();
parent.users.document.getElementById('users').innerHTML="<table id=ul width=100%></table>";
userlist="<table id=ul width=100%>"+
"<tr id=woman><td colspan=5>Деффки</td><td id=womanc>0</td></tr>"+
"<tr id=man><td colspan=5>Пацаны</td><td id=manc>0</td></tr>"+
"<tr id=noman><td colspan=5>Нечто</td><td id=nomanc>0</td></tr>"+
"</table>";

все ... вроде так ... или я вообще ослипел ... Подскажите в чем пробл ... ПЛИЗ!!!!

419
БОЦМАН @БОЦМАН
fomich,погоди пару дней,не торопись,исправляешь одну ошибку,возникает другая,пока не всё правильно работает. Точнее всё,но в Opera есть ещё небольшая бага! Когда будет всё павилно работать,то обязательно выложу свой код!

637
zorro @zorro
БОЦМАН, в главном чате вроде как работает все 😉 так что если там работает, то и у себя можно сделать! 😀 Или я не прав? 🤔

164
fomich @fomich
Если в главном работает, может объясните как сделать чтоб и у меня работало ...

164
fomich @fomich
БОЦМАН я заметил что у тебя работает разделение по полам .. мож объяснишь как сделать ... ну не получается у меня ... не работает потом чат ...

419
БОЦМАН @БОЦМАН
1.
/* Функции добавления и удаления пользователей в массиве никлиста */
var uc = 0;
var us = new Array();
var ucc=new Array();
function separate(obj,c) {
if(ucc[obj+"c"]==null) ucc[obj+"c"]=c; else ucc[obj+"c"]+=c;
if(c==1) return parent.users.document.getElementById(obj).rowIndex+1;
}

function add(nick,colornick,st,mw,icon,status,inchat,time,room){
if(loaded==0) return;
var l=us.length;
for(var i = 0;i<l;i++ ) if(us[i]!=null && us[i][0]==nick)break;
us[i]=new Array(nick,colornick,st,mw,icon,status,room);
if (i==l) {uc++; update(room,1);}
if(room==myroom) {
nickid="!"+nick;
obj=parent.users.document.getElementById(nickid);
ul=parent.users.document.getElementById('ul');
if(obj) ul.deleteRow(obj.rowIndex);
var index=ul.rows.length;
if(mw=='0') index=separate("man",1);
else if(mw=='1') index=separate("woman",1);
else if(mw=='') index=separate("noman",1);
var obj=ul.insertRow(index); obj.id=nickid;
format(i,obj);
}}

function del(nick,colornick,st,mw,icon,status,inchat,time,room) {
if(loaded==0) return;
for(var i=0; i<us.length; i++)
if( us[i] != null && us[i][0] == nick ) {uc--; update(us[i][6],-1); us[i] = null; break;}
if(room==myroom) {
nickid="!"+nick;
obj=parent.users.document.getElementById(nickid);
ul=parent.users.document.getElementById('ul');
ul.deleteRow(obj.rowIndex);
if(mw=='0') index=separate("man",-1);
else if(mw=='1') index=separate("woman",-1);
else if(mw=='') index=separate("noman",-1);
}}

2.
/* [Подготовка фреймов и загрузка сообщений] */

var userlist="<table id=ul width=100%>"+
"<tr id=woman><td colspan=5>Девушки</td></tr>"+
"<tr id=man><td colspan=5>Парни</td></tr>"+
"<tr id=noman><td colspan=5>Гости</td></tr>"+
"</table>";


function loadframes() {
if(parent.users&&parent.left&&parent.privat)
if(parent.users.document&&parent.left.document&&parent.privat.document)
if(parent.users.document.getElementById('users')){
/* Подготовка фрейма привата */
if(parent.privatok==1) {
parent.privat.document.write('<body>');
parent.privat.document.body.innerHTML='';
parent.privat.document.write(privatframe);}
/* Обнуление переменных */
scrolled=0;
myhistory=myhistory1;
for(var i=0;i<rooms.length;i++) rooms[i][1]=0;
/* Подготовка таблицы никлиста */
uc = 0;
us = new Array();
ucc= new Array();
parent.users.document.getElementById('users').innerHTML=userlist;
/* Загрузка фрейма сообщений */
parent.left.location.href="irc.html?"+myid;
/* Завершение загрузки фреймов */
window.clearInterval(interval);
interval=window.setTimeout('if(confirm("Ваш компьютер не может работать с чатом. Хотите узнать причину?")) parent.left.location.href="index.php?inc=problem";',10000);
}
}
var interval=window.setInterval("loadframes()",100);

3.Важно!
Что бы правильно всё работало нужно ещё изменить функцию перехода по комнатам!
/* Функция перехода в комнаты */
if(cmd==10) {
oldroom=room; setroom=text;
if(loaded==1) {
for(var i = 0;i<us.length;i++ ) if(us[i]!=null && us[i][0]==nick) {
us[i][6]=setroom;
update(oldroom,-1);update(setroom,1);
}
if(nick==mynick) {
myroom=setroom;
parent.left.document.body.innerHTML="";
parent.users.document.getElementById('users').innerHTML=userlist;
for(var i=0;i<us.length;i++) if(us[i]!=null) add(us[i][0],us[i][1],us[i][2],us[i][3],us[i][4],us[i][5],'','',us[i][6]);
setstyle(rooms[myroom][2]);
}
else if(myroom==setroom) {for(var i = 0;i<us.length;i++ ) if(us[i]!=null && us[i][0]==nick) add(us[i][0],us[i][1],us[i][2],us[i][3],us[i][4],us[i][5],'','',us[i][6]);}
else {var obj=parent.users.document.getElementById("!"+nick); if(obj) parent.users.document.getElementById('ul').deleteRow(obj.rowIndex); }
}
towr="";
if(nick==mynick && loaded==1) towr="<b>Сообщение:</b> <i>Вы перешли в комнату -> <b>"+rooms[setroom][0]+"</b>.</i> <font color=e0e0e0><b>("+time+")</b></font><br>";
else if(myroom==setroom) towr="<b>Сообщение:</b> <i><a href='' onclick=\"parent.tonick('"+nick+": '); return false;\"><font color="+colornick+">"+nick+"</font></a> приходит к нам из комнаты -> <b>"+rooms[oldroom][0]+"</b>.</i> <font color=e0e0e0><b>("+time+")</b></font><br>";
else if(myroom==oldroom) towr="<b>Сообщение:</b> <i>"+nick+" уходит в комнату -> <b>"+rooms[setroom][0]+"</b>.</i> <font color=e0e0e0><b>("+time+")</b></font><br>";
wr(towr); myhistory+=towr;
}

/* Конец функции f() */
}


/* Функция обновления числа юзеров и выбора комнат */
function update(room,plus) {
obj=parent.users.document.getElementById("count");
if(obj) obj.innerHTML=uc;
if(!rooms[room]) return;
rooms[room][1]+=plus;
parent.users.document.getElementsByName("setroom")[0].options[room].innerHTML=rooms[room][0]+" ("+rooms[room][1]+")";
}

Вроде бы как всё 😀 У меня работает всё нормально!