Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 4 Articles

Reply
 
Thread Tools
[HOW TO - vB4] Create a New Tab in the navbar
Lynne's Avatar
Lynne
Join Date: Sep 2004
Posts: 41,180

 

California/Idaho
Show Printable Version Email this Page Subscription
Lynne Lynne is offline 10-26-2009, 10:00 PM

Here's a pretty simple method for creating a new tab in the navbar, along with a submenu to go along with it. All you need is a unique condition for when your tab will be shown. What you will be making is a plugin to create the Nav Link along with a submenu which Link 1, Link 2, Link 3, and Drop Down which then drops down and has SubLink 1, SubLink 2, and SubLink 3. This is shown below.

NOTE: This is for 4.0.x and 4.1.x. In 4.2.x, you should be using the Navigation Manager.




This article is NOT to be used just to add another link to a submenu. It is for creating the Nav Link tab along with all the submenus. Again, if all you want is to add submenus to an existing tab, then this article is NOT for you!!!

This article is also for use by users who understand the basics of conditions and can write them. The navbar is not really an easy thing to play with if you don't know what you are doing - I think even Wayne said it had issues - so don't try this if you don't understand how to write a condition.

OK, with that out of the way....

Here's the basic template for making your new tab:

Create a plugin (Plugins & Products) > Add New Plugin:
hook location - process_templates_complete *
Title - New Tab for Navbar
Execution Order - 5
(* I used to have this listed as global_state_check but then noticed vb themselves use the process_templates_complete hook location, so I changed it.)

PHP Code:
$tabselected '';
$tablinks '';
if (
THIS_SCRIPT == 'yourpage')
{
    
$vbulletin->options['selectednavtab']='unique_name';
    
$tabselected ' class="selected"';
    
$tablinks '                <ul class="floatcontainer">
                        <li><a href="link1.php">Link 1</a></li>
                            <li class="popupmenu">
                                <a href="javascript://" class="popupctrl">Drop Down</a>
                                <ul class="popupbody popuphover">
                                        <li><a href="sublink1.php">SubLink 1</a></li>
                                        <li><a href="sublink2.php">SubLink 2</a></li>
                                        <li><a href="sublink3.php">SubLink 3</a></li>
                                </ul>
                            </li>
                        <li><a href="link2.php">Link 2</a></li>
                        <li><a href="link3.php">Link 3</a></li>
                </ul> '
;


$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="link.php">Nav Link</a>'.$tablinks.'</li>' 
Things to take note of:

PHP Code:
if (THIS_SCRIPT == 'yourpage'
Your condition MUST be unique! If you use a condition that is also going to evaluate to true for another tab, then they will both be highlighted and the wrong submenu may show up underneath.

PHP Code:
$vbulletin->options['selectednavtab']='unique_name'
The 'seletednavtab' must also be a unique name. Again, if you have two tabs with the same 'selectednavtab' name, then both tabs will be highlighted.

PHP Code:
$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="link.php">Nav Link</a>'.$tablinks.'</li>' 
You may use a different template_hook here - it just depends on where you want your tab to be - navtab_start and navtab_middle are also available.


ragtek also posted an article to do the same thing only using a template with the plugin - [HOW TO - vB4] Create a New Tab in the navbar (with template)



Originally posted on vb.org 2009-10-27.

Other related articles of possible interest:
[HOW TO - vB4] Remove the vB Default Navtabs
[HOW TO - vB4] Create your own vBulletin page
Attached Images
File Type: png vb4_nav_links.png (21.8 KB, 0 views)
Reply With Quote
  #172  
Old 02-11-2010, 08:27 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Assuming your code was correct to begin with, this should work:
PHP Code:
$tabselected '';
$tablinks '';
if (
THIS_SCRIPT == 'osc_shop')
{
    
$vbulletin->options['selectednavtab']='oscShop';
    
$tabselected ' class="selected"';
if (
$vbulletin->userinfo['userid']) $tablinks '<ul class="floatcontainer">';
if (
is_member_of($vbulletin->userinfo6))  
{
$tablinks .= '<li><a href="misc.php">Misc</a></li>';
}
if (
$vbulletin->userinfo['userid'])
{
      
$tablinks .= '    <li><a href="account.php">My Account</a></li>
                        <li><a href="shopping_cart.php">Cart Contents</a></li>
                        <li><a href="checkout_shipping.php">Checkout</a></li>
 
                        </ul> '
;

}


$template_hook['navtab_middle'] .= '<li'.$tabselected.'><a class="navtab" href="shop.php">Shop</a>'.$tablinks.'</li>' 
Reply With Quote
  #173  
Old 02-11-2010, 10:09 PM
Satviewers Satviewers is offline
 
Join Date: Oct 2009
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you for that. It works perfect.
Reply With Quote
  #174  
Old 02-15-2010, 09:51 PM
CFodder CFodder is offline
 
Join Date: Mar 2008
Posts: 92
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi Lynne, thanks for another great guide (Yes, I'm a suck up).

Just wondering if could have it so the sublink menu popup menu can be displayed when hovering your pointer over it instead of having to click, is there an in-built JS within VB to do this or would I have to use an external one?
Reply With Quote
  #175  
Old 02-16-2010, 02:02 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by CFodder View Post
Hi Lynne, thanks for another great guide (Yes, I'm a suck up).

Just wondering if could have it so the sublink menu popup menu can be displayed when hovering your pointer over it instead of having to click, is there an in-built JS within VB to do this or would I have to use an external one?
Could probably do it with javascript or some creative css, but I haven't looked into it.
Reply With Quote
  #176  
Old 02-17-2010, 08:14 PM
Sarcoth Sarcoth is offline
 
Join Date: Mar 2006
Location: Huntsville
Posts: 521
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Lynne.
Reply With Quote
  #177  
Old 02-18-2010, 08:02 AM
samiro's Avatar
samiro samiro is offline
 
Join Date: Jan 2007
Posts: 136
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i want to add a new "nav link" to go to the privet messages.

like in this original photo- how can i do that ?

Reply With Quote
  #178  
Old 02-18-2010, 05:28 PM
Sarcoth Sarcoth is offline
 
Join Date: Mar 2006
Location: Huntsville
Posts: 521
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can this plugin call variables from my custom page?

I'm looking to use this menu to sort the tables on my custom page. My custom page creates an array (which you may be familiar with in another post):

PHP Code:
$columns = array(
    
'column1' => $field1st,
    
'title1' => $title1st,
    
'column2' => $field2nd,
    
'title2' => $title2nd,
    
'column3' => $field3rd,
    
'title3' => $title3rd,
    
'column4' => $field4th,
    
'title4' => $title4th,
    
'column5' => $field5th,
    
'title5' => $title5th,
    
'column6' => $field6th,
    
'title6' => $title6th,
    
'column7' => $field7th,
    
'title7' => $title7th,
    
'column8' => $field8th,
    
'title8' => $title8th
); 
Anyhow, instead of link1, I'd like to use $columns['title1'] in this plugin.
Reply With Quote
  #179  
Old 02-18-2010, 11:32 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by samiro View Post
i want to add a new "nav link" to go to the privet messages.

like in this original photo- how can i do that ?

Did you read the article? What code have you written to try to do what you want and what were the results? I can't tell you want is wrong unless you post your code and an image of the result and you tell us what is wrong with the result.

Quote:
Originally Posted by Sarcoth View Post
Can this plugin call variables from my custom page?

I'm looking to use this menu to sort the tables on my custom page. My custom page creates an array (which you may be familiar with in another post):

PHP Code:
$columns = array(
    
'column1' => $field1st,
    
'title1' => $title1st,
    
'column2' => $field2nd,
    
'title2' => $title2nd,
    
'column3' => $field3rd,
    
'title3' => $title3rd,
    
'column4' => $field4th,
    
'title4' => $title4th,
    
'column5' => $field5th,
    
'title5' => $title5th,
    
'column6' => $field6th,
    
'title6' => $title6th,
    
'column7' => $field7th,
    
'title7' => $title7th,
    
'column8' => $field8th,
    
'title8' => $title8th
); 
Anyhow, instead of link1, I'd like to use $columns['title1'] in this plugin.
I don't know. I've never tried what you want to do. You'd have to make your variables available to the plugin by defining them prior to this plugin being rendered. So, depending on how you go about it, you should be able to do what you want.
Reply With Quote
  #180  
Old 02-19-2010, 04:05 AM
Sarcoth Sarcoth is offline
 
Join Date: Mar 2006
Location: Huntsville
Posts: 521
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
I don't know. I've never tried what you want to do. You'd have to make your variables available to the plugin by defining them prior to this plugin being rendered. So, depending on how you go about it, you should be able to do what you want.
Thanks for the reply Lynne. That's actually my question. How do I make the variables available to the plugin. Perhaps this isn't a question for this thread now that I think about it. I'll look around some more and maybe just post it in the Programming forum instead. Thanks Lynne.
Reply With Quote
  #181  
Old 02-19-2010, 04:27 AM
samiro's Avatar
samiro samiro is offline
 
Join Date: Jan 2007
Posts: 136
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hii - i donnt want to make what you do in this articles ,.
i want to add NAV LINK - not a drop down menu !
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:23 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05409 seconds
  • Memory Usage 2,374KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (7)bbcode_php
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (10)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (1)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete