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

🔒 Готовые решения для чатов (старая версия с фреймами)

 

458
ridz @ridz
Быстрая смена фона в чате, возможность личного фона, случайный фон для незарегистрированных.
скрипт ставиться в правый фрейм участников. (Вариант быстрой смены через стили смотреть тут https://vmeste.eu/forum?pid=35634#p35634)
<script language="JavaScript" type="text/javascript">
function fon(nnn){
for(i=0; i<top.frames.length; i++) top.frames[i].document.body.style.backgroundImage="url("+nnn+")";
}// функция установки фона во всех фреймах
function nofon(nnn){
for(i=0; i<top.frames.length; i++) top.frames[i].document.body.style.backgroundImage="";
}// функция сброса фона
var wh=30; // ширина кнопки для установки фона
var ht=35; // её высота
var rjad = 5; // количество кнопок в одном ряду
var brr = 0;
var imgfon = new Array(); // ссылки на фоны любое количество желательно кратное количеству кнопок в ряду
imgfon[0]="Ссылка на картинку фона"
imgfon[1]="Ссылка на картинку фона"
imgfon[2]="Ссылка на картинку фона"
imgfon[3]="Ссылка на картинку фона"
imgfon[4]="Ссылка на картинку фона"
imgfon[5]="Ссылка на картинку фона"
imgfon[6]="Ссылка на картинку фона"
imgfon[7]="Ссылка на картинку фона"
imgfon[8]="Ссылка на картинку фона"
imgfon[9]="Ссылка на картинку фона"
document.write('<img alt="Обычный фон" border="1" hspace="2" vspace="2" width='+((wh*rjad)+(6*(rjad-1)))+' height='+ht/3+' onClick="nofon();" src='+imgfon[0]+' ><br />'); // длинная кнопка сброса фона
for (var i=0; i<imgfon.length; i++){document.write('<img alt="Нажмите чтобы установить этот фон" border="1" hspace="2" vspace="2" width='+wh+' height='+ht+' onClick="fon(this.src);" src='+imgfon[i]+' >');brr++;if (brr==rjad){document.write('<br />');brr=0}};// печать кнопок
// дополнительно ставить желанию
// случайный фон для тех кто незарегистрирован
vhod = Math.round(Math.random()*(imgfon.length-1));
if(parent.regist != 1) { window.setTimeout('fon(imgfon[vhod])',5000);}
// личный фон устанавливается админом индивидуально
var imgfonnik = new Array(); // ссылки для личных фонов любые
imgfonnik['ВАШ НИК']="Ссылка на личный фон"
imgfonnik['ЕЩЁ НИК']="Ссылка на личный фон"
if(imgfonnik[parent.mynick]!=null){document.write('<img alt="Ваш личный фон" border="1" hspace="2" vspace="2" width='+(wh+rjad)*rjad+' height='+ht/3+' onClick="fon(this.src);" src='+imgfonnik[parent.mynick]+' >');window.setTimeout('fon(imgfonnik[parent.mynick])',5000); } // печать личной кнопки и установка личного фона чата при входе
</script>

на скриншоте как это выглядит , первая длинная кнопка это сброс, 10 маленьких установка фона, внизу длинная кнопка появляется если нику установлен личный фон

Отредактировано ridz - 20.05.2009
458
ridz @ridz
Кнопки для попеременного открытия чего либо, например для разбивки быстрых смайлов на группы, или показа/скрытия нескольких роликов в анкете.Нажатие на кнопку открывает сответствующую группу, нажатие на другую кнопку закрывает группу которая была открыта и открывает новую группу.Нажатие на одну и туже кнопку приводит к отрытию или закрытию соответсвующей ей группы.Количество кнопок и соответственно дивов неограничено.Если на странице есть ещё дивы они не затрагиваются если конечно в их id нет слова smile.
Скрипт
<script language="JavaScript" type="text/javascript">
function opensmile(id){
var smd = document.getElementById(id);
sml=document.getElementsByTagName("DIV");
for(i=0; i<sml.length;i++) if (sml[i].id.match(/smile/)&&!sml[i].id.match(id) ) sml[i].style.display = "none" ;
smd.style.display == "block" ? smd.style.display = "none" : smd.style.display = "block";}
</script>

Кнопки
<input type=button value="Смайлы1" onclick="opensmile('smile1');" id="but1">
<input type=button value="Смайлы2" onclick="opensmile('smile2');" id="but2">
<input type=button value="Смайлы3" onclick="opensmile('smile3');" id="but3">

и дивы куда будет всё прятаться
<div id="smile1" style="display:none;" >
смайлы 1 группы!
</div>
<div id="smile2" style="display:none;" >
смайлы 2 группы!
</div>
<div id="smile3" style="display:none;" >
смайлы 3 группы!
</div>

Добавляя дивы увеличьте номер id например id="smile4" и соответсвенно в кнопке onclick="opensmile('smile4');"

Отредактировано ridz - 20.05.2009
458
ridz @ridz
Вариант решения установки тегов в чате по мотивам https://vmeste.eu/forum?pid=13810#p13810 и https://vmeste.eu/forum?pid=83341#p83341
От предыдущих вариантов отличается тем что При выборе стиля текста (Жырный например), сообщение в поле ввода набирается тем же стилем и меняется в зависимости от выбраного стиля и немного изменён код.
это три чекбокса жирный, наклонный, подчёрнутый. ставяться в нижний фрейм
после <input type=hidden name=trans value=0>
<input type="checkbox" name="bt" title="жирный" onclick='document.fmsg.text0.focus();if(this.checked) {document.fmsg.text0.style.fontWeight="bold"} else {document.fmsg.text0.style.fontWeight=""}' />
<input type="checkbox" name="it" title="наклонный" onclick='document.fmsg.text0.focus();if(this.checked) {document.fmsg.text0.style.fontStyle="italic"} else {document.fmsg.text0.style.fontStyle=""}' />
<input type="checkbox" name="ut" title="подчёркнутый" onclick='document.fmsg.text0.focus();if(this.checked) {document.fmsg.text0.style.textDecoration="underline"} else{document.fmsg.text0.style.textDecoration=""}' />

затем в скрипты чата /* Обрабатывает строку ввода текста для отправления */
находим строку msg=msg_cmd+msg_nick+msg_text; и перед ней ставим три строчки
if(parent.chat.document.fmsg.bt.checked&&!/^\s*%[А-яЁё]+/.test(msg_text)) {msg_text=" (b) "+msg_text+" (/b)"};
if(parent.chat.document.fmsg.it.checked&&!/^\s*%[А-яЁё]+/.test(msg_text)) {msg_text=" (i) "+msg_text+" (/i)"};
if(parent.chat.document.fmsg.ut.checked&&!/^\s*%[А-яЁё]+/.test(msg_text)) {msg_text=" (u) "+msg_text+" (/u)"};

потом в фильтрацию чата три строки
#(b)^<b>^
#(i)^<i>^
#(u)^<u>^

Красным добавлено возможность играть в викторину при включенных стилях

Зеленым выделено что нужно удалить для 4-й версии чатов

P.S В последней версии mpchat mysql, рабочее и готовое решение этого скрипта - https://vmeste.eu/forum?pid=306698#p306698

Отредактировано ridz - 18.03.2013
458
ridz @ridz
Повтор топика
Есть вариант по времени повторять топик (смотреть здесь https://vmeste.eu/forum?pid=55938#p55938 ) но при этом варианте в момент появления топика срабатывают все проигрыватели если вы запускали музыку в чате или может сработать звук на сообщения и ещё лог забивается топиком если в чате мало говорят в логе куча повторов топика.
Вариант ниже зависит от числа простых сообщений который вы установите и также можно выбрать сколько всего раз напечатать топик.
это в срипты чата в верхний раздел сразу после
/* [НАСТРОЙКИ] */

/* Топик - выводится в фрейме сообщений сразу после загрузки */
var topic="";
/* Повтор топика */
var nomerp=0;
var nomers=0;
var povtor=3;// сколько раз печатать топик для отмены повтора поставьте ноль
var soobwenie=15;// через сколько сообщений
var nomerroom=0;// номер комнаты в которой выводить топик
// особый топик для незарегистрированных добавляется по желанию
if(parent.regist != 1){var topic="зарегистрируйтесь "+parent.mynick+" !!! ";var povtor=10;var soobwenie=3;var nomerroom=0}

это поставить тоже в скрипты чата в /* Вывод простого сообщения */
перед строкой towr=set_time+symbol+set_nick+set_text+"<br>";
поставить
if(loaded){nomers++;}
if(nomers==soobwenie&&nomerp<povtor&&room == nomerroom){wr(topic);nomers=0;nomerp++;}

параметр &&room == 0 ноль это номер комнаты ставить по желаю , это чтоб повтор топика был только в одной вами назначенной комнате.
if(parent.regist != 1) меняя это условие можно создать индивидуальные топики , топики для определённых статусов , как вам фантазия подскажет
пример самого топика :
var topic="<b><font color=#8B008B> Сюда совать двойные кавычки нельзя !!! только 'одинарные' или через слеш вот так \"</font></b>";

Отредактировано ridz - 07.06.2009
458
ridz @ridz
ДЛЯ СТАРОГО ВАРИАНТА СКРИПТОВ
Изменение стандартных фраз вывода и входа.
Обьяснение: находим вывод фразы
wr(set_time+"<font color=red>К нам приходит "+set_nick+". Поприветствуем!</font><br>");
и заменяем первую часть фразы на переменную text1 , вторую часть на переменную text2 , вот так
wr(set_time+"<font color=red>"+text1+" "+set_nick+". "+text2+"</font><br>");
потом присваиваем им значение по желаниию.
ниже готовые варианты , для использования заменить полностью соответстующие команды в скриптах чата.
Для входа:
/* Вывод входа юзера в чат и добавление в нклист через add() */
if(cmd==6) {
if(inchat=='0' && room==myroom) {
set_nick="<a href='' onclick=\"parent.tonick('"+nick+": '); return false;\"><font color="+colornick+">"+set_nick+"</font></a>";
text1="К нам приходит"; // первая часть фразы входа по умолчанию
text2="Поприветствуем!"; // вторая часть фразы входа по умолчанию
// первая часть фразы в зависимости от времени суток ставить по желанию
day = new Date();
hour = day.getHours();
if (hour>=0 && hour<5)text1="Доброй ночи!";
if (hour>=5 && hour<12)text1="Доброе утро!";
if (hour>=12 && hour<18)text1="Добрый день!";
if (hour>=18 && hour<24)text1="Добрый вечер!";
// фраза во второй части в зависимости от дня недели ставить по желанию
var fraza2 = new Array();
fraza2[0]=" Отдыхайте,сегодня воскресенье - завтра рабочий день...";
fraza2[1]=" Сегодня понедельник - настраивайтесь на работу.";
fraza2[2]=" Уже вторник, понедельник к счастью позади!";
fraza2[3]=" Половина недели позади - сегодня уже среда.";
fraza2[4]=" Сегодня четверг, скоро выходные...";
fraza2[5]=" Сегодня пятница - последний рабочий день.";
fraza2[6]=" Сегодня суббота, первый день выходных!";
now = new Date();
text2 = fraza2[now.getDay()];
// фраза в зависимости от пола ставить по желанию
text3=" Дорогая";
if(mw=='0') text3=" Дорогой";
if(mw=='') text3=" Непонятное";

// индивидуальный вход задать для избранных ников обе части text1 и text2
if(nick=="ВАШ НИК") text1="текст который будет до ника"; // только без двойных кавычек внутри фразы
if(nick=="ВАШ НИК") text2="текст после ника"; // можно теги и картинки
if(nick=="ВАШ НИК") text3="текст";
if(nick=="ЕЩЁ НИК") text1="текст который будет до ника";
if(nick=="ЕЩЁ НИК") text2="текст после ника";
wr(set_time+"<font color=red>"+text1+text3+" "+set_nick+". "+text2+"</font><br>");
}
add(nick,colornick,st,mw,icon,status,inchat,time,room,love,clan);
}

Для выхода:
/* Вывод выхода юзера из чата и удаление из никлиста через del() */
if(cmd==7) {
if(inchat=='1' && room==myroom) {
text1="С нами прощается "; // первая часть фразы выхода по умолчанию
text2="и уходит."; // вторая часть фразы выхода по умолчанию
// случайная фраза во второй части ставить по желанию
var fraza2 = new Array();
fraza2[0]=" До свиданья!"; // случайных фраз любое количество можно теги и картинки
fraza2[1]=" Ждем в гости снова!"; // только без двойных кавычек внутри фразы
fraza2[2]=" Всего хорошего тебе!";
fraza2[3]=" Всего тебе доброго!";
fraza2[4]=" Пока-пока!";
fraza2[5]=" Приходи ещё!";
fraza2[6]=" До встречи!";
fraza2[7]=" Удачи тебе!";
quo = Math.round(Math.random()*(fraza2.length-1));
text2 = fraza2[quo];
// индивидуальное прощание задать для избранных ников обе части text1 и text2
if(nick=="ВАШ НИК") text1="текст который будет до ника";
if(nick=="ВАШ НИК") text2="текст после ника";
if(nick=="ЕЩЁ НИК") text1="текст который будет до ника";
if(nick=="ЕЩЁ НИК") text2="текст после ника";
wr(set_time+"<font color=red>"+text1+" <b>"+set_nick+"</b> "+text2+"</font><br>");
}
del(nick,colornick,st,mw,icon,status,inchat,time,room);
}

Отредактировано ridz - 21.12.2009
458
ridz @ridz
Самонастраиваущееся (резиновое) окно ввода текста, сужается и расширяется в зависимости от ширины окна чата.
Самое главное определить какой элемент у вас является последним в той строке где находиться окно ввода текста, у этого элемента (кнопки) нужно поставить имя name=vvod , если элемент уже имеет имя ничего добавлять ненужно, используйте то имя что уже имеет элемент. если после него стоял перевод строки <br> его нужно убрать .
Далее расмотрен вариант на стандартном нижнем фрейме .
В нём последним элементом в тойже строке где ввод текста является кнопка отправить у неё нет имени поэтому добавляем имя и убираем после неё перевод строки, вот так :
<input type=submit class=ok value=Отправить name=vvod >
<!--<br>-->

далее находим тег </body> и перед!!! ним ставим скрипт
<script language="JavaScript" type="text/javascript">
vvv='vvod'; // имя крайнего элемента в строке где ввод сообщений
ppp=document.forms["fmsg"].elements[vvv].offsetTop;
function razmer(){
while (document.forms["fmsg"].elements[vvv].offsetTop <= ppp) {document.fmsg.text0.size++};
while (document.forms["fmsg"].elements[vvv].offsetTop > ppp) {document.fmsg.text0.size--};
}
window.setInterval("razmer();", 10);
</script>

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

Отредактировано ridz - 26.05.2009
6600
Александр @admiral
Кнопка "Отключить скроллинг (прокрутку) сообщений" - работает в любом фрейме чата, даже если свой создали

Идем в Модерация - Скрипты чата - /* [Функции - общие] */, находим и добавляем пару строк, те что выделены красным:
/* Функции плавной прокрутки и включение дозагрузки */
var loaded=0;
var scrolled=0;
var stopscroll=0;
function up () {
if(stopscroll) return;
if(loaded==0) onloaded();

Далее в любом фрейме чата добавляем скрипт и кнопку Включения/Отключения скроллинга (прокрутки):

1. Где нибудь между <head> и </head> вставляем скрипт вывода и переключения кнопки
<script language="JavaScript">
function click_pause()
{
var scr_pause = parent.stopscroll;
if (scr_pause != 1) {
document.all('pause_img').src = pause_on.src;
document.all('pause_img').alt = 'Включить скроллинг (прокрутку) сообщений';
parent.stopscroll = 1;
} else {
document.all('pause_img').src = pause_off.src;
document.all('pause_img').alt = 'Отключить скроллинг (прокрутку) сообщений';
parent.stopscroll = 0;
}
}
if (document.images)
{
pause_on = new Image(24,24);
pause_on.src ="ссылка на картинку отключенного скроллинга";

pause_off = new Image(24,24);
pause_off.src ="ссылка на картинку включенного скроллинга";
}
</script>

2. В нужном месте фрейма вставляем саму кнопку:

<a href="javascript:;" onClick="click_pause()"><img border="0" name="pause_img" id="pause_img" alt="Отключить скроллинг (прокрутку) сообщений" src="ссылка на картинку включенного скроллинга" width="20" height="24"></a>

---------------------------

Вариант самой кнопки отключения скроллинга (прокрутки) сообщений без скрипта (ridz)
<img src="ссылка на картинку отключенного скроллинга" border="0" alt="" onclick="if (parent.stopscroll==1) {this.src='ссылка на картинку отключенного скроллинга';parent.stopscroll=0} else {this.src='ссылка на картинку включенного скроллинга';parent.stopscroll=1};"/>

Отредактировано admiral - 07.06.2009
458
ridz @ridz
Как настроить css викторины привата и общего лога?
Обьяснение у лога , привата и викторины один класс header-body.
Убираем этот класс из привата идём в скрипты чата , находим
/* Начальный HTML - код фреймов для сообщений */
var mainframe="<html><head><META http-equiv=Content-Type content='text/html; charset=windows-1251'><link rel=STYLESHEET type=text/css href=style.css></head><body class=header-body>";

и добавляем красное ))).
/* Начальный HTML - код фреймов для сообщений */
var mainframe="<html><head><META http-equiv=Content-Type content='text/html; charset=windows-1251'><link rel=STYLESHEET type=text/css href=style.css></head><body class=headeridz-body>";

