Version: 1.00, by paul41598
Developer Last Online: Jun 2013
Version: 3.0.7
Rating:
Released: 06-17-2005
Last Update: Never
Installs: 2
Template Edits
Is in Beta Stage
No support by the author.
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
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:
PHP Code:
<!-- 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=(document.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.display=="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(offset, 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++
}
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:
PHP Code:
<!-- / nav buttons bar -->
<br />
<br />
Replace With:
PHP Code:
<!-- / 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>
Yeah, this is a great idea... I've always wanted to have additional menu items but have been limited by a fixed template. I've been using drop down bars, but I like this idea as well... I may incorporate both into my forum. Oh yes, and welcome to vBulletin!