paul41598
06-17-2005, 10:00 PM
This is my first mod, and I've been new to VB for 3 weeks, so please dont harp on :nervous:
This mod is an addon to attroll's additional navbar found here (https://vborg.vbsupport.ru/showthread.php?t=65198&highlight=additional+navbar)
Purpose/Reason for mod:
I had too many links and needed an extra navigation bar. However I thought it would be cool if the user could choose whether or not they wanted the navbar or if they didnt want all the clutter. In addition, I thought it would be cool to also not show the extra navbar to guests. Instead, when they click on the link, have it say it was only available to logged in users.
Integration:
It will require a bit of tweaking to integrate into your forums. I've hacked many areas of my forums, which can be seen in the screenshots. So you may need to adjust certain areas of your templates.
This will only work if you have attroll's hack installed, or at least an additional navbar equivalent. You may need to adjust the $navbar2 variable to your's
Time To Hack:
open template "headinclude"
Add:
<!-- Show Hide Additional Navbar -->
<script type="text/javascript">
var enablepersist="on" //Enable saving state of content structure using session cookies? (on/off)
var collapseprevious="no" //Collapse previously open content when opening present? (yes/no)
var contractsymbol='Hide Additional Navbar' //HTML for contract symbol. For image, use: <img src="whatever.gif">
var expandsymbol='Show Additional Navbar' //HTML for expand symbol.
if (document.getElementById){
document.write('<style type="text/css">')
document.write('.switchcontent{display:none;}')
document.write('</style>')
}
function getElementbyClass(rootobj, classname){
var temparray=new Array()
var inc=0
var rootlength=rootobj.length
for (i=0; i<rootlength; i++){
if (rootobj[i].className==classname)
temparray[inc++]=rootobj[i]
}
return temparray
}
function sweeptoggle(ec){
var thestate=(ec=="expand")? "block" : "none"
var inc=0
while (ccollect[inc]){
ccollect[inc].style.display=thestate
inc++
}
revivestatus()
}
function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}
function expandcontent(curobj, cid){
var spantags=curobj.getElementsByTagName("SPAN")
var showstateobj=getElementbyClass(spantags, "showstate")
if (ccollect.length>0){
if (collapseprevious=="yes")
contractcontent(cid)
document.getElementById(cid).style.display=(docume nt.getElementById(cid).style.display!="block")? "block" : "none"
if (showstateobj.length>0){ //if "showstate" span exists in header
if (collapseprevious=="no")
showstateobj[0].innerHTML=(document.getElementById(cid).style.dis play=="block")? contractsymbol : expandsymbol
else
revivestatus()
}
}
}
function revivecontent(){
contractcontent("omitnothing")
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|")
for (i=0; i<selectedComponents.length-1; i++)
document.getElementById(selectedComponents[i]).style.display="block"
}
function revivestatus(){
var inc=0
while (statecollect[inc]){
if (ccollect[inc].style.display=="block")
statecollect[inc].innerHTML=contractsymbol
else
statecollect[inc].innerHTML=expandsymbol
inc++
}
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(off set, end))
}
}
return returnvalue;
}
function getselectedItem(){
if (get_cookie(window.location.pathname) != ""){
selectedItem=get_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}
function saveswitchstate(){
var inc=0, selectedItem=""
while (ccollect[inc]){
if (ccollect[inc].style.display=="block")
selectedItem+=ccollect[inc].id+"|"
inc++
}
document.cookie=window.location.pathname+"="+selectedItem
}
function do_onload(){
uniqueidn=window.location.pathname+"firsttimeload"
var alltags=document.all? document.all : document.getElementsByTagName("*")
ccollect=getElementbyClass(alltags, "switchcontent")
statecollect=getElementbyClass(alltags, "showstate")
if (enablepersist=="on" && ccollect.length>0){
document.cookie=(get_cookie(uniqueidn)=="")? uniqueidn+"=1" : uniqueidn+"=0"
firsttimeload=(get_cookie(uniqueidn)==1)? 1 : 0 //check if this is 1st page load
if (!firsttimeload)
revivecontent()
}
if (ccollect.length>0 && statecollect.length>0)
revivestatus()
}
if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload
if (enablepersist=="on" && document.getElementById)
window.onunload=saveswitchstate
</script>
<!-- / Show Hide Additional Navbar -->
open template "navbar"
Find:
<!-- / nav buttons bar -->
<br />
<br />
Replace With:
<!-- / nav buttons bar -->
<br />
<if condition="$bbuserinfo[userid]==0">
<div id="sc1" class="switchcontent">
<div align="center">
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="0" border="0" width="100%" align="center">
<tr align="center">
<td>
<b>We're Sorry, This Feature Is Only Available If You Log Into $vboptions[bbtitle]</</b>
</td>
</tr>
</table>
</div><br />
</div>
</if>
<div id="sc1" class="switchcontent">$navbar2<br /></div>
Find:
<td><input type="submit" class="button" value="$vbphrase[log_in]" tabindex="4" title="$vbphrase[enter_username_to_login_or_register]" accesskey="s" /></td>
Add Beneath:
<td align="right" class="smallfont" width="100%" valign="bottom"><a onClick="expandcontent(this, 'sc1')" style="cursor:hand; cursor:pointer"><span class="showstate" style="color: #FFFFFF;"></span></a></td>
Thats it! DONT FORGET TO CLICK INSTALL!! Hopefully all is good and it works. I'll try to help the best that I can. Good luck :squareeyed:
This mod is an addon to attroll's additional navbar found here (https://vborg.vbsupport.ru/showthread.php?t=65198&highlight=additional+navbar)
Purpose/Reason for mod:
I had too many links and needed an extra navigation bar. However I thought it would be cool if the user could choose whether or not they wanted the navbar or if they didnt want all the clutter. In addition, I thought it would be cool to also not show the extra navbar to guests. Instead, when they click on the link, have it say it was only available to logged in users.
Integration:
It will require a bit of tweaking to integrate into your forums. I've hacked many areas of my forums, which can be seen in the screenshots. So you may need to adjust certain areas of your templates.
This will only work if you have attroll's hack installed, or at least an additional navbar equivalent. You may need to adjust the $navbar2 variable to your's
Time To Hack:
open template "headinclude"
Add:
<!-- Show Hide Additional Navbar -->
<script type="text/javascript">
var enablepersist="on" //Enable saving state of content structure using session cookies? (on/off)
var collapseprevious="no" //Collapse previously open content when opening present? (yes/no)
var contractsymbol='Hide Additional Navbar' //HTML for contract symbol. For image, use: <img src="whatever.gif">
var expandsymbol='Show Additional Navbar' //HTML for expand symbol.
if (document.getElementById){
document.write('<style type="text/css">')
document.write('.switchcontent{display:none;}')
document.write('</style>')
}
function getElementbyClass(rootobj, classname){
var temparray=new Array()
var inc=0
var rootlength=rootobj.length
for (i=0; i<rootlength; i++){
if (rootobj[i].className==classname)
temparray[inc++]=rootobj[i]
}
return temparray
}
function sweeptoggle(ec){
var thestate=(ec=="expand")? "block" : "none"
var inc=0
while (ccollect[inc]){
ccollect[inc].style.display=thestate
inc++
}
revivestatus()
}
function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}
function expandcontent(curobj, cid){
var spantags=curobj.getElementsByTagName("SPAN")
var showstateobj=getElementbyClass(spantags, "showstate")
if (ccollect.length>0){
if (collapseprevious=="yes")
contractcontent(cid)
document.getElementById(cid).style.display=(docume nt.getElementById(cid).style.display!="block")? "block" : "none"
if (showstateobj.length>0){ //if "showstate" span exists in header
if (collapseprevious=="no")
showstateobj[0].innerHTML=(document.getElementById(cid).style.dis play=="block")? contractsymbol : expandsymbol
else
revivestatus()
}
}
}
function revivecontent(){
contractcontent("omitnothing")
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|")
for (i=0; i<selectedComponents.length-1; i++)
document.getElementById(selectedComponents[i]).style.display="block"
}
function revivestatus(){
var inc=0
while (statecollect[inc]){
if (ccollect[inc].style.display=="block")
statecollect[inc].innerHTML=contractsymbol
else
statecollect[inc].innerHTML=expandsymbol
inc++
}
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(off set, end))
}
}
return returnvalue;
}
function getselectedItem(){
if (get_cookie(window.location.pathname) != ""){
selectedItem=get_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}
function saveswitchstate(){
var inc=0, selectedItem=""
while (ccollect[inc]){
if (ccollect[inc].style.display=="block")
selectedItem+=ccollect[inc].id+"|"
inc++
}
document.cookie=window.location.pathname+"="+selectedItem
}
function do_onload(){
uniqueidn=window.location.pathname+"firsttimeload"
var alltags=document.all? document.all : document.getElementsByTagName("*")
ccollect=getElementbyClass(alltags, "switchcontent")
statecollect=getElementbyClass(alltags, "showstate")
if (enablepersist=="on" && ccollect.length>0){
document.cookie=(get_cookie(uniqueidn)=="")? uniqueidn+"=1" : uniqueidn+"=0"
firsttimeload=(get_cookie(uniqueidn)==1)? 1 : 0 //check if this is 1st page load
if (!firsttimeload)
revivecontent()
}
if (ccollect.length>0 && statecollect.length>0)
revivestatus()
}
if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload
if (enablepersist=="on" && document.getElementById)
window.onunload=saveswitchstate
</script>
<!-- / Show Hide Additional Navbar -->
open template "navbar"
Find:
<!-- / nav buttons bar -->
<br />
<br />
Replace With:
<!-- / nav buttons bar -->
<br />
<if condition="$bbuserinfo[userid]==0">
<div id="sc1" class="switchcontent">
<div align="center">
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="0" border="0" width="100%" align="center">
<tr align="center">
<td>
<b>We're Sorry, This Feature Is Only Available If You Log Into $vboptions[bbtitle]</</b>
</td>
</tr>
</table>
</div><br />
</div>
</if>
<div id="sc1" class="switchcontent">$navbar2<br /></div>
Find:
<td><input type="submit" class="button" value="$vbphrase[log_in]" tabindex="4" title="$vbphrase[enter_username_to_login_or_register]" accesskey="s" /></td>
Add Beneath:
<td align="right" class="smallfont" width="100%" valign="bottom"><a onClick="expandcontent(this, 'sc1')" style="cursor:hand; cursor:pointer"><span class="showstate" style="color: #FFFFFF;"></span></a></td>
Thats it! DONT FORGET TO CLICK INSTALL!! Hopefully all is good and it works. I'll try to help the best that I can. Good luck :squareeyed: