Я тут пересмотрел все известные мне скрипты, и отобрал такие, которые на мое мнение должны быть на каждом сайта.
HTML-низ:
Спойлеры!!!
<style type="text/css">
#button-spoiler {background-image:url('https://upforme.ru/uploads/0000/12/13/488-1.gif'); padding:0; line-height:0; background-position:center; background-repeat:no-repeat}
</style>
<script>
function addSpoiler(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[spoiler]",from))==-1) return str;
if((pos2=str.indexOf("[/spoiler]"),pos+9)==-1) return str;
newpos=str.indexOf("[spoiler]",pos+9)
if(newpos<pos2 && newpos!=-1) str=addSpoiler(str,pos+9,true)
if((pos2=str.indexOf("[/spoiler]",pos+9))==-1) return str;
str=str.substring(0,pos)+makeSpoiler(str.substring(pos+9,pos2))+str.substring(pos2+10,str.length)
if( str.indexOf("[spoiler]")!=-1 && internal==false) str=addSpoiler(str,0,false)
return str}
function makeSpoiler(txt){
txt="<div class=quote-box style='padding:1px'><cite style='width:100%'>Спойлер <input style='width:60px;margin-left:70%;font-size:10px;' type='button' value='Показать' onclick='hideSpoiler(this)'></cite><blockquote style='display:none'>"+txt+"</blockquote></div>"
return txt}
function hideSpoiler(sp){
spoiler=sp.parentNode.parentNode.getElementsByTagName("blockquote")[0]
if(spoiler.style.display=='none'){
spoiler.style.display='inline'
sp.value='Скрыть'}
else{
spoiler.style.display='none'
sp.value='Показать'}}
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=addSpoiler(post.innerHTML,0,false)}}
if(form=document.getElementById("form-buttons"))
form.getElementsByTagName("tr")[0].insertCell(19).innerHTML="<img id=\"button-spoiler\" title=\"Спойлер\" onclick=\"bbcode('[spoiler]','[/spoiler]')\" src=\"/i/blank.gif\" />"
</script>Дополнительные цвета!
<table><tr>
<td onclick="return changeVisibility('mycolor', this)"><img src="http://forum.mybb.ru/i/color_swatch.png" alt="Мои цвета" /></td></tr></table>
<div class="container" id="mycolor" style="display:none; width:200px">
<table cellspacing="0">
<tr>
<td style="background-color:indigo" onclick="bbcode('[color=indigo]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:thistle" Height="15px" onclick="bbcode('[color=thistle]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:tomato" onclick="bbcode('[color=tomato]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:yellowgreen" onclick="bbcode('[color=yellowgreen]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:lightslategray" onclick="bbcode('[color=lightslategray]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:lightpink" onclick="bbcode('[color=lightpink]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:goldenrod" onclick="bbcode('[color=goldenrod]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:blue" onclick="bbcode('[color=blue]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:silver" onclick="bbcode('[color=silver]', '[/color]'); return changeVisibility('mycolor', this)"></td>
<td style="background-color:aquamarine" onclick="bbcode('[color=aquamarine]', '[/color]'); return changeVisibility('mycolor', this)"></td>
</tr>
</table>
</div>Скрипт который разрешает смотреть результаты опроса до того, как проголосовал в нем.
<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>Скрипт всплывающего окна поиска!
<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>Скрипт уведомления о новом ЛС пользователю!
<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>Кнопка "вверх к первому сообщению" в каждом сообщении
<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+">Вверх</a> "+up[p].innerHTML.substr(14)}
</script>Функция Описание темы (аналог IPBшной)
<script type="text/javascript">
var theme=document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML
if (theme.indexOf(">>")!=-1)
{if (theme.indexOf("Редактирование")!=-1)
{document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML=theme.substring(0, theme.indexOf(">>"))+" - Редактирование сообщения</span>"}
else
{document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML=theme.substring(0, theme.indexOf(">>"))+"</span>"}}
</script>
<script type="text/javascript">
var descs=document.getElementsByTagName("td")
var z=0
for (z=0; z<=(descs.length-1); z++)
{if (descs[z].innerHTML.indexOf(">>")!=-1)
{if (descs[z].className=="tcl")
{descs[z].innerHTML=descs[z].innerHTML.substring(0, descs[z].innerHTML.indexOf(">>"))+"</a><br />"+"<font size='1'>"+descs[z].innerHTML.substring((descs[z].innerHTML.indexOf(">>")+8), (descs[z].innerHTML.toLowerCase().indexOf("</a>")))+"</font>"+descs[z].innerHTML.substr((descs[z].innerHTML.toLowerCase().indexOf("</a>")+4))
}
else
{descs[z].getElementsByTagName("a")[0].innerHTML=descs[z].getElementsByTagName("a")[0].innerHTML.substring(0, descs[z].getElementsByTagName("a")[0].innerHTML.indexOf(">"))
}}}
</script>
<script type="text/javascript">
if (document.getElementById('pun-main').getElementsByTagName("h1")[0].innerHTML.indexOf("Начать новую")!=-1)
{document.getElementsByTagName("form")[0].innerHTML=document.getElementsByTagName("form")[0].innerHTML.substring(0, (document.getElementsByTagName("form")[0].innerHTML.indexOf("areafield")-10))+"<p><label for='descr'>Описание</label><br />"+"<span class='input'>"+"<input id='descr'"+" type='text'"+" size='80'"+" maxlength='35' /></span></p>"+document.getElementsByTagName("form")[0].innerHTML.substr( (document.getElementsByTagName("form")[0].innerHTML.indexOf("areafield")-10))
if (document.getElementById('fld3').value.indexOf(">>")!=-1)
{
document.getElementById('descr').value=document.getElementById('fld3').value.substr(document.getElementById('fld3').value.indexOf(">>")+2)
document.getElementById('fld3').value=document.getElementById('fld3').value.substring(0, document.getElementById('fld3').value.indexOf(">>"))
}
document.getElementsByName("submit")[0].onclick=addDesc
document.getElementsByName("preview")[0].onclick=addDesc}
function addDesc()
{document.getElementById('fld3').value=document.getElementById('fld3').value+">>"+document.getElementById('descr').value
return true}
</script>Скрипт сворачивания обьявления!
<script type="text/javascript">
document.getElementById('pun-announcement').getElementsByTagName("div")[0].id="annbody"
function lookCook()
{
if (document.cookie.indexOf("announce")!=-1)
{var an1=document.cookie.substr(document.cookie.indexOf("announce"))
var an=an1.substr(an1.indexOf("id")+2, 2)
if (an=="op")
{document.getElementById('annbody').style.display="block"
var knopka="Скрыть объявление"}
else if (an=="cl")
{document.getElementById('annbody').style.display="none"
var knopka="Показать объявление"}}
else if (document.cookie.indexOf("announce")==-1)
{document.getElementById('annbody').style.display="block"
var knopka="Скрыть объявление"}
document.getElementById('pun-announcement').getElementsByTagName("h2")[0].innerHTML+="<div align='right'>"+"<input type='button'"+" id='hider'"+" value='"+knopka+"' "+"onclick='hideAnn() ; wCook()' /></div>"}
lookCook()
function hideAnn()
{
if (document.getElementById('annbody').style.display!="none")
{document.getElementById('annbody').style.display="none"
document.getElementById('hider').value="Показать объявление"}
else
{document.getElementById('annbody').style.display="block"
document.getElementById('hider').value="Скрыть объявление"}
}
function wCook()
{
var ann="announce=id"
if (document.getElementById('annbody').style.display!="none")
{ann+="op"}
else
{ann+="cl"}
var d=new Date()
d.setDate(d.getDate()+1)
ann+=";expires="+d.toGMTString()
document.cookie=ann}
</script>Разделение важных и обычных тем на блоки как в IPB
<script type="text/javascript">
<!--
if (document.URL.indexOf("viewforum")!=-1){
var trs=document.getElementById('pun-main').getElementsByTagName("table")[0].rows
for (io=1; io<=(trs.length-1); io++){
if ((trs[io].className.indexOf("isticky")!=-1)&&(trs[io+1].className.indexOf('isticky')==-1))
{var normal=document.getElementById('pun-main').getElementsByTagName("table")[0].insertRow(io+1)
for(j=0;j<4;j++){
nl=normal.insertCell(0)
nl.className="tc2"
nl.innerHTML=" "
nl.style.borderLeft="0px"}
nl.innerHTML="<b>Темы форума</b>"
nl.style.textAlign="left"
}}}
-->
</script>Подпись по умолчанию тем, у кого ее нет!
<script type="text/javascript">
if (document.URL.indexOf("viewtopic")!=-1)
{var sigs=document.getElementById('pun-main').getElementsByTagName("div")
var v=0
for (v=0; v<=(sigs.length-1); v++)
{if (sigs[v].className=="post-content")
{if (sigs[v].innerHTML.toLowerCase().indexOf("<span>подпись автора</span>")==-1)
{sigs[v].innerHTML=sigs[v].innerHTML+"<dl class='post-sig'><dt><span>Подпись автора</span></dt><dd><p>"+"Ваш текст по умолчанию"+"</p></dd></dl>"}}}}
</script>HTML-верх:
Форма быстрого ответа:
Сокрытие информации под аватаром с помощью кнопки.
<script>
function HideInfo(id,but){
if(but.value=="+"){
but.value = "-";document.getElementById(id).style.display = ""}
else{
but.value = "+";document.getElementById(id).style.display = "none"}
return false}
d = document.getElementsByTagName("div")
for (i=0;d[i]; i++){
if (d[i].className.indexOf("post-author")!=-1){t = d[i].innerHTML
if((j = t.toLowerCase().indexOf("<li class=pa-from>"))!=-1 || (j = t.toLowerCase().indexOf("<li class=\"pa-from\">"))!=-1 || (j = t.toLowerCase().indexOf("<li class=pa-reg>"))!=-1 || (j = t.toLowerCase().indexOf("<li class=\"pa-reg\">"))!=-1)
d[i].innerHTML = t.substring(0,j)+"<input type='Submit' onClick=\"return HideInfo('info"+i+"',this)\" value='+'><br><div id='info"+i+"' style='display:none'>"+t.substring(j,t.length)+"</div>"}}
</script>