открываем в админке фреймы - фрейм сообщений и делаем также
<body class=headeroni-body onload="re=confirm('Извините, связь прервалась! Перезагрузить чат?'); if(re) parent.loadframes();">

После этого для стилей есть три разных класса для викторины .header-body , для привата в отдельном окне .headeridz-body, и для общего лога .headeroni-body.
Прописываем для каждого класса всё что хотим , настраивая лог, викторину и приват по своему вкусу.

458
ridz @ridz
Показ иконки перед сообщениями ника в логе и (или) привате, когда данный ник присутствует (!!!) в чате.
находим в скриптах чата
/* [Функция - вывода сообщений и команд] */

var pu = new Array;
function f(room,cmd,nick,tonick,text,time,colornick,color,var9,var10,var11,var12,var13,var14) {
if(ign_ok(nick) && cmd!=6 && cmd!=7) return 0;
и после этого добавляем
icon="";
for(var i=0;i<us.length;i++)
if(us[i]!= null && us[i][0]==nick){icon=us[i][4];if((icon=="")||(icon==0)) icon="<img src="+icon1+" border=0>";
else icon="<img src="+icon+" border=0>";};
icon="<a href='' onclick=\"parent.ptonick('"+nick+": '); return false;\">"+icon+"</a>";
if (icon_on==0) icon="";

затем в /* Вывод простого сообщения */
находим towr=set_time+symbol+set_nick+set_text+"<br>"; и добавляем красное
towr=icon+set_time+symbol+set_nick+set_text+"<br>";

или так towr=symbol+icon+set_time+set_nick+set_text+"<br />";
тоже самое сделать для приватных сообщений в
/* Вывод приватных сообщений */

кому ненужен вывод стандартной иконки убрать отмеченное зелёным.
добавлено!!! Нажатие на эту иконку = приват с данным ником.

Синим добавлено отключение иконок в логе совместно с отключением иконок в никлисте кнопку отключения см. тут https://vmeste.eu/forum?pid=199790#p199790

Отредактировано ridz - 08.06.2009
458
ridz @ridz
Фото в анкете в заданных вами переделах , чтоб не расползалось за рамки отведённого места и было пропорционально.
Находим в анкете <img src=%foto% width=150 border=0> и меняем на
<img src=%foto% id=img border=0>

вниз анкеты перед!!! </body> ставим скрипт
<script language="JavaScript" type="text/javascript">
var h = document.getElementById("img").height
var w = document.getElementById("img").width
if (h>w) { document.getElementById("img").height=200}
else { document.getElementById("img").width=150}
</script>

Высота не больше 200, ширина не более 150, размер этих параметров можно задать так как вам нужно.

458
ridz @ridz
Иконка возле ника в никлисте чата если у человека День рождения и (или) + иконка сообщающая о том что ник из последних зарегистрированных.
Информер и скрипт нужно поставить во фрейм участников до тега </head>
<script src=index.php?inc=informer&getmsg=1&inchat=1&lastreg=15&counter=1&birthday=1></script>
<script>
function searchnn(nick){
var podarok = '';
for(i=0;i<i_lastreg.length;i++){ if (i_lastreg[i][0]==nick) podarok += 'из новеньких <img border=0 src=Ссылка на картинку новичка >';}
for(i=0;i<i_birthday.length;i++){ if (i_birthday[i][0]==nick) podarok += 'День рождения <img border=0 src=Ссылка на картинку торта >';}
return podarok;}
</script>

Далее в скриптах чата находим /* Добавление ника в таблицу участников */
и после set_nick=setgn(11,nick); добавляем
set_nick+="<br>"+parent.users.searchnn(nick);

Выделенное красным можно не ставить.
P.S. иконка "новичок" будет висеть у ника пока не зарегистрируюся после него следущие &lastreg=15 15 человек , или измените эту цифру на удобную вам.

458
ridz @ridz
Личный фон в анкете
Это поставить в настройки в таблицу
<tr><td><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><img src="Ссылка на фон" width="25" height="25" border="0" alt="" onclick="document.set.field10.value=this.src"/><br>Фон вашей анкеты (Вставьте ссылку или нажмите кнопку фона)</td><td><input name=field10 class=text size="40" maxlength=100 value='%field10%'></td></tr>

затем в анкету перед тегом </head> добавить скрипт
<script language="JavaScript" type="text/javascript">
if('%field10%'!='') document.write('<style type="text/css">.info-body {background-image: url(%field10%);}</style>')
</script>

Кто уже использовал %field10% замените на иной field.
тег body в анкете должен содержать класс info-body --- <body class=info-body>
Отмеченное красным ставить по желанию, удобно тем что сразу видно какой будет фон и можно выбрать ссылку нажав на кнопку а не искать в инете.

458
ridz @ridz
Вывод участников в чате В данном варианте совмещены сортировка по комнатам и по полу.
сначала нужно разместить информер (подробнее об этом и другом варианте сортировки чатлан тут https://vmeste.eu/forum?pid=5680#p5680) Если хотите разместить вывод чатлан не на титульнике , то вывод информера будет такой
<script src=http://Адрес чата/index.php?inc=informer&inchat=1></script>

Если информер уже имееться на странице не загружайте его повторно!!!
Также полный путь нужно прописать в самом скрипте в строке href=?inc=info добавьте href=********** чата/index.php?inc=info
Вывод чатлан по комнатам и по полу простым списком
<script>
var rooms=new Array('Главная','Модераторская','ИнТиМкА');
var inroom=new Array();
for(i=0;i<rooms.length;i++){inroom[i]=new Array();inroom[i][0]=new Array();inroom[i][1]=new Array();inroom[i][2]=new Array();}
for(i=0;i<i_inusers.length;i++) {i_nick=i_inusers[i][0]; i_color=i_inusers[i][1]; i_mw=i_inusers[i][2]; i_stat= i_inusers[i][3]; i_room= i_inusers[i][4];
if (i_mw=="") {i_mw=2};
inroom[i_room][i_mw].push("<a href=?inc=info&nick="+i_nick+" target=_blank><font color=#"+i_color+">"+i_nick+"</font></a><br>");}
document.write("Всего "+i_inchat+"<br>");
for(i=0;i<rooms.length;i++) {
document.write("<font size=+1 color=#FF0000 face=\"Monotype Corsiva\">"+rooms[i]+"</font><br>Девушки "+inroom[i][1].length+"<br>"+inroom[i][1].join(" ")+"Парни "+inroom[i][0].length+"<br>"+inroom[i][0].join(" ")+"Неизвестные "+inroom[i][2].length+"<br>"+inroom[i][2].join(" "));}
</script>

Вывод чатлан по комнатам и по полу таблицей
<script>
var rooms=new Array('Главная','Модераторская',' ИнТиМкА ');
var inroomw=new Array();
var inroomm=new Array();
var inroomn=new Array();
for(i=0;i<rooms.length;i++) {
if(!inroomw[i]) inroomw[i]="";
if(!inroomm[i]) inroomm[i]="";
if(!inroomn[i]) inroomn[i]="";}
for(i=0;i<i_inusers.length;i++)
{ i_nick=i_inusers[i][0]; i_color=i_inusers[i][1]; i_mw=i_inusers[i][2]; i_stat= i_inusers[i][3]; i_room= i_inusers[i][4];
if(i_mw=='1') {inroomw[i_room]+="<a href=?inc=info&nick="+i_nick+" target=_blank><font color=#"+i_color+">"+i_nick+"</font></a><br>";}
else if(i_mw=='0') {inroomm[i_room]+="<a href=?inc=info&nick="+i_nick+" target=_blank><font color=#"+i_color+">"+i_nick+"</font></a><br>";}
else {inroomn[i_room]+="<a href=?inc=info&nick="+i_nick+" target=_blank><font color=#"+i_color+">"+i_nick+"</font></a><br>";}
}
document.write("<table align=center border=1><tr>")
for(i=0;i<rooms.length;i++) {
if(!inroomw[i]) inroomw[i]="нет";
if(!inroomm[i]) inroomm[i]="нет";
if(!inroomn[i]) inroomn[i]="нет";
document.write("<td align='center'><font size=+1 face=\"Monotype Corsiva\" color=#FF0000>"+rooms[i]+"</font></td>");}
document.write("</tr><tr><td colspan="+rooms.length+" align='center' >Девушки</td></tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td>"+inroomw[i]+"</td>")}
document.write("</tr><tr><td colspan="+rooms.length+" align='center' >Парни</td></tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td>"+inroomm[i]+"</td>")}
document.write("</tr><tr><td colspan="+rooms.length+" align='center'>Неизвестные</td></tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td>"+inroomn[i]+"</td>")}
document.write("</tr></table>")
</script>

Вывод чатлан по комнатам и по полу таблицей с подсчётом
<script>
var rooms=new Array('Главная','Модераторская','ИнТиМкА');
var inroom=new Array();
for(i=0;i<rooms.length;i++){inroom[i]=new Array();inroom[i][0]=new Array();inroom[i][1]=new Array();inroom[i][2]=new Array();}
for(i=0;i<i_inusers.length;i++) {
i_nick=i_inusers[i][0]; i_color=i_inusers[i][1]; i_mw=i_inusers[i][2]; i_stat= i_inusers[i][3]; i_room= i_inusers[i][4];
if (i_mw=="") {i_mw=2}
inroom[i_room][i_mw].push("<a href=?inc=info&nick="+i_nick+" target=_blank><font color=#"+i_color+">"+i_nick+"</font></a><br>");}
document.write("<table align=center border=1><tr><td colspan="+rooms.length+" align='center'>Всего в чате "+i_inchat+"</td></tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td align='center'><font size=+1 face=\"Monotype Corsiva\" color=#FF0000>"+rooms[i]+"</font></td>");}
document.write("</tr><tr><td colspan="+rooms.length+" align='center' >Девушки </td></tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td align=center >"+inroom[i][1].length+"</td>")}
document.write("</tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td>&nbsp;"+inroom[i][1].join(" ")+"</td>")}
document.write("</tr><tr><td colspan="+rooms.length+" align='center' >Парни</td></tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td align=center >"+inroom[i][0].length+"</td>")}
document.write("</tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td>&nbsp;"+inroom[i][0].join(" ")+"</td>")}
document.write("</tr><tr><td colspan="+rooms.length+" align='center'>Неизвестные</td></tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td align='center' >"+inroom[i][2].length+"</td>")}
document.write("</tr><tr>")
for(i=0;i<rooms.length;i++) {document.write("<td>&nbsp;"+inroom[i][2].join(" ")+"</td>")}
document.write("</tr></table>")
</script>

Названия комнат поменяйте на свои в var rooms=new Array('Главная','Модераторская','ИнТиМкА');
если у Вас одна комната то можно сделать так var rooms=new Array('В чате');
Как это выглядит можно посмотреть на скриншоте. (цвета и размер шрифтов и прочее зависят от ваших настроек css)

458
ridz @ridz
Неон (сияние) ника и (или)текста Используется фильтр Glow который поддерживает только!!! Internet Explorer и его клоны.
В скрипты чата в раздел /* [НАСТРОЙКИ] */ добавить
/* Неон ника и (или)текста : 0 - выкл, 1 - вкл, позиции в списке - это номера функций "cmd" от 0-10 (11-никлист) */
var use_neon=1;
var neok=new Array(1,1,1,0,0,0,1,0,0,0,0,1);
/* для добавления неона тексту и (или) нику, пример ниже
Stregth - Сила свечения в диапазоне 0-100, Color - Цвет свечения первая пара для ника, вторая для текста
gl['ник']=new Array("Stregth","Color","Stregth","Color");если для ника или текста неон не нужен не ставьте
gl['ник']=new Array("Stregth","Color","",""); неон только для ника
gl['ник']=new Array("","","Stregth","Color"); неон только для текста*/
var gl = new Array();
gl['adm']=new Array("2","#00FF00","7","#FF00FF");

