Беда какая-то. год с лишним пользуюсь скриптом «профиль с вкладками». Первый раз его под форум прописал сам автор(Shata), второй раз как-то смогли извратиться и сами подогнали под форум. Но в этот раз он не хочет – серьёзно. А автора я найти не могу. Как мы только его уже только не мучили, один раз даже получилось, но почему-то он работал выборочно(видать некоторые юзвери в его понимании рожей не вышли гы-гы), и даже пробовали другой вариант этого же скрипта(кто автор я не знаю) – но он еще хуже себя ведет. Поэтому можно я выложу тут изначальный скрипт, инструкцию автора, а кто-нибудь поможет мне этот скрипт подстроить под мой форум(а то у нас мозг от него уже кипит, и я постоянно матерюсь т.т).
Скрипт выкладываю именно так как его положила Shata,то есть все ниже Коментарии к скрипту принадлежат ей, а не мне!
Писала недавно скрипт для одной ролевой, потом поняла, что ролевой этой не суждено открыться, и решила выложить наработку сюда.
Суть скрипта в том, что он позволяет сделать в профиле несколько вкладкок. Например, отдельно для общей информации (зарегистрирован, количество сообщений, пол, IP и т.д.), отдельно для игровой информации (имя персонажа, способности, род деятельности), отдельно можно прописать награды или еще что-то. Количество вкладок ограничивается только количеством дополнительных полей профиля, которые вы заведете.
Скрипт рассчитан на человека достаточно знакомого с html, я считаю, поэтому выложить его просто в "полезные" я бы не рискнула.
Как сделала вкладки я:
У меня четыре вкладки: для общей информации, игровой, списка эпизодов, в которых участвует персонаж, и для наград. Как видите, там никак не выделяется кнопка активной вкладки, но это можно доработать, если кто-то захочет воспользоваться.
Код, который идет в html-низ:
<script>
function HideInfo(id,but){
if(but.value=="1"){
var fil=document.getElementById(id).getElementsByTagName("li")
var fi=0
for (fi=0; fi<=(fil.length-1); fi++)
{if ((fil[fi].className=="pa-fld1") || (fil[fi].className=="pa-fld2") || (fil[fi].className=="pa-fld3"))
{fil[fi].style.display = "none";}
if ((fil[fi].className!="pa-fld1") && (fil[fi].className!="pa-fld2") && (fil[fi].className!="pa-fld3"))
{fil[fi].style.display = "block";}
}
}
if(but.value=="2"){
var fil=document.getElementById(id).getElementsByTagName("li")
var fi=0
for (fi=0; fi<=(fil.length-1); fi++)
{if (fil[fi].className!="pa-fld1")
{fil[fi].style.display = "none";}
if (fil[fi].className=="pa-fld1")
{fil[fi].style.display = "block";}
}
}
if(but.value=="3"){
var fil=document.getElementById(id).getElementsByTagName("li")
var fi=0
for (fi=0; fi<=(fil.length-1); fi++)
{if (fil[fi].className!="pa-fld2")
{fil[fi].style.display = "none";}
if (fil[fi].className=="pa-fld2")
{fil[fi].style.display = "block";}
}
}
if(but.value=="4"){
var fil=document.getElementById(id).getElementsByTagName("li")
var fi=0
for (fi=0; fi<=(fil.length-1); fi++)
{if (fil[fi].className!="pa-fld3")
{fil[fi].style.display = "none";}
if (fil[fi].className=="pa-fld3")
{fil[fi].style.display = "block";}
}
}
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)+"<center><input type='Submit' onClick=\"return HideInfo('info"+i+"',this)\" value='1' id='bu1' title='О пользователе'> <input type='Submit' onClick=\"return HideInfo('info"+i+"',this)\" value='2' id='bu2' title='О персонаже'> <input type='Submit' onClick=\"return HideInfo('info"+i+"',this)\" value='4' id='bu4' title='Эпизоды'> <input type='Submit' onClick=\"return HideInfo('info"+i+"',this)\" value='3' id='bu3' title='Награды'></center><div id='info"+i+"'>"+t.substring(j,t.length)+"</div>"}}
</script>
Зеленым выделены коды кнопок. Как видите, это стандартные кнопки со свойствами title и value. Как раз value вы можете выдеть выше (выделено синим), оно определяет, какая вкладка будет видна.
Во вкладке 1 видны все поля профиля, кроме дополнительных.
Во вкладке 2 - только первое дополнительное.
Во вкладке 3 - только второе дополнительное.
Во вкладке 4 - только третье дополнительное.
Красным указаны как раз названия этих дополнительных полей.
Теперь что касается стилей. Обязательно нужно добавить куда-то в стили строчку:
.pa-fld1, .pa-fld2, .pa-fld3 {display: none}
Она оставит видимой по умолчанию только первую вкладку.
Необязательно - свойства для кнопок:
#bu1 {background-image: url(http://uploads.ru/i/m/R/D/mRD1N.png); height: 30px; width: 30px; background-color: transparent; border: none; color: transparent}
#bu1:hover {background-image: url(http://uploads.ru/i/j/k/5/jk5ht.png);}
#bu2 {background-image: url(http://uploads.ru/i/X/2/x/X2xF4.png); height: 30px; width: 30px; background-color: transparent; border: none; color: transparent}
#bu2:hover {background-image: url(http://uploads.ru/i/A/z/B/AzBTN.png);}
#bu3 {background-image: url(http://uploads.ru/i/f/S/k/fSkPK.png); height: 30px; width: 30px; background-color: transparent; border: none; color: transparent}
#bu3:hover {background-image: url(http://uploads.ru/i/r/c/d/rcdWG.png);}
#bu4 {background-image: url(http://uploads.ru/i/s/H/e/sHedf.png); height: 30px; width: 30px; background-color: transparent; border: none; color: transparent}
#bu4:hover {background-image: url(http://uploads.ru/i/1/I/9/1I9JQ.png);}
Теперь мой клич о помощи. На форум http://kolubel.rusff.ru
Мне нужно всего 3 вкладки. Что бы первая вкладка отображала сам профиль без доп полей; вторая вкладка отображала только первое дол.поле; третья вкладка только второе оп поле.
Либо более сложный вариант.
Также три вкладки. В первой основа профиля+1доп.поле; вторая вкладка – только второе доп.поле; третья вкадка – только третье доп.поле.
Сделайте как сможете пожалуйста…