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
  #372  
Old 01-25-2011, 03:46 AM
slosupra slosupra is offline
 
Join Date: Jul 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am sorry if this question has been asked but how do i set the position of the tab weather it is in the first or lets say the third position..

thanks
Reply With Quote
  #373  
Old 01-25-2011, 05:28 PM
dnk.it dnk.it is offline
 
Join Date: Aug 2009
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It is possible to open a link in a new browser ( popup ) ? I've tried to add this code but didnt work:

Code:
$tabselected = '';
$tablinks = '';

function trackPopup(href, target)
{
target = target || "_blank";
window.open(href, target,'width=300,height=500,resizable=0,scrollbars=no,menubar=no,status=no');
pageTracker._link(href);
}

if (PP_SCRIPT == 'PP_Classifieds' )
{
    $vbulletin->options['selectednavtab']='pp_market';
    $tabselected = ' class="selected"';
} 
$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="/page.html" target="popupWindow" onclick="trackPopup(this.href, this.target); return false;" onmousedown="top.status='Insert Message';" onmouseover="top.status='Insert Message';">Chat</a>'.$tablinks.'</li>' ;
I've also tried to put the javascript function in separate .js file and link it in header with <script> without success
Reply With Quote
  #374  
Old 01-25-2011, 05:51 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sorry, but I don't help with javascript issues.
Reply With Quote
  #375  
Old 01-25-2011, 08:42 PM
dnk.it dnk.it is offline
 
Join Date: Aug 2009
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

meanwhile I've solved it by myself

maybe it should be useful for somebody else in the future :

Code:
$tabselected = '';
$tablinks = '';

if (PP_SCRIPT == 'PP_CHAT' )
{
    $vbulletin->options['selectednavtab']='pp_chat';
    $tabselected = ' class="selected"';
} 
$template_hook['navtab_end'] .= '<script language="JavaScript1.2">function openwindow()
{	mywindow=window.open("chatrooms/index.php","mywindow","location=0,status=0,menubar=0,resizable=1,width=650,height=500");
mywindow.moveTo(screen.width/2-300,screen.height/2-250);
}
</script><li'.$tabselected.'><a title="Chat" class="navtab" href="javascript: openwindow()">Chatroom</a>'.$tablinks.'</li>' ;
Reply With Quote
  #376  
Old 01-26-2011, 06:55 PM
slosupra slosupra is offline
 
Join Date: Jul 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by slosupra View Post
I am sorry if this question has been asked but how do i set the position of the tab weather it is in the first or lets say the third position..


thanks
anyone??
Reply With Quote
  #377  
Old 01-26-2011, 10: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 slosupra View Post
anyone??
This is answered in the article itself:
Quote:
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.
Reply With Quote
  #378  
Old 01-27-2011, 05:24 PM
slosupra slosupra is offline
 
Join Date: Jul 2007
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
This is answered in the article itself:
Overlooked that thanks very much got it working now
Reply With Quote
  #379  
Old 01-28-2011, 02:21 PM
Budget101 Budget101 is offline
 
Join Date: Jul 2008
Posts: 331
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Budget101 View Post
Ugh, I've been at this for 14 hours straight and cannot get it to do what I want.

In the Navbar- I want to created a Navtab (that doesn't link to anything/go anywhere/ stays on the same page no matter what page you're on when you click it) but that creates a Navigation submenu bar with multiple drop down boxes containing links.



I want it to do this (as pictured above)- except that link 1 is a drop down, link 2 is a drop down, etc (all of the submenus are dropdowns. When you click on "Nav Link" in the navbar tabs- it doesn't actually GO anywhere- the page stays the same with the navigation menus all showing.

I got all of submenu dropdowns to show but cant get the 'Nav Link" to remain the same on every single page.

-------------------------------------------------------------------------

I tried using:
PHP Code:
$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" >Nav Link</a>'.$tablinks.'</li>' 
is there a way to remove the actual "Linking" of the tab and still have the drop down menu appear when someone clicks on it?

I tried using 'index' in THIS_SCRIPT and removing the link in the bottom line 'link.php' but than it overwrote the links in the forum tab (so when you click on the forum tab, the links from the new tab showed).


I just want a tab that when clicked on- displays the sections that are available on my site.
No Answer, Really????????????????????????
Reply With Quote
  #380  
Old 01-28-2011, 03:06 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 Budget101 View Post
No Answer, Really????????????????????????
I don't know how you would do that. You would need to come up with that "unique" condition, and I'm not sure what that would be. Figure that out, and it will work.
Reply With Quote
  #381  
Old 01-29-2011, 07:57 AM
Kevlar21 Kevlar21 is offline
 
Join Date: Jun 2010
Posts: 41
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hi lynne, im a fan of your work..

so how do you remove the "forum" tab if you dont own the CMS forum suite version?

I managed to remove the "whats new" just cant manage to find where to remove the "forum" tab
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 06:04 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.13127 seconds
  • Memory Usage 2,358KB
  • 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
  • (2)bbcode_code
  • (5)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
  • (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