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

Объявление

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

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

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

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

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


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


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

Сообщений 81 страница 100 из 106

81

Цитирование с BB-кодами (Ответить автору). Duka
Скрипт позволит процитировать сообщение вместе с исходными BB-кодами. После клика на Ответить, произойдет редирект на страницу написания нового сообщения с полной цитатой выбранного Вами сообщения. Позволяет прокомментировать одного автора.

Код:
<script type="text/javascript">
var a=document.getElementsByTagName("a")
for (i = 0; i<a.length; i++){
   if(a[i].href.indexOf("post.php?tid=") != -1){
      t = a[i].href.substring(a[i].href.indexOf('=')+1)
   }
}
var m = new Array();
var z = new Array();
for (w = 0; w<a.length; w++){
   if(a[w].href.indexOf("#p") != -1){
        m[w] = a[w].href.substring(a[w].href.indexOf('#p')+2)
           for (e=0; e<w; e++){
              m.shift()
           }
	z.push(m[0])
   }
}
var c = new Array();
q=0
var arr=document.getElementsByTagName("li")
while(q<arr.length){
   if(arr[q].className=="pl-quote"){
        c.push(q)
   }
   q++
}
var cv = new Array ();
  for(y=0;y<c.length;y++){
    cv.push(y)
}
for(w=0; w<cv.length; w++){
	name=arr[c[w]].innerHTML
	arr[c[w]].innerHTML=name+" <a href='/post.php?tid="+t+"&qid="+z[w]+"' title='Ответить на сообщение'>Ответить</a> "; 
}
</script>

Скрипт ставить в HTML-в форме ответа
Стадия: Тестирование!

0

82

Модераторские теги. Duka
http://i022.radikal.ru/0804/4f/a48e47179683.jpg
Скрипт тега предупреждения

Код:
[mod][/mod]

Модераторские теги.

Код:
<script>
function addMod(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[mod]",from))==-1) return str;
if((pos2=str.indexOf("[/mod]"),pos+5)==-1) return str;
newpos=str.indexOf("[mod]",pos+5)
if(newpos<pos2 && newpos!=-1) str=addMod(str,pos+5,true)
if((pos2=str.indexOf("[/mod]",pos+5))==-1) return str;
str=str.substring(0,pos)+makeMod(str.substring(pos+5,pos2))+str.substring(pos2+6,str.length)
if( str.indexOf("[mod]")!=-1 && internal==false) str=addMod(str,0,false)
return str}

function makeMod(txt){
txt="<br><div style=\"margin: 0px; padding: 0px; background-color:#F1F1FD; border-left: 0px solid #6060FF; border-top: 0px dotted #000; border-right: 1px dotted #000; border-bottom: 1px dotted #000;\"><TABLE cellpadding='0' cellspacing='0'><TD align='middle' bgColor='#6060ff' vAlign='center' width='8%'><FONT color='#ffffff' size='+3' style='FONT-FAMILY: Times' title='Предупреждение'><B>&nbsp;i&nbsp;</B></FONT></TD></TD><TD vAlign='middle'>"+txt+"</TD></TABLE></div><br>"
return txt}


if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addMod(post.innerHTML,0,false)}}
</script>

Скрипт тега нарушения

Код:
[ex][/ex]
Код:
<script>
function addEx(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[ex]",from))==-1) return str;
if((pos2=str.indexOf("[/ex]"),pos+4)==-1) return str;
newpos=str.indexOf("[ex]",pos+4)
if(newpos<pos2 && newpos!=-1) str=addEx(str,pos+4,true)
if((pos2=str.indexOf("[/ex]",pos+4))==-1) return str;
str=str.substring(0,pos)+makeEx(str.substring(pos+4,pos2))+str.substring(pos2+5,str.length)
if( str.indexOf("[ex]")!=-1 && internal==false) str=addEx(str,0,false)
return str}

function makeEx(txt){
txt="<br><div style=\"margin: 0px; padding: 0px; background-color:#FEF2F2; border-left: 1px solid #FF6060; border-top: 1px dotted #000; border-right: 1px dotted #000; border-bottom: 1px dotted #000;\"><TABLE cellpadding='0' cellspacing='0'><TD align='middle' bgColor='#ff6060' vAlign='center' width='8%'><FONT color='#ffffff' size='+3' style='FONT-FAMILY: Times' title='Грубое нарушение'><B>&nbsp;!&nbsp;</B></FONT></TD></TD><TD vAlign='middle'>"+txt+"</TD></TABLE></div><br>"
return txt}


if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addEx(post.innerHTML,0,false)}}
</script>

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

Кнопки в форму ответа (Доступны только Администраторам и модераторам)
Для предупреждения

Код:
<style>
#button-mod {background-image:url('http://i029.radikal.ru/0804/26/e430252a0faf.png'); padding:0; line-height:0; background-position:center; background-repeat:no-repeat; height:26px; width:100%}
</style>
<script type="text/javascript">
if((document.getElementById("navadmin")) && (form=document.getElementById("form-buttons")))
form.getElementsByTagName("tr")[0].insertCell(18).innerHTML="<img src='/i/blank.gif' title='Предупреждение' id='button-mod'  onclick=\"bbcode('[mod]', '[/mod]');\"/>"
</script>

Для нарушения

Код:
<style>
#button-ex {background-image:url('http://i007.radikal.ru/0804/c8/e7c48348a35e.png'); padding:0; line-height:0; background-position:center; background-repeat:no-repeat; height:26px; width:100%}
</style>
<script type="text/javascript">
if((document.getElementById("navadmin")) && (form=document.getElementById("form-buttons")))
form.getElementsByTagName("tr")[0].insertCell(18).innerHTML="<img src='/i/blank.gif' title='Предупреждение' id='button-ex'  onclick=\"bbcode('[ex]', '[/ex]');\"/>"
</script>

Версия 2.
http://i031.radikal.ru/0804/6a/2507087f8335.bmp
Вторая версия самого скрипта:
Уведомление

Код:
<script>
function addMod(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[mod]",from))==-1) return str;
if((pos2=str.indexOf("[/mod]"),pos+5)==-1) return str;
newpos=str.indexOf("[mod]",pos+5)
if(newpos<pos2 && newpos!=-1) str=addMod(str,pos+5,true)
if((pos2=str.indexOf("[/mod]",pos+5))==-1) return str;
str=str.substring(0,pos)+makeMod(str.substring(pos+5,pos2))+str.substring(pos2+6,str.length)
if( str.indexOf("[mod]")!=-1 && internal==false) str=addMod(str,0,false)
return str}

function makeMod(txt){
txt="<br><div style='width:100%;'><div style='border: 1px solid #0084FF;border-left: 4px solid #0084FF;color: #000;border-bottom: 0;font-size: 10px;line-height: 40px;padding-left:10px;vertical-align: middle;'>Сообщение от модератора</div><div style='background: #FAFCFE;border: 1px solid #0084FF;border-left: 4px solid #0084FF;border-top: 0;color: #0084FF;font-weight: bold;padding: 4px;'>"+txt+"</div></div><br>"
return txt}


if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addMod(post.innerHTML,0,false)}}
</script>

Предупреждение

Код:
<script>
function addEx(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[ex]",from))==-1) return str;
if((pos2=str.indexOf("[/ex]"),pos+4)==-1) return str;
newpos=str.indexOf("[ex]",pos+4)
if(newpos<pos2 && newpos!=-1) str=addEx(str,pos+4,true)
if((pos2=str.indexOf("[/ex]",pos+4))==-1) return str;
str=str.substring(0,pos)+makeEx(str.substring(pos+4,pos2))+str.substring(pos2+5,str.length)
if( str.indexOf("[ex]")!=-1 && internal==false) str=addEx(str,0,false)
return str}

function makeEx(txt){
txt="<br><br><div style='width:100%;'><div style='border: 1px solid red;border-left: 4px solid red;color: #000;border-bottom: 0;font-size: 10px;line-height: 40px;padding-left:10px;vertical-align: middle;'>Строгое предупреждение от модератора</div><div style='background: #FAFCFE;border: 1px solid red;border-left: 4px solid red;border-top: 0;color: red;font-weight: bold;padding: 4px;'>"+txt+"</div></div><br><br>"
return txt}


if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addEx(post.innerHTML,0,false)}}
</script>

0

83

Замена + и - в уважении под подписью. Duka
Ставить в HTML-низ или форму ответа:

<script type="text/javascript">
var a = document.getElementsByTagName("a")
for (i=0; i<a.length; i++){
if(a[i].title == "Позитивное сообщение"){
    a[i].innerHTML = '<img src="КАРТИНКА+" title="+" />'
}
if(a[i].title == "Негативное сообщение"){
    a[i].innerHTML = '<img src="КАРТИНКА-" title="-" />'
}
}
</script>

Под аватарой

<script type="text/javascript">
var img = document.getElementsByTagName("img")
for (i=0; i<img.length; i++){
if(img[i].alt == "+") img[i].src = "КАРТИНКА+"
if(img[i].alt == "-") img[i].src = "КАРТИНКА-"
}
</script>

+1

84

Обзор категорий. аналог IPB. Duka
Кликая на название категории, мы попадаем на страницу списка форумов именно этой категории.
Ставить сие в html-низ.

Код:
    <script type="text/javascript">
    str = document.URL
    var cati = str.substring(str.indexOf("wcategory=")+10);
    if(str.indexOf("?showcategory=")!=-1 || str.indexOf("index.php?showcategory=")!=-1)
    {
    var cat = document.getElementsByTagName("div")
    for(i=0; i<cat.length; i++)
    {
        if(cat[i].id.indexOf("pun-category")!=-1)
        {
        var cat_id = cat[i].id.substring(cat[i].id.indexOf("y")+1, cat[i].id.length)
        document.getElementById("pun-category"+cat_id).style.display = "none"
        }
    }
    document.getElementById("pun-category"+cati).style.display = "block"
    }
    var catq = document.getElementsByClassName("catleft")

    for(q=0;q<catq.length; q++){
    var w = q+1
    catq[q].nextSibling.innerHTML="<a href='index.php?showcategory="+w+"'>"+catq[q].nextSibling.innerHTML+"</a>"
    }
    </script>

0

85

Быстрый поиск на странице создания тем. Duka
При создании темы под полем "Заголовок" появляется список наиболее запрашиваемых поисковых запросов, котрые вы составите сами.
При выборе произойдет поиск сообщений (а не тем), где встречается данная фраза.

<script type="text/javascript">
var type="posts"
// or topics
var masslist = "";
var mass = new Array("бэкап", "партнерство", "Дополнительные смайлики", "Недоступен форум", "DNS", "не работает скрипт", "Фон", "сделать стиль", "пропал форум", "партнерство", "шапка")
for (q=0; q<mass.length; q++){
masslist += ", <a href='javascript:void(0)' onclick='f_search(\"" + mass[q] + "\")'>" + mass[q] + "</a>";
}
var p = document.getElementsByTagName("p");
if(document.URL.indexOf("post.php?fid=") != -1){
  for(i=0; i<p.length; i++){
    if(p[i].className=="inputfield required longinput"){
      p[i].innerHTML += "Рекомендуем к поиску: <a href='javascript:void(0)' onclick='f_search(\"поиск\")'>поиск</a>"+masslist;
    }
  }
}
function f_search(qe){
word =  prompt("Введите ключевую фразу для поиска", qe)
if(word){
document.location.href = "http://forum.mybb.ru/search.php?action=search&keywords="+word+"&author=&forum=-1&search_in=all&sort_by=0&sort_dir=DESC&show_as="+type;
}
}
</script>

В переменной type можно указать 2 значения:  posts или topics. При использовании первого, результат будет выводиться в виде сообщений, в которых встречается поисковая фраза. При выборе второй - список тем.
В красной строчке через запятую указать ваши поисковые фразы.
Скрипт ставить в HTML-низ.

0

86

Дополнение в статистику. Duka
Сделал скрипт, начало которого увидел на форуме поддержки 0пк.ру от KAFLAN.
Добавит в статистику число разделов и категорий.

Код:
<script>
var num_f = 0;
var num_c = 0;
var tr = document.getElementsByTagName("tr")
for(i=0;i<tr.length;i++){
	if(tr[i].id.indexOf("forum_f")!=-1){
num_f++
	}
}
var div = document.getElementsByTagName("div")
for(q=0;q<div.length;q++){
	if(div[q].id.indexOf("pun-category")!=-1){
num_c++
	}
}
var v = document.getElementById('onlinelist');
v = v.parentNode.firstChild;
if (!v.innerHTML)
    v = v.nextSibling;
