Старая версия форума тут

Форумы » MPCHAT - CMS хостинг чатов для профессионалов » Готовые решения для чатов (старая версия с фреймами)

1 ... 3 4 5 6 7

458
ridz
[b]Вывод подарков из магазина в анкете с возможностью постраничного перехода и скрытим/показом[/b] (основной вариант вывода подарков тут [url]https://forum.vmeste.eu/viewtopic.php?pid=54760#p54760[/url])
[quote]<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>[/quote]
Всё на скриншоте или в скрипте
[img]http://imgs.su/users/49702/1275147790.jpg[/img]
458
ridz
[b]Скрытие разделитей по полу или статусу в никлисте при отсутсвии всех чатлан данного пола или статуса[/b](для тех у кого стоит разделение никлиста [url]https://forum.vmeste.eu/viewtopic.php?pid=46840#p46840[/url])
[b]1.[/b] Добавить стиль в строки таблицы style='display: none'
[quote]/* [Подготовка фреймов и загрузка сообщений] */
var userlist="<table id=ul width=100%>"+
"<tr id=woman [color=red]style='display: none'[/color]><td colspan=5>Деффки</td><td id=womanc>0</td></tr>"+
"<tr id=man [color=red]style='display: none'[/color]><td colspan=5>Пацаны</td><td id=manc>0</td></tr>"+
"<tr id=noman [color=red]style='display: none'[/color]><td colspan=5>Нечто</td><td id=nomanc>0</td></tr>"+
"</table>";[/quote]
точно также для таблицы без счётчиков в разделителе
[b]2.[/b] Добавить [color=red]красное[/color] в /* Функции добавления и удаления пользователей в массиве никлиста */
[quote]function separate(obj,c) {
if(ucc[obj+"c"]==null) ucc[obj+"c"]=c; else ucc[obj+"c"]+=c;
[color=red]parent.users.document.getElementById(obj).style.display="";[/color]
[color=blue]parent.users.document.getElementById(obj+"c").innerHTML=ucc[obj+"c"];[/color]
[color=red]if(ucc[obj+"c"]==0)parent.users.document.getElementById(obj).style.display="none";[/color]
if(c==1) return parent.users.document.getElementById(obj).rowIndex+1;
}[/quote]
Строка отмеченная [color=blue]синим[/color] у тех кто неиспользует счётчиков должна отсутствовать!!!
458
ridz
[b]Автоматическая смена стиля внутри чата в указанные часы[/b]
Можно использовать для изменения дизайна чата в зависимости от времени суток (днём один дизайн, вечером другой , ночью третий )
Всего дизайнов можно установить 24, от 0 до 23.
Прежде чем установить скрипт создайте файлы на фтп чата с разными стилями style1.css, style2.css и т.д.
Затем в скриптах чата в разделе /* [Функции - общие] */ добавьте
[quote]/* Функция автоматической смены стиля */
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())
}[/quote]
В скрипте пропишите часы и ссылки на файлы стилей - шаблон: style[ЧАС]="ссылка на стиль";
Затем добавьте красное тамже в /* [Функции - общие] */
[quote]/* Дозагрузка - выполняется после загрузки фрейма сообщений */
function onloaded() {
[color=red]style_change();[/color]
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;}
}
}[/quote]
[b]Пояснение:[/b] стиль установится согласно вашему выбору при входе в чат и будет меняться автоматически без перезахода в установленное вами время
458
ridz
[b]Автоматическая смена картинки в зависимости от часа[/b]
В картинке прописать id [b]id="top_img"[/b] ниже поставить скрипт и прописать часы и ссылки на другие картинки которые её будут заменять.
[quote]<img src="Ссылка на картинку" border="0" alt="" [color=red]id="top_img"[/color]/>
<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>[/quote]
Меняет любую картинку в которой вы установите id и пропишите в скрипте по шаблону время и ссылку после которого картинка должна поменяться
Шаблон img[Час]="Ссылка на картинку замены"; час от 0 до 23
[b]Пояснение:[/b] Картинка будет той что вы установили для данного промежутка суток при открытии страницы и поменяеться автоматически в установленные вами часы, без перезагрузки страницы
458
ridz
[b]Автоматическая смена дизайна титульной страницы чата в зависимости от времени пользователя[/b]
Подготовить файлы с разными стилями style1.css, style2.css и т.д.
Админка -=Шаблоны=- Титульник --- Скрипт разместить в head страницы титульника
[quote]<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>[/quote]
Ссылки прописывать по примеру в скрипте в порядке возрастания часов , пропуская ненужные часы - всего от 0 до 23
P.S. Новый стиль накладывается на основной поэтому достаточно в подгружаемых ксс описать только [b]изменяемое[/b]
P.S.S. Чтобы страницы погружаемые на титульнике через iframe имели всегда погружаемый дизайн титульника необходимо добавить [color=red]красное[/color]
[quote]<iframe [color=red]onload="style_change()"[/color] src=news.html name=iframe frameborder=0 width="100%" style="height:100%;" scrolling=yes></iframe>[/quote]
458
ridz
[b]Запоминание состояния чекбокса через куки[/b] для установки прежних значений при входе в чат.
[b]Первый вариант.[/b]
Если чекбокс не управляет ещё каким-то например скрытым полем , то берём имя этого чекбокса и сам чекбокс меняем на скрипт
[quote]<script language="JavaScript" type="text/javascript">
var checked=parent.getcookie("[color=red]test[/color]")==1?"checked":"";
document.write('<input type=checkbox name="[color=red]test[/color]" onclick="if(this.checked) {parent.setcookie(this.name,1)} else {parent.setcookie(this.name,0)}" title="Вкл-выкл" '+checked+'>')
</script>[/quote]
[color=red]test[/color] это имя чекбокса, подставьте своё.
Если в onclick уже что-то было прописано, добавьте onclick="if(this.checked) {parent.setcookie(this.name,1) [color=red];ТУТ[/color]} else {parent.setcookie(this.name,0)[color=red]; И ТУТ[/color]}"
Учитывайте Кавычки при добавлении!!!
[b]Пример для второго варианта.[/b]
В нижнем фрейме есть чекбокс на транслит
[u]<input type=checkbox onclick="fmsg.trans.value=1; if(!this.checked) fmsg.trans.value=0;">[/u]
В нём нету имени.
Управляет скрытым полем:
[u]<input type=hidden name=[color=green]trans[/color] value=0>[/u]
Добавляем имя например [color=red]trans0[/color] и делаем установку скрытого поля в зависимости от кук
Заменяем чекбокс на скрипт
[quote]<script language="JavaScript" type="text/javascript">
var checked=parent.getcookie("[color=red]trans0[/color]")==1?"checked":"";// установка выбран-невыбран для самого чекбокса
document.forms.fmsg.[color=green]trans[/color].value=parent.getcookie("[color=red]trans0[/color]")==1?1:0;//установка значения для скрытого поля
document.write('<input name=[color=red]trans0[/color] '+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>[/quote]
458
ridz
[b]Запрет на Ввод большего числа смайлов чем разрешено и длинные пропуски[/b] (для смайлов вида *1 *2 и т.д. и таких пробелов между словами)
[b]Для гостевой[/b]
Админка -=Шаблоны=- Гостевая /* Вывод сообщений */
Ниже находим строку
[quote]<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;'></TEXTAREA>[/quote]
заменяем на
[quote]<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>[/quote]
[b]Для форума[/b]
Админка -=Шаблоны=- Форум /* Отображение формы для создания тем, сообщений и их редактирования */
находим строку
[quote]wr("<tr><td>Текст сообщения<br>"+tags+"<textarea style='width:100%;' rows=10 name=message class=text>"+editmessage+"</textarea><div id=smiles align=center></div>");[/quote]
добавляем красное
[quote]wr("<tr><td>Текст сообщения<br>"+tags+"<textarea [color=red]onkeyup='zamena()' onfocus='zamena()'[/color] style='width:100%;' rows=10 name=message class=text>"+editmessage+"</textarea><div id=smiles align=center></div>");[/quote]
В верху шаблона форума где расположены основные функции добавить
[quote]/* Запрет на Ввод большего числа смайлов чем разрешено и длинные пропуски */
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 }[/quote]
[b]Для галереи[/b]
Админка -=Шаблоны=- Галерея /* Форма для коментариев к выбранной фотографии */
находим строку
[quote]wr("<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;'></TEXTAREA><div id=smiles></div>");[/quote]
заменяем на
[quote]wr("<textarea name=message [color=red]onkeyup='zamena()' onfocus='zamena()' [/color]wrap=virtual rows=5 style='width:100%;'></textarea><div id=smiles></div>");[/quote]
В верху шаблона галереи где расположены основные функции добавить
[quote]/* Запрет на Ввод большего числа смайлов чем разрешено и длинные пропуски */
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 }[/quote]
P.S. можно использовать приём запрета вывода большего количества смайлов на уже сделанные сообщения
Найдите в шаблонах /* Фильтрирует текст - смайлы, теги, ссылки, картинки */ строку
[quote]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(' '); //замена смайлов[/quote]
и замените на
[quote]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(' '); //замена смайлов[/quote]
458
ridz
[b]Функция сколько фраз написано вам пока вы молчали[/b]
Количество фраз отображается в названии (title) страницы - [b][число]+Название чата[/b]
Админка - -=Модерация=- Скрипты в чате - /* [Функции - общие] */ - добавить
[quote]/* Функция сколько фраз написано вам пока вы молчали */
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
}
};[/quote]
Затем в /* [Функция - вывода сообщений и команд] */ добавить [color=red]красное[/color]
[quote]/* [Функция - вывода сообщений и команд] */

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;
[color=red]if(tonick==mynick && loaded==1)str_plus(1);[/color][/quote]
Потом в /* [Функции - нижнего фрейма] */ добавить [color=red]красное[/color]
[quote]/* Обрабатывает строку ввода текста для отправления */
var gettime=0;
var oldmsg="";
function msg_send(){
[color=red]str_plus(0);[/color][/quote]
458
ridz
[b]Отключение/включение графников[/b](ставить в любое удобное место)
[b]Вариант ссылкой[/b]
[quote]<a href=# onclick="parent.chat.document.fmsg.text0.focus();parent.use_gn^=1;parent.loadframes();return false" title="Вкл-выкл графические ники" >Вкл/выкл граф.ники</a>[/quote]
[b]Вариант кнопкой[/b]
[quote]<input type=button onclick='parent.chat.document.fmsg.text0.focus();parent.use_gn^=1;parent.loadframes();' value='Вкл/выкл граф.ники' title="Вкл-выкл графические ники" class=ok>[/quote]
[b]Вариант чекбоксом[/b]
[quote]<input type=checkbox onclick='parent.chat.document.fmsg.text0.focus();parent.use_gn^=1;parent.loadframes();' title="Вкл-выкл графические ники" class=ok>[/quote]
458
ridz
[b]Скрипт для выбора только существующих дат для дня рождения[/b] (например 31 февраля уже не установить)
Админка -=Шаблоны=- Настройки - заменить полностью соотвествующий блок
[quote]<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>[/quote]

Отредактировано ridz - 11.09.2010
458
ridz
[b]Дополнительные смайлы[/b]
[b]Код для отображения смайла (установить для всех добавочных смайлов в любой из фреймов - по желанию):[/b]
[quote]<a href=# onclick="top.sendto(' [color=red]Код смайла со звёздочкой[/color] '); return false;"><img src="[color=red]Ссылка на картинку[/color]" border=0 title=" [color=red]Название смайла или его код[/color] "></a>[/quote]
Скрипт в -=Модерация=- Скрипты в чате /* [Функция - вывода сообщений и команд] */ перед /* Присвоение переменных */
вставить код:
[quote]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; });[/quote]
458
ridz
[b]Присутствие данного ника в чате (скрипт для таблицы в шаблоне анкеты)[/b]
Обязательно наличие информера с параметром [b][color=red]&inchat=1[/color][/b] Что такое информер и как его устанавливать смотрите [url=https://forum.vmeste.eu/viewtopic.php?pid=5680#p5680]тут[/url]
[quote]<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>[/quote]
[color=green]var rooms=new Array('Главная','Викторина','Мероприятия');[/color] -- это дано для примера тут нужно прописать свои названия комнат
458
ridz
[b]Вывод статусов ICQ в зависимости от пола[/b] [color=red]новый вариант [/color]
В скриптах чата /* [Настройки - никлиста и статусов] */
прописать три массива для бесполых для этого можно использовать основной массив [b]icqtxt[/b]
и два дополнительных: для девушек [b]icqtxt_w[/b] и для юношей [b]icqtxt_m[/b]
количество элементов в массивах должно быть одинаково
Пример ниже
[quote]/* Сообщение о смене статус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]='меняю статус на -> "меня нет"';[/quote]
В каждой строке нужно выделить двойными кавычками короткое слово или фразу,
которое будет потом отображено в селекторе фрейма участников
[quote]icqtxt_m[0]='меняю статус на -> [color=red]"свободен"[/color]';[/quote]
Если вы используите в строке вывода картинки,
то тег картинки должен быть прописан без двойных кавычек или с использованием одинарных и слеша
Для примера
[quote]icqtxt_w[0]='меняю статус на -> "свободна" <img src=http://mpchat.com/blank/img/status/0.gif>';[/quote]
или так
[quote]icqtxt_w[0]='меняю статус на -> "свободна" <img src=\'http://mpchat.com/blank/img/status/0.gif\'>';[/quote]
Затем тамже в скриптах /* [Функция - вывода сообщений и команд] */
находим и заменяем полностью
[quote]/* Сообщение о смене статуса участника и его изменение */
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;
[color=green]var ops = icqtxt;
icqtxt_w&&us[i][3]=='1'&&(ops = icqtxt_w);
icqtxt_m&&us[i][3]=='0'&&(ops = icqtxt_m);[/color]
if([color=green]ops[status][/color]) wr(set_time+"<font size=2 color="+colornick+"><b>"+set_nick+":</b></font> <i>"+[color=green]ops[status][/color]+"</i><br>");
var obj=parent.users.document.getElementById("!"+nick);
while(obj.cells.length) obj.deleteCell(0);format(i,obj);
}}[/quote]
Либо меняем/дополняем участки отмеченные [color=green]зелёным[/color]
Переходим на фрейм участников ищем селектор [color=red]name=setstatus[/color]
убираем аккуратно его содержимое и ниже ставим скрипт
должно получиться так:
[quote]<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++) {
[color=blue]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)
};[/color]
sel.options.length = a + 1;
sel.options[a].text = ops[a].replace(/.*"(.*?)".*/gi,"$1");
sel.options[a].value = a;
}
</script>[/quote]
Отмеченное [color=blue]синим[/color] ставится опционально и дано просто для примера !!!
Если вы всё сделали правильно то у каждого пола будет свой селектор в фрейме участников и свои сообщения для лога чата о смене статуса.
458
ridz
[b]Вывод статусов ICQ в зависимости от пола в никлисте[/b] [color=blue](продолжение, начало смотреть в предыдущем посте)[/color]
[b]1.[/b]
Админка -=Модерация=- - Скрипты в чате- /* [Настройки - никлиста и статусов] */
Создать три массива картинок для бесполых (используем [b]stn2[/b]) для девушек [b]stn2_w[/b] для юношей [b]stn2_m[/b]
Пример:
[quote]/* Вывод статусов 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>';[/quote]
Не забудьте поменять ссылки на картинки.
[b]2.[/b] тамже в скриптах чата /* [Функции - формирования никлиста] */ /* Добавление ника в таблицу участников */
добавить [color=red]красное[/color]
[quote]if(stn[stat]==null) st=''; else st=stn[stat];
if(stn2[stat2]==null) icqst=''; else icqst=stn2[stat2];

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

mw=mw_n;
if(mw_u=='0') mw=mw_m;
if(mw_u=='1') mw=mw_w;[/quote]
458
ridz
[b]Антифлудер или пауза на отправку сообщений для незарегистрированных [/b]
Админка - -=Модерация=- Скрипты в чате - добавить
[quote]/* [Функции - общие] */
/* Пауза на отправку сообщений для незарегистрированных */
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)
};[/quote]
ниже /* [Функции - нижнего фрейма] */ добавить [color=red]ТОЛЬКО красное[/color]

[quote]/* Обрабатывает строку ввода текста для отправления */
var gettime=0;
var oldmsg="";
function msg_send(){
[color=red]if(regist != 1&&no_reg_time) return false;
regist != 1&&no_reg_timer([b]5[/b]);[/color]
var form=parent.chat.document.fmsg;....[/quote]
[b]5[/b] это величина паузы в секундах
458
ridz
[b]Вход в чат через 88 порт или обычно[/b]
добавить на титульник
[quote]<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>[/quote]
458
ridz
[b]Выделение сообщений любого ника в общем логе[/b]
В никлисте устанавливается кнопка в строке ника при нажатии на которую сообщения данного ника выделяются (в примере выделяется рамкой цвета ника)
Сама кнопка меняет своё изображение, поэтому вам понадобиться 2 небольших картинки выделено/ не выделено.
Скрипт состоит из 3 частей все три части в админке -=Модерация=- .Скрипты в чате
[b]1.[/b] Добавить в Функции - общие
[quote]/* [Функции - общие] */

/* Выделение сообщений */
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
};[/quote]
[b]2.[/b] /* [Функции - формирования никлиста] */ - добавить красное
[quote][color=red]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();\">";
[/color]
/* Добавление ячеек в таблицу */
tr.insertCell(0).innerHTML=set_privat;
tr.insertCell(1).innerHTML=set_nick[color=red]+set_mark[/color]; 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;
}[/quote]
[b]Примечание:[/b] переменную [b]set_mark[/b] можно добавить в любую из ячеек в нужное вам место.
[b]3.[/b] /* [Функция - вывода сообщений и команд] */ добавить красное
[quote]/* Вывод простого сообщения */
if(cmd==0) {
symbol=symbols[0];if(nick==mynick) symbol=symbols[1];if(tonick==mynick || text.split(" "+mynick+":").length>1) symbol=symbols[2];
[color=red]if(mark().indexOf(nick+'|') >= 0) symbol="[b]<p style='margin-top:5px; border:1px solid "+colornick+";'>[/b]";
[/color]
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);
}[/quote]
Примечание: оформить выделение [b]<p style='margin-top:5px; border:1px solid "+colornick+";'>[/b] можно на свой вкус, ориентируясь на
параметры symbols в /* [НАСТРОЙКИ] */ - /* Отметка сообщений: 0-обычные, 1-мои, 2-мне, 3-приват_мой, 4-приват_мне, 5-приват_мой2, 6-приват_мне2 */
P.S. Для лучшего выделения требуется переставить [b]symbol[/b] в строке [b]towr=set_time+symbol+set_nick+set_text+"<br>";
[/b] на первое место: [color=blue]towr=[color=red]symbol[/color]+set_time+set_nick+set_text+"<br>";
[/color]
458
ridz
[b]Музыка при входе в чат избранных ников[/b]
[b]1. [/b]Добавить в Функции - общие
[code]/* [Функции - общие] */
/* Музыка для любого ника входящего в чат */
var welcome = {
n: [],
get: function (a) {
for (var b = this.n.length; b--;) if (a.search(this.n[b]) != -1) return true;
return false
},
set: function (a) {
if (!a) return this.n = [];
for (var b = this.n.length, c = b; c--;) this.n[c] == a && this.n.splice(c, 1);
b == this.n.length && this.n.push(a);
return this.n
}
};[/code]
[b]2.[/b] /* [Функции - нижнего фрейма] */ -- /* Обрабатывает строку ввода текста для отправления */ - найдите строку
var msg=form.text0.value; и ниже добавьте
[quote]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;
};[/quote]
[b]3.[/b] /* [Функция - вывода сообщений и команд] */ добавить [color=red]красное[/color]
[quote]/* Вывод входа юзера в чат и добавление в нклист через 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);
[color=red]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">';[/color]
wr(set_time+"<font color=red>"+tadd+"</font><br>");
}
add(nick,colornick,st,mw,icon,status,inchat,time,room,love,clan);
}[/quote]
[b]Важно:[/b] слово ССЫЛКА вы должны заменить на прямую ссылку мп3 файла, писать ссылку без пробелов и кавычек!!!
Желательно небольшого размера и короткого времени звучания.
Использование: отправить сообщение - ник или часть ника оформленные специальными тегами , полученный ответ стереть -- повторная отправка того же самого отключит музыку для входа для данного ника.
отключить музыку для входа на все установленные ники можно отправив пустые теги.
[b]Пример:[/b] [welcome]ridz[/welcome] [welcome]рони[/welcome] установит музыку на вход для двух ников ,
[welcome]ridz[/welcome] отключит музыку для ridz , если звук был установлен ранее.
[welcome][/welcome] отключит музыку для всех входящих в чат.
Кнопка для вставки тегов - ставить в любое место
[quote]<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();">[/quote]
6600
admiral
[b]Вставка цитаты текста[/b]
Проверял на форуме, в гостевой или галереи.

[b]1.[/b] В вебфтп в корне создаем файл [b]paste_txt.js[/b] следующего содержания (В скрипте только надо удалить синее [b][color=blue]_[/color][/b], а то форум как цитату вставил 😀 так же скрипт приложил в конце сообщения ):
[quote]// определяем общую переменную, которая будет содержать выделенный текст
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[color=blue][b]_[/b][/color]te]" + txt_quote + "[/quo[color=blue][b]_[/b][/color]te]
\n";
}
}[/quote]
[b]2.[/b] В шаблон форума, гостевой, галереи перед </head> вставляем:
[quote]<script language="javascript" src="paste_txt.js"></script>[/quote]
[b]3.[/b] Ищем и добавляем [color=red]красное[/color]:
[b]а. На форуме:[/b]
[quote]/* Отображение сообщений в теме */
if(mynick && myid) mod+="<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a> [color=red]| <a onmouseover=\"copy_txt();\" href=\"javascript:paste_txt('txt_msg');\"><font class=low>Вставить цитату</font></a>[/color]";[/quote]
[quote]/* Отображение формы для создания тем, сообщений и их редактирования */
wr("<tr><td>Текст сообщения<br>"+tags+"<textarea style='width:100%;' rows=10 name=message class=text [color=red]id=\"txt_msg\"[/color]>"+editmessage+"</textarea><div id=smiles align=center></div>");[/quote]
[b]b. В гостевой:[/b]
[quote]/* Подготовка сообщений и ссылок */
mod+="<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a> [color=red]| <a onmouseover=\"copy_txt();\" href=\"javascript:paste_txt('txt_msg');\"><font class=low>Вставить цитату</font></a>[/color]";
[quote]<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;'[color=red] id="txt_msg"[/color]></TEXTAREA>[/quote]
[/quote]
[b]с. В галереи:[/b]
[quote]/* Печатает выбранную фотографию, коментарии и форму */
mod+="<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a> [color=red]| <a onmouseover=\"copy_txt();\" href=\"javascript:paste_txt('txt_msg');\"><font class=low>Вставить цитату</font></a>[/color]";[/quote]
[quote]/* Форма для коментариев к выбранной фотографии */
wr("<TEXTAREA name=message wrap=virtual rows=5 style='width:100%;' [color=red]id=\"txt_msg\"[/color]></TEXTAREA><div id=smiles> </div>");[/quote]
Ничего сложного, суть думаю понятна, возле стандартной кнопки [b]Цитировать[/b] появляется кнопка [b]Вставить цитату[/b],
которая вставляет в поле для ответа все, что выделено мышью в виде [b][quo te]Выделеный текст[/quo te]
[/b] ))
http://imgs.su/users/34/1304640939.zip
458
ridz
Вариант замены ссылки [color=blue]Цитировать[/color] на [color=red]КНОПКУ[/color] [b]Цитата целиком или выделенного[/b]
Для Гостевой, Форума, Галереи
Находим в соответствующих шаблонах функцию quote(num) и добавляем красное
[quote]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]);
[color=red]var a = window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text;
a && a !="" && (txt = a);[/color]
put("[qu_ote="+nick.replace(/\]/g,"]")+"]"+txt+"[/qu_ote]
");
}[/quote]
КОПИРОВАТЬ ТОЛЬКО КРАСНОЕ!!!
Затем ищем
[quote]"<a href=# onclick='quote("+i+"); return false;'><font class=low>Цитировать</font></a>"[/quote]
и меняем на
[quote]"<input type='button' class='ok' value='Цитата целиком или выделенного' onclick='quote("+i+")'/>"[/quote]
1 ... 3 4 5 6 7

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




© 2008-2020
Контакты | Группа | Privacy и Cookie | Правила