В скрипты чата в раздел /* [Функции - общие] */ добавить
/* Функция добавления неон. текста */
function setneon(cmd,nick,text,gry){
if(use_neon!=1) return text;
var set_out=text;
if(gl[nick]!=null && gl[nick] && neok[cmd]==1&&gl[nick][gry+1]!="") set_out="<span style='height:1; filter :progid:DXImageTransform.Microsoft. Glow(strength="+gl[nick][gry]+", color="+gl[nick][gry+1]+");'>"+set_out+"</span>";
return set_out;
}

Затем в разделе /* [Функции - формирования никлиста] */ в части /* Добавление ника в таблицу участников */ найдите строку set_nick=setgn(11,nick); и после неё сразу добавьте
set_nick=setneon(11,nick,set_nick,0);// неон для ника

Потом в разделе /* [Функция - вывода сообщений и команд] */ в части /* Добавление граф ников, градиента и формат времени */ найдите строки
set_nick=setgn(cmd,nick);
set_text=setgr(cmd,nick,text);
и добавьте красное
set_nick=setgn(cmd,nick);
set_nick=setneon(cmd,nick,set_nick,0);// неон для ника
set_text=setgr(cmd,nick,text);
set_text=setneon(cmd,nick,set_text,2); // неон для текста

Неон можно использовать совместно с графическим ником и градиентом текста.

458
ridz @ridz
Следующий статус в анкете Благодарю за идею авторов предыдущего варианта смотреть здесь https://vmeste.eu/forum?pid=117847#p117847
Внимание!!! скрипт обновлён с учётом рефералов и разного количества сообщений и времени в чате, плюс если параметр 0 например в СКОЛЬКО_МИНУТ , то такой индикатор просто не отображается.
Этот вариант отличается иным формированием следующего статуса плюс графический индикатор
Следущее надо вставить в таблицу в анкете после тега </tr> предыдущей строки.
<script language="JavaScript" type="text/javascript">
var msg= "%msg%";
var chas="%time_h%";
var ref='%ref%';
var min= Number (%time_m%);
var allmin=Math.round((chas*60)+min);
var sl_stat ='-';
var xmin='-';
var xmsg='-';
var xref='-';
var status='%status%';
var st = new Array();
/* Прописать только те статусы после которых есть следующий статус
st["СТАТУС"]= new Array("СЛЕДУЮЩИЙ СТАТУС",СКОЛЬКО_СООБЩЕНИЙ,СКОЛЬКО_МИНУТ,СКОЛЬКО_РЕФЕРАЛОВ);*/
st["нет"]= new Array("новичок",50,50,0);
st["новичок"]= new Array("пользователь",300,300,0);
st["пользователь"]= new Array("бывалый",2000,2000,0);
st["бывалый"]= new Array("ведущий",10000,10000,0);

