Я тут пересмотрел все известные мне скрипты, и отобрал такие, которые на мое мнение должны быть на каждом сайта.
HTML-низ:
Спойлеры!!!
<style type="text/css"> #button-spoiler {background-image:url('http://forumupload.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>