vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=242)
-   -   [HOW TO - vB4] Create a New Tab in the navbar (https://vborg.vbsupport.ru/showthread.php?t=226914)

Lynne 02-22-2011 01:42 AM

You would need to write some condition that is unique to whatever "Listings" is. I don't know anything about that page since it isn't a default vb page (or is it and you are just calling it something else?), so I don't know what the condition would be. If it's a custom page, then define THIS_SCRIPT at the top of the php page, like it is defined on other vB pages, and then you can use that in the condition.

Saviour 02-22-2011 11:37 PM

Lynne,

Please be gentle with me on this...I've looked over your instructions...and I'm sitting here scratching my head.

I have a mod installed called Chatbox Evo. There is no option in this mod to add a link to the navbar, or to the community link menu.

I want to add a new tab on the navbar that opens the chatbox in full-page mode. I want to name this tab "Chat"...and it will be viewable by all who visit the site.

The link to call the full-size chatbox is as follows:
Code:

http://www.glitchpcforums.com/forum/mgc_cb_evo.php?do=view_chatbox
Now...can you give me step by step as to what I need to do? Thanks, in advance.

Lynne 02-23-2011 12:18 AM

Not really. I don't know anything about the code for that mod. You may want to ask the developer if there is a THIS_SCRIPT set on that page that you can use in the condition. Then you could do something like:
PHP Code:

if (THIS_SCRIPT == 'whatever_for_chat_mod' AND $_GET['do'] == 'view_chatbox'

So, something like that may work.

Saviour 02-23-2011 02:58 PM

Quote:

Originally Posted by Lynne (Post 2165626)
Not really. I don't know anything about the code for that mod. You may want to ask the developer if there is a THIS_SCRIPT set on that page that you can use in the condition. Then you could do something like:
PHP Code:

if (THIS_SCRIPT == 'whatever_for_chat_mod' AND $_GET['do'] == 'view_chatbox'

So, something like that may work.

Lynne...

Thank you for the reply...

Yes, there is a THIS_SCRIPT set on the page:
Code:

define('THIS_SCRIPT', 'mgc_cb_evo');
So...what I'd like to do is setup a tab (labeled "Chat"), with no sub-menu links...so that when a user clicks the "Chat" tab, they are directed to the chat, itself.

Can you provide me with the code, or the modifications from your code...in order for me to complete this? I don't want to remove any lines of code from what you have given us...and leave myself hanging. I do understand coding...a little, but don't want to leave myself in a bind.

Thanks, in advance...

davepkr 02-23-2011 04:25 PM

This is PERFECT for creating only a TAB, this is what I was looking for.

Quote:

Originally Posted by thunderclap82 (Post 1927043)
Do you have to create your own vBulletin page to use this? I created a section and am trying to use this tutorial to go to that section, yet I can't get the navbar to highlight. Here is the code as I have it now (I removed the submenu link code):

Code:

$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'podcast')
{
    $vbulletin->options['selectednavtab']='podcast';
    $tabselected = ' class="selected"';
    $tablinks = '
                <ul class="floatcontainer">
                       
                </ul> ';
}
$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="/forums/content/116-podcast">Podcast</a>'.$tablinks.'</li>' ;



Saviour 02-23-2011 05:32 PM

Update...

Got 'er done! Thanks for the help...much appreciated.

Bellinis 03-02-2011 11:04 AM

Quote:

Originally Posted by Saviour (Post 2165897)
Update...

Got 'er done! Thanks for the help...much appreciated.

Tell me, how did you do it? I'd like to do the same :)

farrellzach 03-06-2011 10:52 PM

Hi Lynne, I've read through a few of the posts here regarding having the forum tab highlighted along with the new tab. I added the tab fine, I'm using a UserCP tab, but the forum tab is highlighted when I click it.

Here's my plugin code
Code:

if (THIS_SCRIPT == 'UserCP')  // also defined('UserCP') possible
{
//set selected tab
    $vbulletin->options['selectednavtab'] = 'UserCP';
}
// add the "subtemplate" to the navbartemplate
$template_hook['navtab_end'] .= vB_Template::create('UserCP Nav Bar')->render();


Lynne 03-06-2011 11:18 PM

There is not default vbulletin script named "UserCP", so is this on a custom page? And, you cannot have a template called "UserCP Nav Bar" - you may not have spaces in a template name.

I really don't get what you are doing with your plugin code at all and I don't see the tab code in there either.

Guest210212002 04-10-2011 09:12 PM

This is working just fine for me, and (as usual!) thank you, Lynne. :)

One quick question, here's my code - I'm just adding a link to vaispy. Everything works as it should, and I just removed the default dropdown menus from your code.

Code:

$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'vaispy')
{
    $vbulletin->options['selectednavtab']='mgtab_forumspy';
    $tabselected = ' class="selected"';
    $tablinks = '';


$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="(my test tld)forum/vaispy.php">ForumSpy</a>'.$tablinks.'</li>' ;

Is there a quick way to get the default set of tablinks (dropdowns) that are on forumhome/etc on a custom page? Right now my tab/link works perfectly, but I have no submenus. I'd like to add the usual things like User CP, Community and such back to the sublinks.

Thanks!

Lynne 04-10-2011 09:20 PM

You would need to copy the submenu code from the navbar to add it to your tab. I think someone asked about this before recently, and they were pointed to ragtek's article about adding a navtab since he used a template and it was easier to copy/paste the code using his template method. So, you may want to check out his similar article.

Rebecca217 04-17-2011 01:19 AM

This tutorial was very helpful. Thank you!

K4GAP 04-28-2011 04:43 AM

As always, great article Lynne!

Thank you

TWood 05-03-2011 09:08 PM

Can this method be used to add a tab to the navbar that opens a new browser window to an external website? I don't need any submenus, just a link to another site in its own window.

Lynne 05-03-2011 10:15 PM

Yes. You just need the last line though:

HTML Code:

$template_hook['navtab_end'] .= '<li><a class="navtab" href="link.php" target="_blank">Link Name</a></li>' ;

TWood 05-03-2011 10:52 PM

Nice! Thanks!

The target="_blank" doesn't work to open a new browser window, at least not at my site:

Shout Street Click on 'Zip Code Maps'

Boofo 05-03-2011 11:07 PM

Sorry, the board is unavailable at the moment while we are testing some functionality.

We will be back soon...

TWood 05-03-2011 11:20 PM

Heh, but the navbar is still active for this, it works the same either way - board on or off.

Boofo 05-03-2011 11:47 PM

Okay, I just tried that link on my site with a target="_blank" in it and it opened another tab fine for me in Opera.

wowautoauctions 05-04-2011 12:55 AM

How can I make my new tab appear first in the list? Using 'navtab_start' makes it the second tab but not the first.

EDIT: Figured it out.. You add in navtab_start then change the execution order from 5 to 4.

Lynne 05-04-2011 03:55 AM

Quote:

Originally Posted by wowautoauctions (Post 2191529)
How can I make my new tab appear first in the list? Using 'navtab_start' makes it the second tab but not the first.

Play with the Execution Order of the plugin.

cellarius 05-04-2011 05:35 AM

Quote:

Originally Posted by TWood (Post 2191506)
Nice! Thanks!

The target="_blank" doesn't work to open a new browser window, at least not at my site:

Shout Street Click on 'Zip Code Maps'

From the source code of your page:
HTML Code:

<li><a class="navtab" href="http://www.usnaviguide.com/">Zip Codes Map</a></li>
The target="_blank" is not present.

wowautoauctions 05-04-2011 05:35 AM

If you are trying to make a tab that links to an already established page such as "content.php?139-blog", I found a solution:

First modify your plugin to include the end piece of your url in this case "/content.php?139-blog". This will enable your tab to be highlighted.
PHP Code:

if (THIS_SCRIPT == 'vbcms' && $_SERVER['REQUEST_URI'] == '/content.php?139-blog'

Next you want to make it so the new tab is the only selected so go to plugin manager and edit "Navbar: Insert CMS Navbar Entry".

Change this:
PHP Code:

if (defined('CMS_SCRIPT') AND class_exists('vBCms_Navbar')) 

To This (except fill in your page name):
PHP Code:

if (defined('CMS_SCRIPT') AND class_exists('vBCms_Navbar') AND $_SERVER['REQUEST_URI'] != '/content.php?139-blog'

Viola!

cellarius 05-04-2011 06:03 AM

Of course both will highlight - the THIS_SCRIPT constant condition is true for the normal CMS tab, too. You need to edit the CMS tab condition to not highlight.

TWood 05-05-2011 11:26 PM

Quote:

Originally Posted by cellarius (Post 2191571)
From the source code of your page:
HTML Code:

<li><a class="navtab" href="http://www.usnaviguide.com/">Zip Codes Map</a></li>
The target="_blank" is not present.

Gah!! Hate it when that happens... :o

Thanks!

Boofo 05-05-2011 11:33 PM

Quote:

Originally Posted by cellarius (Post 2191571)
From the source code of your page:
HTML Code:

<li><a class="navtab" href="http://www.usnaviguide.com/">Zip Codes Map</a></li>
The target="_blank" is not present.

I was too lazy to do a view source.

av8or1 05-30-2011 12:44 AM

Thank you for this writeup Lynne, I used a modified version of it to add a "Home" tab to my forum.

Jerry

attroll 06-13-2011 06:51 PM

1 Attachment(s)
First let me say, great mod.

I have gotten the tab to work but I would like to resolve one issue if I can.

When I click on the tab it brings me to my gallery and the proper tab gets highlighted and stays highlighted. But when I click on the link under the tab "New in last day" then it opens in the gallery again like it is suppose to but it defaults to the "What's New" tab.

I would like it to stay in the Gallery Tab that I created and stay highlighted. Is there a way to do this?

Here is my code and the sample navbar image.

PHP Code:

$tabselected ''
$tablinks ''
if (
THIS_SCRIPT == 'ppindex'

    
$vbulletin->options['selectednavtab']='unique_name'
    
$tabselected ' class="selected"'
    
$tablinks '                <ul class="floatcontainer"> 
                    <li><a href="../gallery/search.php?when=1&whenterm=d&cat=all">New in last day</a></li> 
                    <li><a href="../gallery/search.php?when=1&whenterm=w&cat=all">New in last 7 days</a></li> 
                    <li><a href="../gallery/search.php?when=2&whenterm=w&cat=all">New in last 14 days</a></li>
                </ul> '


}  
$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="../gallery">Test Tab</a>'.$tablinks.'</li>' 


Lynne 06-13-2011 07:38 PM

New in Last Day is a search? So, the condition for highlighting the search page are being met. You will need to rewrite the condition to highlight the search page to say "but not when doing New in Last Day" and then rewrite the gallery one to include "when doing New in Last Day".

appsfinder 07-08-2011 08:13 AM

Hi lynne how do i make the work for forum uses only eg not guests thanks


Quote:

Originally Posted by Lynne (Post 1907097)
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.

https://vborg.vbsupport.ru/attachmen...3&d=1258146126


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


Lynne 07-08-2011 04:02 PM

Quote:

Originally Posted by appsfinder (Post 2218074)
Hi lynne how do i make the work for forum uses only eg not guests thanks

You would need to put a condition around it to only be created for a member. There is another article full of conditions that should help you out.

appsfinder 07-08-2011 04:14 PM

Quote:

Originally Posted by Lynne (Post 2218208)
You would need to put a condition around it to only be created for a member. There is another article full of conditions that should help you out.

thanks for info do you have link please

Lynne 07-08-2011 07:35 PM

It's right near the top of this artilces forum - vB4 Template Conditionals List

MyLibary 07-13-2011 03:38 PM

Lynn So all i should do is just create plugin and put the code

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>' 

Then, it will add the link automaticly to the navbar, or i should also edit the navbar template?

Thanks alot!

Lynne 07-13-2011 03:47 PM

Quote:

Originally Posted by MyLibary (Post 2220066)
Then, it will add the link automaticly to the navbar, or i should also edit the navbar template?

Thanks alot!

You only need to create the plugin, not edit the template.

MyLibary 07-13-2011 04:06 PM

Lyyne,
Im happy that it added to the navbar, but that keep "Forum" tab selected and show the "Forum" sublinks.

PHP Code:

$tabselected ''
$tablinks ''
if (
THIS_SCRIPT == 'albumtab'

    
$vbulletin->options['selectednavtab']='album_tab'
    
$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="/album.php">Gallery</a>'.$tablinks.'</li>' 

What else should i change?

Lynne 07-13-2011 04:09 PM

Is there a page that has THIS_SCRIPT defined as "albumtab"? If not, then the subnav will never show and the tab won't be highlighted. Your condition needs to be a valid, unique condition.

MyLibary 07-13-2011 04:13 PM

OK i got it, THIS_SCRIPT apear in the php file.

But what if i want to redirect to page such as www.site.com/content.php?r=5-News ?

I cant do that?

Thanks alot!

Lynne 07-13-2011 09:53 PM

Sure you can redirect to that - why can't you? If you want to have the tab highlighted at that time, then you will need to write a unique condition for it (when r == 5-News) and most likely modify the condition for when the CMS Home tab shows up to NOT be highlighted if r == 5-News.

mhudson 07-17-2011 03:56 PM

Im having problems with getting tabs to show for only one usergroup

Im guessign its a case of using an IF statement but i cant work out where it needs to go or what needs to be in it

my site the final link to the team portal i want to be visable to only one user group (game crew (id 9)) but i cant work out how to do it :P im still trying to get my head around the new coding and ways of doing things

the site is mainly just a test at the moment however once i have it working i will be putting the ideas in to use on the main forum

Thanks for the great guide Lynne its been really helpfull


PS. Sorry if someone has already asked this


All times are GMT. The time now is 02:45 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02274 seconds
  • Memory Usage 1,906KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code_printable
  • (4)bbcode_html_printable
  • (12)bbcode_php_printable
  • (11)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete