Официальный Форум технической поддержки ForumBB

Объявление


Уважаемые пользователи!
С 05.12.2023 форумы в домене artfbb.ru будут перенесены в домен frmbb.ru!

Для удобного поиска работает - «Поиск по форуму».
При возникшей проблеме Обязательно указывайте адрес форума!


Вопросы по рекламе на ForumBB: sales@forumbb.ru, ICQ: 1-130-134, skype: alex_derenchuk.
По всем остальным вопросам, пишите: admin@forumbb.ru, ICQ: 1-130-134.

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

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


Вы здесь » Официальный Форум технической поддержки ForumBB » Новые возможности форума/Скрипты » Скрипты для форумов. (Добавьте новые возможности вашему форуму)


Скрипты для форумов. (Добавьте новые возможности вашему форуму)

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

81

Запрет просмотра тем гостям.
Простенький скрипт, достаточно простой, запрещающий гостям просматривать темы.
Версия первая.

Код:
<script>
if ((!document.getElementById('navprofile')) && (document.URL.indexOf("viewtopic.php")!=-1)){
alert ('Администратор запретил Вам просматривать темы');
history.go(-1);
}
</script>

Ставить в объявление

0

82

Скрытие формы ответа (Аналог IPB).

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

Код:
<style type="text/css">
#post-form {
display:none;}
</style>
<script>
function hide()
{document.getElementById("post-form").style.display="block"}
</script>

В низ ставим

Код:
<script type="text/javascript">
var arr=document.getElementsByTagName("div")
i=0
if (document.location.href.toLowerCase().indexOf('viewtopic.php') != -1){
while(arr[i] ){
if(arr[i].className=="postlink"){
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML="<a style='cursor: poinetr;' onClick='hide()'><span>Быстрый ответ</span></a> "+name
}i++}}
</script>

Форма скрыта, кнопка Быстрый ответ находится рядом с кнопкой Ответить. При клике появится форма ответа.

0

83

Реклама во втором посте.

Код:
<script type="text/javascript">
var content="<center><a href=[b]'http://forumbb.ru/new.php' [/b]target='_blank'><img src=[b]http://img216.imageshack.us/img216/3254/01a58e21f3dacq9.gif[/b]></a></center>";
var namead="[b]ForumBB[/b]";
var ava="<br /> [b]Реклама[/b]";
var sup="Advert agent - block1";
var sub="Advert agent - block2";

var arr=document.getElementsByTagName("div")
i=0
while(arr[i] ){
if((arr[i].className=="post topicpost") || (arr[i].className=="post toppost") || (arr[i].className=="post topicpost endpost")){
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML=name+"<div class=post><h3><span><strong>#</strong>"+sup+"</span></h3><div class=container><div class=post-author><ul><li class=pa-author><a href=javascript:to('Agent')>"+namead+"</a></li><li class=pa-avatar item2>"+ava+"</li></ul></div><div class=post-body><div class=post-box><div class=post-content><p>"+content+"</p></div></div></div><div class=post-links><ul><li>"+sub+"<span class=acchide>г</span></li></ul></div></div></div>"
}i++}
</script>

Надписи ставить свои.
Если виден всем - ставить в HTML-низ.
Пользователям - HTML в форме ответа

0

84

Объявление.Подобие "Важной темы".

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

Код:
<script type="text/javascript">
var isticky="[b]Объявление[/b]"
var name_theme="[b]Модульная панель[/b]"
var theme="[b]https://help.forumbb.ru/viewtopic.php?pid=17090#p17090[/b]"
var author="[b]Admin[/b]"
var arr=document.getElementsByTagName("tbody")
i=0
while(arr[i] ){
if((arr[i].className=="hasicon") && (document.URL.indexOf("viewforum.php")!=-1)){
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML="<tr class=altstyle isticky><td class=tcl><div class=intd><div class=icon><!-- --></div></div><div class=tclcon><span class=acchide>1</span><span class=stickytext>"+isticky+": </span><a href="+theme+">"+name_theme+"</a><span class=byuser> "+author+"</span></div></td><td class=tc2>-</td><td class=tc3>-</td><td class=tcr><span class=byuser> "+author+"</span></td></tr>"+name;
}i++}
</script>

Жирное менять на свое.

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

0

85

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

Наверняка вы видели уже такую вещь на форумах IPB, vBulletin и т.д.
Появляется блок с информацией: Ник, Имя, Аватар, Статус, Возраст, Дата рождения, уважение, позитив, время на форуме, дата регистрации и прочее.
Скрипт может неким образом заставить пользователя заполнить недостающие поля в профиле, иначе он будет лицезреть надписи вида "не поределено".
Пользователям показывает одну информацию, Гостям - другую.

Код:
<script type="text/javascript">
var mon_array = new Array("", "Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");
Tm = new Date();
Tm.setTime(1000*UserRegistered);
m=Tm.getMonth()+1;
if (m<10) m=m;
hh=Tm.getHours();
mm=Tm.getMinutes()+'';
if (mm<10) mm=mm;
tm='<strong>'+Tm.getDate()+'&nbsp;'+mon_array[m]+'</strong>&nbsp;в&nbsp;<strong>'+hh+':'+mm+'</strong>';
var UserTotalReg = Math.floor(UserTotalTime/86400)
var UserTotalPost = Math.floor(UserPosts/60)
var sex_array = new Array("Пол неопределен. Войдите в <a href='/profile.php?section=personal&id="+UserID+"'>Профиль</a> и установите пол", "Ваш пол: <strong>Муж</strong>", "Ваш пол: <strong>Жен</strong>");
var sex = sex_array[UserSex]
if (UserAvatar == ""){UserAvatar = "http://s54.radikal.ru/i145/0808/84/e1fbc11ac605.png"}
if (UserBirthDate == ""){UserBirthDate = "Дата не выставлена"}
if (UserAge == "0"){UserAge = "[Нет сведений]"}
var user=", <strong>"+UserName+"</strong>";
if (user == ", <strong></strong>"){user = ""}
var arr=document.getElementsByTagName("div")
i=0
while(arr[i] ){
if(arr[i].id=="pun-main") {
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML="<div class=category><h2>Информационное табло</h2><div class=container><table border=0><tr><td><a href='/profile.php?section=avatar&id="+UserID+"' title='Изменить аватару'><img src="+UserAvatar+"></a><br /><strong>"+UserTitle+"</strong></td><td width=40%>Приветствуем на форуме"+user+"!<br />"+sex+"<br />Вы используете стиль: <strong>"+BoardStyle+"</strong><br />Вы в группе  <strong>"+GroupTitle+"</strong><br />На форуме Вами было оставлено <strong>"+UserPosts+"</strong> сообщений<br />Ваш возраст: <strong>"+UserAge+"</strong>.<Br />Ваш день рождения: <strong>"+UserBirthDate+"</strong><br /><br />Профиль <a href='/profile.php?id="+UserID+"'>"+UserLogin+"</a> | Ваши <a href='/userlist.php?&show_group="+GroupID+"'>соучастники</a></td><td width=40%><strong>Отношения</strong><br /><br /><a href='/respect.php?id="+UserID+"'>Уважение</a>: <strong>"+UserRespectPlus+"</strong>/<strong>"+UserRespectMinus+"</strong><br /><a href='/positive.php?id="+UserID+"'>Позитив</a>: <strong>"+UserPositivePlus+"</strong>/<strong>"+UserPositiveMinus+"</strong><Br /><Br />Вы зарегистрировались "+tm+" и провели на форуме <strong>"+UserTotalReg+"</strong> дней</td></tr></table></div></div><br />"+name
}i++}
</script>
<script type="text/javascript">
var arr=document.getElementsByTagName("div")
i=0
str=document.URL
while(arr[i] ){
if(arr[i].id=="pun-main" && GroupID == "3") {
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML="<div class=category><h2>Информационное табло</h2><div class=container><table border=0><tr><td><img src=http://s54.radikal.ru/i145/0808/84/e1fbc11ac605.png></td><td width=80%>Приветствуем тебя на форуме, Гость.<br />Для участия в конференциях просьба <a href='login.php'>войти</a> или <a href='register.php'>зарегистрироваться</a>.</td></tr></table></div></div><Br />"+name
}
i++
}
</script>

Менять в скрипте ничего не нужно. По желанию (опытным) можно изменить структуру вывода, все надписи, порядок и адреса картинки [нет_аватара]

Данный скрипт ставить в HTML-низ.
Со временем может случиться такое, что скрипт может не работать, в таком случае создайте тему на форуме с просьбой исправить. Это из-за исправления изменения вывода информации в джс.

Скриншоты ниже:
http://s55.radikal.ru/i147/0808/a4/ae0ba574fcd6.jpg  - для гостей.
http://s50.radikal.ru/i129/0808/43/8b4c3383e761.jpg - для пользователей.

0

86

"Горячие клавиши".

По определенной комбинации клавиш вызывает определенную функцию.
Ctrl + b - добавляет теги [b.][/b.]
Ctrl + i - добавляет теги [i.][/i.]
Ctrl + s - добавляет теги [s.][/s.]
Ctrl + u - добавляет теги [u.][/u.]
Ctrl + Enter - Быстрая отправка сообщения.

Внимание! В некоторых браузерах вместе с функцией может вызвать свои браузерные функции.
К примеру, при комбинации Ctrl + s в Opera "Сохраняет документ".

Код:
<script type="text/javascript">
document.onkeydown=function(e){
if (e) event=e
if ((event.keyCode==73)&&(event.ctrlKey)){
bbcode('[i]', '[/i]');
}
if ((event.keyCode==66)&&(event.ctrlKey)){
bbcode('[b]', '[/b]');
}
if ((event.keyCode==83)&&(event.ctrlKey)){
bbcode('[s]', '[/s]');
}
if ((event.keyCode==85)&&(event.ctrlKey)){
bbcode('[u]', '[/u]');
}
if ((event.keyCode==13)&&(event.ctrlKey)){
document.getElementById('post').submit.click();
}}
</script>

Отдельно ctrl+Enter(отправка сообщения)

Код:
<script type="text/javascript">
document.onkeydown=function(e){
if (e) event=e
if ((event.keyCode==13)&&(event.ctrlKey)){
document.getElementById('post').submit.click();
}}
</script>

Вставлять в HTML-в форме ответа

+1

87

Цитирование с BB-кодами.

Скрипт позволит процитировать сообщение вместе с исходными 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-в форме ответа

Стадия: Тестирование!

+1

88

BB-ссылка на тему.

Код:
<script type="text/javascript">
function ad(){
prompt('BB-код со страницей\n', '[url= + a + ]' + b + '[/url]')
}
var a = document.URL
var b = document.title
var arr=document.getElementsByTagName("div")
i=0
while(arr[i] ){
if((arr[i].className=="postlink") && (document.URL.indexOf("viewtopic.php")!=-1)){
name=arr[i].innerHTML
arr[i].innerHTML="<a onclick=\"ad()\">Получить ссылку</a> "+name;
}i++}
</script>

На странице тем появляется ссылка, при нажатии на которую выскакивает окно с ВВ-кодом для вставки на любой другой форум.

0

89

Замена + и - в уважении под подписью.

Ставить в хтмл-низ или форму ответа

Код:
<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="[b]КАРТИНКА[/b]+" title="+" />'
}
if(a[i].title == "Негативное сообщение"){
    a[i].innerHTML = '<img src="[b]КАРТИНКА[/b]-" 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 = "[b]КАРТИНКА[/b]+" 
if(img[i].alt == "-") img[i].src = "[b]КАРТИНКА[/b]-" 
}
</script>

0

90

Обзор категорий. аналог IPB.

Кликая на название категории, мы попадаем на страницу списка форумов именно этой категории.
Ставить сие в 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

91

Быстрый поиск на странице создания тем.

Код:
<script type="text/javascript">
var type="[b]posts[/b]"
// or topics
var masslist = "";
[color=red]var mass = new Array("бэкап", "партнерство", "Дополнительные смайлики", "Недоступен форум", "DNS", "не работает скрипт", "Фон", "сделать стиль", "пропал форум", "партнерство", "шапка")[/color]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://[b]help.forumbb.ru[/b]/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

92

Дополнение в статистику.

Добавит в статистику число разделов и категорий.

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

93

Шкала активности.

Один из способов применения.
Создаете группу Новенькие. Устанавливаете значение "Переместить в группу" активные при наобре 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>

Скриншот http://s2.ipicture.ru/uploads/081001/VPT4WW2A90.jpg

0

94

Новый скрипт скрытия тем от пользователей.

Как многие знают, в старом скрипте имелась уязвимость, позволяющая обойти запрет просмотра колёсиком мыши. На данный момент это исправлено, а так же устранены некоторые недоработки:

Код:
<script type="text/javascript">
if (GroupID==3){
if (document.URL.indexOf("viewtopic.php")!=-1){
document.getElementById('pun-main').innerHTML="<h1><span>Информация</span></h1><div class=\"info\"><div class=\"container\" style=\"padding: 8px;\">Для доступа к этой странице Вам нужно <a href=\"login.php\">войти</a> или <a href=\"register.php\">зарегистрироваться</a>.</div></div>"
}}
</script>

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

+1

95

Баннер, позволяющий при наведении мыши сменить картинку.

Код:
<a onmouseover="document.banner.src='http://www.kolobok.us/smiles/user/kez_17.gif';" onmouseout="document.banner.src='http://www.kolobok.us/smiles/standart/smile3.gif';"  href="https://help.forumbb.ru/"><img src="http://www.kolobok.us/smiles/standart/smile3.gif" name="banner"></a>

Первая картинка - при наведении.
Вторая - после наведения.
Третья - в обычном состоянии, пока по баннеру не провели мышью.
Адрес форума тоже меняйте на Ваш.

Ставить куда угодно.

0

96

Новый скрипт смайлов

Скрипт заменяет/добавляет смайлики в блоке стандартных смайликов.

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

0

97

Кубики (Дайсы).

Скрипт позволит "кидать кубики" прямо на форуме.
Полезно для ролевых форумов.

Ставить в 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>

Добавлено:
Добавил ограничение в количестве граней и кубиков. 10 максимум

0

98

Поиск тем.

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

Код:
<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 - низ!

Отредактировано Admin (16.01.2010 15:58:45)

0

99

Всплывающее описание раздела.

При наведени курсора на значок [?] покажет описание раздела.

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

100

Система предупреждений на форум .

В общем, сделал еще один скрипт, полезный он или нет судить вам.
Что он делает?
А ничего. кроме автоматизации выставления предупреждений он особо и не делает.
Что делаем?
Создаем дополнительное поле с названием Предупреждения, длина текста - 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>

Отредактировано Admin (16.01.2010 16:13:16)

0


Вы здесь » Официальный Форум технической поддержки ForumBB » Новые возможности форума/Скрипты » Скрипты для форумов. (Добавьте новые возможности вашему форуму)