#1 2004-01-10 18:35:45

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Внимание!!! Некоторые сообщения в этой теме с течением времени могут быть обновлены.


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#2 2004-09-28 21:53:30

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Функция: Мощный транслит в гостевую.

Данная функция устроенна таким образом что она работает и в Internet explorer и в других браузерах.
В IE ножно переключать язык используя комбинацию Ctrl+Alt или нажатием на кнопку.
В других обозревателях появляется кнопка перевести всё!

Установка:
Измените ваш <body> на

<body onkeydown=javascript:AkeyIsDown();>

Измените ваш <textarea></textarea> так

<TEXTAREA onkeypress=translate_letter(); name=message wrap=virtual rows=5 cols=45></TEXTAREA> <BR>
<div id=trans></div>

- где <div id=trans></div> является местом расположения кнопки транслита

В самый низ шаблона гостевой добавьте этот скрипт


<script src=blank/translit></script>
<script language=JavaScript>
//0 - english, 1 - russian (standart)
var language = 0;
var btr="Ctrl+Alt RUS";
var bte="Ctrl+Alt ENG";
var but1="<INPUT onclick=changelanguage(); type=button name=lang class=ok>";
var but2="<INPUT onclick=translateall(); type=button  value='Перевести всё' class=ok>";

function changelanguage(){if (language==1) {language=0;  document.gbform.lang.value="Ctrl+Alt RUS";  document.gbform.message.focus();return;}if (language==0) {language=1; document.gbform.lang.value=bte; document.gbform.message.focus();return;}}

if (navigator.appName == 'Microsoft Internet Explorer' )
{document.getElementById("trans").innerHTML=but1; changelanguage(); }
else
{document.getElementById("trans").innerHTML=but2; }

function translateall()
{
msg=document.gbform.message.value;
for (i=0; i<engRegSmall.length; i++) {msg = msg.replace(engRegSmall[i], rusSmall[i])}
for (i=0; i<engRegBig.length; i++) {msg = msg.replace(engRegBig[i], rusBig[i])}
document.gbform.message.value=msg;
}

function AkeyIsDown(){if (event.ctrlKey && event.altKey) changelanguage(); return false;}
function translate_letter()
{
        if (language==1) return; //no transliteration necessary
        //the entered character
        var code = event.keyCode;
    txt=String.fromCharCode(code);
        //make selection
        cursor_pos_selection = document.selection.createRange();
        //delete something is selected before
    cursor_pos_selection.text="";
    //get the previous character
        cursor_pos_selection.moveStart("character",-1);
    pretxt = cursor_pos_selection.text;
    if (pretxt.length>1) {pretxt="";}
    event.keyCode = 0;
    result = translatesymboltocyrillic(pretxt,txt)
    //delete the previous symbol if it is exists (if the entered symbol is not the first one)
    if (pretxt!="") { cursor_pos_selection.select(); cursor_pos_selection.collapse();}
    with(document.selection.createRange()) {text = result; collapse(); select()}
    return;
}
function translatesymboltocyrillic(pretxt,txt)
{
    var doubletxt = pretxt+txt;
    var code = txt.charCodeAt(0);
    if (!(((code>=65) && (code<=123))||(code==35)||(code==39))) return doubletxt;
    var ii;
    for (ii=0; ii<lat_lr2.length; ii++)
    {
  if (lat_lr2[ii]==doubletxt) return rus_lr2[ii];
    }
    for (ii=0; ii<lat_lr1.length; ii++)
    {
  if (lat_lr1[ii]==txt) return pretxt+rus_lr1[ii];
    }
    return doubletxt;
}
function translatesymboltolatin(symb)
{
    var ii;
    for (ii=0; ii<rus_rl.length; ii++)
    {
  if (rus_rl[ii]==symb)
  return lat_rl[ii];
    }
    return symb;
}

</SCRIPT>

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


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#3 2004-09-29 15:42:52

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Функция: Меню во фрейм участников.
Вот кому надо меню справа , можете посмотреть в главном чате как оно работает, вот код:

<div id=news></div>
<div id=userslist>Загрузка...</div>
<div id=reklama></div>

<div align=center>
<a href=# onclick="load(1); return false;">Новости</a><br>
<a href=# onclick="load(2); return false;">Участники</a><br>
<a href=# onclick="load(3); return false;">Реклама</a><br>
</div>



<script>

var width='97%';
var bordercolor='gray';

var namealign='center';
var namecolor='white';
var namebgcolor='336699';

var textalign='left';
var textcolor='black';
var textbgcolor='white';

h_news='название';
t_news='текст';
h_users='<table><tr><td><font color='+namecolor+' face=Arial size=2><b>В чате:</td><td><font color='+namecolor+' face=Arial size=2><b><div id=count>0</div></td></tr></table>';
t_users='<div id=users>Загрузка...</div>';
h_reklama='назв. рекламы';
t_reklama='тут реклама';

function menu(id,name,text)
{
document.getElementById(id).innerHTML='<table align=center width='+width+' cellspacing=1 cellpadding=0 border=1 bordercolor='+bordercolor+'><tr><td width=100% height=19 bgcolor='+namebgcolor+' ><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=99%><p align=center><b><font color='+namecolor+' face=Arial size=2><b>'+name+'</b></td><td><a href=# onclick="document.getElementById('+"'"+id+"'"+').innerHTML='+"''"+'; return false;"><img src=../blank/img/del.png border=0></a></td></tr></table></td></tr><tr><td><table border=0 width=100% cellspacing=3 cellpadding=0&nbsp; bgcolor='+textbgcolor+' ><tr><td> <font&nbsp; color='+textcolor+' face=Arial, Helvetica, sans-serif size=2 >'+text+'</font> </td></tr></table></td></tr> </table><br>';
}

function load(n)
{
if (n==1) menu('news',h_news,t_news);
if (n==2) menu('userslist',h_users ,t_users);
if (n==3) menu('reklama',h_reklama,t_reklama);
}
load(1);
load(2);
load(3);


</script>

Для установки сотрите старые дивы.
Сначало вы определяете менюшки с ID

<div id=news></div>
<div id=userslist>Загрузка...</div>
<div id=reklama></div>

Затем ниже ссылки на них с функцией load

<div align=center>
<a href=# onclick="load(1); return false;">Новости</a><br>
<a href=# onclick="load(2); return false;">Участники</a><br>
<a href=# onclick="load(3); return false;">Реклама</a><br>
</div>

Потом начинается часть Явы скрипт это настройка дизайна менюшек, потом текста(для вывода участников всё настроенно) и пару функций которых трогать ненадо.

Чтобы добавить новое меню, нужно добавть див, например: <div id=menu></div>
потом ссылку: <a href=# onclick="load(4); return false;">Меню</a><br>
затем:
h_menu='название';
t_menu='текст';
ну и наконец в функцию load : if (n==4) menu('menu',h_menu,t_menu);

Для того чтобы менюшки загружались сразу в самом нижу есть функции load() с номером меню. Т.е. если вы хотите чтобы ваше меню загрузилось просто добавьте ниже load(4);


Ну вот и всё, будут проблемы, спрашивайте!


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#4 2004-12-28 21:03:33

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Информер - выводит различную информацию о чате и его состоянии используя JS

Главный плюс этого стрипта, это то что информацию можно выводить не только на страницах чата, но и к примеру на главной странице вашего сайта, т.е. где угодно!

Рекомендуется использовать загрузку информера не более 1 раза на странице!
Код  загрузчика расположите как можно выше на вашей странице, желательно сразу после или до тега <body>.
Пример загрузчика информера:

<script src=index.php?inc=informer&getmsg=1&inchat=1&lastreg=15&counter=1&birthday=1></script>

- красным указан разделитель & параметров, а жирным цифровые значения параметров.

Все доступные параметры которые вы можете использовать, указываете только те параметры, что необходимы:
getmsg= (1-запрос на вывод кол-ва написаных сообщений за день, 0-выключить)
inchat= (1-запрос на вывод ников в чате, 0-выключить)
counter= (1-запрос на включение счётчика, 0-выключить)
birthday= (1-запрос на вывод именинников,0-выключить)
lastreg= (n-число послед. зарегистр. ников, 1-для вывода кол-ва зарег-ных, 0-выключить)
lastban= (n-число последних строк из банлиста, 0-выключить)
lastmsgs= (n-число последних строк из истории сообщений, 0-выключить)
lastfotos= (n-число последних фото из галереи, 0-выключить)
randfotos= (n-число произвольных фото из галереи, 0-выключить)
lasttopics= (n-число последних тем форума)
forum= (ID-для вывода последних тем определённого форума, 0-вывод со всех форумов)


Если вам не нужна какая либо информация, не используйте эти параметры - это ускорит загрузку страницы!
(чтобы не использовать параметр уберите его из загрузчика, либо установить значение равное 0)

Всё что находится ниже, это код предназначенный для вывода информации из информера.
Вы можете менять код и вид как хотите!!!

Выводит основные показатели статистики
(требуются параметры информера: inchat=1,counter=1,lastreg=1)

<script>
html=
"IP адрес: "+i_ip+"<br>"+
"Создано за: "+i_runtime+" сек<br>"+
"Сообщений сегодня: "+i_msg+"<br>"+
"Всего пользователей: "+i_users+"<br>"+
"Сейчас в чате: "+i_inchat+"<br>"+
"Хостов сегодня: "+i_hosts1+"<br>"+
"Хостов всего: "+i_hosts+"<br>"+
"Хитов сегодня: "+i_hits1+"<br>"+
"Хитов всего: "+i_hits+"<br>"+
"";
document.write(html);
</script>

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

Всего пользователей: <script>document.write(i_users);</script>

Выводит участников в чате (выводит разсортировав по полу в переменные uw,um,un)
(требуемые параметры информера: inchat=1)

<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_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>Девушки "+uwc+"</td></tr> "+uw+"<tr><td align=center>Парни "+umc+"</td></tr>"+um+"<tr><td align=center>Неизвестно "+unc+"</td></tr>"+un+"</table>";
document.write(html);
</script>

Выводит последних 10 зарегистрированных (можно выводить от 1-20)
(требуемые параметры информера: lastreg=10)

<script>
html="Новички:<table>";
for(i=0;i<i_lastreg.length;i++)
{
i_nick=i_lastreg[i][0];  i_color=i_lastreg[i][1];  i_mw=i_lastreg[i][2];  i_stat= i_lastreg[i][3];
html+="<tr><td><a href=?inc=info&nick="+i_nick+" target=_blank><font color="+i_color+">"+i_nick+"</font></a>";
}
html+="</table>";
document.write(html);
</script>

Выводит сегодняшних именинников
(требуемые параметры информера: birthday=1)

<script>
html="Именинники:<table>";
for(i=0;i<i_birthday.length;i++)
{
i_nick=i_birthday[i][0];  i_color=i_birthday[i][1];  i_mw=i_birthday[i][2];  i_stat= i_birthday[i][3];
html+="<tr><td><a href=?inc=info&nick="+i_nick+" target=_blank><font color="+i_color+">"+i_nick+"</font></a>";
}
html+="</table>";
document.write(html);
</script>

