Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 4 Articles
FAQ Community Calendar Today's Posts Search

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
  #122  
Old 01-07-2010, 08:42 AM
JointRolla420 JointRolla420 is offline
 
Join Date: Jun 2009
Location: Canada
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i only needed the links in the main navbar so for me this worked...

$tabselected = '';
$tablinks = '';
$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="http://xxxxxxxxxx/payments.php">Buy VIP!</a>'.$tablinks.'</li>' ;

$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="http://xxxxxxxxxx/" target="_new">xxxxxxxx</a>'.$tablinks.'</li>' ;

but im still trying to figure out how to put a gap after the nav buttons end and then another one near the other side, connected to the search bar

--------------- Added [DATE]1262861307[/DATE] at [TIME]1262861307[/TIME] ---------------

yea i tryed but i still cant figure out how to make one link stay at the far right instead of beside each other, a space and it shows at the very end of the bar...

i tried <ul style='float:right'> but even if that worked its probably not the best coding so some help would be appreciated
Reply With Quote
  #123  
Old 01-07-2010, 09:07 AM
OcR Envy's Avatar
OcR Envy OcR Envy is offline
 
Join Date: May 2008
Location: Boston
Posts: 248
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MikeWarner View Post
Yeah - the items listed within the main page body do refer back to the original php file. I'm trying to think of a way around this. I'll post when I figure it out.

About the only thing I've come up with is to remove all class="selected" for vbcms then write a plugin to specify what to select based on section id. Has to be an easier way though
Reply With Quote
  #124  
Old 01-12-2010, 06:57 PM
psypher psypher is offline
 
Join Date: Dec 2009
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent mod, works great. Has anyone figured out an easy way to use templates to pupulate the pages upon sub menu link clicks or does it have to be external or new page links?

I tried the 48-What-is-RideHub suggestions but my home tab always stays selected and it was very buggy for me.

The site I am working to complete is http://deathcompanygaming.net/epeenery/

On my roster page I would like to use the dropdown menu to populate our roster for each game. I haven't been able to get jquery to be very stable and play nice with vB4 yet so is there an onclick event that will load templates into a particular div tag that can be used in the link?
Attached Images
File Type: png roster_page.PNG (94.6 KB, 0 views)
Reply With Quote
  #125  
Old 01-14-2010, 11:56 AM
PukkaBen PukkaBen is offline
 
Join Date: Apr 2009
Posts: 51
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey Lynne!! I have used this code, but I can't seem to get it to work, or part of it to work. I have modified the code and it is shown below.

PHP Code:
$tabselected '';
$tablinks '';
if (
THIS_SCRIPT == 'status')
{
    
$vbulletin->options['selectednavtab']='radio_tab_001';
    
$tabselected ' class="selected"';
    
$tablinks '     <ul class="floatcontainer">
                        <li><a href="#">About</a></li>
                        <li><a href="schedule.php">Schedule</a></li>
                        <li><a href="status.php">Status</a></li>
                      </ul> '
;

$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="status.php">Radio</a>'.$tablinks.'</li>' 
I have made two pages, schedule and status. The about page has not been made yet but it in the process of being made using your HOW-TO (thanks for that one!!). When I click the "Radio" section on the biggest bar, it selects itself and highlights as it should, but then when I go to the schedule.php link it goes back to the Forum tab.

You can see it in action if you wish at http://forum.pukkaradio.net

Cheers for any help that may come of this!!
Reply With Quote
  #126  
Old 01-14-2010, 02:05 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 PukkaBen View Post
I have made two pages, schedule and status. The about page has not been made yet but it in the process of being made using your HOW-TO (thanks for that one!!). When I click the "Radio" section on the biggest bar, it selects itself and highlights as it should, but then when I go to the schedule.php link it goes back to the Forum tab.

You can see it in action if you wish at http://forum.pukkaradio.net

Cheers for any help that may come of this!!
You need to make your condition cover *all* the pages you wish it to stay highlighted for. If your schedule.php page has THIS_SCRIPT defined as 'schedule', then change the condition to this:
PHP Code:
if (in_array(THIS_SCRIPT, array('status''schedule'))) 
Reply With Quote
  #127  
Old 01-14-2010, 05:38 PM
PukkaBen PukkaBen is offline
 
Join Date: Apr 2009
Posts: 51
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Awesome!! Thanks ever so much Lynne!!
Reply With Quote
  #128  
Old 01-15-2010, 02:04 PM
flegul flegul is offline
 
Join Date: Dec 2009
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi All.
Browsed through this entire thread and I am still no wiser to my predicament. what I would like to do is simply add an extra standard Navbar Tab which will redirect the user to my other external website.

Example
"www.myadvertising-program.com"



Thanks.
Reply With Quote
  #129  
Old 01-15-2010, 06:35 PM
psypher psypher is offline
 
Join Date: Dec 2009
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

To keep the tab highlighted for my sublinks I just added the or statement to the beginning and used multiple php files.

if (THIS_SCRIPT == 'recruitment.php' || THIS_SCRIPT == 'recruitment_status.php' || THIS_SCRIPT == 'epeen_application.php')
Reply With Quote
  #130  
Old 01-17-2010, 04:08 PM
InfoNirvana InfoNirvana is offline
 
Join Date: Apr 2007
Posts: 78
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by flegul View Post
Hi All.
Browsed through this entire thread and I am still no wiser to my predicament. what I would like to do is simply add an extra standard Navbar Tab which will redirect the user to my other external website.

Example
"www.myadvertising-program.com"



Thanks.
If that is all you want to do, there is a MOD for that.

vBH-Add new tabs
https://vborg.vbsupport.ru/showthread.php?t=228507
Reply With Quote
  #131  
Old 01-19-2010, 02:23 AM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Lynne,

How would I construct the if condition for a link like so:
Code:
misc.php?do=rules
Reply With Quote
Reply


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 02:44 PM.


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.05316 seconds
  • Memory Usage 2,367KB
  • 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
  • (1)bbcode_code
  • (6)bbcode_php
  • (3)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
  • (2)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