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)

shooptek 03-01-2010 03:22 PM

Is there an easier way to do so or maybe a guide I could follow? I dont have much experience with vBulletin Conditionals.

Thanks

Wilfred1 03-04-2010 06:44 PM

1 Attachment(s)
This is great however the only issue I have found is the height of the navbar isn't consistent.

Here is what I mean:
Attachment 113573

This is my plugin code:
Code:

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

}
$template_hook['navtab_start'] .= '<li'.$tabselected.'><a class="navtab" href="../index.php">Home</a>'.$tablinks.'</li>' ;

$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'online')
{
    $vbulletin->options['selectednavtab']='Online';
    $tabselected2 = ' class="selected"';
    $tablinks2 = '                <ul class="floatcontainer">
                        <li><a href="link1.php">Online</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'.$tabselected2.'><a class="navtab" href="../forum/online.php">Online</a>'.$tablinks2.'</li>' ;

$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'calendar')
{
    $vbulletin->options['selectednavtab']='Events';
    $tabselected3 = ' class="selected"';
    $tablinks3 = '                <ul class="floatcontainer">
                        <li><a href="link1.php">Events</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'.$tabselected3.'><a class="navtab" href="../forum/calendar.php">Events</a>'.$tablinks3.'</li>' ;

The other thing is the above code seems very inefficient to me - I will probably have another few more tabs as well so it would need to be stepping through a lot just to create the tabs and sub menus or in the scheme of things going through this code each time a page is displayed is not worth worring about - any thoughts?

Lynne 03-04-2010 11:05 PM

Quote:

Originally Posted by Wilfred1 (Post 1997200)
This is great however the only issue I have found is the height of the navbar isn't consistent.

Here is what I mean:
Attachment 113573

The other thing is the above code seems very inefficient to me - I will probably have another few more tabs as well so it would need to be stepping through a lot just to create the tabs and sub menus or in the scheme of things going through this code each time a page is displayed is not worth worring about - any thoughts?

You will have to look at your code using something like firebug to see why it is doing what it is doing. I can't tell from the image.

As for it being inefficient, I wrote this just to add a single tab. I suppose it could be modified slightly to make it more efficient when you add several tabs, but I really don't know that it would make a huge impact.

Wilfred1 03-04-2010 11:20 PM

Thanks Lynn - have worked out that if you don't have a sub menu under a tab you will get that inconsistency in the navbar height so I have added a sub menu like "About", "Site Rules" etc and that fixed it.

Any suggestions on how I could make it more efficient so I can have tabs across the page - thanks!

Adan0s 03-06-2010 04:12 PM

unfortunately this just doesn't work for me. i added the plugin with the exact things you posted in your entry post (just to see, if it works) and it doesn't even generate a navtab, even though the plugin is activated. I'm on vB 4.0.2 PL1

EDIT: okay nvm. i had to enable the plugins globally. :D

Theda 03-09-2010 06:35 AM

I've got this working except for the selected tab being highlighted as "on". What I need now is to figure out how to specify each of these specific articles as the condition. I have added three tabs: Raid Teams, Roster and Recruitment.

Each of these tabs points to a specific article, meaning content.php?r=articlename.
How can I specify that as my condition? Since they are articles, I can't use the THIS SCRIPT since it's content.php?r=articlename?

I tried article titles (since that worked for my content section vb:if code, but it didn't work for this.... if ("$title == 'Raid Teams'")

Code:

$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'content.php?r=180-Raid-Teams')
{
    $vbulletin->options['selectednavtab']='Raid Teams';
    $tabselected = ' class="selected"';
}
$template_hook['navtab_start'] .= '<li'.$tabselected.'><a class="navtab" href="content.php?r=180-Raid-Teams">Raid Teams</a>'.$tablinks.'</li>' ;


Lord Zedd 03-09-2010 01:56 PM

Hello Lynne,

You have helped me out with a lot of problems on Vbulletin.com yesterday and today. I am hoping you can help me out with something here.

There are a couple of things I am not sure about. I did what you said in your first post. The Nav Link tab appeared. I changed it to Home and changed aswell the link. It worked perfectly. Thank you for that! You are helping out many people!

- Do I need to add the same plugin for each tab I need to create? Or do you edit it in the code?

- Is there a way to organize the tabs? I only got the forum installed and not the CMS. My first tab is Forum, than What's new and than the Nav Link (now renamed it to Home). When I edit the code and the new tab is hooked to navbar_start instead of navbar_end. Than it shows before Forum and What's new. That is good. But I need to create 4 more tabs. How can I organize those if they appear after navbar_end?

Lynne 03-09-2010 02:59 PM

Quote:

Originally Posted by Theda (Post 2000282)
I've got this working except for the selected tab being highlighted as "on". What I need now is to figure out how to specify each of these specific articles as the condition. I have added three tabs: Raid Teams, Roster and Recruitment.

Each of these tabs points to a specific article, meaning content.php?r=articlename.
How can I specify that as my condition? Since they are articles, I can't use the THIS SCRIPT since it's content.php?r=articlename?

I tried article titles (since that worked for my content section vb:if code, but it didn't work for this.... if ("$title == 'Raid Teams'")

I *think* you can use the nodeid variable. Edwin has talked about it over on vb.com in relation to articles and sections. So, you may want to look into that. But, you will probably also have to dive into the code that decides when the Home page is the selected page in order to only select the Home page as selected when those $nodeids are not true.
Quote:

Originally Posted by Lord Zedd (Post 2000445)

- Do I need to add the same plugin for each tab I need to create? Or do you edit it in the code?

- Is there a way to organize the tabs? I only got the forum installed and not the CMS. My first tab is Forum, than What's new and than the Nav Link (now renamed it to Home). When I edit the code and the new tab is hooked to navbar_start instead of navbar_end. Than it shows before Forum and What's new. That is good. But I need to create 4 more tabs. How can I organize those if they appear after navbar_end?

You can put all the tabs into one plugin. If they are all using the same $template_hook, then put them in the order you want them to appear. I think someone posted some code in the last couple pages showing their plugin for a couple of tabs.

cellarius 03-10-2010 07:31 AM

For the php condition in CMS you should be able to use
PHP Code:

if (in_array($this->content->getNodeId(), array(1,2,3))) 

for line 3 of Lynnes code, where 1,2,3 is a comma delimited list of the nodeids of the article/sections that you want to show your tab as highlighted on.

Now, if you have your custom tab highlighted, you don't want the Home Tab highlighted at the same time. To prevent Home Tab being selected, edit Template vbcms_navbar_link
Code:

<vb:if condition="$vboptions['selectednavtab'] == 'vbcms' AND !in_array($nodeid, array(1,2,3))">
Add the red code to the condition in the first line of the template and replace 1,2,3 with a comma delimited list of the nodeids that you don't want to show the Home-Tab selected.

Lynne 03-10-2010 01:54 PM

Thank you, cellarius! I knew what had to be done, just not exactly how to do it. Thanks for posting that. :)


All times are GMT. The time now is 06:56 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.02298 seconds
  • Memory Usage 1,769KB
  • 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
  • (3)bbcode_code_printable
  • (1)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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