Выводит последние 10 сообщений в чате (возможно от 1-100)
(требуемые параметры информера: lastmsgs=10)
Используются номера переменных такие же как позиции в функции f() в скриптах чата начиная с 0.

<script>
for(var i=i_lastmsgs.length-1;i>=0;i--) {
msg=i_lastmsgs[i];if(!msg[6]) msg[6]="gray";if(!msg[7]) msg[7]="black";
document.write("<font color="+msg[6]+"><b>"+msg[2]+":</b></font> <font color="+msg[7]+">"+msg[4]+"</font> ("+msg[5]+") <br>");
}
</script>

- для вывода в другом порядке замените синее на for(var i=0; i<i_lastmsgs.length;i++) {

Выводит последние 10 строк забаненных (возможно любое положительное число)
(требуемые параметры информера: lastban=10)

<script>
html="<table><tr><td>Где<td>Выполнил<td>Заблокирован<td>Причина<td>Время<td>Осталось</tr>";
if(!i_lastban.length) html+="<tr><td colspan=6 align=center>Ничего не найдено!</td></tr>";
for(var i=i_lastban.length-1;i>=0;i--) {
ban=i_lastban[i];
html+="<tr><td>"+ban[0]+"<td>"+ban[1]+"<td>"+ban[2]+"<td>"+ban[3]+"<td>"+ban[4]+"<td>"+ban[5]+" мин</tr>";
}
html+="</table>";
document.write(html);
</script>

- для вывода в другом порядке замените синее на for(var i=0; i<i_lastban.length;i++) {

Выводит 10 последних фотографий из галереи (возможное число 1-20)
(требуемые параметры информера: lastfotos=10)

<script>
html="";
if(!i_lastfotos.length) html+="Нет фотографий!";
for(var i=i_lastfotos.length-1;i>=0;i--) {
foto=i_lastfotos[i];
html+="<a href=?inc=gallery&foto="+foto[0]+" target=_blank title='Дата: "+foto[1]+"\nГалерея: "+foto[2]+"\nПодпись: "+foto[3]+"'><img src=gallery/trumb/"+foto[0]+".jpg border=0></a> ";
}
document.write(html);
</script>

- для вывода в другом порядке замените синее на for(var i=0; i<i_lastfotos.length;i++) {

Выводит 10 произвольных фотографий из галереи (возможное число 1-20)
(требуемые параметры информера: randfotos=10)

<script>
html="";
if(!i_randfotos.length) html+="Нет фотографий!";
for(var i=0; i<i_randfotos.length;i++) {
foto=i_randfotos[i];
html+="<a href=?inc=gallery&foto="+foto[0]+" target=_blank title='Дата: "+foto[1]+"\nГалерея: "+foto[2]+"\nПодпись: "+foto[3]+"'><img src=gallery/trumb/"+foto[0]+".jpg border=0></a> ";
}
document.write(html);
</script>

- произвольные фотографии в целях экономии выбираются из последних 100, а не из всей галлереи

Выводит 10 последних активных тем форума (возможен вывод до 100 последних тем)
(требуемые параметры информера: lasttopics=10, forum=ID)
Вы можете вывести последние темы одного из разделов форума указав forum=ID.
Укажите вместо forum=0 - чтобы выводить последние темы со всего форума.

<script>
var html="<table width=90%><tr><td colspan=2 class=title>Последние активные темы на форуме</td><td width=100 class=title>Автор</td><td width=60 class=title align=center>Ответов</td><td width=150 class=title>Обновления</td></tr>";
for(var i=0;i<i_lasttopic.length;i++) html+="<tr><td>"+(i+1)+".</td><td><a href=?inc=forum&forum="+i_lasttopic[i][11]+"&topic="+i_lasttopic[i][0]+">"+i_lasttopic[i][1]+"</a><br>"+i_lasttopic[i][3]+"</td><td>"+i_lasttopic[i][2]+"</td><td align=center>"+i_lasttopic[i][6]+"</td><td>"+i_lasttopic[i][4]+"<br>"+i_lasttopic[i][5]+"</td></tr>";
html+="</table>";
document.write(html);
</script>


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#5 2005-08-23 14:49:37

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Скриптик идеальной установки тегов в чате

В фильтрацию необходимо добавить
#[b]^<b>^
#[u]^<u>^
#[i]^<i>^

потом, это вставляется в нижний фрейм:

Код:

<script>
function mptags(t1,t2) { 
var obj=document.getElementsByName("text0")[0]; obj.focus();
var pos1 = obj.selectionStart, pos2 = obj.selectionEnd;
if(typeof(pos1)=="number") {
obj.value = obj.value.substring(0, pos1) + t1 + obj.value.substring(pos1, pos2) + t2 + obj.value.substring(pos2, obj.value.length);
var pos3=pos2+t1.length+t2.length; obj.setSelectionRange(pos3,pos3);
}
else if(document.selection) {
var range=document.selection.createRange();
range.text=t1+range.text+t2; range.select();
}
else obj.value += t1 + t2;
obj.focus();
}
</script>

а это кнопки для вставки тегов в поле ввода сообщения(ес-но, можно изменять по своему вкусу). Вставлять их можно куда угодно. Я вставил в фрейм участников:

Код:

<a href=javascript:mptags('[b]','[/b]'); target=chat>[b]</a>
<a href=javascript:mptags('[u]','[/u]'); target=chat>[u]</a>
<a href=javascript:mptags('[i]','[/i]'); target=chat>[i]</a>

или

Код:

<input type=button onclick="mptags('[b]','[/b]');" value=[b]>
<input type=button onclick="mptags('[u]','[/u]');" value=[u]>
<input type=button onclick="mptags('[i]','[/i]');" value=[i]>

Вопрос: Нафига это надо, ведь есть же встроенная функция SendTo() ?
Ответ: при использовании вышеприведенной функции, теги вставляются в ту часть сообщения, куда вы тыкнули мышкой, а не в конец. Так же, можно выделить часть сообщения и, нажатием одной кнопки, эта часть обрамится тегами.

Работает везде.


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#6 2005-10-23 16:25:21

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Авторизация

С этого момента пользователи второй версии если у них включены Cookies могут использовать авторизацию!

Это очень удобно, один раз набрал пароль и логин с паролем запоминается на этом компьютере/в этом чате практически навсегда.

После чего можно входить в чат и писать в гостевой невводя свои данные!

Установка на титульнике
Так сделанно у меня.. можно сделать по своему!

Код:

<script>
var html="";
if(!mynick || !myid)  html="<form method=post name=gochat action=index.php><b>Ник:<input name=nick type=text size=15 class=text><br>Пароль:<input name=pass type=password  size=15 class=text> <input type=checkbox name=cookie_on checked> - запомнить<br><input type=submit value='Войти в чат' class=ok></form>";
else html="<b>Привет!<br>"+mynick+"</b><br><br>";
document.write(html);
</script>

- тут мы проверяя авторизован ли человек выводим форму для входа или приветствия с ником!

Код:

<script>if(mynick!='' && myid!='') document.write(" • <a href=index.php?nick="+mynick+">Войти в чат</a> <br>");</script>

- смотрим если авторизован, то выводим ссылку для авторизованного входа

Код:

<script>if(mynick!='' && myid!='') document.write(" • <a href=index.php?cookie_off=1>Выйти</a> <br>");</script>

- выводим ссылку для выхода из авторизации


Установка в гостевой

Код:

<script>
if(mynick!='' && myid!='') html="<input type=hidden name=name value="+mynick+"><input type=hidden name=id value="+myid+"><b>"+mynick+"</b>";
else html=" Ник: <input type=text name=name class=text size=15> Пароль: <input type=password name=pass class=text size=15>";
document.write(html);
</script>

- Проверяется авторизация и выводится либо форма для ника/пароля либо пропечатанный ник.


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#7 2005-12-17 15:23:14

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Полезные функции

Получение переменных методом GET(через URL) в HTML

К примеру: index.html?chat=mychat&nick=mynick&id=a6d7e8c8a8d7f66d78s8a7

<script>
//GET viriables
var query=unescape(location.search.substr(1));
var badstr=new Array('<','>','"',"'",'`','%','#','\\');
for(i=0;i<badstr.length;i++) query=query.split(badstr[i]).join();
var get=new Array();
var a=query.split("&");
for(var i=0; i<a.length;i++) {var j=a[i].split("="); get[j[0]]=j[1];}

var chat=get['chat'];
var nick=get['nick'];
var id=get['id'];
</script>

Cookie через Javascript - запись и чтение

/* Функции чтения Cookie */
function getcookie(key) {
str=document.cookie;len=str.length; if(len==0) return "";
start=str.indexOf(key + "="); if(start==-1) return "";
start=start+key.length+1;
end=str.indexOf(";",start); if(end==-1) end=len;
return unescape(str.substring(start,end));
}

/* Функции записи Cookie */
function setcookie(key,str,min) {
if(!key) return;
if(!min) min=60*24*365;
var date = new Date();
date.setTime(date.getTime()+(min*60*1000));
document.cookie = key+"="+str+"; expires="+date.toGMTString()+"; path=/";
}

HTML include - в хтмл фаил вставляет другой хтмл или пхп фаил.
Работает как include() в пхп, но если данные функции отключенны у юзера работать не будет hmm

<script>
function include(id, url) {
var element = document.getElementById(id);
if (!element) {alert("Bad ID-element!");return;}
var req = false;
// For Safari, Firefox, and other non-MS browsers
if (window.XMLHttpRequest) {try {req = new XMLHttpRequest();} catch (e) {req = false;}}
// For Internet Explorer on Windows
else if (window.ActiveXObject) {try {req = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try {req = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { req = false;}}}
// If active supported
if (req) {req.open('GET', url, false); req.send(null);element.innerHTML = req.responseText;}
else element.innerHTML ="Include not supported!";
}
</script>

<span id="htmlsite">
<script>include("htmlsite", "file.html");</script>
</span>


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#8 2006-08-28 17:09:02

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Форум для чатов
http://mpchat.com/chat/?inc=forum

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

Файлы и директории:
style.css - используется форумом для настройки стиля - без особых стилей форум будет отображаться неверно!
forum.inc - Шаблон форума, всё что выводится настраивается именно там через JS .. до любых мелочей (полная настройка)
forum/
forum/pid.sys - последний номер сообщения
forum/tid.sys - посл. номер темы
forum/forum.sys - список форумов
forum/online.sys - список ОНЛАЙН
forum/FID/forum.sys - список тем форума FID
forum/FID/TID.sys - список сообщений темы TID форума FID (хоть и .dat редактировать вручную несоветуется - ещё не решено)
forum/avator/ - аваторы участников

FID - номер форума, TID - номер темы

Функции:
В главной админке - добавление и удаление форумов (номер, название, описание, модераторы) также необходимо сразу удалить или добавить форум в нужное место в  шаблоне!
wr(forums[1]);
wr(forums[2]);
...

Модераторские возможности:
- удаление тем в форуме
- удаление сообщений в темах
- редактирование всех сообщений/тем форума (оставляется сообщение отредактированно)
- закрытие и открытие тем форума
- закрепление(выделение) тем форума
- перенос тем
- настройка доступов к форумам


Обычные функции:
- возможны теги, смайлы и цитирование
- редактирование своей темы или сообщения

Отображения:
- отображение иконок у форумов и тем (новые, закрытые, закреплённые)
- аваторы
- участники онлаин и их расположение (форум, тема)
- общяя статистика кол-во сообщений и тем
- в форумах отображаются модераторы и кол. тем,  сообщений, обновления (автор и дата)
- в темах кол. сообщений, автор, обновления
- в сообщениях время, номер, ссылка на пост, автор (кол. сообщений, ранг, аватор, ссылки), меню модерирования

Общая инфа о движке:
- обработчик forum.php 250 строк (8кб) - время обработки 0.006-0.01 сек
- шаблон forum.inc 200 строк (10кб) - время вывода от 0.01 (зависит от модема (smile  )


Форум не использует картинок, несмотря на это выглядит довольно таки хорошо.

Что нужно сделать?
- бан пользователей?


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#9 2006-11-15 16:09:48

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Функция меняет стиль всех документов и фреймов - мгновенно.

Если вы хотите менять общий стиль внутри всего чата и в скриптах чата уже есть функция setstyle():
(например установите этот код в фрейм участников)

<select onchange="parent.mystyle=this.value; parent.setstyle(parent.mystyle);">
<option value='style.css'>-=стандарт=-</option>
<option value='style1.css'>Стиль 1</option>
<option value='style2.css'>Стиль 2</option>
</select>

Если вы хотите менять стиль не внутри чата, а на других страницах:

<script>
function setstyle(cssname) {
if(!parent.frames.length) document.getElementsByTagName("link")[0].href=cssname; 
else {for(i=0; i<parent.frames.length; i++)  {obj=parent.frames[i].document.getElementsByTagName("link")[0];if(obj) obj.href=cssname;}}
}
</script>

<select onchange="setstyle(this.value)">
<option value='style.css'>-=стандарт=-</option>
<option value='style1.css'>Стиль 1</option>
<option value='style2.css'>Стиль 2</option>
</select>

Нужно создавать стили с различными расцветками и фонами, например как в данном примере это файлы: style1.css и style2.css


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#10 2007-03-11 16:08:46

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Галерея - что-то новое и невероятное smile (новый релиз)

Описание (просьба прочитать всё)

Параметры
- разрешение загрузки фотографий и указание макс. числа (у каждого пользователя своя галерея под названием его ника)
- установка максимальных размеров для фото и мини-фото (автоизменение)
- установка числа к отображению минифоток на одной странице
- назначение модераторов
- указание автоподписи фото (например в фото внизу справа будет пропечатываться адрес чата) - работает также и на фото в анкетах

Функции в главной админке
- галереи создаются и автоматически при добавлении фото
- добавление фото с подписью и указанием категории (галереи)
- редактирование фото, подписи и изменение галереи для неё
- удаление фото
- возможность переименовать и удалить галерею и всего содержимого
- обзор галерей с кол-вом фотографий
- обзор фотографий в галереи (мини-изображение и информация о фото)
- удобное модерирование (всегда находитесь в активной галерее)

Сама галерея
+ полная настройка вида через шаблон gallery.inc
- отображение последних фоток минифотками (отображение разделов)
- при просмотре фото - отображение пред. и след. минифотки, отображение подписи, оценки и коментариев со всеми наворотами
- добавление коментариев и оценки (оценить может каждый ник 1 раз при добавлении коментария)
- модерирование галереи при авторизации (удаление фото и коментариев по отдельности)
- загрузка пользователями фото(если включенно) с подписью , просмотр своей галереи и удаление своих фото каждым пользователем

Режимы загрузки и их различия (в параметрах)
1. Загрузка только админом
- отображаются все галереи
- отсутствие формы загрузки пользователями
2. Разрешенна загрузка пользователями
- список ВСЕХ галерей неотображается
- отображается АЛФАВИТ (по названиям галерей)
- отображается форма загрузки пользователями
- появляется модераторские возможности для пользователей к своим фотографиям

Ресурсоёмкость
Теоретически галерея не образует особой нагрузки и должна выдержать 10 000 фотографий. НО рекомендуется ограничиться 1000 (чтобы было всё стабильно) и не засорять её. 1000 фотографий  640х480 занимают примерно 50мб.

Установка - Если вы уже установили новую галерею - просто востановите стандартный шаблон gallery.inc чтобы небыло ошибок.

Новая установка:
1. Удалите вашу старую галерею gallery/ через webftp
2. Зайдите в главной админке в шаблон галереи и востановите стандартный фаил gallery.inc
3. В модерировании галереи нажмите установить.
4. Настройте параметры для галереи

Советы
1. Если у вас мало места делайте размеры фотографий меньше, запретите загрузку пользователями  или просто оплатите чат для получения 100mb.
2. Если вы используете загрузку фотографий пользователями - можно запретить загрузку фото в анкету(убрав форму из шаблона) удалить эти фотографии и в анкете поставить ссылку на галереб пользователя (<a href=?inc=gallery&gallery=%nick%>Фотографии пользователя</a>)

Отображение числа фотографий в галереи у пользователей
Для отображения достаточно отредактировать шаблон анкеты info.inc
1. Составим вывод информации
Между <script> </script> добавим

gallery='%gallery%';
if(gallery>0) gallery='<a href=?inc=gallery&gallery=%nick% target=gallery>Моя галерея ('+gallery+')</a>'; else gallery="";

2. Отредактируем строку с обычной фотогр. , сообщение о фотках в галереии будет ниже (foto+"<br>"+gallery)

<tr><td>Фотографии</td><td><script>document.write(foto+"<br>"+gallery); </script></td></tr>

!!! Примечание !!!
Если загрузка пользователями выключенна, то число сразу приравнивается 0.
Следовательно строка: Моя галерея (число) - показанна не будет! (показывается только если есть фото)
Обновление счётчика числа фотографий происходит после загрузки пользователем или удаления его фотографии.
(Но не после удаления в админке админом, удаляйте под модератором в самой галерее!)

Чтобы счётчик у пользователя обновился он должен провести какие либо действия в галереи!

Всё - теперь можно приступить к заполнению галереи)


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#11 2007-05-27 14:05:50

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Загрузка иконок пользователями и использование в качестве граф. ников

Чтобы использовать загрузку граф. ников через иконки в параметрах для иконок выберите подходящий размер, а в начале функции F() в скриптах нужно поставить:
if(cmd==6) gna[nick]=icon;
А до этой функции:
var icon_on=0;

var icon_on=0;
var pu = new Array;
function f(room,cmd,nick,tonick,text,time,colornick,color,var9,var10,var11,var12) {
if(ign_ok(nick) && cmd!=6 && cmd!=7) return 0;

/* Присвоение переменных */
if(cmd==5) {kill=var9; timeout=var10;}
else if(cmd==6 || cmd==7) {
inchat=text; mw=var9; st=var10; icon=var11; status=var12;
if(colornick=='') colornick=fontnick[0];
if(color=='') color=fonttext[0];
/* скрыть ник невидимки */
if(invisible[nick]) return;
}
else {
sizenick=var9;size=var10;facenick=var11;face=var12;
if(colornick=='') colornick=fontnick[0];
if(sizenick=='') sizenick=fontnick[1];
if(facenick=='') facenick=fontnick[2];
if(color=='') color=fonttext[0];
if(size=='') size=fonttext[1];
if(face=='') face=fonttext[2];
}

if(cmd==6) gna[nick]=icon;

...

Отключение граф. ников для пользователей

<input type=checkbox onclick="if(this.checked) parent.use_gn=1; else parent.use_gn=0;" checked> - граф. ники


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#12 2007-07-08 19:11:28

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Функция скрытия/раскрытия отображения любого ХТМЛ

Для скрытия кода пользуемся стилями display:none; (скрыть) и display:block; (раскрыть)

<div id=hide1 style="display:none;">
Тут любой ХТМЛ код который поумолчанию скрытый
</div>
<a href=# onclick="obj=document.getElementById('hide1'); if(obj.style.display=='none') obj.style.display='block'; else obj.style.display='none'; return false;">показать/скрыть</a>

hide1 - это ID элемента который должен быть скрыт!


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#13 2007-08-03 16:39:49

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Никлист - разделение по полам и статусам

Сейчас я раскажу подробно как сортировать никлист по полу и по статусам.

Пояснение:
if(mw=='0') - это мальчики
if(mw=='1') - это девочки
if(mw=='') - это пол невыбран
if(st=='1') - это статус 1 (обычно админ)
if(st=='2') - это статус 2 (обычно модератор)

Выполнить [1]. требуется только чатам созданным до 27.08.07!

[1]. Обновление: Главная админка -> Скрипты в чате -> находим  /* [Функции формирования никлиста] */

Путём ввода функции separate() и seprules() удалось всё упростить!
То что ниже цветным, нужно добавить!
(пример для разделения по полам)

/* Функции добавления и удаления пользователей в массиве никлиста */
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){
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);
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);
}}

Обновление: Востановить из стандартного чата участок кода  /* [Подготовка фреймов и загрузка сообщений] */ -
Обновление: Востановить из стандартного чата участок кода /* Функция перехода в комнаты */ (это в разделе вывода сообщений)

[2].Установка   

userlist="<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>";

У вас наверное возник вопрос, а что такое красное - это ID(может быть любое слово кроме users и ul), которое присваевается полю разделителя в таблице пользователей. Важно чтобы ID сортировки к примеру man имело счётчик manc.(т.е. всегда добавляется "c") И эти поля в функции seprules должны соответствовать ID в табличке! Настройте условия в этой финкции!!!

[3]. Дополнительно: Как использовать разделение без счётчиков?

Также как описанно выше, но из функции separate() нужно убрать строку:

parent.users.document.getElementById(obj+"c").innerHTML=ucc[obj+"c"];

И табличка в функции loadframes() будет  выглядит так:

userlist="<table id=ul width=100%>"+
"<tr id=woman><td colspan=6>Деффки</td></tr>"+
"<tr id=man><td colspan=6>Пацаны</td></tr>"+
"<tr id=noman><td colspan=6>Нечто</td></tr>"+
"</table>";

[4]. Дополнительно: Как использовать разделение по статусам или вместе?

Со статусами нужно прописать примерно так:

if(st=='1') index=separate("adm",type);
else if(st=='2') index=separate("mod",type);
else index=separate("other",type);

Последняя строка без if() чтобы все остальные статусы попали в поле other.

Совместное разделение:

if(st=='1') index=separate("adm",type);
else if(st=='2') index=separate("mod",type);
else if(mw=='0') index=separate("man",type);
else if(mw=='1') index=separate("woman",type);
else if(mw=='') index=separate("noman",type);

Также незабудьте настроить табличку около функции loadframes(), так чтобы  все поля используемые в separate условиях там были!

Отредактированно Латвиец (2007-08-04 13:58:29)


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#14 2007-08-22 17:36:09

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Модификация TOP-100

Редактирование рейтинга посетителей остаётся пока невозможным, но появились новые возможности!
1. Возможность вывода рейтинга по рефералам
2. Возможность выбора отображения некоторых параметров, в определённой последовательности.

Изменённые и нововведённые переменные
http://mpchat.com/chat/?inc=top100&all=100&only=12345678&sort=6
Оранжевое:  all и означает максимальное число пользователей выводимое в рейтинге (all=1 - все пользователи)
Зелёное: новая переменная only(только) означает какие параметры  и в какой последовательности выводить (1 указывать необязательно, автоматически первое, это ники)
Красное: sort и означает номер параметра по которому будет сортировка.

Значения по умолчанию для ссылки ?inc=top100
sort=2 all=100 only=12345

Номера параметров
1 - ники, всегда в первой колонке
2 - время онлайн
3 - число сообщений
4 - активность (высчитывается из 2 и 3)
5 - число просмотров анкеты
6 - число приведённых пользователей (реф)
7 - число отгаданных вопросов в викторине
8 - число набранных очков, за активность

Примеры ссылок

Лучшие 10 рефералов
?inc=top100&all=10&only=6

20 самых активных пользователя (с доп. выводом времени и числа сообщений)
?inc=top100&all=20&only=423&sort=4

20 умнейших в викторине
?inc=top100&all=20&only=7

50 самых богатых по очкам
?inc=top100&all=50&only=8


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#15 2007-08-23 15:12:03

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Звуковой сигнал при получении сообщения
На данный момент нет возможности сделать поддержку во всех браузерах.

Метод1 - обновления плеера
Если использовать bgsound - то будет работать только в IE.
Если использовать embed - то при обновлении плеера чат будет тормазить.

Метод2 - повторного включения звука через play()
К сожалению это работает только в IE и только в теге embed.
Но плюс в том что чат загружает звук один раз в пмять, и после этого при проигрывании почти не тормазит.
Вот этот метод я и приведу ниже:

Не будем нагружать фрейм сообщений и положим этот скрипт в фрейм участников, какая нам разница где он играет )

<script>function sound(num) {if(navigator.appName != "Microsoft Internet Explorer") return; document.getElementById("sound"+num).play();}</script>
<EMBED id=sound1 type='application/x-mplayer2' pluginspage='http://www.microsoft.com/Windows/Downloads/Contents/MediaPlayer/' src='http://mpchat.com/chat/1.wav' autostart=false hidden=true width=0 height=0 MASTERSOUND>

Тут первая строка это сам скрипт включающий звук, втокая сам проигрыватель с загруженным звуком.
Вы можете использовать несколько звуков установив несколько таких проигрывателей с sound1, sound2 и т.д.

Теперь осталось только пройти в скрипты и добавить строчку в функцию f() куданибуть до if(cmd==0) {

if(tonick==mynick && loaded==1) parent.users.sound(1);

- это включение звука из sound1 для всех сообщений обращённых вам

if(tonick==mynick && loaded==1 &&  (cmd==1 || cmd==2)) parent.users.sound(1);

- это для всех приватных сообщений обращённых к вам

Можно фантазировать много и делать так как хочется )

Примечание: Лучше использовать формат .mid, потому что он считается безопастным и IE7 не показывает окно с разрешением Active-X.

PS. IE рулит, где же вы, другие крутые браузеры )


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#16 2007-08-27 00:15:06

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Комнаты(и их использование) - редактирование через главную админку

Теперь настройка комнат проходит в главной админке в удобной форме!
Можно установить доступ по статусам а также разрешить только определённым модераторам модерирование в опред. комнатах!

Установка - если этого нет в фрейме участников
Для установки выбора комнат при входе в чат, код генерируется в главной админке автоматически!
Чтобы добавить форму выбора комнат в чате, добавим например в фрейм участников такой скрипт:

<script>
/* Форма для перехода по комнатам (видна если есть комнаты) */
if(parent.rooms.length>1) {
document.write("<center><select class=ok name=setroom onchange=\"parent.setmyroom(this.value);\">");
for(var i=0;i<parent.rooms.length;i++) {if(i==parent.myroom) sel="selected"; else sel="";
document.write("<option value="+i+" "+sel+">"+parent.rooms[i][0]+" (0)");
}
document.write("</select></center><br>");
}
</script>

- также в скриптах чата должна быть функция setmyroom!


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#17 2007-10-31 22:49:46

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Переход автостатуса в онлайн - при написании сообщения

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

if(away[laststatus]) window.setTimeout("setstatus(0);",2000);

- красным номер статуса онлайн, обычно 0


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#18 2007-12-29 23:50:47

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Виртуальный магазин
(только для платных чатов)

Виртуальный магазин позволяет покупать и продавать вещи в виде картинок используя в виде валюты
заработанные пункты. Пункты назначаются за активное участие в чате,  написанные сообщения,
проведённое время в чате и другое. Купленные вещи можно также дарить используя коментарий от своего имени.

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

Установка ссылки на магазин внутри чата

<a href=# onclick="parent.wo('index.php?inc=shop&'+parent.yourkey,'Магазин','700','500','yes');return false">Магазин</a>

Установка преобретённых вещей в анкету

<div id=shoptable align=center>У вас нет вещей из магазина!</div>
<script>
var obj=document.getElementById('shoptable');
var td=2; var max=10; var reverse=1;
function printitems(page) {
var is=0; if(items.length==0) return;
var wr="<table align=center>";
for(var i=0;i<items.length;i++) {
if(page*max<=i && (page+1)*max>i) {
if(is==0) wr+="<tr>";
var k=i; if(reverse) k=items.length-1-i;
wr+="<td align=center><img src=shop/"+items[k][0]+".jpg title='"+items[k][1]+"\n"+items[k][2]+" "+items[k][3]+"\n"+items[k][4]+"'></td>";
is++; if(is==td) is=0;
}}
wr+='</table>';
if(page>0) wr+="<a href=# onclick='printitems("+(page-1)+"); return false;'>Назад</a> ";
if(i>(page+1)*max) wr+="<a href=# onclick='printitems("+(page+1)+"); return false;'>Дальше</a>";
obj.innerHTML=wr;
}
printitems(0);
</script>

- где td это число вещей в ряду, max это число вещей к отображению на одной странице, а reverse (0-выкл, 1-вкл) отображение сначало новых вещей!


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#19 2008-01-01 23:05:27

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Задержка вывода сообщений бота
(время его сообщения останется старым)

Внимание!!! Если поставить эту функцию то каждое сообщение бота сопровождается новой загрузкой всех картинок и звуков в фрейме сообщений!

Идём в скрипты чата, в функции вывода сообщений, находим там такой участок кода и добавляем красное:
(обратите внимание на то что после красного есть ещё код)

if(cmd==0) {
symbol=symbols[0];if(nick==mynick) symbol=symbols[1];if(tonick==mynick || text.split(mynick+":").length>1) symbol=symbols[2];
set_nick=" <a href='' onclick=\"parent.tonick('"+nick+": '); return false;\"><font size="+sizenick+" color="+colornick+" face='"+facenick+"'>"+set_nick+":</font></a> ";
set_time="<b>["+time+"]</b>";
set_text=" <font size="+size+" color="+color+" face='"+face+"'>" +set_text+"</font> ";
towr=symbol+set_time+set_nick+set_text+"<br>";
if(nick==mynick || tonick==mynick) myhistory+=towr;

if(nick==nick_r && loaded==1) window.setTimeout("parent.left.document.body.innerHTML+='<div>"+towr.split("'").join("\\'")+"</div>'; up();",1000*Math.round((Math.random()*10+5)));
else
wr(towr);
}

Числа -  5 это минимальное время задержки, + 10 это максимальное случайное число, получаем время ответа бота 5-15 сек!


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#20 2008-04-13 17:15:53

Dimitry
Отсекатель тупых голов
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 12096
На форуме: 983 час.
Репутация: 722 (99%) ±
Инфо  Вебсайт

Re: ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

Обновление - AJAX движок - свобода антивирусам!

Думаю многие знакомы с проблемой когда фрейм сообщений долгое время не загружается, сообщения загружаются, но не новые а старые и не сразу! Из такого чата люди быстро уходят. Проблема в том что популярные антивирусы как Касперский и Аваст, а также некоторые фаерволы и даже провайдеры, не поддерживают поточные/непрерывные чаты.

Преимущества
Чтобы эти пользователи могли общаться в чате, был разработан дополнительный движок на AJAX. Скрипт автоматически определяет проблему работы стандартного потокового движка и предлагает перекючиться на AJAX, который будет работать у любого пользователя.

Недостатки
Этот движок создаёт приличную нагрузку на сервер, а также он медленнее и портебляет больше трафику.
Но лучше уж так, чем потеря посетителей!

Установка
1. В главной админке откройте Модерация -> Скрипты чата -> Вкладка: Подготовка фреймов и загрузка сообщений
2. В самом низу найдите  /* Проверка непрерывного соединения */ и замените весь код от этой строки на ниже указанный!

/* Проверка непрерывного соединения */
    if(ajaxon) {ajax(1); return;}
    interval=window.setTimeout('if(confirm("Ваш компьютер не может работать с потоковым движком чата. Нажмите ОК для перехода на другой движок чата или Отмена для дальнейших действий.")) ajax(1); else if(confirm("Нажмите ОК чтобы узнать причину или Отмена для продолжения загрузки потокового движка.")) parent.left.location.href="index.php?inc=problem";',10000);
    }
}
var interval=window.setInterval("loadframes()",100);

var ajaxon=0;
var http = null;
var ajaxreq=0;
function ajax(start) {
if(ajaxreq) return; ajaxreq=1;
var file="/ajax.html?sess="+myid+"&r="+Math.random(1);
if(start) {ajaxon=1; file+="&start=1";
parent.left.location.href="start.html";
window.setInterval("ajax()",15000);
}
//Mozilla, Opera, Safari, IE7, else IE6
if (typeof XMLHttpRequest != 'undefined') {http = new XMLHttpRequest();}
else {
try {http  = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e) {try {http  = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {http  = null;}}
}
if (http) {
    http.open('GET', file, true);
    http.onreadystatechange = new Function("if(http.readyState != 4) return;parent.left.document.write(http.responseText);ajaxreq=0;");
    http.send(null);
}}

3. Проверьте актуальность функции onloaded(), она находится  в скриптах после настроек.

Вы также можете просто востановить скрипты чата, в стандартном файле это обновление уже произведено!


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

Board footer

[ Generated in 0.054 seconds, 7 queries]