Ссылка на новый форум

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

Вы не зашли.

#101 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Вывод подарков из магазина в анкете с возможностью  постраничного перехода и скрытим/показом (основной вариант вывода подарков тут https://forum.vmeste.eu/viewtopic.php?pid=54760#p54760)

<script>
var shop = "Подарки"; // название кнопки
var shop_color = "#FF0000" // цвет кнопки
document.write("<div id=smail align=center ><font color='"+shop_color+"' onclick=printsmail(0) style='cursor: pointer'>"+shop+"</font><br /></div>")
var div_smail=document.getElementById('smail');
var td=5;//сколько колонок в таблице
var max=15;//максимальное количество подарков на странице
items.reverse();//убрать если нужно выводить подарки с начала
function printsmail(page) {
var pages="<font color='"+shop_color+"' style='cursor: pointer' onclick=smile_net()>"+shop+"</font><br />";
var is=n=0; if(items.length==0) return;
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>";
wr+="<td align=center style='cursor: pointer;' ><img  src='./shop/"+items[i][0]+".jpg' title='"+items[i][1]+"\n"+items[i][2]+" "+items[i][3]+"\n"+items[i][4]+"'></td>";
is++; if(is==td) {is=0;wr+='</tr>'}};
if(i%max==0) {n++;if ((n-1)==page) {color="#FF0000"} else {color="#0000CD"};//цвет ссылки для выбранной страницы
pages+="<a href=# onclick='printsmail("+(n-1)+"); return false;' style='cursor: pointer; color: "+color+" ' >"+n+"</a> ";}};
wr=pages+wr+'</table>';
div_smail.innerHTML=wr;
}
function smile_net()
{div_smail.innerHTML="<font color='"+shop_color+"' onclick=printsmail(0) style='cursor: pointer'>"+shop+"</font><br />";}
printsmail(0); //убрать если нужно первоначально скрыть подарки
</script>

Всё на скриншоте или в скрипте
http://imgs.su/users/49702/1275147790.jpg


нет интернета = заказы не беру

Неактивен

#102 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Скрытие разделитей по полу или статусу в никлисте при отсутсвии всех чатлан данного пола или статуса(для тех у кого стоит разделение никлиста https://forum.vmeste.eu/viewtopic.php?pid=46840#p46840)
1. Добавить стиль  в строки таблицы  style='display: none'

/* [Подготовка фреймов и загрузка сообщений] */
var userlist="<table id=ul width=100%>"+
"<tr id=woman style='display: none'><td colspan=5>Деффки</td><td id=womanc>0</td></tr>"+
"<tr id=man style='display: none'><td colspan=5>Пацаны</td><td id=manc>0</td></tr>"+
"<tr id=noman style='display: none'><td colspan=5>Нечто</td><td id=nomanc>0</td></tr>"+
"</table>";

точно также для таблицы без счётчиков в разделителе
2. Добавить красное в  /* Функции добавления и удаления пользователей в массиве никлиста */

function separate(obj,c) {
if(ucc[obj+"c"]==null) ucc[obj+"c"]=c; else ucc[obj+"c"]+=c;
parent.users.document.getElementById(obj).style.display="";
parent.users.document.getElementById(obj+"c").innerHTML=ucc[obj+"c"];
if(ucc[obj+"c"]==0)parent.users.document.getElementById(obj).style.display="none";
if(c==1) return parent.users.document.getElementById(obj).rowIndex+1;
}

Строка отмеченная синим у тех кто неиспользует счётчиков должна отсутствовать!!!


нет интернета = заказы не беру

Неактивен

#103 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Автоматическая смена стиля внутри чата в указанные часы
Можно использовать для изменения дизайна чата в зависимости от времени суток (днём один дизайн, вечером другой , ночью третий )
Всего дизайнов можно установить 24, от 0 до 23.
Прежде чем установить скрипт создайте файлы на фтп чата с разными стилями style1.css, style2.css и т.д.
Затем в скриптах чата в разделе /* [Функции - общие] */ добавьте

/* Функция автоматической смены стиля */
var timer_style;
function style_change(){
if(timer_style) window.clearTimeout(timer_style);
var style = new Array();
style[0]="style.css";//данный стиль сработает в полночь и будет в чате до 6 утра
style[6]="style1.css";//этот с 6 утра и до полуночи

//сюда остальные стили если нужно
var now = new Date();
var hours = now.getHours();
var url='';
for (i in style ){if(i<=hours&&style[i]) url=style[i]};
if(url=='') url=style[i];
mystyle=url;
setstyle(mystyle);
var next = new Date();
next.setHours(+1,0,0,0);
timer_style=window.setTimeout(arguments.callee, next.getTime()- now.getTime())
}

В скрипте пропишите часы и ссылки на файлы стилей - шаблон:  style[ЧАС]="ссылка на стиль";
Затем добавьте красное тамже в /* [Функции - общие] */

