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
  #162  
Old 01-30-2010, 12:37 PM
worried worried is offline
 
Join Date: Jan 2009
Posts: 80
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'd like to make a blog category into a tab while at the same time not activating the Blogs tab. Would this be the proper format?

PHP Code:
if ((THIS_SCRIPT == 'blog') && ($_REQUEST['do'] == 'list' && 'blogcategoryid=1')) 
Reply With Quote
  #163  
Old 01-30-2010, 02:33 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 worried View Post
I'd like to make a blog category into a tab while at the same time not activating the Blogs tab. Would this be the proper format?

PHP Code:
if ((THIS_SCRIPT == 'blog') && ($_REQUEST['do'] == 'list' && 'blogcategoryid=1')) 
You'll have to just try it and see. If you have the regular blog tab disabled, then I don't think it is going to interfere with that one, so I would guess it should work.
Reply With Quote
  #164  
Old 02-08-2010, 01:45 AM
trilOByte's Avatar
trilOByte trilOByte is offline
 
Join Date: Nov 2001
Location: England
Posts: 325
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi Lynne,

Been trying to figure this one out.

All I want to do is add a new tab that displays the following....

...search.php?do=getdaily&contenttype=vBForum_Post &include=27,35,59,76,84,85

That gives me todays posts from a select group of forums that I have as sales forums. By clicking on the tab, my members can view "Todays Ads".

The tab works, in so far as it throws up the right results, but it doesnt stay selected. I believe this is because THIS_SCRIPT is "search" which is not unique. Do you know of any way to resolve this? I dont want submenus or anything else, I just want to put this link in the tabs at the top of my forum.

I've tried the different tabs mods, I've tried tabs with templates and your mod and the same problem occurs with all of them. At this point, I'm thinking how bad is a piece of software that wont allow a simple link to be added to the menu system? I'm generally liking vB4, but the navbar is truly awful. I'm starting to think this is not actually possible.
Reply With Quote
  #165  
Old 02-08-2010, 07:50 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 trilOByte View Post
Hi Lynne,

Been trying to figure this one out.

All I want to do is add a new tab that displays the following....

...search.php?do=getdaily&contenttype=vBForum_Post &include=27,35,59,76,84,85

That gives me todays posts from a select group of forums that I have as sales forums. By clicking on the tab, my members can view "Todays Ads".

The tab works, in so far as it throws up the right results, but it doesnt stay selected. I believe this is because THIS_SCRIPT is "search" which is not unique. Do you know of any way to resolve this? I dont want submenus or anything else, I just want to put this link in the tabs at the top of my forum.

I've tried the different tabs mods, I've tried tabs with templates and your mod and the same problem occurs with all of them. At this point, I'm thinking how bad is a piece of software that wont allow a simple link to be added to the menu system? I'm generally liking vB4, but the navbar is truly awful. I'm starting to think this is not actually possible.
You could include an "AND $_REQUEST['do'] == 'getdaily'" in the condition. You may have to modify the condition for What's New in the navbar also so that yours may become active (AND $_REQUEST['do'] != 'getdaily').
Reply With Quote
  #166  
Old 02-08-2010, 11:44 PM
abdulbasitsaeed's Avatar
abdulbasitsaeed abdulbasitsaeed is offline
 
Join Date: Mar 2009
Posts: 182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi there, Lynne.

I had a question related to tabs. I actually created a separate thread for it, but somehow it hasn't got answered yet.

Actually, in the tabs, I wanted to add icons / images along with the link as well. e.g. add a home icon in the Home tab (on the left of "Home" text). The only thing I couldn't figure out was where exactly would I need to add the image source for the desired icon?

I messed around a bit, and in "blog_navbar_link" found the following code:

Code:
<li><a class="navtab" href="blog.php{vb:raw session.sessionurl_q}">{vb:rawphrase blogs}</a></li>
Then, I changed it to this:

Code:
<li><a class="navtab" href="blog.php{vb:raw session.sessionurl_q}"><img class="inlineimg" src="http://forums.pakfellows.com/images/icons/Homepage/blog.png" border="0" />{vb:rawphrase blogs}</a></li>
This inserted the image in the correct place (see screenshot), but I would like to have it so that the word "Blogs" remains in the center of the tab, i.e. both image and text are inline instead of Blogs being pushed down.

Could you help me with this please?
Attached Images
File Type: png Blog Tab.PNG (4.4 KB, 0 views)
Reply With Quote
  #167  
Old 02-09-2010, 01:13 AM
Satviewers Satviewers is offline
 
Join Date: Oct 2009
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi,

How do set permissions on just e.g. The line with Misc in it.

I only want that to show to certain Groups.

PHP Code:
$tabselected '';
$tablinks '';
if (
THIS_SCRIPT == 'osc_Shop')
{
    
$vbulletin->options['selectednavtab']='oscShop';
    
$tabselected ' class="selected"';

 
    
$tablinks .= '                <ul class="floatcontainer">

                        <li><a href="account.php">My Account</a></li>
                        <li><a href="shopping_cart.php">Cart Contents</a></li>
                        <li><a href="misc.php">Misc</a></li>
                        <li><a href="checkout_shipping.php">Checkout</a></li>
                        </ul> '
;

Reply With Quote
  #168  
Old 02-09-2010, 03:23 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 Satviewers View Post
Hi,

How do set permissions on just e.g. The line with Misc in it.

I only want that to show to certain Groups.

PHP Code:
$tabselected '';
$tablinks '';
if (
THIS_SCRIPT == 'osc_Shop')
{
    
$vbulletin->options['selectednavtab']='oscShop';
    
$tabselected ' class="selected"';

 
    
$tablinks .= '                <ul class="floatcontainer">

                        <li><a href="account.php">My Account</a></li>
                        <li><a href="shopping_cart.php">Cart Contents</a></li>
                        <li><a href="misc.php">Misc</a></li>
                        <li><a href="checkout_shipping.php">Checkout</a></li>
                        </ul> '
;

Look around page 2 or 3 or so of this article and you will see this question already answered.
Quote:
Originally Posted by abdulbasitsaeed View Post
Hi there, Lynne.

I had a question related to tabs. I actually created a separate thread for it, but somehow it hasn't got answered yet.

Actually, in the tabs, I wanted to add icons / images along with the link as well. e.g. add a home icon in the Home tab (on the left of "Home" text). The only thing I couldn't figure out was where exactly would I need to add the image source for the desired icon?

I messed around a bit, and in "blog_navbar_link" found the following code:

Code:
<li><a class="navtab" href="blog.php{vb:raw session.sessionurl_q}">{vb:rawphrase blogs}</a></li>
Then, I changed it to this:

Code:
<li><a class="navtab" href="blog.php{vb:raw session.sessionurl_q}"><img class="inlineimg" src="http://forums.pakfellows.com/images/icons/Homepage/blog.png" border="0" />{vb:rawphrase blogs}</a></li>
This inserted the image in the correct place (see screenshot), but I would like to have it so that the word "Blogs" remains in the center of the tab, i.e. both image and text are inline instead of Blogs being pushed down.

Could you help me with this please?
That really doesn't have anything to do with this article. It is a CSS issue. You can use firebug to play with the css and get it right.
Reply With Quote
  #169  
Old 02-09-2010, 03:27 PM
Satviewers Satviewers is offline
 
Join Date: Oct 2009
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I got as far as this:

PHP Code:
$tabselected '';
$tablinks '';
if (
THIS_SCRIPT == 'osc_shop')
{
    
$vbulletin->options['selectednavtab']='oscShop';
    
$tabselected ' class="selected"';
if (
is_member_of($vbulletin->userinfo6))  
{
$tablinks '<ul class="floatcontainer">
                        <li><a href="misc.php">Misc</a></li>

                         </ul>'
;
}
if (
$vbulletin->userinfo['userid'])
{
      
$tablinks .= '<ul class="floatcontainer">
                        <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>' 
But My Account is on top of Misc.

Can anyone help with this, please.
Reply With Quote
  #170  
Old 02-10-2010, 07:18 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Take a look at the code in the first post again. You are closing the <ul> tag before you are supposed to. It should be open for all submenu items.
Reply With Quote
  #171  
Old 02-11-2010, 02:41 AM
Satviewers Satviewers is offline
 
Join Date: Oct 2009
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have looked the first post again, but still can't get it working.

Any chance you could fix it please.
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 06:15 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.05109 seconds
  • Memory Usage 2,397KB
  • 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_code
  • (9)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
  • (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