#101 2010-05-29 19:43:10

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

Re: Готовые решения для чатов

Вывод подарков из магазина в анкете с возможностью  постраничного перехода и скрытим/показом (основной вариант вывода подарков тут http://live-co.com/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>

Всё на скриншоте или в скрипте



532 x 331 - (33973 байт)

Неактивен

#102 2010-06-05 18:57:23

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

Re: Готовые решения для чатов

Скрытие разделитей по полу или статусу в никлисте при отсутсвии всех чатлан данного пола или статуса(для тех у кого стоит разделение никлиста http://live-co.com/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 2010-06-18 05:41:22

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

Re: Готовые решения для чатов

Автоматическая смена стиля внутри чата в указанные часы
Можно использовать для изменения дизайна чата в зависимости от времени суток (днём один дизайн, вечером другой , ночью третий )
Всего дизайнов можно установить 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 2010-06-18 05:50:36

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

Re: Готовые решения для чатов

Автоматическая смена картинки в зависимости от часа
В картинке прописать 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 2010-06-27 00:40:20

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

Re: Готовые решения для чатов

Автоматическая смена дизайна титульной страницы чата в зависимости от времени пользователя
Подготовить файлы с разными стилями 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 2010-07-03 19:55:03

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

Re: Готовые решения для чатов

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

<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 2010-07-28 16:31:56

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

Re: Готовые решения для чатов

Запрет на Ввод большего числа смайлов чем разрешено и длинные пропуски (для смайлов вида *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 2010-08-06 10:45:37

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

Re: Готовые решения для чатов

Функция сколько фраз написано вам пока вы молчали
Количество фраз отображается в названии (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 2010-08-19 13:05:50

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

Re: Готовые решения для чатов

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

<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>

Неактивен

Board footer

[ Generated in 0.030 seconds, 9 queries]