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

Объявление


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

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


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

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

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


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


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

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

101

Убираем название дополнительного поля в темах.

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

<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

102

Изменить информацию при регистрации.

Код:
<script type="text/javascript">
if(document.URL.indexOf("register.php")!=-1){
var div = document.getElementsByClassName("info-box")
div[0].innerHTML = "Ваш текст"
}
</script>

0

103

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

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

104

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

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

red - нужный цвет

Второй способ. Стилем.

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

0

105

Быстрое создание темы и опроса.

- Применяется во всех разделах на главной странице
- Каждая картинка ведет к созданию темы и опроса в разделе, в котором она отображается
- Не показывается гостям
- Если раздел - "Переадресация" - кнопки показываться не будут

Код:
<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://support.[b][color=red]НЕ НАШ СЕРВИС![/color][/b]/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://support.[b][color=red]НЕ НАШ СЕРВИС![/color][/b]/uploads/0003/ac/ce/6753-1.gif\" alt=\"+\" /></a></div>"
}
	}
}
}
</script>

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

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

0

106

Модификация скрытого текста.

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

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

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

Как работает?
Используем стандартный хайд , в теле хайда, в самом начале, пишем одно из следующих условий
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>

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

0

107

Возможность редактирования только последнего сообщения.

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

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

108

Возможность удаления только последнего сообщения.

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

Код:
<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-delete');

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

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

}
</script>

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

0

109

Цветовыделение тем.

Когда будете начинать новую тему, справа от Заголовка будет выпадающее меню с цветами.
Если выбрать любой цвет, то на странице списка тем ваша тема будет выделена любым цветом

Код:
<script type="text/javascript">
if(document.URL.indexOf("viewforum.php")!=-1){
var a = document.getElementsByTagName("a");
var ins, col;
for( i=0; i<a.length; i++ ){
	if(a[i].href.indexOf("viewtopic.php")!=-1 && a[i].innerHTML.indexOf(";;")!=-1){
ins = a[i].innerHTML;
col = ins.substring(0, ins.indexOf(";;"))
txt = ins.substring(ins.indexOf(";;")+2)
a[i].innerHTML = "<span style=\"color: "+col+"\">"+txt+"</span>";
	}
}
} else if(document.URL.indexOf("viewtopic.php")!=-1){
var p = document.getElementsByTagName("p");
if(document.title.indexOf(";;")!=-1){
	document.title = document.title.substring(0, document.title.indexOf(" - ")+3)+document.title.substring(document.title.indexOf(";;")+2)
}
for( q=0; q<p.length; q++ ){
	if(p[q].className=="container crumbs" && p[q].innerHTML.indexOf(";;")!=-1){
p[q].innerHTML = p[q].innerHTML.substring(0, p[q].innerHTML.lastIndexOf("»")+1)+" "+p[q].innerHTML.substring(p[q].innerHTML.indexOf(";;")+2)
	}
}
} else if(document.URL.indexOf("post.php?fid=")!=-1 && GroupID<=2){
var colors = new Array();
colors.push(new Array('Красный', 'red'));
colors.push(new Array('Черный', 'black'));
colors.push(new Array('Желтый', 'yellow'));
colors.push(new Array('Оранжевый', 'orange'));
colors.push(new Array('Синий', 'blue'));
colors.push(new Array('Зеленый', 'green'));
colors.push(new Array('Серый', 'gray'));
var mmass = ""
for(x=0;x<colors.length;x++){
	mmass+="<option style=\"color: "+colors[x][1]+"\" value=\""+colors[x][1]+"\">"+colors[x][0]+"</option>"
}
var p1 = document.getElementsByName("req_subject")[0]
p1.style.visibility = 'hidden'
p1.parentNode.innerHTML+="<input onkeydown=\"st(document.getElementsByName('changer')[0].options[document.getElementsByName('changer')[0].selectedIndex].value)\" onkeyup=\"st(document.getElementsByName('changer')[0].options[document.getElementsByName('changer')[0].selectedIndex].value)\"   id=\"qwe_pole\" type=\"text\" name=\"qwe_pole\" value=\"\" size=\"80\" maxlength=\"70\" /> <select name=\"changer\" onchange=\"st(this.options[this.selectedIndex].value)\"><option value=\"default\">По-умолчанию</option>"+mmass+"</select>"
function st(value){
	if(document.getElementsByName("qwe_pole")[0].value!=""){
	t = document.getElementsByName("req_subject")[0];
	if(value!="default"){
if(t.value.indexOf(";;")!=-1){
	t.value=value+";;"+document.getElementsByName("qwe_pole")[0].value
} else {
	t.value=value+";;"+document.getElementsByName("qwe_pole")[0].value
}
	} else {
t.value=document.getElementsByName("qwe_pole")[0].value
	}
	}
}
}
</script>

0

110

Профиль справа (Опционально для каждого пользователя).

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

Ставим в HTML-верх

<div id="profileSide"></div>
<script type="text/javascript">
function saveCookie(side){
var c_date = new Date();
c_date.setTime(c_date.getTime()+99999999999)
date = c_date.toGMTString();
document.cookie="profileSide="+side+"; expires="+date
}

function getSide(side){
if(side==0 && document.cookie.indexOf("profileSide")!=-1){
    side = document.cookie.substring(document.cookie.indexOf("profileSide=")+12, document.cookie.indexOf("profileSide=")+13)
}
if(side=="L"){
    document.getElementById("profileSide").innerHTML="";
} else if(side=="R"){
    document.getElementById("profileSide").innerHTML="<s"+"tyle type=\"text/css\">.punbb .post h3 span {border-right: 1px solid transparent;border-left: none;padding: 0.5em 1em;display: block; text-align: right;margin-right: 19em;margin-left: 0;}.punbb .post h3 strong {float: left;text-align: left;}.punbb .post .post-author, .pl-email, .pl-website {float: right;}.punbb .post-body {margin-right: 19em;margin-left: 0;border-right: 1px solid;border-left: none;}.punbb .post-links {margin-right: 19em;margin-left: 0em;border-right: 1px solid transparent;border-left: none;}.punbb .post-links ul {margin-right: -19em;margin-left: 0em;text-align: left;}.post-rating {float: left;}</st"+"yle>";
}
}
getSide(0)
</script>

Ставим в форму ответа

Код:
<select>
<option selected="selected">--Отображение профиля--</option>
<option onclick="saveCookie('L'); getSide('L')">|--Слева</option>
<option onclick="saveCookie('R'); getSide('R')">Справа--|</option>
</select>

Нужно найти оптимальный вариант css.
Вместо transparent писать цвет бордеров блока сообщений, ибо сам он в файлике вынесен в .css, а не в _cs.css, где ему положено быть, но, по каким-то причинам, он в .css

0

111

Скрываем посты с отрицательным рейтингом.

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

Код:
<script type="text/javascript">
var ratingPostMsgHide = -1; // репутация, при которой пост будет считаться плохим

document.getElementByClassName = 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;
}
var pozitive = document.getElementByClassName("post-rating")
for( i=0; i<pozitive.length; i++)
{

   rating = pozitive[i].getElementsByTagName("p")[0].getElementsByTagName("a")[0].innerHTML
   rating = parseInt(rating)
   if( rating <= ratingPostMsgHide )
   {
      postMsg = document.getElementByClassName("post-content")[i].innerHTML;
      document.getElementByClassName("post-content")[i].innerHTML = "<div class=\"quote-box\"><blockquote><p><a href=\"javascript: void(0);\" onclick=\"document.getElementById('postMsgID" + i + "').style.display = 'block'\">Данное сообщение имеет отрицательный рейтинг. Для его отображения нажмите сюда</a></p></blockquote></div><div id=\"postMsgID" + i + "\" style=\"display: none;\" class=\"quote-box\"><blockquote><p>" + postMsg + "</p></blockquote></div>"
   }

}
</script>

0

112

Профилактика на форуме.

<div id="resplash" style="display: none;">
<div class='formal' style='height:200px; width:200px; margin:auto; margin-top:200px; font-family:tahoma; font-size:10px;'> <form id='login' class='container' method='post' action='login.php?action=in' onsubmit='return my_form(this)'><fieldset><span>Форум на профилактике</span><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='25'  maxlength='25' /></span></p></div></fieldset> <center><p class='formsubmit'> <input type='submit' class='button' id='customebutton' name='login' value='Войти как Администратор' /></p></center></form></div></div>
<script type="text/javascript">
var active = 1;
if(GroupID != 1 && active == 1){
e10 = document.createElement('div')
e10.innerHTML = document.getElementById("resplash").innerHTML;
document.getElementsByTagName('body')[0].insertBefore(e10,document.getElementById('pun_wrap'))
document.write("<style type=\"text/css\">html, body {background: #fff;} #customebutton {margin: auto;} #pun {display: none;}</style>");
document.title= 'Форум на профилактике - '+document.title;
}
</script>

Как работает:

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

Примечания:

Не обязательно убирать скрипт после окончания профилактики, достаточно просто поменять 1 на 0 в строке var active = 1; и профилактика будет отключена. При необходимости можно возобновить профилактику произведя обратные действия, то есть поменяв 0 на 1 =)

Куда ставить:

В хтмл-верх (можно и вниз, но вверху будет быстрее срабатывать)

Тестирировалось:

Opera, Mozilla FireFox, IE

+1

113

Скрипт "Пользователи за 24 часа

Код:
<script type=text/javascript>
var url = document.location.href.toString();
       if (url.indexOf(".php") == -1 && !window["DoNotShowActive"])
       {
          var UserID = UserID;
          if (!UserID)
              UserID = -1;
          var UserLogin = UserLogin;
          if (!UserLogin)
               UserLogin  = '';
          document.write("<sc" + "ript src='http://stat.zeroparking.ru/GetActive.ashx?un=" + UserLogin  + "&u=" + UserID + "&fn="+ 'http://' + document.location.host +"'></scr"+"ipt>");
       }
</script>

0

114

Минуем страницу переходов.

Код:
<script type="text/javascript">
    var a = document.getElementsByTagName("a")

    for( i=0; i<a.length; i++ )
    {
       if( a.href.indexOf("http://" + document.domain + "/click.php?http://") != -1 )
       {
          a[i].href = "http://" + a[i].href.substring(a[i].href.lastIndexOf("http://")+7)
       }
    }
    </script>

0


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