Техническая поддержка SpyBB

Объявление

Ответы на часто задаваемые вопросы  |  FAQ по администрированию форума  |  FAQ по дизайну форума в CSS  |  Абсолютный помощник по дизайну  |  Навигатор по форуму

Перед регистрацией прочтите правила форума
При поиске ответа на заданный вопрос рекомендуем пользоваться «Поиском».
В случае проблемы с форумом, обязательно указывайте его адрес, иначе мы не сможем Вам помочь!

● 24 марта 2012г. - Закрепление первого сообщения
● 23 марта 2012г.: Изменения в форме ответа - Добавлен стандартный спойлер. Доработан функционал кнопок

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

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


Вы здесь » Техническая поддержка SpyBB » Архив » Новые возможности. Скрипты.


Новые возможности. Скрипты.

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

1

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

Большое спасибо karpoffu, без которого этот скрипт так бы и не был написан

Код:
<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.URL
var b=document.getElementById('pun-status').innerHTML
if (b.indexOf("Zebra")!=-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>

Вместо Zebra - ник юзера, которому запретили менять.
Работает только на запрет для подписи.

0

3

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

Код:
 <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>

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

Просто выкидывает на предыдущую страницу при попытке зайти на Активные:

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

Можно более элегантный вариант

Код:
<script type="text/javascript">
var a=document.URL
var c=document.getElementById('pun-status').innerHTML
if ((c.indexOf("Zebra")==-1)&&(c.indexOf("Admin")==-1))
{
if (a=="адрес онлайна")
{
document.getElementById('pun-status').innerHTML="Вы не имеете права доступа к этой странице"
document.getElementById('pun-main').style.display="none"
}}
</script>

Пишет в статусе, что вы не можете посмотреть эту страницу и просто скрывает таблицу с тем, кто что делает. Правда ее можно будет посмотреть в HTML, хотя вряд ли кто-либо будет трудиться. Выбирайте.

0

4

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

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

Вместо текста Зарегистрируйся блин можно вписать любой текст, в том числе и 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>

Более жесткий вариант скрипта. Не поддается блокировке через ie , надпись перекрывает все и не поддается прокрутке.

ВВерх вставляем

Код:
<div id="annoy" style="position: absolute; left: 20px; top: 30px; display:none; z-index: 150;"><table><tr><td height=400px width=400px bgcolor=#FFFFFF;>Заерегься</td></tr></table></div>

Вместо:

Код:
<table><tr><td height=400px width=400px bgcolor=#FFFFFF;>Заерегься</td></tr></table>

Можем вставить любой Html, в зависимости от того, насколько большим и мерзким будет раздражитель.

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

Код:
<script type="text/javascript">
var crossobj=document.all? document.all.annoy : document.getElementById("annoy")
var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body

function positionit(){
var dsocleft=document.all? iebody.scrollLeft : pageXOffset
var dsoctop=document.all? iebody.scrollTop : pageYOffset
if (document.all||document.getElementById){
crossobj.style.left=parseInt(dsocleft)+5+"px"
crossobj.style.top=dsoctop+5+"px"
}
}
setInterval("positionit()",10)
</script>

<script type="text/javascript">
var t
var freak
function freakOut()
{document.getElementById("annoy").style.display="block"
t=setTimeout ("freakIn()", 3000)                        
}
function freakIn()
{document.getElementById("annoy").style.display="none"
t=setTimeout ("freakOut()", 3000)}   
if (document.getElementById('pun-status').innerHTML.indexOf("Гость")!=-1)
{freakOut()}
</script>

+1

5

автор: karpoff

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

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

Код:
<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>

Вставляйте этот скрипт, и при нажатии на кнопку просмотра результатов опроса, будет выскакивать окошко с вопросом и предупреждении невозможности последующего голосования (ну и фраза вышла)

(с) karpoff

Кстати, если эта кнопка вообще не нужна, вставляйте этот скрипт:

Код:
<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].type = "hidden"
      break
    }
    i++
  }
}
</script>

©

0

6

автор: karpoff

Замена слова "Модераторы" на главной странице форума

<script language="JavaScript">
    mod="Главный дозорный"

    str=document.URL
    page=str.substring(str.lastIndexOf('/')+1)
    if( page=="" || page=="index.php" ) {
      arr=document.getElementsByTagName("span")
      i=0
      while(arr[i])
      {
        if(arr[i].className=="modlist")
            arr[i].innerHTML = "(" + mod + arr[i].innerHTML.substring(11)
        i++
      }
    }
    </script>

В переменной mod укажи слово(или фразу) которым хочешь заменить слово "модераторы", "Главный дозорный" на главной странице форума под названием каждого форума.

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

ps. Если вообще не хочешь чтобы весь список модеров отображался, вставь это:

Код:
<style>
#pun td .modlist{display:none;}
</style>

Если только в конкретном разделе то там пишем

Код:
<font style="display:none;">

0

7

автор: karpoff

Всплывающий поиск

Может кому нибудь пригодится такой скриптик.
Его функциональность:
При нажатии на ссылку в меню Поиск, страница с поиском не загружается, а появляется только окошко  с двумя полями: слова для поиска или автор.
При повторном нажатии, оно исчезает.
Также в окошке есть ссылка Расширенный поиск, которая ведёт к полной странице поиска.
Это нужно, чтобы не грузить каждый раз полную страницу с поиском.

<script language="JavaScript">
    document.getElementById("pun-navlinks").style.position = "relative"

    function showDiv()
    {
    if(  document.getElementById("searchDiv").style.display == 'none' )
         document.getElementById("searchDiv").style.display = ''
    else document.getElementById("searchDiv").style.display = 'none'

    return false;
    }

    str  = "<a href=\"search.php\" onclick=\"return showDiv()\"><span>Поиск</span></a>"
    str += "<div id=searchDiv style=\"display: none; \">"

    str += " <form method=\"get\" action=\"search.php\">"
    str += "    <input type=\"hidden\" name=\"action\" value=\"search\">"
    str += "    <p class=\"inputfield\">"
    str += "    <label for=\"fld1\">Ключевые слова</label><br />"
    str += "    <span class=\"input\"><input type=\"text\" name=\"keywords\" size=\"25\" maxlength=\"100\" /></span>"
    str += "    </p>"
    str += "    <p class=\"inputfield\">"
    str += "    <label for=\"fld2\">Поиск автора</label><br />"
    str += "    <span class=\"input\"><input type=\"text\" name=\"author\" size=\"25\" maxlength=\"25\" /></span>"
    str += "    </p> <br>"

    str += "    <input type=\"hidden\" name=\"forum\" value=\"-1\">"
    str += "    <input type=\"hidden\" name=\"search_in\" value=\"all\">"
    str += "    <input type=\"hidden\" name=\"sort_by\" value=\"0\">"
    str += "    <input type=\"hidden\" name=\"sort_dir\" value=\"DESC\">"
    str += "    <input type=\"hidden\" name=\"show_as\" value=\"topics\">"

    str += "    <p><input type=\"submit\" class=\"button\" name=\"search\" value=\"Отправить\" accesskey=\"s\" title=\"Accesskey:s\" /></p>"
    str += " </form>"

    str += "    <a href=\"search.php\">Расширенный поиск</a> "
    str += "</div>"

    document.getElementById('navsearch').innerHTML = str
    </script>
    <style>
    #searchDiv{
    position:absolute;
    background-color : Gray;
    border : solid;
    padding-bottom : 5px;
    padding-left : 5px;
    padding-right : 5px;
    padding-top : 5px;
    z-index:2;
    }
    </style>

Внимание!
Этот скрипт надо вставлять в html-низ!!!
Но в разных браузерах он будет отображаться по-разному.

Cмена цвета  -  Gray

Есть параметр background-color

вместо Gray указывай любой какой захочешь:

Код:
<style>
#searchDiv{
position:absolute;
background-color : Gray;
border : solid;
padding-bottom : 5px;
padding-left : 5px;
padding-right : 5px;
padding-top : 5px;
z-index:2;
}
</style>

0

8

автор: karpoff

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>

+1

9

Cкрипт универсального цветовыделения на 6 групп

Вставляем в ХТМЛ-низ

Через запятую, в кавычках, пишем имена,а то что выделено меняем на свои цвета.

<script type="text/javascript">
    var arr=document.links
    var arr1=new Array ("ДОМИНИОН", "")
    var arr2=new Array ("ПСИХованная", "", "", "")
    var arr3=new Array ("", "", "", "")
    var arr4=new Array ("Lexx", "Zebra", "", "", "")
    var arr5=new Array ("Lexx", "Zebra", "", "", "")
    var arr6=new Array ("Lexx", "Zebra", "", "", "")
    for (x in arr)
    {for (y in arr1)
    {if (arr[x].innerHTML==arr1[y])
    {
    arr[x].innerHTML="<font color='red'>"+arr[x].innerHTML+"</font>"}
    }}

    for (x in arr)
    {for (j in arr2)
    {if (arr[x].innerHTML==arr2[j])
    {
    arr[x].innerHTML="<font color='goldenrod'>"+arr[x].innerHTML+"</font>"}}}

    for (x in arr)
    {for (l in arr3)
    {if (arr[x].innerHTML==arr3[l])
    {
    arr[x].innerHTML="<font color='darkorange'>"+arr[x].innerHTML+"</font>"}}}

    for (x in arr)
    {for (j in arr4)
    {if (arr[x].innerHTML==arr4[j])
    {
    arr[x].innerHTML="<font color='steelblue'>"+arr[x].innerHTML+"</font>"}}}

    for (x in arr)
    {for (p in arr5)
    {if (arr[x].innerHTML==arr5[p])
    {
    arr[x].innerHTML="<font color='steelblue'>"+arr[x].innerHTML+"</font>"}}}

    for (x in arr)
    {for (s in arr6)
    {if (arr[x].innerHTML==arr6[s])
    {
    arr[x].innerHTML="<font color='steelblue'>"+arr[x].innerHTML+"</font>"}}}

    </script>

0

10

Индикатор групп

<script type="text/javascript">
var text="<center><font color=Red> Администратор </font> | <font color=Blue> Координатор </font>  |  <font color=Green> Модератор </font></center>"
pa=document.getElementById("pun-stats")
pa.style.position = "relative"
pa.innerHTML = "<div style=\"position:absolute; z-index:2; center: 10px; top: 40px; width: 100%;\">"+text+"</div>"+ pa.innerHTML
</script>

Хтмл низ вставляем, то что выделено заменям на свои данные, если надо.

+1

11

Скрипт для узнавание IP-адресов:

поправлен немножко.

Часто многие интересуются а как мне узнать что за айпи или  я его забаню а это поисковик окажется?
Выкладываю код с помошью которого Вы сможите Узнать полную информацию об АЙПИ бесплатно
Копируйте и ставьте в ХТМЛ-низ, то что выдлено является цветом, второе что выделено думаю понятно. И выделенное можно менять.

Работоспособность можно увидеть и попробовать http://help.mybb.ru/   внизу форума.  Выражаем благодарность  DJ SKEE

Код:
<table width="100%" align="center"><form method="get" action="http://www.ripe.net/perl/whois?" enctype="multipart/form-data"><td align="left" height="65" width="100%"><table bgcolor="#FFFFCC" align="left" border="0" cellspacing="0" cellpadding="10" width="100%"><tr><td><input type="hidden" name="form_type" value="simple" /><table border="0"><tr><td align="" valign="bottom" width="20%">Узнать Информацию об IP-адресах:</td><td align="left" valign="bottom" width="50%"><input type="text" name="searchtext" tabindex="1"  size="50" /></td><td align="left" valign="bottom" width="15%"><input type="submit" tabindex="2" name="do_search" value="Искать" /></td></table></td></tr><td><font size="2"></font></td></tr></table></td></tr></form></table>

+1

12

Меняем местами пункты в информации о пользователе под аватаром.

Расчитан на те форумы, где количество пунктов у всех в окне с аватаром одинаково (за исключением ip для модеров).

Посчитайте число строк в этом окне. Например у меня на данном форуме вы их видите 7

Автор: Zebra
Модератор
Аватар
Зарегистрирован: 2006-11-04
Сообщений: 170
Репутация: [+33/-7]
Активен

<script type="text/javascript">
var order=document.getElementsByTagName("ul")
var q=0
for (q=0; q<=(order.length-1); q++)
{if (order[q].innerHTML.indexOf("pa-author")!=-1)
{var order1=order[q].getElementsByTagName("li")
order[q].innerHTML=order1[0].outerHTML+order1[2].outerHTML+order1[3].outerHTML+order1[4].outerHTML+order1[5].outerHTML+order1[7].outerHTML+order1[6].outerHTML }}
</script>

Смотрим на синюю строчку. Видим , что у элементов в ней меняется тока номер в квадратных скобках. Это порядковый номер ваших строк профиля по умолчанию, если смотреть сверху вниз. Переставбте их в этой строке так. как вам вздумается.

0

13

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

Код:
<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>

+1

14

Кнопка "вверх к первому сообщению" в каждом сообщении

<script type="text/javascript">
var up=document.getElementsByTagName("h3")
var ini=up[0].getElementsByTagName("a")[0].href
var p=1
for (p=1; p<=(up.length-1); p++)
{up[p].innerHTML=up[p].innerHTML.substr(0, 14)+"<a href="+ini+">Upperpost</a>  "+up[p].innerHTML.substr(14)}
</script>

Вместо Upperpost - ваше слово ссылка
Если вместо буквенной ссылки нужна картинка-кнопка вместо upperpost вставляем

Код:
<img src='адрес картинки' />

Вставлять строго в HTML под формой ответа.

0

15

То же, во варианте к самому верху страницы

<script type="text/javascript">
var up=document.getElementsByTagName("h3")
var ini=up[0].getElementsByTagName("a")[0].href
var p=1
for (p=1; p<=(up.length-1); p++)
{up[p].innerHTML=up[p].innerHTML.substr(0, 14)+"<a href='javascript: scroll(0, 0);'>"+"Upperpost</a>  "+up[p].innerHTML.substr(14)}
</script>

Вместо Upperpost опять все, что душе угодно.

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

by Usher

Я наконец доделал навороченый скрипт входа!

- Как работатет?
- Если вы гость выскакивает div-окно и просит зарегистрироваться или войти (сам исчезает через N-ное количество секунд)
- Где посмотреть пример?
- http://www.rnb.4bb.ru/
- Куда вставлять?
- В описание любого раздела Вашего форума.

Код:
<script type='text/javascript'>
if (document.getElementById('pun-status').innerHTML.indexOf("Гость")!=-1)
{
var displaymode = 'always';
var enablefade = 'no';
var autohidebox = ['yes', 17];
var showonscroll = 'yes';
var IEfadelength = 1;
var Mozfadedegree = 0.05;

if (parseInt(displaymode) != NaN)
{
	var random_num = Math.floor(Math.random() * displaymode);
}

function display_hover_prompt()
{
	var ie = document.all && !window.opera;
	var dom = document.getElementById;
	var iebody = (document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;
	var objref = (dom) ? document.getElementById('hoverprompt') : document.all.hoverprompt;
	var scroll_top = (ie) ? iebody.scrollTop : window.pageYOffset;
	var docwidth = (ie) ? iebody.clientWidth : window.innerWidth;
	var docheight = (ie) ? iebody.clientHeight: window.innerHeight;
	var objwidth = objref.offsetWidth;
	var objheight = objref.offsetHeight;
	objref.style.left = docwidth/2-objwidth/2+'px';
	objref.style.top = scroll_top+docheight/2-objheight/2+'px';

	if (showonscroll == 'yes')
	{
var showonscrollvar = setInterval('static_hover_prompt()', 50);
	}

	if (enablefade == 'yes' && objref.filters)
	{
objref.filters[0].duration = IEfadelength;
objref.filters[0].Apply();
objref.filters[0].Play();
	}

	objref.style.visibility = 'visible';
	if (objref.style.MozOpacity)
	{
if (enablefade == 'yes')
{
	var mozfadevar = setInterval('mozilla_hover_prompt_fade()', 90);
}
else
{
	objref.style.MozOpacity = 1;
	initiate_hover_prompt_hiding();
}
	}
	else
	{
initiate_hover_prompt_hiding()
	}
}

function mozilla_hover_prompt_fade()
{
	if (parseFloat(objref.style.MozOpacity) < 1)
	{
objref.style.MozOpacity = parseFloat(objref.style.MozOpacity)+Mozfadedegree;
	}
	else
	{
clearInterval(mozfadevar);
controlledhidebox();
	}
}

function static_hover_prompt()
{
	var ie = document.all && !window.opera;
	var dom = document.getElementById;
	var iebody = (document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;
	var objref = (dom) ? document.getElementById('hoverprompt') : document.all.hoverprompt;
	var scroll_top = (ie) ? iebody.scrollTop : window.pageYOffset;
	var docwidth = (ie) ? iebody.clientWidth : window.innerWidth;
	var docheight = (ie) ? iebody.clientHeight: window.innerHeight;
	var objwidth = objref.offsetWidth;
	var objheight = objref.offsetHeight;
	objref.style.top = scroll_top+docheight/3-objheight/2+'px';
}

function hide_hover_prompt()
{
	var ie = document.all && !window.opera;
	var dom = document.getElementById;
	var iebody = (document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;
	var objref = (dom) ? document.getElementById('hoverprompt') : document.all.hoverprompt;
	objref.style.visibility = 'hidden';
	if (typeof showonscrollvar != 'undefined')
	{
clearInterval(showonscrollvar);
	}
}

function initiate_hover_prompt_hiding()
{
	if (autohidebox[0] == "yes")
	{
var delayvar = (enablefade == 'yes' && objref.filters) ? (autohidebox[1]+objref.filters[0].duration)*1000 : autohidebox[1]*1000;
initiate_timer(delayvar);
setTimeout('hide_hover_prompt()', delayvar);
	}
}

function initiate_timer(time)
{
	var newtime = time-1000;
	setTimeout('update_timer('+newtime+')', 1000);
}

function update_timer(time)
{
	var timer = time/1000;
	var ie = document.all && !window.opera;
	var dom = document.getElementById;
	if (dom)
	{
var hp = document.getElementById('hptimer');
if (timer == 1)
{
	hp.innerHTML = "<small><i>Это окно закроется "+timer+" Секунда</i></small>";
}
else
{
	hp.innerHTML = "<small><i>Это окно закроется "+timer+" Секунд</i></small>";
}
	}
	var newtime = time-1000;
	setTimeout('update_timer('+newtime+')', 1000);
}

function initiate_hover_prompt()
{
	setTimeout('display_hover_prompt()', 100);
}

function get_cookie(Name)
{
	var search = Name + "=";
	var returnvalue = "";
	if (document.cookie.length > 0)
	{
var offset = document.cookie.indexOf(search);
if (offset != -1)
{
	offset += search.length;
	var end = document.cookie.indexOf(';', offset);
	if (end == -1)
	{
end = document.cookie.length;
	}
	returnvalue = unescape(document.cookie.substring(offset, end));
}
	}
	return returnvalue;
}

if (displaymode == 'always' || parseInt(displaymode) != NaN && random_num == 0)
{
	if (window.addEventListener)
	{
window.addEventListener('load', initiate_hover_prompt, false)
	}
	else if (window.attachEvent)
	{
window.attachEvent('onload', initiate_hover_prompt)
	}
	else if (document.getElementById)
	{
window.onload = initiate_hover_prompt;
document.cookie = 'fadedin=yes';
	}
}}
</script>
<style>
#hoverprompt {
position:absolute;
width:300px;
left:0;
top:-400px;
padding:4px;
z-index:100;
visibility:hidden
}
</style>
<div id="hoverprompt"><div class="borderwrap"><table cellSpacing="0" minmax_bound="true" id="table1">
<tbody minmax_bound="true"><tr minmax_bound="true"><th class="tcl" scope="col" minmax_bound="true">Добро пожаловать!<br><br><span class="style1">Уважаемый Гость, пожалуйста, авторизируйтесь или зарегистрируйтесь!<br><br><a href='register.php'><b>Регистрация</b></a>, откроет Вам много новых возможностей, недоступных для гостя, таких как скачивание песен, альбомов, клипов и возможность оставлять свои сообщения на форуме.<br><br><br>
Присоединяйтесь ;)
<br><br><br></p></span>
<p div align="center"><form id="login" class="container" method="post" action="http://rnb.4bb.ru/login.php?action=in" onsubmit="return my_form(this)">
<div align="center">
  <input type="hidden" name="form_sent" value="1"/>
  <input type="hidden" name="redirect_url" value="index.php"/>
</div>
<p align="center" class="inputfield required">
<label for="fld1" class="style1">Логин:</span></label>
<span class="input">
<input type="text" id="fld1" name="req_username" size="8" maxlength="25"/> 
<label for="fld2">Пароль:</label>
<label for="fld2"></label>
<span class="input">
<input type="password" id="fld2" name="req_password" size="8" maxlength="25"/></span><br><br>
</p><div align="center">
    <input type="submit" class="button" name="login" value="Войти"/>
  </div>
</form></td>
</tr><br><br>

<tr minmax_bound="true">
<th class="tcl" scope="col" minmax_bound="true"><div id='hptimer'>
  <p><small>Это окно закроется Секунд</small></p>
  </div></th></tr>
<tr minmax_bound="true">
<td bgcolor="#FFFFFF" class="tcl" minmax_bound="true">
<p align="center" minmax_bound="true"></th></tr></td></tr></p></table>

</div>
</div>

В строчке var autohidebox = ['yes', 17]; заменяйте значение 17 на число секунда, через которое окно само закроется.
Все значения rnb.4bb.ru заменяете на свои...
И текст div-окна тоже меняете на свой

0

18

автор: karpoff

Работает как и всплывающий поиск построен на DIV элементе. Cкрипт входа ещё вариант

   

Код:
 <script language="JavaScript">
    function showLDiv()
    {
    if(  document.getElementById("loginDiv").style.display == 'none' )
         document.getElementById("loginDiv").style.display = ''
    else document.getElementById("loginDiv").style.display = 'none'

    return false;
    }
    function check_form()
    {
    if(document.forms["form_login"].req_username.value=='' || document.forms["form_login"].req_username.value=='') {
    alert('Оба поля обязательны для заполнения');
    return false;
    }
    return true
    }
    url=document.URL
    if(url.indexOf("login.php")==-1  && document.getElementById('navlogin')){
    document.getElementById('navlogin').innerHTML  = "<a href=\"login.php\" onclick=\"return showLDiv()\"><span>Войти</span></a>"
    login = "<center><div id=loginDiv style=\"display: none; \">"

    login += "<form id=form_login name=login method=post action=\"login.php?action=in\" onsubmit=\"return check_form()\">"
    login += "<fieldset>"
    login += "<legend>Введите ваше имя и пароль ниже</legend>"
    login += "<input type=hidden name=form_sent value=1 />"
    login = login + "<input type=hidden name=redirect_url value="+document.URL+" />"
    login += "<br><table width=\"100%\" align=left>"
    login += "<tr><td align=left><b>Имя :</b></td><td align=left><input type=\"text\" id=\"fld1\" name=\"req_username\" size=\"30\" maxlength=\"25\" /></td></tr>"
    login += "<tr><td align=left><b>Пароль :</b></td><td align=left><input type=\"password\" id=\"fld2\" name=\"req_password\" size=\"30\" maxlength=\"16\" /></td></tr>"
    login += "</table>"
    login += "</fieldset>"
    login += "<p class=formsubmit><input type=submit class=button name=login value=\"Войти\" /><br /> <a href=\"register.php\">Еще не зарегистрированы?</a><br /> <a href=\"login.php?action=forget\">Забыли пароль?</a></p>"
    login += "</form>"
    login += "</div></center>"

    document.getElementById('pun-navlinks').innerHTML += login
    }
    </script>

    <style>
    #loginDiv{
        position:absolute;
        z-index: 2;
        background-color : Gray;
        border : solid;
        padding-bottom : 5px;
        padding-left : 5px;
        padding-right : 5px;
        padding-top : 5px;
        width: 300px;
    }
    </style>

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

0

19

Оформление названий новых/важных/закрытых тем

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

Код:
<script type="text/javascript">
var rows=document.getElementsByTagName("tr")
var no=0
for (no=0; no<=(rows.length-1); no++)
{if (rows[no].className.indexOf("isticky")!=-1)
{rows[no].getElementsByTagName("a")[0].innerHTML="<font color='red'><b>"+rows[no].getElementsByTagName("a")[0].innerHTML+"</b></font>"}
else if (rows[no].className.indexOf("inew")!=-1)
{rows[no].getElementsByTagName("a")[0].innerHTML="<font color='green'>"+rows[no].getElementsByTagName("a")[0].innerHTML+"</font>"}
else if (rows[no].className.indexOf("iclosed")!=-1)
{rows[no].getElementsByTagName("a")[0].innerHTML="<font color='yellow'>"+rows[no].getElementsByTagName("a")[0].innerHTML+"</font>"}
}
</script>

Рассмотрим блок:

{if (rows[no].className.indexOf("isticky")!=-1)
{rows[no].getElementsByTagName("a")[0].innerHTML="<font color='red'><b>"+rows[no].getElementsByTagName("a")[0].innerHTML+"</b></font>"}

Этот блок кода оформляет текст Важных тем. isticky указывает именно на важные темы.
Видим rows[no].getElementsByTagName("a")[0].innerHTML. Этот кусок означает текст ссылки темы. Вокруг него мы решили поставить следующее оформление:
-сделать текст красным
-сделать жирным
Как знаем из хтмл, это достигается следующим образом:

Код:
<font color='red'><b>Наш текст</b></font>

Если хотите, можно использовать вокруг текста сылки любые друие хтмл теги.
Чтобы перенести эти теги в скрипт мы делаем следующее
-Заковычиваем передние теги в " "
-ставим плюс
-ставим текст ссылки (rows[no].getElementsByTagName("a")[0].innerHTML)
-ставим плюс
-ставим конечные теги в ковычках.

В данном случае у нас получилось:

="<font color='red'><b>"+rows[no].getElementsByTagName("a")[0].innerHTML+"</b></font>"

Следующие два блока кода отвечают соотвественно за:

-новые темы (inew)
-закрытые темы (iclosed)

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

0

20

Индивидуальный статус картинкой

Как мы знаем, в поле статуса 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


Вы здесь » Техническая поддержка SpyBB » Архив » Новые возможности. Скрипты.