vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.0 Beta Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=34)
-   -   Show/Hide Additional Navbar (https://vborg.vbsupport.ru/showthread.php?t=83338)

paul41598 06-17-2005 10:00 PM

Show/Hide Additional Navbar
 
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(rootobjclassname){
var 
temparray=new Array()
var 
inc=0
var rootlength=rootobj.length
for (i=0i<rootlengthi++){
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(curobjcid){
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=0i<selectedComponents.length-1i++)
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 == -1end document.cookie.length;
returnvalue=unescape(document.cookie.substring(offsetend))
}
}
return 
returnvalue;
}

function 
getselectedItem(){
if (
get_cookie(window.location.pathname) != ""){
selectedItem=get_cookie(window.location.pathname)
return 
selectedItem
}
else
return 
""
}

function 
saveswitchstate(){
var 
inc=0selectedItem=""
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.alldocument.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)? //check if this is 1st page load
if (!firsttimeload)
revivecontent()
}
if (
ccollect.length>&& statecollect.length>0)
revivestatus()
}

if (
window.addEventListener)
window.addEventListener("load"do_onloadfalse)
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> 

Find:

PHP Code:

            <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:

PHP Code:

<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:

sabret00the 06-18-2005 08:46 PM

not bad, would be alot greater if it was attached to the first navbar but great idea, welcome to vBulletin.

Kirk Y 06-19-2005 02:45 AM

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!

Reeve of shinra 06-19-2005 02:48 AM

Not a bad idea. ^^

JsnakeJ 06-20-2005 03:02 PM

Welcome to vBulletin. Nice modification :) Simple but nice.


All times are GMT. The time now is 03:10 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01045 seconds
  • Memory Usage 1,798KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete