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
  #462  
Old 08-17-2011, 11:12 PM
HolyKiller HolyKiller is offline
 
Join Date: Dec 2006
Posts: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ha, i found it under "Navbar: Eval Blog Link Template and Validate Styleid" so i changed:

$template_hook['navtab_middle'] .= vB_Template::create('blog_navbar_link')->render();
to
$template_hook['navtab_end'] .= vB_Template::create('blog_navbar_link')->render();

But now it is like

CMS_FORUM_AAA_BBB_CCC_WHATSNEW_BLOGS

so i would like to change BLOG<->WHATSNEW ... like this

CMS_FORUM_AAA_BBB_CCC_BLOGS_WHATSNEW
(My previouws post was wrong, i already fixed it)

And i cant see any hook for WhatsNew ... i guess, i need to digg it somewhere else

EDIT: WoW Lynne you so fast, i did not saw your reply, thanks!

EDIT2: Solved! My script had "Execution Order" set to "15" and that Blog one was "6", so i set "5" for my script and set Blog back to "middle", which isi "Execution Order: 6" ... and VOALA
Reply With Quote
  #463  
Old 08-25-2011, 09:11 AM
Ethelbert Ethelbert is offline
 
Join Date: Feb 2007
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It is possible to change order? Standard order is at the end.. but I want to have it before Home link, blog link and forum link.. It is possible?
Reply With Quote
  #464  
Old 08-25-2011, 03:11 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 Ethelbert View Post
It is possible to change order? Standard order is at the end.. but I want to have it before Home link, blog link and forum link.. It is possible?
As I stated in the first post, there are other template_hooks you can use - navtab_start, navtab_middle, and navtab_end. And then you could change the execution order also if two navtabs use the same template_hook and you want them in a different order.
Reply With Quote
  #465  
Old 10-30-2011, 11:37 PM
Breakthecycle2's Avatar
Breakthecycle2 Breakthecycle2 is offline
 
Join Date: Sep 2011
Posts: 130
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quick question Lynn,

my site: www.droid-tech.com.

I want to add a tab,"Friends of Droid Tech", with a submenu of our friends links. What would I need to add in the if (THIS_SCRIPT == 'yourpage').

Would it be "Droid Tech Friends"? or my forums page?
Reply With Quote
  #466  
Old 10-31-2011, 02:46 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 Breakthecycle2 View Post
Quick question Lynn,

my site: www.droid-tech.com.

I want to add a tab,"Friends of Droid Tech", with a submenu of our friends links. What would I need to add in the if (THIS_SCRIPT == 'yourpage').

Would it be "Droid Tech Friends"? or my forums page?
I don't know as you didn't say where this tab is supposed to link to. If it links to the forum.php page, then you would use THIS_SCRIPT == 'index'
Reply With Quote
  #467  
Old 10-31-2011, 04:02 AM
ForceHSS ForceHSS is offline
 
Join Date: Apr 2008
Posts: 6,357
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Breakthecycle2 View Post
Quick question Lynn,

my site: www.droid-tech.com.

I want to add a tab,"Friends of Droid Tech", with a submenu of our friends links. What would I need to add in the if (THIS_SCRIPT == 'yourpage').

Would it be "Droid Tech Friends"? or my forums page?
why dont you just use the plugin I installed for you
Reply With Quote
  #468  
Old 10-31-2011, 04:22 AM
Breakthecycle2's Avatar
Breakthecycle2 Breakthecycle2 is offline
 
Join Date: Sep 2011
Posts: 130
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ForceHSS View Post
why dont you just use the plugin I installed for you
Can you add a submenu with that? I thought you said I couldn't?

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

Quote:
Originally Posted by Lynne View Post
I don't know as you didn't say where this tab is supposed to link to. If it links to the forum.php page, then you would use THIS_SCRIPT == 'index'
All I am looking to do is add a tab in the navbar, labeled "friends" with sub links to friends sites.
Reply With Quote
  #469  
Old 11-01-2011, 09:09 PM
Breakthecycle2's Avatar
Breakthecycle2 Breakthecycle2 is offline
 
Join Date: Sep 2011
Posts: 130
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can anyone give me a quick hand here?
Reply With Quote
  #470  
Old 11-02-2011, 04:25 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The "Friends" tab needs to link to a page. When someone clicks on it, what page does it take them to? I can't help until you answer that question.
Reply With Quote
  #471  
Old 11-03-2011, 12:59 AM
Breakthecycle2's Avatar
Breakthecycle2 Breakthecycle2 is offline
 
Join Date: Sep 2011
Posts: 130
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
The "Friends" tab needs to link to a page. When someone clicks on it, what page does it take them to? I can't help until you answer that question.
So, the actual tab needs to link somewhere first? Even if I just want the tab with a submenu with links?
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 05:19 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.07386 seconds
  • Memory Usage 2,363KB
  • 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
  • (4)bbcode_php
  • (6)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
  • (1)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