if(st[status]){sl_stat = st[status][0];if (msg<st[status][1]) { xmsg=st[status][1]-msg};if(allmin < st[status][2]) {xmin=st[status][2]-allmin;};if(ref<st[status][3]){xref=st[status][3]-ref};}
var wpst = wmsg = wmin = wref=250;// длина графического индикатора
var ksto = wpst/100;
var colorb = "#FFFFFF";// фон индикатора
var colorin = "#CC0000";// цвет индикатора
if (xmsg!='-') {wmsg=wmsg*(st[status][1]-xmsg)/st[status][1]};
if (xmin!='-') {wmin=wmin*(st[status][2]-xmin)/st[status][2]};
if (xref!='-') {wref=wref*(st[status][3]-xref)/st[status][3]};
if (sl_stat!='-') {document.write("<tr><td>Следующий статус:</td><td>"+sl_stat+"<br>");
if (st[status][1]){document.write('Набрано сообщений '+Math.round(wmsg/ksto)+'%<br>Осталось: '+xmsg+'<div align=left style="width:'+wpst+'px; background-color: '+colorb+'; height: 5px; border: #000000 1px solid; margin: 2px;font-size: 5px " ><div style="width:'+wmsg+'px; background-color: '+colorin+'; height: 5px;font-size: 5px" ></div></div>')};
if (st[status][2]){document.write('Набрано минут '+Math.round(wmin/ksto)+'%<br>Осталось: '+xmin+'<div align=left style="width:'+wpst+'px; background-color: '+colorb+'; height: 5px; border: #000000 1px solid; margin: 2px;font-size: 5px " ><div style="width:'+wmin+'px; background-color: '+colorin+'; height: 5px;font-size: 5px" ></div></div>')};
if (st[status][3]){document.write('Пришло друзей '+Math.round(wref/ksto)+'%<br>Осталось привести: '+xref+'<div align=left style="width:'+wpst+'px; background-color: '+colorb+'; height: 5px; border: #000000 1px solid; margin: 2px;font-size: 5px " ><div style="width:'+wref+'px; background-color: '+colorin+'; height: 5px;font-size: 5px" ></div></div>')};
document.write("</td></tr>")};
</script>

Иструкция по использованию:
1. Замените отмеченное красным (это дано только для примера)на свои статусы у которых есть следующий АВТО_СТАТУС прописывать так
st["СТАТУС"]= new Array("СЛЕДУЮЩИЙ СТАТУС",СКОЛЬКО_СООБЩЕНИЙ,СКОЛЬКО_МИНУТ,СКОЛЬКО_РЕФЕРАЛОВ); статус и следующий статус писать в двойных кавычках, остальное через запятую но без!!! кавычек. модераторов и последнего из списка авто_статусов за которым уже нет следующих автостатусов прописывать ненужно!!!
2. Установить свою длину индикатора цифра отмечена жёлтым цветом желательно 100 или 150 или 200 (можно любое)
и выбрать подходящий вам фон и цвет индикатора
Статусы смотреть в админке - пользователи - настроить статусы
Добавлено!!!теперь у админов и модераторв эта строка просто не будет отображаться.

Как это выглядит смотрите на скриншоте

Отредактировано ridz - 13.09.2010
458
ridz @ridz
Обязательные поля при заполнении Регистрационной формы
проверка наличия данных в избранных полях (проверка производиться перед отправкой формы)
В админке - -=Шаблоны=- Регистрация находим регистрационную форму и изменяем или заменяем полностью как показано ниже
<form action='' method=post id=regform onsubmit="return sub()">
Логин 3-15 букв или цифр<br><br>
<b>Логин</b><br>
<input name=nick type=text class=text>*<br>
<b>E-mail</b><br>
<input name=email type=text class=text>*<br>
<b>Пароль</b><br>
<input name=pass type=password class=text>*<br>
<b>Повторите Пароль</b><br>
<input name=passok type=password class=text>*<br>

<input type=radio name=w class=text onclick="form.mw.value=0" > муж
<input type=radio name=w class=text onclick="form.mw.value=1"> жен - пол*
<input type=hidden name=mw class=text><br>

<script>document.write('<img src=index.php?inc=code&xcode='+xcode+'><input type=hidden name=xcode value='+xcode+'>');</script><br>
<input type=text name=code class=text>*<br>
<input name=subscribe type=checkbox > - рассылка<br>
<input type=submit name=done value=Регистрация class=ok>
<br>* - обязательные поля<br>
</form>

После формы сразу вставляем скрипт
<script language="JavaScript" type="text/javascript">
var rrr = document.getElementById('regform').getElementsByTagName('*');
var ns =new Array ();
/* Обязательные поля: name это имя input, Алерт название поля ns["name"]= "Алерт";*/
ns["nick"]="Ваш Ник";
ns["email"]="Ваш Почтовый адрес";
ns["pass"]="Пароль";
ns["code"]="Код";
ns["mw"]="Ваш Пол";
ns["passok"]="Пароль повторно, он не совпадает с тем что вы ввели ранее";

function sub()
{for (var i=0; i< rrr.length; i++) {
sss = rrr[i].name; if(sss){
if ((rrr[i].value.replace(/\s/g, '') == "" && ns[sss]!=null )||(rrr[i].name=="passok"&&rrr["passok"].value!=rrr["pass"].value))
{alert("Пожалуйста, введите "+ns[sss]);if (sss!="mw"){rrr[i].focus()} ;return false; }}}
return true;}
</script>