v.innerHTML = '<span>Всего форумов: </span><b>'+num_f+'</b><br /><span>Всего категорий: </span><b>'+num_c+'</b><br />' + v.innerHTML;
</script>

Добавлено:

Если есть скрытые разделы, а на странице не соответствует число показанных разделов и кол-во разделов в статистике, поставьте num_f = -1, если вы хотите убавить цифру в статистике на один раздел. num_f = -3, если у вас 3 скрытых раздела. и так далее.

0

87

Шкала активности. Duka
Один из способов применения.
Создаете группу Новенькие. Устанавливаете значение "Переместить в группу" активные при наобре 100 сообщений.
Ставите скрипт в хтмл в форме ответа.
Под кол-вом сообщений пользователя выведется Процент его активности.
При наобре 100% его форум переведет его в группу Активные.

<script type="text/javascript">
var countMessages = 100;
var li = document.getElementsByClassName("pa-posts")
for(i=0;i<li.length;i++){
var li_nim = li[i].innerHTML.substring(11);
li[i].innerHTML+="<br />Активность: "+percentage(li_nim, countMessages)
}
function percentage(num, count){
if(num < count){
return Math.round(100*num/count)+"%"
}
else return "100%. Активный пользователь"
}
</script>

Скриншот

0

88

Новый скрипт смайлов. Duka
Зачем он? ведь и так много подобных скриптов? Ответ просто - тяжело найти чтото рабочее.
Чем этот скрипт отличается от других? Тем, что он заменяет/добавляет смайлики в блоке стандартных смайликов.

Код:
<script type="text/javascript">
var smileDiv = document.getElementById("smilies-block");
if(smileDiv)
{
var smileItem = new Array();
smileItem.push('http://s41.radikal.ru/i092/0810/20/1acb9975a250.gif');
smileItem.push('http://s41.radikal.ru/i092/0810/20/1acb9975a250.gif');

for (i=0; i<smileItem.length; i++){
smileDiv.innerHTML+='<img src="'+smileItem[i]+'" alt=":rusff:" onclick="smile(\'[img]'+smileItem[i]+'[/img]\')" />';
}
}
</script>

Скрипт ставим в HTML форму ответа.
smileItem.push('http://s41.radikal.ru/i092/0810/20/1acb9975a250.gif');
Дублируем столько, сколько нужно добавить смайликов.
Ваши смайлики добавятся в блок общих смайликов.
Как убрать все стандартные смайлики и добавить своих?
Найти в скрипте:

var smileDiv = document.getElementById("smilies-block");

и после этого добавить:

smileDiv.innerHTML="";

+1

89

Кубики (Дайсы). Duka
Скрипт позволит "кидать" кубики прямо на форуме.
Полезно для ролевых форумов.

Ставить в HTML в форме ответа

Вариант 1.

Код:
<input type="button" onclick="dice()" value="Кинуть кубики" />
<script type="text/javascript">
function dice()
{
	var FoundErrors = '';
	var diceRes=""
	var CountCube = prompt("Количество кубиков", "3");
	var SideCube = prompt("Сколько граней у кубика?", "6");
	if(CountCube>9){
	alert("Нельзя бросать столько кубиков"); 
	return false;}
	if(SideCube>9){
	alert("Не бывает таких кубиков"); 
	return false;}
	if (!CountCube)
	{return false;}
	if (!SideCube)
	{return false;}
	for(i=0; i<CountCube;i++){
	var dice = (Math.round(Math.random()*SideCube))
	if(dice==0) dice=1;
	diceRes += dice*1936+"-"
	}
	smile('[dice='+diceRes+CountCube+SideCube+']')
}
</script>
<script>
function addDice(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[dice=",from))==-1) return str;
if((pos2=str.indexOf("]"),pos+6)==-1) return str;
newpos=str.indexOf("]",pos+6)
if(newpos<pos2 && newpos!=-1) str=addDice(str,pos+6,true)
if((pos2=str.indexOf("]",pos+6))==-1) return str;
str=str.substring(0,pos)+makeDice(str.substring(pos+6,pos2))+str.substring(pos2+1,str.length)
if( str.indexOf("[dice=")!=-1 && internal==false) str=addDice(str,0,false)
return str}

function makeDice(dice){
diceMass = dice.split("-")
diceC = dice.substring(dice.length-2, dice.length-1)
diceS = dice.substring(dice.length-1, dice.length)
var diceR=0, diceRu="";
for(i=0;i<diceMass.length-1;i++){diceR+=diceMass[i]/1936;}
for(i=0;i<diceMass.length-1;i++){if(diceMass[i]==diceMass[diceMass.length-2]){diceRu+=diceMass[i]/1936;}else{diceRu+=parseInt(diceMass[i]/1936)+"+";}}
txt="<div class=\"quote-box\"><blockquote><p><b>Количество кубиков</b>: "+diceC+"<br /><b>Граней в кубике</b>: "+diceS+"<br /><br /><b>Результаты броска</b>: ("+diceRu+")="+diceR+"</p></blockquote></div>"
return txt}

if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addDice(post.innerHTML,0,false)}}
</script>

Вариант 2.

Код:
<input type="button" onclick="dice()" value="Кинуть кубики" />
<script type="text/javascript">
function dice()
{
	var FoundErrors = '';
	var diceRes=""
	var CountCube = prompt("Количество кубиков", "3");
	var SideCube = prompt("Сколько граней у кубика?", "6");
	if(CountCube>9){
	alert("Нельзя бросать столько кубиков"); 
	return false;}
	if(SideCube>9){
	alert("Не бывает таких кубиков"); 
	return false;}
	if (!CountCube)
	{return false;}
	if (!SideCube)
	{return false;}
	for(i=0; i<CountCube;i++){
	var dice = (Math.round(Math.random()*SideCube))
	if(dice==0) dice=1;
	diceRes += dice*1936+"-"
	}
	smile('[dice='+diceRes+CountCube+SideCube+']')
}
</script>
<script>
function addDice(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[dice=",from))==-1) return str;
if((pos2=str.indexOf("]"),pos+6)==-1) return str;
newpos=str.indexOf("]",pos+6)
if(newpos<pos2 && newpos!=-1) str=addDice(str,pos+6,true)
if((pos2=str.indexOf("]",pos+6))==-1) return str;
str=str.substring(0,pos)+makeDice(str.substring(pos+6,pos2))+str.substring(pos2+1,str.length)
if( str.indexOf("[dice=")!=-1 && internal==false) str=addDice(str,0,false)
return str}

function makeDice(dice){
diceMass = dice.split("-")
diceC = dice.substring(dice.length-2, dice.length-1)
diceS = dice.substring(dice.length-1, dice.length)
var diceR=0, diceRu="";
for(i=0;i<diceMass.length-1;i++){diceR+=diceMass[i]/1936;}
for(i=0;i<diceMass.length-1;i++){if(diceMass[i]==diceMass[diceMass.length-2]){diceRu+=diceMass[i]/1936;}else{diceRu+=parseInt(diceMass[i]/1936)+"+";}}
txt="<div class=\"quote-box\"><blockquote><p><b>Исходный бросок</b>: "+diceC+"d"+diceS+"<br /><br /><b>Результаты броска</b>: ("+diceRu+")="+diceR+"</p></blockquote></div>"
return txt}

if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addDice(post.innerHTML,0,false)}}
</script>

Выглядит так:
Скриншот
Скриншот
Пользователь вводит сколько надо бросить кубиков и сколько в нем граней.
Далее получает уникальный код, который может произвольно перемещать в сообщении
Скриншот
После отправки в сообщении будет такая картина
Скриншот

0

90

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

Код:
<script type="text/javascript">
var p = document.getElementsByTagName("p");
if(document.URL.indexOf("post.php?fid=") != -1){
  for(i=0; i<p.length; i++){
    if(p[i].className=="inputfield required longinput"){
      p[i].innerHTML += "<input class='button' type='button' value='Поиск схожих тем' onclick='StartSearch()' style='width: 150px;' /><iframe frameborder=0 name='searchFrame' id='searchFrameId' width='100%' height='300px' src='' style='display: none; border: 1px solid #000; width: 99%;'></iframe>";
    }
  }
}
function StartSearch(){
var word=document.getElementById("fld3").value
document.getElementById("searchFrameId").style.display=''
parent.frames['searchFrame'].document.location.href='search.php?action=search&keywords='+word+'&author=&forum=-1&search_in=all&sort_by=0&sort_dir=DESC&show_as=topics&searchajax=1#searchajax'
}
if(document.URL.indexOf("#searchajax")!=-1){
document.write('<style type="text/css">#pun-navlinks, #pun-ulinks, #pun-announcement, #pun-status, #pun-crumbs1, #pun-crumbs2, #pun-about, #html-footer, #pun-break1, #pun-break3, #pun-break4 {display: none;}</style>');
var puntitle = document.getElementById('pun-title');
puntitle.parentNode.removeChild(puntitle);
var a = document.getElementsByTagName("a")
for(q=0; q<a.length; q++){
	a[q].target="_parent"
}
}
</script>

Данный скрипт помещать строго в HTML - низ!

P.S.: Скрипт очень полезный

0

91

Всплывающее описание раздела. Duka
Еще одна безделушка %)
Сделает вот так:
http://s1.ipicture.ru/uploads/081025/e10I42d3o4.jpg
При наведени курсора на значок [?] покажет описание раздела.

Код:
    <script type="text/javascript">
    var a = document.getElementsByTagName("a")
    for(i=0; i<a.length-1;i++){
    if(a[i].href.indexOf("/viewforum.php?id=")!=-1){
        if(a[i].parentNode.parentNode.innerHTML.substring(a[i].parentNode.parentNode.innerHTML.toLowerCase().indexOf('</h3>')+5).length > 0)
        a[i].parentNode.innerHTML+=" <a title='"+a[i].parentNode.parentNode.innerHTML.substring(a[i].parentNode.parentNode.innerHTML.toLowerCase().indexOf('</h3>')+5)+"'>[?]</a>"
        a[i].parentNode.parentNode.innerHTML = a[i].parentNode.parentNode.innerHTML.substring(0, a[i].parentNode.parentNode.innerHTML.toLowerCase().indexOf("</h3>")+5)
    }
    }

    </script>

Ставим в HTML-низ.

0

92

Система предупреждений на форум (Псевдоаякс). Duka
В общем, сделал еще один скрипт, полезный он или нет судить вам.
Что он делает?
А ничего. кроме автоматизации выставления предупреждений он особо и не делает.
Что делаем?Создаем дополнительное поле с названием Предупреждения, длина текста - 3. Сообщения - Да. Профиль - Нет. Регистрация - Нет. Заполнение - Нет.
Далее запоминаем порядковый номер поля и меняем в скрипте красную жирную тройку на ваш номер.
Ставим скрипт в HTML-низ.
Что будет?
Под аватарой в строчке Предупреждение появится текущее значение, а так же 2 кнопки + и -, добавляющие и удаляющие 10 процентов соответственно.
Если поля у пользователя нет, а есть необходимость выставитьп редупреждение, идем к нему в профиль и ручками прописываем в графу Предупреждение иферку 0 (ноль) без каких-либо посторонних символов и пробелов. Все, теперь смело давим на +10 в его сообщении. При нажатии выскочит уведомление. подождав еще секунд 2-5 (взависимости от скорости интернета), можете выставлять/снимать предупреждение другому пользователю. Плюсы и Минусы под аватарой видят только Администраторы и Модераторы

<iframe name="AddVote" width="0" height="0"></iframe>
<script type="text/javascript">
if(GroupID==1 || GroupID==2){
var dib = document.getElementsByTagName("li")
var ids = new Array();
var p = 0;
var typeDesc;
for(q=0;q<dib.length-1;q++)
{
if(dib[q].className.indexOf("pl-email")!=-1)
{
    if(dib[q].innerHTML.indexOf("profile.php?id=")!=-1)
    {
    ids.push(dib[q].innerHTML.substring(dib[q].innerHTML.indexOf("?id=")+4, dib[q].innerHTML.indexOf("\">П")))
    }
}
}

for(i=0;i<dib.length-1;i++)
{
if(dib[i].className=="pa-fld3")
{
    dib[i].innerHTML+="%(<a target='AddVote' href='profile.php?section=fields&id="+ids[p]+"&type=plu#addVote' onclick='response(\"plu\")'>+10</a>/<a target='AddVote' href='profile.php?section=fields&id="+ids[p]+"&type=minus#addVote' onclick='response(\"minus\")'>-10</a>)"
    p++
}
}

function response(type){
if(type=='plu')typeDesc="повышен"
else if(type=="minus")typeDesc="понижен"
alert('Уровень предупреждения '+typeDesc+' на 10%')
}

if(document.URL.indexOf("#addVote")!=-1)
{
var type=document.URL.substring(document.URL.indexOf("&type=")+6, document.URL.length-8)
var d = document.getElementsByName("form[fld3]")[0]
if(type=='plu')d.value = parseInt(d.value)+10
else if(type=="minus")d.value = parseInt(d.value)-10
document.getElementsByName("update")[0].click()
}
}
</script>

0

93

Убираем название дополнительного поля в темах. Duka
Уберет название поля в сообщениях. К примеру, убрать надпись "Предупреждения" или "Награды" с правом отображения самих предупреждений или наград

<script type="text/javascript">
var fld = document.getElementsByClassName("pa-fld1")
for(i=0;i<fld.length;i++){
fld[i].innerHTML=fld[i].innerHTML.substring(fld[i].innerHTML.indexOf(":")+1)
}
</script>

Красная циферка - номер вашего поля
В HTML-низ или форму ответа(у гостей не сработает)

0

94

Изменить информацию при регистрации. Duka
http://img17.myimg.de/ghjgjgj419f8.jpg

<script type="text/javascript">
if(document.URL.indexOf("register.php")!=-1){
var div = document.getElementsByClassName("info-box")
div[0].innerHTML = "блаблаблаблаблаблаблаблабла"
}
</script>

0

95

Описание категорий. Duka

<script type="text/javascript">
makeDescription(1, "Описание первой категории")
makeDescription(2, "..второй категории")

function makeDescription(id, txt){
var div = document.getElementsByClassName("catleft")
var idN = id-1;
div[idN].nextSibling.innerHTML+="<br /><small>"+txt+"</small>"
}
</script>

0

96

Подсвечиваем разделы при наведении мышью. Duka

<script type="text/javascript">
var td = document.getElementsByClassName("tcl")
for(i=0;i<td.length;i++){
td[i].setAttribute("onmouseover", "this.style.backgroundColor='red'")
td[i].setAttribute("onmouseout", "this.style.backgroundColor=''")
}
</script>

Второй способ. Стилем. От Пети (Матрикса)

<style type="text/css">
td.tcl:hover {background: #ccc !important;}
</style>

0

97

Быстрое создание темы и опроса. Duka
http://s1.ipicture.ru/uploads/090111/29129/GIzd46Br9r.png
- Применяется во всех разделах на главной странице
- Каждая картинка ведет к созданию темы и опроса в разделе, в котором она отображается
- Не показывается гостям
- Если раздел - "Переадресация" - кнопки показываться не будут

Код:
<script type="text/javascript">
if(GroupID!=3){
var div = document.getElementsByTagName("div")
var a;
for(r=0; r<div.length; r++){
	if(div[r].className=="tclcon")
	{
a = div[r].getElementsByTagName("h3")[0].getElementsByTagName("a")[0]
if(!isNaN(a.href.substring(a.href.indexOf("id=")+3))){
div[r].innerHTML+="<div style=\"float: right;\"><a title=\"Новая тема\" href=\"/post.php?fid="+a.href.substring(a.href.indexOf("id=")+3)+"\"><img src=\"http://forumupload.ru/uploads/0003/ac/ce/6753-2.gif\" alt=\"+\" /></a>&nbsp;<a title=\"Новый опрос\" href=\"/poll.php?fid="+a.href.substring(a.href.indexOf("id=")+3)+"\"><img src=\"http://forumupload.ru/uploads/0003/ac/ce/6753-1.gif\" alt=\"+\" /></a></div>"
}
	}
}
}
</script>

Ставить в HTML-низ.

0

98

Модификация скрытого текста. Duka
Данный скрипт увеличивает возможности стандартного "скрытого текста".

Возможности использования по нескольким условиям:
• количеству репутации(уважения);
• количеству позитива;
• сообщение для группы;
• сообщение для пользователя;
• ограничение по возрасту.

Смело ставим в HTML-в форме ответа. Если планируется использовать в закрытых темах -> HTML-низ.

Как работает?
Используем стандартный хайд http://forum.mybb.ru/i/lock.png, в теле хайда, в самом начале, пишем одно из следующих условий
user=56; //Для пользователя с id=56 (смотреть ссылку профиля)
group=3; //Для группы. id смотреть в параметре show_group= в адресной строке при выборе группы на странице Участники
respect=50; //Для пользователей, у которых суммарное уважение(+/-) больше 50
positive=20; //Для пользователей, у которых суммарный позитив(+/-) больше 20
age=18; //Для пользователей старше 18 лет
Например,

Код:
[hide]group=2; Сообщение модераторам...[/hide]

Вместе с условием по количеству сообщений

Код:
[hide=20]group=2; Сообщение модераторам, набравшие 20 сообщений...[/hide]

Скриншоты:
Для пользователя
Для группы
По уважению
По позитиву
По возрасту

Сам скрипт

Код:
<script type="text/javascript">
var quote = document.getElementsByTagName("blockquote")
var n, condition;
var typet = new Array("respect", "group", "positive", "user", "age");
var typer = new Array((UserRespectPlus-UserRespectMinus).toString(), (GroupID).toString(), (UserPositivePlus-UserPositiveMinus).toString(), (UserID).toString(), (UserAge).toString());
for(q=0;q<typet.length;q++){
for(i=0;i<quote.length;i++){
if(quote[i].previousSibling.innerHTML.indexOf("Скрытый текст")!=-1){
if(quote[i].innerHTML.indexOf(typet[q]+"=")!=-1){
n=parseInt(quote[i].innerHTML.substring(quote[i].innerHTML.indexOf(typet[q]+"=")+(typet[q].length+1), quote[i].innerHTML.indexOf(";")))
if(isNaN(n)==false){
if(q==0){condition = parseInt(typer[0]) < n;}
else if(q==1){condition = parseInt(typer[1]) != n;}
else if(q==2){condition = parseInt(typer[2]) < n;}
else if(q==3){condition = parseInt(typer[3]) != n;}
else if(q==4){condition = parseInt(typer[4]) < n;}
	if(condition){
if(q==0){
	quote[i].innerHTML="Для просмотра скрытого текста нужно иметь "+n+" очков репутации. Осталось набрать "+(n-parseInt(typer[q]))
}else if(q==1){
	quote[i].innerHTML="Вашей группе запрещено просматривать данное сообщение"
}else if(q==2){
	quote[i].innerHTML="Для просмотра скрытого текста нужно иметь "+n+" очков позитива. Осталось набрать "+(n-parseInt(typer[q]))
}else if(q==3){
	quote[i].innerHTML="Данный текст предназначен для <a href='profile.php?id="+n+"'>этого</a> пользователя."
}else if(q==4){
	quote[i].innerHTML="Вам должно испольниться "+n+" лет(года)."
}
	} else {
quote[i].innerHTML=quote[i].innerHTML.substring(quote[i].innerHTML.indexOf(typet[q]+"="+n+";")+((typet[q].length+2)+n.toString().length))
	}
}
}
}
}
}
</script>

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

+1

99

Новое цветовыделение Duka

<script type="text/javascript">
inColor("red", new Array("Duka", "Admin"))
inColor("blue", new Array("AmiRa", "Impuls 101"))
inColor("green", new Array("likka"))
inColor("gray", new Array("rps"))
inColor("yellow", new Array("Шмель", "Изя", "DART"))

function inColor(color, myarray){
var a=document.links
for(i=0;i<a.length;i++){
for(q=0;q<myarray.length;q++){
if(a[i].innerHTML==myarray[q]){
a[i].innerHTML="<span style=\"color: "+color+";\">"+myarray[q]+"</span>"
}}}}
</script>

Копируем то, что выделенно курсивом столько, сколько нужно

0

100

Возможность редактирования только последнего сообщения. KAFLAN
Скрипт оставляет у пользователей кнопку "редактировать" только для последнего сообщения.
У модераторов и администраторов кнопка остается.

Код:
<script>
document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}

if (GroupID && GroupID >= 4)
{
   var arr = document.getElementsByClassName('pl-edit');

   if (arr && arr.length > 1)
   {

      for (var i = 0; i < arr.length - 1; i++)
      {
         arr[i].innerHTML = '';
      }
   }

}
</script>

Вставлять в HTML - низ или HTML - в форме ответа.

0


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