Форум обо всём | Тех потдержка

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум обо всём | Тех потдержка » Вопросы по оформлению форума » Новые возможности форума - скрипты


Новые возможности форума - скрипты

Сообщений 1 страница 28 из 28

1

Все скрипты предоставлены  Karpoff, Zebra, Bonum, SKEE  2005-2007 ©

Скрипт, запрещающий писать личные сообщения администратору простым пользователям

Код:
<script type="text/javascript">
var a=document.URL
if (a.indexOf("sendmessage")!=-1 && !document.getElementById("navadmin"))
{document.getElementsByName("submit") [0] .onclick=getIt}

function getIt()
{var b=document.getElementsByName("req_username") [0] .value
if (b=="Zebra") //вместо Зебры имя администратора
{
alert ("Вы не можете написать сообщение администратору")
return false}}

</script>

Вставлять в html-низ

0

2

Форма входа на форум (логин и пароль) в окне статуса

Код:
<script type="text/javascript">
var a =document.getElementById('pun-status').innerHTML
if (a.indexOf("Гость")!=-1)
{document.getElementById('pun-status').innerHTML="<div class='formal'>"+"<form id='login'"+" class='container'"+" method='post'"+" action='http://testingmyforum1.4bb.ru/login.php?action=in'"+" onsubmit='return my_form(this)'>"+"<fieldset><legend><span>Введите ваше имя и пароль ниже</span></legend><div class='fs-box inline'>"+"<input type='hidden'"+" name='form_sent'"+" value='1' />"+"<input type='hidden'"+" name='redirect_url'"+" value='index.php' />"+"<p class='inputfield required'>"+"<label for='fld1'>Имя <em>(Обязательно)</em></label><br />"+"<span class='input'>"+"<input type='text'"+" id='fld1'"+" name='req_username'"+" size='25'"+" maxlength='25' /></span></p>"+"<p class='inputfield required'>"+"<label for='fld2'>Пароль <em>(Обязательно)</em></label><br />"+"<span class='input'>"+"<input type='password'"+" id='fld2'"+" name='req_password'"+" size='16'"+" maxlength='16' /></span></p></div></fieldset>"+"<p class='formsubmit'>"+"<input type='submit'"+" class='button'"+" name='login'"+" value='Войти' /></p></form></div>"}
function my_form(the_form)
{
var element_names = new Object()
    element_names["req_username"] = "Имя"
    element_names["req_password"] = "Пароль"

if (document.all || document.getElementById)
{
    for (i = 0; i < the_form.length; ++i)
    {
    var elem = the_form.elements[i]
    if (elem.name && elem.name.substring(0, 4) == "req_")
    {
        if (elem.type && (elem.type=="text" || elem.type=="textarea" || elem.type=="password" || elem.type=="file") && elem.value=='')
        {
        alert("\"" + element_names[elem.name] + "\" это поле обязательно для заполнения в этой форме.")
        elem.focus()
        return false
        }
    }
    }
}

return true
}
</script>

0

3

Запрет на установку аватара и подписи отдельным пользователям

Код:
<script type="text/javascript">
var a =document.URL
var b=document.getElementById('pun-status').innerHTML
if (b.indexOf("Алика")!=-1)
{
if ((a.indexOf("signature")!=-1)||(a.indexOf("section=avatar")!=-1))
{document.getElementsByName('update')[0].onclick=noChange}
else if (a.indexOf("upload-avatar")!=-1)
{document.getElementsByName('urload')[0].onclick=noChange}}
function noChange()
{alert ("Пошел нафиг")
return false}
</script>

Вместо ника "Алика тот самый ник, кому хотите запретить

0

4

Скрипт цветовыделения групп

Код:
<script type="text/javascript">
var arr=document.links
var arr1=new Array ("Admin", "Татьяна")
var arr2=new Array ("Ruslan", "WebMaster")
for (x in arr)
{for (y in arr1)
{for (j in arr2)
{if (arr[x].innerHTML==arr1[y])
{var b=arr[x].innerHTML
arr[x].innerHTML="<font color='red'>"+b+"</font>"}
else if (arr[x].innerHTML==arr2[j])
{var c=arr[x].innerHTML
arr[x].innerHTML="<font color='#0000FF'>"+c+"</font>"}}}}
</script>

var arr1=new Array ("Admin", "Татьяна") - Админы(красны цвет)
var arr2=new Array ("Ruslan", "WebMaster") - Модеры(розовый цвет)

0

5

Запрет перехода по всем ссылкам кроме "Вход", "Выход"

Код:
<script language="JavaScript">
var a = document.links
var isadmin=0

if(document.getElementById("navlogout")){
str=document.getElementById("navprofile").getElementsByTagName("a")[0].href
str=str.substring(str.indexOf("=")+1)
if (str=="2" || str=="XX")
    isadmin=1
}

if(isadmin==0){
var logout
if(li=document.getElementById("navlogout"))
    logout=li.getElementsByTagName("a")[0].href

for (i in a)
    a[i].href="javascript:alert('Вы не можете перейти по этой ссылке')"

if(li=document.getElementById("navlogin"))
    li.getElementsByTagName("a")[0].href="login.php"
if(li=document.getElementById("navlogout"))
    li.getElementsByTagName("a")[0].href=logout
}
</script>

Вместо ХХ ставить id второго Админа
Вставлять в ХТМЛ низ.

Полезно ставить при проведении профилактики форума.

0

6

Всплывающее окно-раздражалка для незарегестрированных
Само всплывает и появляется через определенные промежутки врмени.

Вместо текста Зарегистрируйся блин можно вписать люой текст, в том числе и HTML поддерживается.
Вместо 3000- интервал который окно держится до исчезновения и через скока появляется снова
в миллесекундах
Код:

Код:
<script type="text/javascript">
var t
var freak
function freakOut()
{freak=window.open("", "_blank", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=300, height=300")
freak.document.write ("Зарегистрируйся блин")  
t=setTimeout ("freakIn()", 3000)                        
}
function freakIn()
{freak.close()
t=setTimeout ("freakOut()", 3000)}   
if (document.getElementById('pun-status').innerHTML.indexOf("Гость")!=-1)
{freakOut()}
</script>

0

7

Cкрипт уведомления о новом личном письме на форуме

Он показывает не всплывающее окно, а просто div в котором также есть ссылка перехода к странице сообщений.
В нём нужно указать адрес форума (выделено красным) БЕЗ WWW вставляйте в ХТМЛ-низ.

Код:
<script type="text/javascript">
forum = "http://karpoff.5bb.ru"

str = document.getElementById("navpm").innerHTML
loc = new String(document.location)

if( (str.indexOf("(") != -1) && document.referrer.indexOf(forum)==-1 && loc.indexOf('messages.php')==-1)
{  
  count = parseInt(str.substring(str.indexOf("(")+1,str.indexOf(")")))

  if (count==1) text="У вас есть 1 новое сообщение"
  else if (count>1 && count<5) text="У вас есть " +count+" новых сообщения"
  else text="У вас есть " +count+" новых сообщений"

  msg =  "<div id=\"new-mes\" class=\"container\" style=\"position: absolute; z-index=2; left: 40%;\">"
  msg += text
  msg += "<br><a href=\"\" onclick=\"document.location.replace('messages.php'); document.getElementById('new-mes').style.display='none';return false;\">Посмотреть личные сообщения</a>"
  msg +="<br><a href=\"\" onclick=\"document.getElementById('new-mes').style.display='none'; return false\">Закрыть окно</a>\r\n"  
  msg += "</div>"

  document.getElementById("pun-status").innerHTML += msg
}
</script>

Незабываем сменить адрес форума на свой адрес

0

8

Запрет перехода по ссылке Активные

Код:
  <script type="text/javascript">
function noWatch()
{alert ("Вам запрещено смотреть  эту ссылку")}
var a =document.links
for (x in a)
{if (a[x].innerHTML=="Активны")
{a[x].href="javascript: noWatch();"}}
</script>

Чтобы в скрипте админы могли все же перейти по ссылке.

Код:
 <script type="text/javascript">
function noWatch()
{alert ("Вам запрещено смотреть  эту ссылку")}
var a =document.links
var b=document.getElementById('pun-status').innerHTML
for (x in a)
{if ((a[x].innerHTML=="Активны")&&(b.indexOf("Zebra")==-1)&&(b.indexOf("Admin")==-1))
{a[x].href="javascript: noWatch();"}}
</script>

Вместо Dimon и Admin - ники твоих администраторов.

Код:
  <script type="text/javascript">
var a=document.URL
var b=document.referrer
var c=document.getElementById('pun-status').innerHTML
if ((c.indexOf("Dimon")==-1)&&(c.indexOf("Admin")==-1))
{
if (a=="адрес онлайна")
{
window.open (b, "_self")}}
</script>

0

9

Скрипт меню опций в дополнительном поле.

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

1.Создаете дополнительное поле как обычно с нужным названием и установками

2. Вниз вставлем:

Код:
<script type="text/javascript">
var cont=document.getElementsByTagName("legend")
if (cont[0].innerHTML.indexOf("Укажите дополнительные данные")!=-1)
{document.getElementById('fld1').style.display="none"
var form=document.getElementById('profile8').innerHTML
var init=document.getElementById('fld1').value
document.getElementById('profile8').innerHTML=form.substring(0, (form.indexOf("fld1")-11))+"<select id='subst'>"+"<option value ='колдун'>колдун</option>"+"<option value ='вампир'>вампир</option>"+"<option value='ведьма'>ведьма</option>"+...+"</select>"+form.substr((form.indexOf("fld1")-11))
document.getElementById('subst').value=document.getElementById('fld1').value
document.getElementsByName('update')[0].onclick=transForm}
function transForm()
{document.getElementById('fld1').value=document.getElementById('subst').value
return true}

</script>

Вместо синих слов - вставляете свои ранги-опции. Чтобы увеличить их количество размножайте в скрипте этот блок
"<option value='ведьма'>ведьма</option>" вместо красного троеточия (если рангов больше не надо. тоеточие выкиньте), соединяя их между собой плюсами.
Если речь идет о втором посчету, а не опервом доп поле в профиле, в скрипте ВЕЗДЕ fld1 замените на fld2

0

10

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

Код:

Код:
 <script type="text/javascript">
function getArr()
{var x=0
var arr=new Array(0)
var arr1=document.getElementsByTagName("table")
for (x in arr1)
{while (x<=5)
{
if (arr1[x].rows[0].cells.length==4)
{var z=arr1[x].rows
var j=0
for (j=0; j<=(z.length-1); j++)
{arr.splice(0, 0, z[j].cells[3].innerHTML)
}}
x=x+1}}
return arr}
var d=new Date()
var c=d.getMonth()+1
var a=d.getDate()
var today=c+"."+a
var g=new Date()
var ops=d.getTime()-(24*60*60*1000)
g.setTime(ops)
var yes=(g.getMonth()+1)+"."+g.getDate()
function getIt()
{
var brr=getArr()
var i=0
var crr=new Array(0)
for (i in brr)
{if ((i<=(brr.length -1))&&(brr[i].indexOf(" - ") != -1))
{if (brr[i].substr(brr[i].indexOf(" - ")-14, 5)=="годня")
{crr.splice (0, 0, today)}
else if (brr[i].substr(brr[i].indexOf(" - ")-14, 3)=="Вче")
{crr.splice (0, 0, yes)}
else
{
crr.splice (0, 0, brr[i].substr(brr[i].indexOf(" - ")-14, 2)+"."+brr[i].substr(brr[i].indexOf(" - ")-11, 2))}
i=i+1}}
return crr}
var now=getIt()
function sortNumber(a, b)
{
return a - b
}
var ok=now.sort(sortNumber)
var wait=ok.pop()
var h=new Date()
h.setUTCFullYear (2006, wait.substring (0, wait.indexOf(".")) -1, wait.substr (wait.indexOf(".")+1))
var hih=Math.round((d.getTime()-h.getTime())/(24*60*60*1000))
function countIt()
{
alert(20-hih)}
</script>
<input type="button" value="сlosed forum" onclick="countIt()" />
{
alert(20-hih)}
</script>
<input type="button" value="сlosed forum" onclick="countIt()" />

0

11

Замена всех ссылок под сообщением на кнопки (ЛС, профиль, мыло, цитировать, редактировать, удалить)

Код:
<script type="text/javascript">
var trr=document.getElementsByTagName("div")
var fi=0
for (fi=0; fi<=(trr.length-1);fi++)
{if (trr[fi].className=="post-links")
{var drr=trr[fi].getElementsByTagName("a")
drr[0].innerHTML="<img src='картинка профиль'/>"
drr[1].innerHTML="<img src='картинка лс' />"
var er=2
for (er=2; er<=(drr.length-1); er++)
{if (drr[er].innerHTML.indexOf("E-mail")!=-1)
{drr[er].innerHTML="<img src='картинка мыла' />"}
else if (drr[er].innerHTML.indexOf("Вебсайт")!=-1)
{drr[er].innerHTML="<img src='картинка вебсайт'  />"}
else if (drr[er].innerHTML.indexOf("Цитировать")!=-1)
{drr[er].innerHTML="<img src='картинка цитировать'/>"}
else if (drr[er].innerHTML.indexOf("Редактировать")!=-1)
{drr[er].innerHTML="<img src='картинка правка' />"}
else if (drr[er].innerHTML.indexOf("Удалить")!=-1)
{drr[er].innerHTML="<img src='картинка удалить' />"}
}}}
</script>

0

12

Модификация BBCode

Код:
<script language='JavaScript'>
if (document.URL.indexOf("viewtopic.php")!=-1)
 {
  var Disloc=document.getElementById("pun-main").getElementsByTagName("div");
  var NewBBCodeO = new Array ("sub", "sup");
  var IntD=0;
  var IntCO=0;
  var Indikator=0;

  for (IntD in Disloc)
  {while (IntD<=(Disloc.length -1))
   {for (IntCO in NewBBCodeO)
   {while (IntCO<=(NewBBCodeO.length-1))
    {if (Disloc[IntD].innerHTML.indexOf("["+NewBBCodeO[IntCO]+"]")!= -1)
     {
      Disloc[IntD].innerHTML=Disloc[IntD].innerHTML.substring (0, (Disloc[IntD].innerHTML.indexOf(NewBBCodeO[IntCO])-1))+"<"+NewBBCodeO[IntCO]+">"+Disloc[IntD].innerHTML.substr ((Disloc[IntD].innerHTML.indexOf(NewBBCodeO[IntCO])+NewBBCodeO[IntCO].length+1));
      Indikator=Indikator+1;
     };
     IntCO=IntCO+1;
    }};
    IntD=IntD+1;
  }};

  IntD=0;
  IntCO=0;
  for (IntD in Disloc)
  {while (IntD<=(Disloc.length -1))
   {for (IntCO in NewBBCodeO)
   {while (IntCO<=(NewBBCodeO.length-1))
    {if (Disloc[IntD].innerHTML.indexOf("[/"+NewBBCodeO[IntCO]+"]")!= -1)
     {
      Disloc[IntD].innerHTML=Disloc[IntD].innerHTML.substring (0, (Disloc[IntD].innerHTML.indexOf(NewBBCodeO[IntCO])-2))+"</"+NewBBCodeO[IntCO]+">"+Disloc[IntD].innerHTML.substr ((Disloc[IntD].innerHTML.indexOf(NewBBCodeO[IntCO])+NewBBCodeO[IntCO].length+1));
      Indikator=Indikator-1;
     };
     if (Indikator>0)
      {while (Indikator>0) {
        Disloc[IntD].InnerHTML=Disloc[IntD].InnerHTML+"</"+NewBBCodeO[IntCO]+">";
        Indikator=Indikator-1;
        };};
     IntCO=IntCO+1;
    }};
    IntD=IntD+1;
  }};
 };
</script>

С помощью скрипта можно добавлять новые тэги BBCode, эквивалентные HTML кодам.
В данном случае - если в сообщении написать текст, то будет надстрочный регистр, а если текст - подстрочный. То есть можно писать возведение в степень и химические формулы.
Работает в ИЭ, в Опере - нет, вставлять в ХТМЛ низ.
Ну свои коды тоже можно, естественно, добавлять в массив NewBBCodeO, только без параметров.
Можно так же в "HTML в форме ответа" сделать кнопки форматирования.
Пример:

javascript:insert_text('[код]','[/код]')

0

13

Профилактика форума

Код:
 <script type="text/javascript">
if ((document.URL.indexOf("dimon.spybb.ru")!=-1)&&(document.title!="Форум технической поддержки - Форум")&&(document.getElementById('pun-status').innerHTML.indexOf('Dimon')==-1))
{window.open ("http://dimon.spybb.ru", "_self")}
</script>

Вместо dimon.spybb.ru - свой адрес
Вместо Форум технической поддержки - название своего форума
Вместо Dimon - ваш админский ник

0

14

Расположение сообщений на странице от более позднего (вверху) к более раннему (внизу)

Код:
<script type="text/javascript">
var divs=document.getElementById('pun-main')
var posts=divs.getElementsByTagName("div")
var qaz=new Array(0)
var qw=0
function getPosts()
{for (qw=0; qw<=(posts.length-1); qw++)
{if (posts[qw].innerHTML.indexOf("permalink")!=-1)
{qaz.splice (0, 0, posts[qw].outerHTML)}}
return qaz
}

if (document.URL.indexOf("viewtopic")!=-1)
{var po=getPosts().slice(0, ((getPosts().length/2)-1))
document.getElementById('pun-main').innerHTML=document.getElementById('pun-main').innerHTML.substring(0, (document.getElementById('pun-main').innerHTML.indexOf("item1")-17))+po.join(" ")+"</div>"+document.getElementById('pun-main').innerHTML.substr((document.getElementById('pun-main').innerHTML.indexOf("modmenu")-12))}
</script>

Вставлять строго в HTML низ. В Html под формой ответа вызывает ошибку эксплорера.

0

15

Очень многим не нравится то, что просмотрев результаты опроса, в нём нельзя голосовать. Я считаю, что это правильно, но пользователи не зная об этом смотрят результаты и потом кричатся мол почему я не могу проголосовать....

Так вот решение данной проблемы. Как всегда через скрипты, вставлять в ХТМЛ - низ

Код:
<script language="JavaScript">

str=document.URL
page=str.substring(str.lastIndexOf('/')+1)

if( page.substring(0,9)=="viewtopic") {
  arr = document.getElementsByTagName("input")
  i=0
  while( i<20 ) {
if(arr[i].name=="null")
{
    arr[i].onclick = IsShow
    break
}
i++
  }
}
function IsShow(){
return confirm("Вы действительно хотите посмотреть результаты опроса?\nЕсли Вы это сделаете то не сможете в нём проголосовать.")
}
</script>

0

16

Убираем пользователя из списка модеров

Под каждым форумом есть список его модераторов. Этот скрипт убирает пользователя из этого списка (только из списка. Права остаются)

Код:
<script>
var supermod = new Array("karpoff","Zebra")

var mod=document.getElementsByTagName("span")
var str
for(x in mod) if(mod[x].className=="modlist"){
for(y in supermod)
    if((pos=mod[x].innerHTML.indexOf(supermod[y]))!=-1)
        mod[x].innerHTML=remName(mod[x].innerHTML,pos)
}

function remName(str,pos){
var pos1=str.indexOf("<A href"),pos2=str.indexOf("<A href",pos1+1)
if(pos2==-1) return("")

while(pos>pos2 && pos2!=-1){
    pos1=pos2
    pos2=str.indexOf("<A href",pos1+1)
}
if(pos2==-1){
    pos2=str.length-1
    pos1-=2
} 
return (str.substring(0,pos1)+str.substring(pos2,str.length))
}
</script>

в строке
var supermod = new Array("karpoff","Zebra")
через запятую перечисляете столько пользователей, сколько душе угодно

0

17

Индивидуальный статус картинкой
Как мы знаем, в поле статуса html вставлять нельзя.  Однако заменить статус картинкой все же можно. Прописываем у нужного человек в статусе индивидуальный стаутс буквами. Здесь разберем пример с заменой стаусов "координатор" и "заслуженный".
Далее в html Низ или под форму ответа вставляем.

Код:
<script type="text/javascript">
var authors=document.getElementsByTagName("ul")
var feg=0
for (feg=0; feg<=(authors.length-1); feg++)
{if (authors[feg].innerHTML.indexOf("pa-author")!=-1)
{
if (authors[feg].getElementsByTagName("li")[1].innerHTML.indexOf("Координатор")!=-1)
{authors[feg].getElementsByTagName("li")[1].innerHTML="<img src='http://help.mybb.ru/uploads/help/303_sm.jpg' />"}
else if (authors[feg].getElementsByTagName("li")[1].innerHTML.indexOf("Заслуженный")!=-1)
{authors[feg].getElementsByTagName("li")[1].innerHTML="<img src='http://help.mybb.ru/uploads/help/303_zas.jpg' />"}}}
</script>

Принцип работы, думаю, объяснуть не стоит. Итак понятен. Часть жирным шрифтом - произвольная: ее можно как выкинуть, если заменяемый статус тока один, так и размножить столько раз, сколько вы будете заменять статусов.

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

0

18

Функция Описание темы (аналог IPBшной)

Код:
<script type="text/javascript">
var theme=document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML
if (theme.indexOf("&gt;&gt;")!=-1)
{if (theme.indexOf("Редактирование")!=-1)
{document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML=theme.substring(0, theme.indexOf("&gt;&gt;"))+" - Редактирование сообщения</span>"}
else
{document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML=theme.substring(0, theme.indexOf("&gt;&gt;"))+"</span>"}}
</script>

<script type="text/javascript">
var descs=document.getElementsByTagName("td")
var z=0
for (z=0; z<=(descs.length-1); z++)
{if (descs[z].innerHTML.indexOf("&gt;&gt;")!=-1)
{if (descs[z].className=="tcl")
{descs[z].innerHTML=descs[z].innerHTML.substring(0, descs[z].innerHTML.indexOf("&gt;&gt;"))+"</a><br />"+"<font size='1'>"+descs[z].innerHTML.substring((descs[z].innerHTML.indexOf("&gt;&gt;")+8), (descs[z].innerHTML.toLowerCase().indexOf("</a>")))+"</font>"+descs[z].innerHTML.substr((descs[z].innerHTML.toLowerCase().indexOf("</a>")+4))
}
else
{descs[z].getElementsByTagName("a")[0].innerHTML=descs[z].getElementsByTagName("a")[0].innerHTML.substring(0, descs[z].getElementsByTagName("a")[0].innerHTML.indexOf("&gt;"))
}}}
</script>

<script type="text/javascript">
if (document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML.indexOf("Начать новую")!=-1)
{document.getElementsByTagName("form")[0].innerHTML=document.getElementsByTagName("form")[0].innerHTML.substring(0, (document.getElementsByTagName("form")[0].innerHTML.indexOf("areafield")-10))+"<p><label for='descr'>Описание</label><br />"+"<span class='input'>"+"<input id='descr'"+" type='text'"+" size='80'"+" maxlength='35' /></span></p>"+document.getElementsByTagName("form")[0].innerHTML.substr( (document.getElementsByTagName("form")[0].innerHTML.indexOf("areafield")-10))
if (document.getElementById('fld3').value.indexOf(">>")!=-1)
{
document.getElementById('descr').value=document.getElementById('fld3').value.substr(document.getElementById('fld3').value.indexOf(">>")+2)
document.getElementById('fld3').value=document.getElementById('fld3').value.substring(0, document.getElementById('fld3').value.indexOf(">>"))
}

document.getElementsByName("submit")[0].onclick=addDesc
document.getElementsByName("preview")[0].onclick=addDesc}
function addDesc()
{document.getElementById('fld3').value=document.getElementById('fld3').value+">>"+document.getElementById('descr').value
return true}
</script>

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

Там где в скрипте жирная единица - можете менять размер шрифта описания.

0

19

Кнопки "в кириллицу" и "в латиницу"

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

Код:
<script type="text/javascript">
var latin=("q-w-e-r-t-y-u-i-o-p-]-a-s-d-f-g-h-j-k-l-;-'-z-x-c-v-b-n-m-,-Q-W-E-R-T-Y-U-I-O-P-]-A-S-D-F-G-H-J-K-L-;-'-Z-X-C-V-B-N-M-,").split("-")
var ciril=("й-ц-у-к-е-н-г-ш-щ-з-ъ-ф-ы-в-а-п-р-о-л-д-ж-э-я-ч-с-м-и-т-ь-б-Й-Ц-У-К-Е-Н-Г-Ш-Щ-З-Ъ-Ф-Ы-В-А-П-Р-О-Л-Д-Ж-Э-Я-Ч-С-М-И-Т-Ь-Б").split("-")
function advert()
{
var val=document.selection.createRange()
var val1=val.text
var qw=0
for(qw=0; qw<=(latin.length-1); qw++)
{var latin1="/"+latin[qw]+"/g"
val1=val1.replace(eval(latin1), ciril[qw])}
val.text=val1}
function advert1()
{
var val=document.selection.createRange()
var val1=val.text
var qw=0
for(qw=0; qw<=(latin.length-1); qw++)
{var ciril1="/"+ciril[qw]+"/g"
val1=val1.replace(eval(ciril1), latin[qw])}
val.text=val1}
</script>
<input type="button" value="В кириллицу" onclick="advert()" />
<input type="button" value="В латиницу" onclick="advert1()" />

Буква ю и латинская точка изъяты из скрипта неслучайно.

0

20

Скрипт соврачивания объявления

СОХРАНЯЕТ ДЕЙСТВИЕ ПРИ ПЕРЕХОДЕ НА ДРУГИЕ СТРАНИцы (в осле, лисе, и опере)

Код:
<script type="text/javascript">
document.getElementById('pun-announcement').getElementsByTagName("div")[0].id="annbody"
function lookCook()
{
if (document.cookie.indexOf("announce")!=-1)
{var an1=document.cookie.substr(document.cookie.indexOf("announce"))
var an=an1.substr(an1.indexOf("id")+2, 2)
if (an=="op")
{document.getElementById('annbody').style.display="block"
var knopka="Скрыть объявление"}
else if (an=="cl")
{document.getElementById('annbody').style.display="none"
var knopka="Показать объявление"}}
else if (document.cookie.indexOf("announce")==-1)
{document.getElementById('annbody').style.display="block"
var knopka="Скрыть объявление"}
document.getElementById('pun-announcement').getElementsByTagName("h2")[0].innerHTML+="<div align='right'>"+"<input type='button'"+" id='hider'"+" value='"+knopka+"' "+"onclick='hideAnn() ; wCook()' /></div>"}

lookCook()

function hideAnn()
{
if (document.getElementById('annbody').style.display!="none")
{document.getElementById('annbody').style.display="none"
document.getElementById('hider').value="Показать объявление"}
else
{document.getElementById('annbody').style.display="block"
document.getElementById('hider').value="Скрыть объявление"}
}

function wCook()
{
var ann="announce=id"
if (document.getElementById('annbody').style.display!="none")
{ann+="op"}
else 
{ann+="cl"}
var d=new Date()
d.setDate(d.getDate()+1)
ann+=";expires="+d.toGMTString()
document.cookie=ann}


</script>

0

21

Разделение важных и обычных тем на блоки

Код:
<script type="text/javascript">
if (document.URL.indexOf("viewforum")!=-1)
{var trs=document.getElementById('pun-main').getElementsByTagName("table")[0].rows
var io=1
for (io=1; io<=(trs.length-1); io++)
{if ((trs[io].className.indexOf("isticky")!=-1)&&(io==1))
{var portant=document.getElementById('pun-main').getElementsByTagName("table")[0].insertRow(1)
var im=portant.insertCell(0)
im.innerHTML="Важные темы"
im.style.color="#0000FF"
im.style.backgroundColor="#FFFFFF"
im.colSpan="4"}
else if ((trs[io].className.indexOf("isticky")!=-1)&&(trs[io+1].className.indexOf('isticky')==-1))
{var normal=document.getElementById('pun-main').getElementsByTagName("table")[0].insertRow(io+1)
var normal1=normal.insertCell(0)
normal1.innerHTML="Темы форума"
normal1.style.color="#0000FF"
normal1.style.backgroundColor="#FFFFFF"
normal1.colSpan="4"
}}}
</script>

im.style.backgroundColor="#FFFFFF"
normal1.style.backgroundColor="#FFFFFF" цвет фона строк ВАжные темы и Темы форума

normal1.style.color="#0000FF"
im.style.color="#0000FF"  цвет шрифта в этих строках.

0

22

Массовое удаление пользователей, не имеющих  сообщений
Кому и для чего это нужно? Исключительно ленивым, тем у кого слишком много ненужны пльзователей  выискивать и удалять их вручную слишком долго и муторно.
Для его это НЕ нужно?Для экономии траффикак. Ибо все страницы на которых вам пришлось бы побывать вручную открываться БУДУТ. Только это будет очень быстро и без вашей помощи.

В html низ вставляем

Код:
<script type="text/javascript">
var myforum="durak.3bb.ru"
var myforum1="http://"+myforum+"/profile.php?id=2"
if (document.getElementById('navpropfile').getElementsByTagName("a")[0].href!=myforum1)
{document.getElementById('massdeleter').style.display="none"}
document.getElementsByTagName("body")[0].onkeydown=stopAll
function stopAll()
{document.cookie="zebra=nefiga"}
if (document.cookie.indexOf("zebra=neutral")!=-1)
{ if (document.URL.indexOf("userlist.php")==-1)
{user()}
}}
var myforum2="http://"+myforum+"/userlist.php?show_group=-1&sort_by=num_posts&sort_dir=ASC"

function user()
{var windower=window.open(myforum2, "_self")
var users=document.getElementById('pun-main').getElementsByTagName("table")[0].rows
if ((users[1].getElementsByTagName("td")[3].innerHTML)*1==0)
{var locat="http://"+myforum+"/profile.php?section=admin&"+users[1].getElementsByTagName("a")[0].href.substr(users[1].getElementsByTagName("a")[0].href.indexOf("id="))+"&action=foo"
document.cookie="zebra=delete"
var windower=window.open(locat, "_self")}
else
{document.cookie="zebra=nefiga"}}


if ((document.cookie.indexOf("zebra=delete")!=-1)&&(document.URL.indexOf("action=foo")!=-1))
{if (!document.getElementsByName("delete_user_comply")[0])
{document.getElementsByName("delete_user")[0].click()}
else
{document.getElementById('fld1').click() 
document.getElementsByName("delete_user_comply")[0].click()
document.cookie="zebra=neutral"
}
}
</script>
<input type="button" value="Удалить лишних" onclick="user()" id="massdeleter" />

Вместо durak.3bb.ru - ваш адрес форума
document.getElementById('fld1').click() эту строчку оставляем, если хотим чтобы сообщения удаляемых пользоватеолей остались. Если их надо тооже удалить - убираем.

Кнопка Удалить лишних видна толкьо главному администратору. Принажатии на нее начнут мелькать окна. Скорость мелькания зависит от скорости вашего интернета, но по-любому быстро.

Опасен ли скрипт, и чем это все грозит?
По больщому счету скрипт абсолютно безопасен, если
1. если вы за каким-то фигом не пойдете подделывать свои куки (и если вообще умеете это делать)
2.Удалять пользователей в независимости от скрипта может только Администратор. Поэжтому пока ваш аккакунт не взломалиь вам ничего не грозит. А если взломают, то их удалят и так.

Что делать если...
Я разнервничался, я вообще-то поторопился и никого удалять не хочу, А чего это так многт мелькает, Я вообще жалею , что это затеял,у меня внезапная паника и т.д.

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

нажмите на любую букву на клавиатуре.

Это прервет мелькание и удаление.

0

23

Скрытия Админского ника или пребывание Админа на форуме

Код:
<script type="text/javascript">
var who=document.getElementById('pun-status').innerHTML
var whi=document.getElementsByTagName("tr")
var s=0
if (document.URL=="http://forum.mybb.ru/online.php")
{for (s=0; s<=(whi.length-1);s++)
{if ((whi[s].innerHTML.indexOf("Zebra")!=-1)||(whi[s].innerHTML.indexOf("Artefact")!=-1))
{whi[s].style.display="none"}}}
</script>
<script type="text/javascript">
var def=document.getElementById('onlinelist')
var def1=def.getElementsByTagName("a")
for (f in def1)
{if ((def1[f].innerHTML=="Zebra")||(def1[f].innerHTML=="Artefact"))
{def1[f].style.display="none"}}
</script>

Рассчитан для двух Администраторов.
Вместо выделенного жирным вставляете свои данные и вуаля Вы пропадаете с форума,  Вас и нету вроде вовсе.
Скрипт ставится в ХТМЛ-низ.... Работает хорошо под Эксплорер под другие браузеры не проверял.
Увы не на всех форумах может сработать скрытия ника Админского, но вот скрытия где находится Админ работает Стабильно

0

24

Индикация новых сообщений

Код:

Код:
<script type="text/javascript">
var nrisunok="http://sewyltra.5bb.ru/uploads/sewyltra/2_new.gif";
var orisunok="http://sewyltra.5bb.ru/uploads/sewyltra/2_old.gif";

if( (document.getElementById("navpm").innerHTML.indexOf("(") != -1))
{ 
document.getElementById("navpm").innerHTML="<img src='"+nrisunok+"'> "+document.getElementById("navpm").innerHTML;
}
else
{
document.getElementById("navpm").innerHTML="<img src='"+orisunok+"'> "+document.getElementById("navpm").innerHTML;
};
</script>

Если есть новые ЛС, то в меню перед пунктом "Сообщения" отображается один рисунок, если нет - другой.

0

25

Сделать все ссылки в сообщениях невидимыми для гостей

Код:
<script type="text/javascript">
if (!document.getElementById('navprofile'))
{
var posti=document.getElementById("pun-main").getElementsByTagName("div")
var oj=0
for (oj=0; oj<=(posti.length-1); oj++)
{if (posti[oj].className=="post-content")
{posti[oj].innerHTML=posti[oj].innerHTML.toLowerCase().replace(/<a href/g, "<font color='red'>Зарегься чтобы увидеть ссылки</font><a style='display: none;' href")}}
}
</script>

0

26

Замена "мужской/женский" (пол) на картинки

Код:
<script type="text/javascript">
var sex=document.getElementById('pun-main').getElementsByTagName("li")
var sx=0
for (sx=0; sx<=(sex.length-1); sx++)
{if (sex[sx].className=="pa-sex")
{if (sex[sx].innerHTML.indexOf("Мужской")!=-1)
{sex[sx].innerHTML="Пол: "+"<img src='мужская картинка' />"}
else if (sex[sx].innerHTML.indexOf("Женский")!=-1)
{sex[sx].innerHTML="Пол: "+"<img src='женская картинка' />"}
}}
</script>

0

27

Подпись по умолчанию тем, у кого её нет

Код:
<script type="text/javascript">
if (document.URL.indexOf("viewtopic")!=-1)
{var sigs=document.getElementById('pun-main').getElementsByTagName("div")
var v=0
for (v=0; v<=(sigs.length-1); v++)
{if (sigs[v].className=="post-content")
{if (sigs[v].innerHTML.toLowerCase().indexOf("<span>подпись автора</span>")==-1)
{sigs[v].innerHTML=sigs[v].innerHTML+"<dl class='post-sig'><dt><span>Подпись автора</span></dt><dd><p>"+"Ваш текст по умолчанию"+"</p></dd></dl>"}}}}
</script>

0

28

MP3 плеер
Идея Usher'а

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

Способ первый:
Существует сайт http://boomp3.com/ На его главной странице вы можете обнаружить несколько плееров, которые поддерживают один музыкальный файл. Скрипт заключается в том, что при нажатии на картинку (её создание будет описано в дальнейшем) будет открываться всплывающее окно, в котором будет неограниченное количество вот такх вот плееров с разными музыкальными композициями:
Итак, начнём создание:
a) Скопируйте в влюбое место (html верх, низ) вот этот скрипт:

<script language="JavaScript">
var mywin;
function openim(wi,he,path,name)
{
  if(mywin!=null&&!mywin.closed)
   mywin.close();
var w =parseInt(wi)+12;
var h =parseInt(he)+60;
var tex="<center><object width='200' height='20'><param name='movie' value='http://static.boomp3.com/player.swf?id=444928a6b818'></param><param name='wmode' value='transparent'></param><embed src='http://static.boomp3.com/player.swf?id=444928a6b818' type='application/x-shockwave-flash' wmode='transparent' width='200' height='20'></embed></object></center>";

mywin=open('','example','scrollbars=1,resizable=0,width=250,height=225');
mywin.document.open();
var md=mywin.document;
md.write(tex);
md.close();
mywin.focus();
}
</script>
где, выделенный текст - это код плеера. У каждого плеера свой код... Чтобы его увидеть вам необходимо воспроизвести нужную вам композицию, а затем нажать на появившуюся кнопку More. Откроется окно с подробной информацией об файле. На ней же вы сможете найти код плеера. Как вы уже поняли его нужно вставлять вместо жирного текста в скрипте (который расположен выше), но с небольшой поправочкой - все кавычки " нужно заменить на опостроф '
вместо жирного текста можно втавлять неограниченно большое количество плееров разделяя их этим тэгом <br><br>

б) теперь вставляем этот html туда, где мы хотим видеть картинку, при нажатии на которую открывается всплывающее окно с плеерами:

<img src="http://rnb.4bb.ru/uploads/rnb/2_play.jpg" title="Открыть mp3-player" align="absmiddle" alt="mp3" onclick="openim('cursor:pointer')">  » MP3 Player
естественно вы ставите нужную вам картинку вместо моей

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

Способ второй:
Этот способ более требователен... Вам нужен будет сайт на который вы сможете залить файлы (на файлообменниках не работает) Такой сайт можно создать на http://by.ru или http://[реклама].ru либо на другом
Для начала скачайте вот этот архив: http://rnb.p0.ru/mp3_player.rar
В нём находятся 2 файла: mp3_player.swf (это и есть сам плеер) и playlist.mpl (это плейлист, который может содеажать как ссылки к mp3 файлам, так и ссылки к радиостанциям)
а) Для начала откройте playlist.pls любым текстовым редактором (например блакнот)
В этом файле вы увидете вот это:

<track artist="Имя артиста" title="Название песни" url="ссылка к mp3 файлу"/>
<stream artist="Название радио" title="Имя радио (любое)" url="ссылка на радио"/>
1ая строка - mp3
2ая строка - радио
можно убрать либо первую, либо вторую... можно добавить много своих... естественно нужно заменять имя артиста, название песни, ссылка к mp3 файлу на свои (что значит свои? я уже говорил, что этот способ требует, чтобы у вас был сайт на который вы будете заливать mp3 файлы. ссылка к mp3 файлу это и есть залитый на ваш сайт музыкальный файл)
итак... допустим мы создали наш плэй лист... я меня он выглядит вот так:

<track artist="Jeannie Ortega ft. Papoose" title="Crowded" url="http://new-rap.clan.su/_mp3/06JeannieOrtegaft.Papoose-Crowded.MP3" />
<stream artist="Radio Rap/Rnb" title="HOT108" url="http://scfire-nyk0l-1.stream.aol.com:80/stream/1071" />
это значит, что нам нужно залить файл 06JeannieOrtegaft.Papoose-Crowded.MP3 сюда: http://new-rap.clan.su/_mp3/
допустим мы залили песню на сайт, что дальше? заливаем куда-нибудь mp3_player.swf и уже измененный playlist.mpl

б) вставляем этот скрипт туда, где мы хотим увидеть плеер:

<OBJECT id=mju height=85 width=150><PARAM NAME="allowScriptAccess" VALUE="sameDomain"><PARAM NAME="movie" VALUE="http://new-rap.clan.su/_swf/mjuPod_optimal.swf"><PARAM NAME="flashvars" VALUE="playlist=http://new-rap.clan.su/_pls/playlist.mpl"><PARAM NAME="loop" VALUE="false"><PARAM NAME="menu" VALUE="false"><PARAM NAME="quality" VALUE="high"><PARAM NAME="wmode" VALUE="transparent">
<embed src="http://new-rap.clan.su/_swf/mjuPod_optimal.swf" flashvars="playlist=http://new-rap.clan.su/_pls/playlist.mpl"
loop="false" menu="false" quality="high" wmode="transparent"
bgcolor="#ffffff" width="150" height="85" name="mju"
allowScriptAccess="sameDomain" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</OBJECT>
где, жирный текст - это ваши ссылки к файлам mp3_player.swf и playlist.mpl

0


Вы здесь » Форум обо всём | Тех потдержка » Вопросы по оформлению форума » Новые возможности форума - скрипты