Иструкция по использованию: Если вам нужно добавить ещё обязательное поле вставляем input из примеров. которые находяться внизу страницы регистрация например: <input name=land class=text> - страна в саму форму . если данное поле у вас уже стоит в форме ничего туда добавлять ненадо!!! повторно. Затем берём чему в этом input равно name и ставим в скрипт ns["land"]="Вашу Страну";
Исключение!!! это вставка "пола" и "повтор пароля" их вставлять в форму только таким как отмечено зелёным цветом , не используйте !!! пример из образцов внизу страницы регистрации для пола , все остальные поля оттуда можно добавлять кроме этих.
Если вы не хотите чтоб какое то поле контролировалось уберите соответсвенный ns["name"]= "Алерт";
и для чатлан отметьте * поля которые обязательны.
Готовая форма в виде таблицы с повторной проверкой правильности ввода пароля, выводом ссылки на правила чата в зависимости от пола, отключенной кнопкой регистрация (пока не поставлен чекбокс "согласен"), и проверкой обязательных полей.
Найдите код
<form action='' method=post id=regform>
<script>if(i_aidn) document.write("<input type=hidden name=i_aidn value="+i_aidn+">");</script>
Логин 3-15 букв или цифр<br><br>
<b>Логин</b><br>
<input name=nick type=text class=text><br>
<b>E-mail</b><br>
<input name=email type=text class=text><br>
<b>Пароль</b><br>
<input name=pass type=password class=text><br>
<script>document.write('<img src=index.php?inc=code&xcode='+xcode+'><input type=hidden name=xcode value='+xcode+'>');</script><br>
<input type=text name=code class=text><br>
<input name=subscribe type=checkbox > - рассылка<br>
<input type=submit name=done value=Регистрация class=ok>
</form>

и замените на
<form action='' method=post id=regform onsubmit="return sub()">
<table border="1">
<tr>
<td colspan="2" align="center" id="rega" ><script language="JavaScript" type="text/javascript">
document.write(parent.document.title)
</script></td>

</tr>
<tr>
<td>Ваш ник (Логин 3-15 букв или цифр)</td>
<td><input name=nick type=text class=text><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>E-mail</td>
<td><input name=email type=text class=text><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Пароль</td>
<td><input name=pass type=password class=text ><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Повторите Пароль</td>
<td><input name=passok type=password class=text><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Ваш Пол</td>
<td><input type=radio name=w class=text onclick="form.mw.value=0;men()" > <font color="#0000FF">муж</font>
<input type=radio name=w class=text onclick="form.mw.value=1;women()"> <font color="#FF0000">жен</font> <font color="#FF0000">*</font>
<input type=hidden name=mw class=text></td>
</tr>
<tr>
<td><script>document.write('<img src=index.php?inc=code&xcode='+xcode+'><input type=hidden name=xcode value='+xcode+'>');</script></td>
<td><input type=text name=code class=text><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Рассылка (новости чата)</td>
<td><input name=subscribe type=checkbox ></td>
</tr>
<tr>
<td><label for=agree id="labelagree" >С <a href='prav.html' target='_blank' title='Правила чата'>Правилами Чата</a> ознакомился.<br> Согласен работать по данным правилам<br> и не рекламировать другие чаты.</label></td>
<td><input type=checkbox name=agree onClick='changeButtonStatus();'><input type=submit name=done value=Регистрация class=ok ></td>
</tr>
<tr>
<td colspan="2" align="center"><font color="#FF0000">*</font>-обязательные поля</td>

</tr>

</table>
</form>
<script language="JavaScript" type="text/javascript">
var rrr = document.getElementById('regform').getElementsByTagName('*');
var ns =new Array ();
/* Обязательные поля: name это имя input, Алерт название поля ns["name"]= "Алерт";*/
ns["nick"]="Ваш Ник";
ns["email"]="Ваш Почтовый адрес";
ns["pass"]="Пароль";
ns["code"]="Код";
ns["mw"]="Ваш Пол";
ns["passok"]="Пароль повторно, он не совпадает с тем что вы ввели ранее";

function sub()
{for (var i=0; i< rrr.length; i++) {
sss = rrr[i].name; if(sss){
if ((rrr[i].value.replace(/\s/g, '') == "" && ns[sss]!=null )||(rrr[i].name=="passok"&&rrr["passok"].value!=rrr["pass"].value))
{alert("Пожалуйста, введите "+ns[sss]);if (sss!="mw"){rrr[i].focus()} ;return false; }}}
return true;}

function changeButtonStatus(){
rrr.done.disabled=(rrr.agree.checked) ? false : true;
}
changeButtonStatus();

function men()
{
document.getElementById('labelagree').innerHTML="С <a href='prav.html' target='_blank' title='Правила чата'>Правилами Чата</a> ознакомился.<br> Согласен работать по данным правилам<br> и не рекламировать другие чаты."
}
function women()
{
document.getElementById('labelagree').innerHTML="С <a href='prav.html' target='_blank' title='Правила чата'>Правилами Чата</a> ознакомлена.<br> Согласна работать по данным правилам<br> и не рекламировать другие чаты."
}
</script>

Как выглядит таблица смотрите на скриншоте.Если регистрационная форма используется на титульнике вместо слова "Регистрация" будет title вашего титульника.
Добавлено!!! Кто хочет может изменить алерт заменив отмеченное зелёным на код
document.getElementById('rega').innerHTML="<font color='#FF0000'>Пожалуйста, введите "+ns[sss]+"</font>";

и добавьте отмеченное красным. в этом случае сообщения будут выводиться в ячейке отмеченной красным. на скришоте это ячейка где написано "Регистрация"

Отредактировано ridz - 18.06.2010
458
ridz @ridz
Скрытие в анкете незаполненных полей
В админке - -=Шаблоны=- Анкета перед тегом </body> вставить скрипт
<script language="JavaScript" type="text/javascript">
var dtd = new Array ();
dtd[0]= new Array ('Имя','%name%');
dtd[1]= new Array ('День рожд.','%birthday%');
dtd[2]= new Array ('Пол','%mw%');
dtd[3]= new Array ('Страна','%land%');
dtd[4]= new Array ('Город','%stadt%');
dtd[5]= new Array ('Сайт','%home%');
dtd[6]= new Array ('Email','%email%');
dtd[7]= new Array ('ICQ','%icq%');
dtd[8]= new Array ('О себе','%about%');
dtd[9]= new Array ('Фотография','%foto%');

var trl = document.getElementsByTagName("tr");
for (var i=0; i< trl.length; i++){for (var k=0; k<dtd.length; k++)
{if (trl[i].innerHTML.split(dtd[k][0]).length > 1 && (dtd[k][1]==""||dtd[k][1]=="-"||dtd[k][1]==" "||dtd[k][1]=="0.0 (-)"||dtd[k][1]=="0.0. (-)")) {trl[i].style.display="none"}}}

</script>

Инструкция по использованию:
Пример дан для стандартной анкеты Смотрите как у вас прописано название ячейки которую хотите контролировать и внесите изменения, например если вместо Имя Вы написали 'Настоящее имя то dtd[0] будет dtd[0]= new Array ('Настоящее имя','%name%'); Если что то Вам нужно добавить ещё точно также добавьте dtd[10] и тд.
Кавычки одинарные для dtd !!!

