€
$
₴
₽
EN
RU
Vmeste.EU
Лента
Каталог
Файлы
Форумы
Услуги
Основное
Radiotalk
Пользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90 •
Посмотреть все темы
Помогите убрать глюк с кланами.
1
1163
Денис
@Анатолич
05.10.2012
Собственно вопрос задал в разделе багов
https://vmeste.eu/forum?pid=300446#p300446
Но возможно баг не в системе чатов а именно у меня.
Вкратце суть проблемы. если создатель клана удаляет свой клан, то у него остается битая ссылка в анкете, и битая иконка в никлисте.
Специально попросил модератора создать клан, а потом удалить. вот ссылка на анкету модератора
**********
в разделе кланов появилась битая ссылка (undefined)
Кланы в анкете выводятся таким скриптом.
Показать текст
<tr bgcolor="#d1dce6">
<td align="center" colspan="2"><font color="#104E8B"><b>Член кланов</b>
</font></td>
</tr>
<tr>
<td colspan="2">
<script>
var wr='';
if(!clans.length) wr='не член';
for(var i=0;i<clans.length;i++) {clan=clans[i];
if(clan[7]) wr+='<img src=data/clan/'+clan[0]+'.gif> ';
wr+='<a href=?inc=clan&clan='+clan[0]+' target=_blank>'+clan[1]+' ('+clan[6]+')</a> ';
if(clan[3]=='%nick%') wr+='(админ)';
wr+='<br>';
}
document.write(wr);
</script>
</td></tr>
Вот раздел скрипта отвечающий за формирование никлиста.
Показать текст
/* [Функции - формирования никлиста] */
/* Функции добавления и удаления пользователей в массиве никлиста */
var uc = 0;
var us = new Array();
var ucc=new Array();
var index=0;
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 seprules(type,st,mw) {
if(mw=='0') index=separate("man",type);
else if(mw=='1') index=separate("woman",type);
else if(mw=='') index=separate("noman",type);
}
function add(nick,colornick,st,mw,icon,status,inchat,time,room,love,clan){
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,love,clan);
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);
index=ul.rows.length;
seprules(1,st,mw);
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);
seprules(-1,st,mw);
chetcolor();
}}
/* Добавление ника в таблицу участников */
function format(i,tr){
if(us[i]==null) return "";
nick=us[i][0];
color=us[i][1];
stat=us[i][2];
stat2=us[i][5];
mw_u=us[i][3];
icon=us[i][4];
love=us[i][7];
clan=us[i][8];
set_nick=setgn(11,nick);
set_privat=privat_s;
if(icon_on) {
if((icon=="")||(icon==0)) icon="<img src=http://www.videochaty.ru/img/dazzled-48x48.gif border=0 width='36' height='36'>";
else icon="<img src="+icon+" border=0 width='36' height='36'>";
set_privat=icon;
}
if(stn[stat]==null) st=''; else st=stn[stat];
if(stn_w[stat]&&mw_u=='1') st=stn_w[stat];
if(stn2[stat2]==null) icqst=''; else icqst=stn2[stat2];
mw=mw_n;
if(mw_u=='0') mw=mw_m;
if(mw_u=='1') mw=mw_w;
set_love=""; if(love) set_love=" <a href=index.php?inc=info&nick="+love+" title='Обручены с "+love+"' target=_blank>"+love1+"</a>";
set_clan=""; if(clan>0) set_clan=" <a href=index.php?inc=clan&clan="+clan+" title='Находится в клане' target=_blank><img src=data/clan/"+clan+".gif border=0 width='20' height='15'></a>";
/* Определение игнора */
ign_st="off";
ign_img=ign_imgoff;
if(ign_ok(us[i][0])) {ign_st="on"; ign_img=ign_imgon;}
/* Определение частей никлиста */
set_nick="<a href='' onclick=\"parent.tonick('"+nick+": '); return false;\"><font color="+color+">"+set_nick+"</font></a>";
set_nick=set_nick;
set_denis=set_clan+set_love;
set_st=st;
set_icqst=icqst;
set_ign="<img src="+ign_img+" style='border:0px; cursor:pointer;' title='игнор' onclick=\" parent.ign_sel('"+nick+"'); if(parent.ign_ok('"+nick+"')) {this.src=parent.ign_imgon;alert('Вы поставили игнор на ник "+nick+"');parent.write.location.href = 'index.php?inc=write&'+ parent.yourkey+'&text=/privat "+nick+": Вы в игноре!';} else {this.src=parent.ign_imgoff;alert('Вы сняли игнор с ника "+nick+"');parent.write.location.href = 'index.php?inc=write&'+ parent.yourkey+'&text=/privat "+nick+": Игнор снят!';}\">";
if(set_st==stn[10]||set_st==stn[9]||set_st==stn[11]||set_st==stn[4]||set_st==stn[3]||set_st==stn[1]||set_st==stn[8]||set_st==stn[12]||set_st==stn[13]) set_ign="<img src="+ign_img+" style='border:0px; cursor:not-allowed;width=16' title='Администрацию игнорировать нельзя' onclick=\"alert('Нельзя игнорировать администрацию^');return false;\">";
if(nick == mynick) set_ign = "<img src="+ign_img+" style='cursor: not-allowed;' title='себя игнорировать нельзя'>";
set_mw="<a href=http://videochaty.ru/?inc=info&nick="+us[i][0]+" onclick=\"parent.wo(this.href,'Анкета','690','600','yes');return false;\" target="+us[i][0]+">"+mw+"</a>";
/* Добавление ячеек в таблицу */
tr.insertCell(0).innerHTML=set_privat="<a href=http://videochaty.ru/index.php?inc=info&nick="+us[i][0]+" title='Анкета' onclick=\"parent.wo(this.href,'Анкета','690','600','yes');return false;\" target="+us[i][0]+">"+set_privat+"</a>";
tr.insertCell(1).innerHTML=set_nick +"<br>"+st+set_denis;
tr.insertCell(2).innerHTML=set_icqst;
tr.insertCell(3).innerHTML=set_ign;
tr.cells[1].width="50%";
tr.cells[2].width="25%";
tr.cells[3].width="25%";
chetcolor();
}
Может у меня в скриптах где то ошибка. из за этого. появляются битые ссылки в анкете и битая иконка в списке участников.
Буду очень признателен за помощь.
20090
Dimitry
@Dimitry
06.10.2012
Баг в системе, ID клана не удаляется из анкеты, буду искать почему.
По коду вроде всё ок.
20090
Dimitry
@Dimitry
06.10.2012
Нашёл, из-за переписывания кода так получилось, ошибка в переменной.
Теперь нормально, и те ID которые ошибочно в анкете они удалятся сами со временем, например после вступления в любой клан.