/* Дозагрузка - выполняется после загрузки фрейма сообщений */
function onloaded() {
style_change();
window.setTimeout('scrolled=1;',5000);
if(interval) window.clearTimeout(interval);
if(topic) wr(topic);
for(var i = 0;i<rooms.length;i++) update(i,0);
/* Запретить правую кнопку мышки и ставить курсор в текстовое поле */
for(i=0; i<parent.frames.length; i++)  {
if(setcursor) parent.frames[i].document.onkeydown = function(){parent.chat.document.fmsg.text0.focus();}
if(nomousemenu) {
   parent.frames[i].document.oncontextmenu = function(){return false;}
   if(document.layers) parent.frames[i].document.captureEvents(Event.MOUSEDOWN);
   parent.frames[i].document.onmousedown = function(e){if(e && e.type == "contextmenu") return false;}
   }
}

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


нет интернета = заказы не беру

Неактивен

#104 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Автоматическая смена картинки в зависимости от часа
В картинке прописать id id="top_img" ниже поставить скрипт и прописать часы и ссылки на другие картинки которые её будут заменять.

<img src="Ссылка на картинку" border="0" alt="" id="top_img"/>
<script language="JavaScript" type="text/javascript">
var timer_img;
function img_change(){
var pic = document.getElementById('top_img');
if(!pic)return;
if(timer_img) window.clearTimeout(timer_img);
var img = new Array();
img[0]="Ссылка на картинку1";
img[6]="Ссылка на картинку2";
img[10]="Ссылка на картинку3";
img[12]="Ссылка на картинку4";
img[16]="Ссылка на картинку5";
var now = new Date();
var hours = now.getHours();
var url='';
for (i in img ){if(i<=hours&&img[i]) url=img[i]};
if(url=='') url=img[i];
pic.src=url;
var next = new Date();
next.setHours(+1,0,0,0);
timer_img=window.setTimeout(arguments.callee, next.getTime()- now.getTime())
}
img_change();
</script>

Меняет любую картинку в которой вы установите id и пропишите в скрипте по шаблону время и ссылку после которого картинка должна поменяться
Шаблон img[Час]="Ссылка на картинку замены"; час от 0 до 23
Пояснение: Картинка будет той что вы установили для данного промежутка суток при открытии страницы и поменяеться автоматически в установленные вами часы, без перезагрузки страницы


нет интернета = заказы не беру

Неактивен

#105 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Автоматическая смена дизайна титульной страницы чата в зависимости от времени пользователя
Подготовить файлы с разными стилями style1.css, style2.css и т.д.
Админка -=Шаблоны=- Титульник --- Скрипт разместить в head страницы титульника

<script language="JavaScript" type="text/javascript">
window.onload = style_change;
var old_css = '';
function style_change() {
    var a = [],
        c = new Date,
        d = c.getHours(),
        b = "";
    a[0]="style.css";//данный стиль сработает в полночь и будет в чате до 6 утра
    a[6]="Ссылка на style6.css";//этот с 6 утра и до полудня
    a[12]="Ссылка на style12.css";//этот с полудня и до полуночи
    for (var i=0; i<a.length; i++)  {
      if (i <= d && a[i]!=undefined) b=a[i];
    }
    if (b=="")b=a[a.length-1];
    if (parent.frames.length) for (i = 0; i < parent.frames.length; i++) if (obj = parent.frames[i].document.getElementsByTagName("head")[0]) {
        a = parent.frames[i].document.createElement("link");
        a.href = b;
        a.type = "text/css";
        a.rel = "stylesheet";
        obj.appendChild(a)
    }
    if (obj = document.getElementsByTagName("head")[0]) if(old_css!=b){
        a = document.createElement("link");
        a.href = b;
        a.type = "text/css";
        a.rel = "stylesheet";
        obj.appendChild(a)
    }
    old_css=b;
    a = new Date;
    a.setHours(+1, 0, 0, 0);
    window.setTimeout(arguments.callee, a.getTime() - c.getTime())
};

</script>

Ссылки прописывать по примеру в скрипте в порядке возрастания часов , пропуская ненужные часы - всего от 0 до 23
P.S. Новый стиль накладывается на основной поэтому достаточно в подгружаемых ксс описать только изменяемое
P.S.S. Чтобы страницы погружаемые на титульнике через  iframe имели всегда погружаемый дизайн титульника необходимо добавить красное

<iframe onload="style_change()" src=news.html name=iframe frameborder=0 width="100%" style="height:100%;" scrolling=yes></iframe>


нет интернета = заказы не беру

Неактивен

#106 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

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

<script language="JavaScript" type="text/javascript">
var checked=parent.getcookie("test")==1?"checked":"";
document.write('<input type=checkbox name="test" onclick="if(this.checked) {parent.setcookie(this.name,1)} else {parent.setcookie(this.name,0)}" title="Вкл-выкл" '+checked+'>')
</script>

test это имя чекбокса, подставьте своё.
Если в onclick уже что-то было прописано, добавьте onclick="if(this.checked) {parent.setcookie(this.name,1) ;ТУТ} else {parent.setcookie(this.name,0); И ТУТ}"
Учитывайте Кавычки при добавлении!!!
Пример для второго варианта.
В нижнем фрейме есть чекбокс на транслит
<input type=checkbox  onclick="fmsg.trans.value=1; if(!this.checked) fmsg.trans.value=0;">
В нём нету имени.
Управляет скрытым полем:
<input type=hidden name=trans value=0>
Добавляем имя например trans0 и делаем установку скрытого поля в зависимости от кук
Заменяем чекбокс на скрипт

<script language="JavaScript" type="text/javascript">
var checked=parent.getcookie("trans0")==1?"checked":"";// установка выбран-невыбран для самого чекбокса
document.forms.fmsg.trans.value=parent.getcookie("trans0")==1?1:0;//установка значения для скрытого поля
document.write('<input name=trans0 '+checked+' type=checkbox  onclick="if(this.checked){fmsg.trans.value=1;parent.setcookie(this.name,1)} else{fmsg.trans.value=0;parent.setcookie(this.name,0)}">')
</script>


нет интернета = заказы не беру

Неактивен

#107 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Запрет на Ввод большего числа смайлов чем разрешено и длинные пропуски (для смайлов вида *1 *2 и т.д. и таких                 пробелов между словами)
Для гостевой
Админка -=Шаблоны=- Гостевая /* Вывод сообщений */
Ниже находим строку

<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;'></TEXTAREA>

заменяем на

<textarea onkeyup="zamena()" onfocus="zamena()" name="message" wrap="virtual" rows="5" style='width:100%;'></textarea>
<script language="JavaScript" type="text/javascript">
function zamena()
{ var img_max=3; /*максимальное количество смайлов */
  var text=document.form.message.value
  a=text.split(" ");
  for(k=0;k<a.length;k++) {if (/\*([0-9]{1,3})/.test(a[k])) {img_max--};
  if(img_max<0) {a[k] = a[k].replace(/\*([0-9]{1,3})/,'')} };
  text=a.join(' ');
  text=text.replace(/\s+/gm,' ');
  document.form.message.value=text }
</script>

Для форума
Админка -=Шаблоны=- Форум /* Отображение формы для создания тем, сообщений и их редактирования */
находим строку

wr("<tr><td>Текст сообщения<br>"+tags+"<textarea style='width:100%;' rows=10 name=message class=text>"+editmessage+"</textarea><div id=smiles align=center></div>");

добавляем красное

wr("<tr><td>Текст сообщения<br>"+tags+"<textarea onkeyup='zamena()' onfocus='zamena()' style='width:100%;' rows=10 name=message class=text>"+editmessage+"</textarea><div id=smiles align=center></div>");

В верху шаблона форума где расположены основные функции добавить

/* Запрет на Ввод большего числа смайлов чем разрешено и длинные пропуски */
function zamena()
{ var img_max=3; /*максимальное количество смайлов */
  var text=document.form.message.value
  a=text.split(" ");
  for(k=0;k<a.length;k++) {if (/\*([0-9]{1,3})/.test(a[k])) {img_max--};
  if(img_max<0) {a[k] = a[k].replace(/\*([0-9]{1,3})/,'')} };
  text=a.join(' ');
  text=text.replace(/\s+/gm,' ');
  document.form.message.value=text }

Для галереи
Админка -=Шаблоны=- Галерея /* Форма для коментариев к выбранной фотографии */
находим строку

wr("<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;'></TEXTAREA><div id=smiles></div>");

заменяем на

wr("<textarea name=message onkeyup='zamena()' onfocus='zamena()' wrap=virtual rows=5 style='width:100%;'></textarea><div id=smiles></div>");

В верху шаблона галереи где расположены основные функции добавить

/* Запрет на Ввод большего числа смайлов чем разрешено и длинные пропуски */
function zamena()
{ var img_max=3; /*максимальное количество смайлов */
  var text=document.form.message.value
  a=text.split(" ");
  for(k=0;k<a.length;k++) {if (/\*([0-9]{1,3})/.test(a[k])) {img_max--};
  if(img_max<0) {a[k] = a[k].replace(/\*([0-9]{1,3})/,'')} };
  text=a.join(' ');
  text=text.replace(/\s+/gm,' ');
  document.form.message.value=text }

P.S. можно использовать приём запрета вывода большего количества смайлов на уже сделанные сообщения
Найдите в шаблонах  /* Фильтрирует текст - смайлы, теги, ссылки, картинки */ строку

a=text.split(" "); for(k=0;k<a.length;k++) {for(j=0;j<sm.length;j++) if(a[k]==sm[j][0]) a[k]='<img src='+smdir+sm[j][1]+'>';} text=a.join(' '); //замена смайлов

и замените на

var img_max=3; /*максимальное количество смайлов */
a=text.split(" "); for(k=0;k<a.length;k++) {for(j=0;j<sm.length;j++) {if(a[k]==sm[j][0]) {img_max--}; if(img_max>0) {a[k]='<img src='+smdir+sm[j][1]+'>'} else {a[k]=''}}} text=a.join(' '); //замена смайлов


нет интернета = заказы не беру

Неактивен

#108 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Функция сколько фраз написано вам пока вы молчали
Количество фраз отображается в названии (title) страницы - [число]+Название чата
Админка - -=Модерация=- Скрипты в чате - /* [Функции - общие] */ - добавить

/* Функция сколько фраз написано вам пока вы молчали */
var title_zip=document.title;
function str_plus(a) {
    if (!this.b) {
         this.b = 0
    };
    if (a==1) {document.title = "[" + ++this.b + "] " + title_zip}
    else {
        document.title = title_zip;
        this.b = 0
    }
};

Затем в /* [Функция - вывода сообщений и команд] */ добавить красное

/* [Функция - вывода сообщений и команд] */

var pu = new Array;
var pt = 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;
if(nick==nick_r && room!=room_r) return;
if(tonick==mynick && loaded==1)str_plus(1);

Потом в /* [Функции - нижнего фрейма] */ добавить красное

/* Обрабатывает строку ввода текста для отправления */
var gettime=0;
var oldmsg="";
function msg_send(){
str_plus(0);


нет интернета = заказы не беру

Неактивен

#109 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

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

<a href=#  onclick="parent.chat.document.fmsg.text0.focus();parent.use_gn^=1;parent.loadframes();return false"  title="Вкл-выкл графические ники" >Вкл/выкл граф.ники</a>

Вариант кнопкой

<input type=button onclick='parent.chat.document.fmsg.text0.focus();parent.use_gn^=1;parent.loadframes();' value='Вкл/выкл граф.ники' title="Вкл-выкл графические ники" class=ok>

Вариант чекбоксом

<input type=checkbox  onclick='parent.chat.document.fmsg.text0.focus();parent.use_gn^=1;parent.loadframes();' title="Вкл-выкл графические ники" class=ok>


нет интернета = заказы не беру

Неактивен

#110 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Скрипт для выбора только существующих дат для дня рождения (например 31 февраля уже не установить)
Админка  -=Шаблоны=- Настройки - заменить полностью соотвествующий блок

<tr><td>День рожд. <br />Для выбора даты дня рождения в начале выбрать год и месяц<br />(после год сохранять по желанию) </td><td>
<script language="JavaScript" type="text/javascript">
function check_data() {
    var b = document.set.year.options[document.set.year.selectedIndex].value,
        a = document.set.month.options[document.set.month.selectedIndex].value;
    if (Number(b)) for (i = 1; i < document.set.month.options.length; i++) document.set.month.options[i].disabled = false;
    else for (i = 1; i < document.set.month.options.length; i++) if (!document.set.month.options[i].selected) document.set.month.options[i].disabled = true;
    if (Number(b) && Number(a)) {
        b = (new Date(Number(b), Number(a), 0)).getDate();
        for (a = document.set.day.options.length =
        1; a <= b; a++) {
            document.set.day.options[a] = new Option(String(a).replace(/^(\d)$/, "0$1"), a);
            if ("%day%" == a) document.set.day.options[a].selected = true
        }
    } else for (a = 1; a < document.set.day.options.length; a++) if (!document.set.day.options[a].selected) document.set.day.options[a].disabled = true
};
var print='<select name=day class=text><option value="\">--</option><option value="%day%" selected >'+String('%day%').replace(/^(\d)$/,'0$1')+'</option>';
print+='</select> . <select name=month class=text onchange="check_data()"><option value="\">--</option>';

for (i = 1; i < 13; i++) {
    i0 = i < 10 ? "0" + i : i;
    if ("%month%" == i) { sel = "selected"; dis = ""} else {sel = "";dis = "disabled"}
    print += "<option value=" + i + " " + sel + "  " + dis + ">" + i0 + "</option>"
};
print+='</select> . <select name=year class=text onchange="check_data()"><option value="\">----</option>';

for(i=1951;i<2000;i++){
if('%year%'==i) sel='selected'; else sel='';
print+='<option value='+i+' '+sel+'>'+i+'</option>';
}
print+='</select>';

document.write(print);
</script>

</td></tr>

Отредактированно ridz (2010-09-11 21:20:57)


нет интернета = заказы не беру

Неактивен

#111 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Дополнительные смайлы
Код для отображения смайла (установить для всех добавочных смайлов в любой из фреймов - по желанию):

<a href=# onclick="top.sendto(' Код смайла со звёздочкой '); return false;"><img src="Ссылка на картинку" border=0  title=" Название смайла или его код "></a>

Скрипт в -=Модерация=- Скрипты в чате /* [Функция - вывода сообщений и команд] */ перед /* Присвоение переменных */
вставить код:

var smile_vip = {
    '*2': 'Ссылка на картинку смайла',
    '*3': 'Ссылка на картинку смайла',
    '*привет': 'Ссылка на картинку смайла'
    //код смайла в кавычках двоеточие ссылка в кавычках, запятую в последней строке не ставить!!!
};
text=text.replace(/\*[^\s]+/mig, function (s) { return smile_vip[s]?'<img src='+smile_vip[s]+' onclick=parent.sendto(this.title) title=" '+smile_vip[s]+' " style=cursor:pointer>':s; });


нет интернета = заказы не беру

Неактивен

#112 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Присутствие данного ника в чате (скрипт для таблицы в шаблоне анкеты)
Обязательно наличие информера с параметром &inchat=1 Что такое информер и как его устанавливать смотрите тут

<tr>
    <td>Присутствие в чате</td>
    <td><script type="text/javascript">
var rooms=new Array('Главная','Викторина','Мероприятия');
var html = "Вне чата";
for(i=0;i<i_inusers.length;i++) {
i_nick=i_inusers[i][0];  i_color=i_inusers[i][1];i_room= i_inusers[i][4];
if (i_nick=='%nick%')html="<font color=#"+i_color+">"+i_nick+"<\/font> в комнате "+rooms[i_room];
}
document.write(html);
</script></td>
  </tr>

var rooms=new Array('Главная','Викторина','Мероприятия'); -- это дано для примера тут нужно прописать свои названия комнат


нет интернета = заказы не беру

Неактивен

#113 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Вывод статусов ICQ в зависимости от пола новый вариант
В скриптах чата /* [Настройки - никлиста и статусов] */
прописать три массива для бесполых для этого можно использовать основной массив icqtxt
и два дополнительных: для девушек icqtxt_w и для юношей icqtxt_m
количество элементов  в массивах должно быть одинаково
Пример ниже

/* Сообщение о смене статусa ICQ */
var icqtxt= new Array();//для бесполых
icqtxt[0]='меняю статус на -> "свободно"';
icqtxt[1]='меняю статус на -> "работаю"';
icqtxt[2]='меняю статус на -> "в привате"';
icqtxt[3]='меняю статус на -> "читаю"';
icqtxt[4]='меняю статус на -> "скоро буду"';
icqtxt[5]='меняю статус на -> "меня нет"';

var icqtxt_w= new Array();//для девушек
icqtxt_w[0]='меняю статус на -> "свободна"';
icqtxt_w[1]='меняю статус на -> "работаю"';
icqtxt_w[2]='меняю статус на -> "в привате"';
icqtxt_w[3]='меняю статус на -> "читаю"';
icqtxt_w[4]='меняю статус на -> "скоро буду"';
icqtxt_w[5]='меняю статус на -> "меня нет"';

var icqtxt_m= new Array();//для юношей
icqtxt_m[0]='меняю статус на -> "свободен"';
icqtxt_m[1]='меняю статус на -> "работаю"';
icqtxt_m[2]='меняю статус на -> "в привате"';
icqtxt_m[3]='меняю статус на -> "читаю"';
icqtxt_m[4]='меняю статус на -> "скоро буду"';
icqtxt_m[5]='меняю статус на -> "меня нет"';

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

icqtxt_m[0]='меняю статус на -> "свободен"';

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

icqtxt_w[0]='меняю статус на -> "свободна"  <img src=http://mpchat.com/blank/img/status/0.gif>';

или так

icqtxt_w[0]='меняю статус на -> "свободна"  <img src=\'http://mpchat.com/blank/img/status/0.gif\'>';

Затем тамже в скриптах /* [Функция - вывода сообщений и команд] */
находим и заменяем полностью

/* Сообщение о смене статуса участника и его изменение */
if(cmd==8) {
status=text;
for(var i=0;i<us.length;i++)
if(us[i]!= null && us[i][0]==nick){
us[i][5]=status;
var ops = icqtxt;
icqtxt_w&&us[i][3]=='1'&&(ops = icqtxt_w);
icqtxt_m&&us[i][3]=='0'&&(ops = icqtxt_m);

if(ops[status]) wr(set_time+"<font size=2 color="+colornick+"><b>"+set_nick+":</b></font> <i>"+ops[status]+"</i><br>");
var obj=parent.users.document.getElementById("!"+nick);
while(obj.cells.length) obj.deleteCell(0);format(i,obj);
}}

Либо меняем/дополняем участки отмеченные зелёным
Переходим на фрейм участников ищем селектор  name=setstatus
убираем аккуратно его содержимое и ниже ставим скрипт
должно получиться так:

<select name=setstatus onchange="parent.gettime=new Date().getTime();parent.setstatus(this.value);">
</select>
<script  type="text/javascript">
var ops = parent.icqtxt;
parent.icqtxt_w&&parent.mymw=='1'&&(ops = parent.icqtxt_w);
parent.icqtxt_m&&parent.mymw=='0'&&(ops = parent.icqtxt_m);
var sel =  document.getElementsByName("setstatus")[0];
for (var a = 0; a < ops.length; a++) {
        if(a==0){ var opt= document.createElement("optgroup");
             opt.label="Стандартные";
            sel.appendChild(opt)
        };
        if(a==3){ var opt= document.createElement("optgroup");
             opt.label="Дополнительные";
            sel.appendChild(opt)
        };
       
        sel.options.length = a + 1;
        sel.options[a].text = ops[a].replace(/.*"(.*?)".*/gi,"$1");
        sel.options[a].value = a;
        }
</script>

Отмеченное синим ставится опционально и дано просто для примера !!!
Если вы всё сделали правильно то у каждого пола будет свой селектор в фрейме участников и свои сообщения для лога чата о смене статуса.


нет интернета = заказы не беру

Неактивен

#114 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Вывод статусов ICQ в зависимости от пола в никлисте (продолжение, начало смотреть в предыдущем посте)
1.
Админка -=Модерация=- - Скрипты в чате- /* [Настройки - никлиста и статусов] */
Создать три массива картинок для бесполых (используем stn2) для девушек stn2_w для юношей stn2_m
Пример:

/* Вывод статусов ICQ */
var stn2= new Array();//картинки для бесполых
stn2[0] ='<img src=http://mpchat.com/blank/img/status/0.gif>';
stn2[1] ='<img src=http://mpchat.com/blank/img/status/1.gif>';
stn2[2] ='<img src=http://mpchat.com/blank/img/status/2.gif>';
stn2[3] ='<img src=http://mpchat.com/blank/img/status/3.gif>';
stn2[4] ='<img src=http://mpchat.com/blank/img/status/4.gif>';
stn2[5] ='<img src=http://mpchat.com/blank/img/status/5.gif>';

var stn2_w= new Array();//картинки для девушек
stn2_w[0] ='<img src=http://mpchat.com/blank/img/status/0.gif>';
stn2_w[1] ='<img src=http://mpchat.com/blank/img/status/1.gif>';
stn2_w[2] ='<img src=http://mpchat.com/blank/img/status/2.gif>';
stn2_w[3] ='<img src=http://mpchat.com/blank/img/status/3.gif>';
stn2_w[4] ='<img src=http://mpchat.com/blank/img/status/4.gif>';
stn2_w[5] ='<img src=http://mpchat.com/blank/img/status/5.gif>';

var stn2_m= new Array();//картинки для юношей
stn2_m[0] ='<img src=http://mpchat.com/blank/img/status/0.gif>';
stn2_m[1] ='<img src=http://mpchat.com/blank/img/status/1.gif>';
stn2_m[2] ='<img src=http://mpchat.com/blank/img/status/2.gif>';
stn2_m[3] ='<img src=http://mpchat.com/blank/img/status/3.gif>';
stn2_m[4] ='<img src=http://mpchat.com/blank/img/status/4.gif>';
stn2_m[5] ='<img src=http://mpchat.com/blank/img/status/5.gif>';

Не забудьте поменять ссылки на картинки.
2. тамже в скриптах чата /* [Функции - формирования никлиста] */ /* Добавление ника в таблицу участников */
добавить красное

if(stn[stat]==null) st=''; else st=stn[stat];
if(stn2[stat2]==null) icqst=''; else icqst=stn2[stat2];

stn2_w&&stn2_w[stat2]&&mw_u=='1'&&(icqst=stn2_w[stat2]);
stn2_m&&stn2_m[stat2]&&mw_u=='0'&&(icqst=stn2_m[stat2]);


mw=mw_n;
if(mw_u=='0') mw=mw_m;
if(mw_u=='1') mw=mw_w;


нет интернета = заказы не беру

Неактивен

#115 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Антифлудер или пауза на отправку сообщений для незарегистрированных
Админка - -=Модерация=- Скрипты в чате - добавить

/* [Функции - общие] */
/* Пауза на отправку сообщений для незарегистрированных */
var no_reg_time=0;
function no_reg_timer(a) {no_reg_time=1;
    window.setTimeout(function () {
        if (a == 0) {parent.chat.document.fmsg.text0.value = "";parent.chat.document.fmsg.text0.focus();no_reg_time=0;
}
        else {
parent.chat.document.fmsg.text0.value = "Отправка следующего сообщения через "+a+" сек. Зарегистрируйтесь!!!";
            a--;
            window.setTimeout(arguments.callee, 1E3)
        }
    }, 10)
};

ниже /* [Функции - нижнего фрейма] */ добавить ТОЛЬКО красное

/* Обрабатывает строку ввода текста для отправления */
var gettime=0;
var oldmsg="";
function msg_send(){
if(regist != 1&&no_reg_time) return false;
regist != 1&&no_reg_timer(5);

var form=parent.chat.document.fmsg;....

5 это величина паузы в секундах


нет интернета = заказы не беру

Неактивен

#116 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Вход в чат через 88 порт или обычно
добавить на титульник

<select name="act" size="1" onchange="document.gochat.action=(this.value==1)?'http://'+location.hostname+':88'+location.pathname+'index.php':'http://'+location.hostname+location.pathname+'index.php'">
<option value="0">обычный вход</option>
<option value="1">порт 88</option>
</select>
<script type="text/javascript">
if(location.port==88)  document.getElementsByName('act')[0].value=1
</script>


нет интернета = заказы не беру

Неактивен

#117 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Выделение сообщений любого ника в общем логе
В никлисте устанавливается кнопка в строке ника при нажатии на которую сообщения данного ника выделяются (в примере выделяется рамкой цвета ника)
Сама кнопка меняет своё изображение, поэтому вам понадобиться 2 небольших картинки выделено/ не выделено.
Скрипт состоит из 3 частей все три части в админке -=Модерация=- .Скрипты в чате
1. Добавить в Функции - общие

/* [Функции - общие] */

/* Выделение сообщений */
function mark( b ) {
    var a = arguments.callee.b;
    !a && (a = "");
    if ( b ) if (a.indexOf(b + "|") >= 0) a = a.replace(b + "|", "");
    else a += b + "|";
    return arguments.callee.b = a
};

2. /* [Функции - формирования никлиста] */ - добавить красное

ign_img="ССЫЛКА НА КАРТИНКУ ВЫДЕЛЕНИЕ СООБЩЕНИЙ ОТКЛЮЧЕНО";
if(mark().indexOf(nick+'|') >= 0)ign_img="ССЫЛКА НА КАРТИНКУ ВЫДЕЛЕНИЕ СООБЩЕНИЙ ВКЛЮЧЕНО";
set_mark=" <img src="+ign_img+" style='border:0px; cursor:pointer;' title='Выделить сообщения "+nick+"' onclick=\" parent.mark('"+nick+"');parent.loadframes();\">";

/* Добавление ячеек в таблицу */
tr.insertCell(0).innerHTML=set_privat;
tr.insertCell(1).innerHTML=set_nick+set_mark;  tr.cells[1].width="100%";
tr.insertCell(2).innerHTML=set_st;
tr.insertCell(3).innerHTML=set_icqst;
tr.insertCell(4).innerHTML=set_ign;
tr.insertCell(5).innerHTML=set_mw;
}

Примечание: переменную set_mark можно добавить в любую из ячеек  в нужное вам место.
3. /* [Функция - вывода сообщений и команд] */ добавить красное

/* Вывод простого сообщения */
if(cmd==0) {
symbol=symbols[0];if(nick==mynick) symbol=symbols[1];if(tonick==mynick || text.split(" "+mynick+":").length>1) symbol=symbols[2];
if(mark().indexOf(nick+'|') >= 0) symbol="<p style='margin-top:5px; border:1px solid "+colornick+";'>";

set_nick=" <a href='' onclick=\"parent.tonick('"+nick+": '); return false;\"><font size="+sizenick+" color="+colornick+" face='"+facenick+"'>"+set_nick+":</font></a> ";
set_text=" <font size="+size+" color="+color+" face='"+face+"'>" +set_text+"</font> ";
towr=set_time+symbol+set_nick+set_text+"<br>";
if(nick==mynick || tonick==mynick) myhistory+=towr;
wr(towr);
}

Примечание: оформить выделение <p style='margin-top:5px; border:1px solid "+colornick+";'> можно на свой вкус, ориентируясь на
параметры symbols в /* [НАСТРОЙКИ] */ - /* Отметка сообщений: 0-обычные, 1-мои, 2-мне, 3-приват_мой, 4-приват_мне, 5-приват_мой2, 6-приват_мне2 */
P.S. Для лучшего выделения требуется переставить symbol в строке towr=set_time+symbol+set_nick+set_text+"<br>";
на первое место: towr=symbol+set_time+set_nick+set_text+"<br>";


нет интернета = заказы не беру

Неактивен

#118 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Музыка при входе в чат избранных ников
1. Добавить в Функции - общие

2.  /* [Функции - нижнего фрейма] */ --  /* Обрабатывает строку ввода текста для отправления */ - найдите строку
var msg=form.text0.value; и ниже добавьте

var re = /\[welcome\](.*?)\[\/welcome\]/g;
if (re.test(msg)) {
    msg.replace(re, function (a, b) {
        welcome.set(b);
        return ''
    });
    msg = welcome.n.length ? "Вы ждёте: " + welcome.n : "Вы никого не ждёте";
    form.text0.value = msg;
    return false;
};

3.  /* [Функция - вывода сообщений и команд] */ добавить красное

/* Вывод входа юзера в чат и добавление в нклист через 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>";
tadd="К нам приходит %nick%. Поприветствуем!";
if(tadda[nick]!=null && tadda[nick]) tadd=tadda[nick].replace(nick,"%nick%");
if(tadd.search("%nick%")==-1) tadd="%nick% "+tadd; tadd=tadd.replace("%nick%",set_nick);
if(loaded!=0&&welcome.get(nick)) tadd+='<embed type="application/x-shockwave-flash" src="http://mpchat.com/blank/player.swf"  allowfullscreen="false" flashvars="file=ССЫЛКА&autostart=true" width="0" height="0">';
wr(set_time+"<font color=red>"+tadd+"</font><br>");
}
add(nick,colornick,st,mw,icon,status,inchat,time,room,love,clan);
}

Важно: слово ССЫЛКА вы должны заменить на прямую ссылку мп3 файла, писать ссылку без пробелов и кавычек!!!
Желательно небольшого размера и короткого времени звучания.
Использование:   отправить сообщение - ник или часть ника оформленные специальными тегами , полученный ответ стереть -- повторная отправка того же самого отключит музыку для входа для данного ника.
отключить музыку для входа на все установленные ники можно отправив пустые теги.
Пример: [welcome]ridz[/welcome] [welcome]рони[/welcome] установит музыку на вход для двух ников ,
[welcome]ridz[/welcome] отключит музыку для ridz , если звук был установлен ранее.
[welcome][/welcome] отключит музыку для всех входящих в чат.
Кнопка для вставки тегов - ставить в любое место

<input type="button" value="w" onclick="parent.chat.document.fmsg.text0.value='[welcome]'+parent.chat.document.fmsg.text0.value+'[/welcome]';parent.chat.document.fmsg.text0.focus();">


нет интернета = заказы не беру

Неактивен

#119 

admiral
Status is loading... 99,9%
Имя: Alexandr
Откуда: берутся NaNы?
Зарегистрирован: 2007-02-04
Сообщений: 6600
На форуме: 1713 час.
Репутация: 1124 (100%) ±
Инфо  Вебсайт  Написать

Вставка цитаты текста
Проверял на форуме, в гостевой или галереи.

1. В вебфтп в корне создаем файл paste_txt.js следующего содержания (В скрипте только надо удалить синее _, а то форум как цитату вставил  😀  так же скрипт приложил в конце сообщения ):

// определяем общую переменную, которая будет содержать выделенный текст
var txt_quote="";
function copy_txt() {
   txt_quote="";
  if (window.getSelection) {
     txt_quote = window.getSelection().toString();
  } else if (document.getSelection) {
    txt_quote = document.getSelection();               
  } else if (document.selection) {
    txt_quote = document.selection.createRange().text;
  } 
}
function paste_txt(textarea) {
// \n - перевод на новую строку
   if (txt_quote=="") {
    alert("Для вставки цитаты в новое сообщение \nвыделите нужный текст и нажмите - Вставить цитату");
    } else {
  document.getElementById(textarea).value += "[quo_te]" + txt_quote + "[/quo_te]
\n";
    }
}

2. В шаблон форума, гостевой, галереи перед </head> вставляем:

<script language="javascript" src="paste_txt.js"></script>

3. Ищем и добавляем красное:
а. На форуме:

/* Отображение сообщений в теме */
if(mynick && myid) mod+="<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a> | <a onmouseover=\"copy_txt();\" href=\"javascript:paste_txt('txt_msg');\"><font class=low>Вставить цитату</font></a>";

/* Отображение формы для создания тем, сообщений и их редактирования */
wr("<tr><td>Текст сообщения<br>"+tags+"<textarea style='width:100%;' rows=10 name=message class=text id=\"txt_msg\">"+editmessage+"</textarea><div id=smiles align=center></div>");

b. В гостевой:

/* Подготовка сообщений и ссылок */
mod+="<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a> | <a onmouseover=\"copy_txt();\" href=\"javascript:paste_txt('txt_msg');\"><font class=low>Вставить цитату</font></a>";

<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;' id="txt_msg"></TEXTAREA>

с. В галереи:

/* Печатает выбранную фотографию, коментарии и форму */
mod+="<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a> | <a onmouseover=\"copy_txt();\" href=\"javascript:paste_txt('txt_msg');\"><font class=low>Вставить цитату</font></a>";

/* Форма для коментариев к выбранной фотографии */
wr("<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;' id=\"txt_msg\"></TEXTAREA><div id=smiles> </div>");

Ничего сложного, суть думаю понятна, возле стандартной кнопки Цитировать появляется кнопка Вставить цитату,
которая вставляет в поле для ответа все, что выделено мышью в виде [quo te]Выделеный текст[/quo te]
))
http://imgs.su/users/34/1304640939.zip


Скорая помощь - всегда рядом!
99% ошибок сидит в полуметре от монитора.

Неактивен

#120 

ridz
Moderator
Зарегистрирован: 2008-11-25
Сообщений: 458
На форуме: 302 час.
Репутация: 508 (100%) ±
Инфо  Вебсайт  Написать

Вариант замены ссылки Цитировать на КНОПКУ Цитата целиком или выделенного
Для Гостевой, Форума, Галереи
Находим в соответствующих шаблонах функцию  quote(num) и добавляем красное

function quote(num) {
a1=new Array('<br>','&quot;',''','|','&lt;','&gt;','\','`','&amp;');
a2=new Array('\r\n','"',"'",'|','<','>','\\','`','&');
nick=f_p[num][1];
txt=f_p[num][2];
for(i=0;i<a1.length;i++) txt=txt.split(a1[i]).join(a2[i]);
var a = window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text;
a && a !="" && (txt = a);

put("[qu_ote="+nick.replace(/\]/g,"]")+"]"+txt+"[/qu_ote]
");
}

КОПИРОВАТЬ ТОЛЬКО КРАСНОЕ!!!
Затем ищем

"<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a>"

и меняем на

"<input type='button' class='ok' value='Цитата целиком или выделенного'  onclick='quote("+i+")'/>"


нет интернета = заказы не беру

Неактивен

[ Generated in 0.014 seconds, 10 queries]