458
ridz @ridz
Графический ник в анкете
Предварительно нужно заполнить массив со строками графников в файл gn.js
Затем находим в анкете %nick% например тут <b>Анкета "<font color=%nickcolor%>%nick%</font>"</b>
и красное заменяем на скрипт
<script>
var gna = new Array;
document.write('<scr'+'ipt src=gn.js?'+Math.random()+'></scr'+'ipt>');
var set_out='%nick%';
if(gna['%nick%']!=null && gna['%nick%'] ) {
if(gna['%nick%'].match(/^[0-9a-z.:\/_-]+\.(swf)$/i)) set_out='<embed src='+gna['%nick%']+'>';
else set_out='<img src='+gna['%nick%']+' border=0>'; }
document.write(set_out);
</script>

Иструкция: Прописать и все gna['nick']='image.gif'; для нужных ников в файле gn.js
.
У кого есть граф. ник будет напечатан граф иначе просто ник текстом.

458
ridz @ridz
Градиент ник Можно поставить иной градиент для ника, отличяющийся от градиента текста, работает только если включен в градиенте на текст параметр var use_gr=1; и прописаны единички в var grok на те команды где вы хотите видеть градиент.
В скрипты чата в раздел /* [НАСТРОЙКИ] */ добавить следующее и прописать градиенты для ников
/* Градиент ника (добавка) */
var gran = new Array;
gran['adm']=new Array("#FF0000","#00FF00","#0000FF");

Затем в раздел /* [Функции - общие] */ добавить
/* Функция добавления град. ника */
function setgrn(cmd,nick,text){
if(use_gr!=1) return text;
var set_out=text;
if(gran[nick]!=null && gran[nick] && grok[cmd]==1) set_out=gr(text,gran[nick]);
return set_out;
}

После этого в /* [Функции - формирования никлиста] */ в части /* Добавление ника в таблицу участников */ найдите строку
set_nick=setgn(11,nick);
и замените на
set_nick=setgrn(11,nick,nick);// градиент для ника
if (set_nick==nick) {set_nick=setgn(11,nick)};// граф для ника если нет градиента

для тех кто ставил неон замена будет такой
set_nick=setgrn(11,nick,nick);// градиент для ника
if (set_nick==nick) {set_nick=setgn(11,nick)};// граф для ника если нет градиента
set_nick=setneon(11,nick,set_nick,0);// неон для ника

После этого в разделе /* [Функция - вывода сообщений и команд] */ в части /* Добавление граф ников, градиента и формат времени */ найдите строки две строки
set_nick=setgn(cmd,nick);
set_text=setgr(cmd,nick,text);
и замените на
set_nick=setgrn(cmd,nick,nick);// градиент для ника
if (set_nick==nick){set_nick=setgn(cmd,nick)};// граф для ника если нет градиента для ника
set_text=setgr(cmd,nick,text);// градиент для текста

кто ставил неон меняем на
set_nick=setgrn(cmd,nick,nick);// градиент для ника
if (set_nick==nick){set_nick=setgn(cmd,nick)};// граф для ника если нет градиента для ника
set_nick=setneon(cmd,nick,set_nick,0);// неон для ника
set_text=setgr(cmd,nick,text);// градиент для текста
set_text=setneon(cmd,nick,set_text,2); // неон для текста

458
ridz @ridz
Скрытие ника или ников нивидимок на титульнике чата в блоке "Кто в чате"
стандарт
<tr><td class=title>В чате: <script>document.write(i_inchat);</script></td></tr>
<tr><td>
<script>
for(i=0;i<i_inusers.length;i++) {
i_nick=i_inusers[i][0]; i_color=i_inusers[i][1]; i_mw=i_inusers[i][2]; i_stat= i_inusers[i][3];
document.write("<a href=?inc=info&nick="+i_nick+" target=_blank><font color="+i_color+">"+i_nick+"</font></a><br>");
}
if(i_inchat==0) document.write("никого нет<br>");
</script>
<br>
</td></tr>

замените на
<tr><td>
<script>
for(i=0;i<i_inusers.length;i++) {
i_nick=i_inusers[i][0]; i_color=i_inusers[i][1]; i_mw=i_inusers[i][2]; i_stat= i_inusers[i][3];
if (i_inusers[i][0]=="НИК_НЕВИДИМКИ"||i_inusers[i][0]=="ЕЩЁ_НИК_НЕВИДИМКИ") {i_inchat--}
else {document.write("<a href=?inc=info&nick="+i_nick+" target=_blank><font color=#"+i_color+">"+i_nick+"</font></a><br>");}}
if(i_inchat==0) i_inchat="<br>Никого нет";
document.write("Сейчас в чате: "+i_inchat);
</script>
<br>
</td></tr>

Инструкция: впишите ники в места обозначенные красным , ник невидимки не выводиться и не подсчитывается в общем списке.

Для скрипта с разделением по полу добавить красное
<script>
uw="";um="";un="";uwc=0;umc=0;unc=0;
for(i=0;i<i_inusers.length;i++)
{
i_nick=i_inusers[i][0]; i_color=i_inusers[i][1]; i_mw=i_inusers[i][2]; i_stat= i_inusers[i][3]; i_room= i_inusers[i][4];
if (i_nick=="НИК_НЕВИДИМКИ"||i_nick=="ЕЩЁ_НИК_НЕВИДИМКИ") continue;
if(i_mw=='1') {uw+="<tr><td><a href=?inc=info&nick="+i_nick+" target=_blank><font color="+i_color+">"+i_nick+"</font></a>";uwc++;}
else if(i_mw=='0') {um+="<tr><td><a href=?inc=info&nick="+i_nick+" target=_blank><font color="+i_color+">"+i_nick+"</font></a>";umc++;}
else {un+="<tr><td><a href=?inc=info&nick="+i_nick+" target=_blank><font color="+i_color+">"+i_nick+"</font></a>";unc++;}
}
if(!uw) uw="<tr><td>нет таких</td></tr>";
if(!um) um="<tr><td>нет таких</td></tr>";
if(!un) un="<tr><td>нет таких</td></tr>";
html="<table> <tr><td align=center><b>Девушки "+uwc+"</b></td></tr> "+uw+"<tr><td align=center><b>Парни "+umc+"</b></td></tr>"+um+"<tr><td align=center><b>Неизвестно "+unc+"</b></td></tr>"+un+"</table>";
document.write(html);
</script>


В закрытой теме нельзя отправлять сообщения.