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)

odln018 02-09-2011 06:11 PM

Ok, I'm making progress with this.

What I'm trying to do is created a Special Access tab for those who have contributed and have access to more features of the site.

My link1.php page contains this:

Code:

define(SpecialAccess, true);
When I click on the Nav link, I want that tab to be highlighted, with items in the sub for "sub link 1", sublink 2", etc.

Here's my plugin code:

Code:

$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'Special')
{

    $vbulletin->options['selectednavtab']='Special';
    $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>' ;


When I click on the tab, I get taken directly to the contents of link1.php

Any corrections would be greatly appreciated.

Lynne 02-09-2011 06:58 PM

You say that right now if you click on the tab, you get taken to link1.php. Isn't that what you want? I'm not understanding what the problem is that you are having.

And on link1.php, do you define THIS_SCRIPT?

wpeloquin 02-16-2011 10:30 PM

Hello.

I just wanted to say that I used a hybrid between yours and ragtek's. It allows the base of the navtab to be stored in the plugin, with a couple of things that can be edited in the Admin->Options->Plugin, and offloads the submenu into a template that can be edited as needed by the end-user.

Plugin PHP:
Code:

$tabselected = '';
$tablinks = '';

$navtab_name = $vbulletin->options['plugin_navtab_title'];
$navtab_location = $vbulletin->options['plugin_navtab_location'];
      Those are based on Options that i set up, so the user can choose title and location in the Admin->Options->Plugin Options

switch ($location) {
    case '1':
        $tabloc = 'navtab_end'; break;
    case '2':
        $tabloc = 'navtab_middle'; break;
    case '3':
        $tabloc = 'navtab_start'; break;
}
      The above code determines which option was selected, 1/2/3, to determine location of navtab.

if (THIS_SCRIPT == 'rkc_plugin')
{
    $vbulletin->options['selectednavtab']='rkc_plugin';
    $tabselected = ' class="selected"';
    $tablinks .= vB_Template::create('plugin_navbar_submenu')->render();

}
$template_hook[$nbloc] .= '<li'.$tabselected.'><a class="navtab" href="pluginpage.php">'.$navtabname.'</a>'.$tablinks.'</li>' ;

Template Code:
Code:

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


Boofo 02-16-2011 10:55 PM

You ought to release that. ;)

Hippy 02-17-2011 12:50 PM

Quote:

Originally Posted by Boofo (Post 2163425)
You ought to release that. ;)

I'll second that:up:

Truth66 02-21-2011 01:25 AM

To try and keep things simple, I just added a couple of tabs to the nav bar. The new tabs appear with the name that I want and are fully clickable to the link that I want.
However, when I click onto my new tab it highlights when it's supposed to and then when the new page appears, the tab is no longer highlighted after I move the cursor. The Forum tab automatically highlights, yet the page does not change to the Forum page.

This only happens with the new tabs that I created. I'm using v4.1.2

The tabs were created as a plugin and the hook location is process_templates_complete

Here's the html in the plugin that I used to create one of the new tabs:

$template_hook['navtab_middle'] .= '<li'.$tabselected.'><a class="navtab" href="http://www.voicescount.com/forumdisplay.php?589-Businesses-Sellers-Listings-U.S.A.-Nationwide-Statewide-and-by-American-Cities">U.S.A. Listings</a>'.$tablinks.'</li>';

Is there anything missing in this html?

Thanks Again

Lynne 02-21-2011 02:59 AM

Quote:

Originally Posted by Truth66 (Post 2164796)
To try and keep things simple, I just added a couple of tabs to the nav bar. The new tabs appear with the name that I want and are fully clickable to the link that I want.
However, when I click onto my new tab it highlights when it's supposed to and then when the new page appears, the tab is no longer highlighted after I move the cursor. The Forum tab automatically highlights, yet the page does not change to the Forum page.

This only happens with the new tabs that I created. I'm using v4.1.2

The tabs were created as a plugin and the hook location is process_templates_complete

Here's the html in the plugin that I used to create one of the new tabs:

$template_hook['navtab_middle'] .= '<li'.$tabselected.'><a class="navtab" href="http://www.voicescount.com/forumdisplay.php?589-Businesses-Sellers-Listings-U.S.A.-Nationwide-Statewide-and-by-American-Cities">U.S.A. Listings</a>'.$tablinks.'</li>';

Is there anything missing in this html?

Thanks Again

You need to make sure that you wrote a valid, unique condition for when you tab is active - this is the example condition given and you will need to change it to be valid for your pages:
PHP Code:

if (THIS_SCRIPT == 'yourpage'

That is just an example and your condition will most likely look totally different.

Truth66 02-21-2011 08:07 PM

Hi Lynne,

I've spent countless hours on this today. In fact I've created three different plugins, using a different code fo each and tested each plugin seperately. All three plugins do the exact same thing. Yet all have the exact same problem. The problem is that the tab I create doesn't stay highlighted after a person clicks onto the tab. The tab that does stay highlighted after my new tab is clicked is the Forum tab.

Here's the three different types of code that I've tried:

Plugin A Code:

$template_hook['navtab_end'] = '<li><a class="navtab" href="forumdisplay.php?589">U.S.A. Listings';

Note: Plugin A Code was explained here:

https://vborg.vbsupport.ru/showthrea...67#post2149967

Plugin B Code:

$template_hook['navtab_middle'] .= '<li'.$tabselected.'><a class="navtab" href="http://www.voicescount.com/forumdisplay.php?589-Businesses-Sellers-Listings-U.S.A.-Nationwide-Statewide-and-by-American-Cities">U.S.A. Listings</a>'.$tablinks.'</li>';

Plugin C Code:

$tabselected = '';
$tablinks = '';
if (THIS_SCRIPT == 'Cdn Listings')
{
$vbulletin->options['selectednavtab']='Cdn Listings_tab';
$tabselected = ' class="selected"';
$tablinks = '
<ul class="floatcontainer">
<li><a href="http://www.voicescount.com/forumdisplay.php?2176-Businesses-Sellers-Listings-Canada-Nationwide-Provincewide-amp-by-Canadian-Cities">Cdn Listings</a></li>
</ul>
';
}
$template_hook['navtab_end'] .= '<li'.$tabselected.'><a class="navtab" href="http://www.voicescount.com/forumdisplay.php?2176-Businesses-Sellers-Listings-Canada-Nationwide-Provincewide-amp-by-Canadian-Cities">Cdn Listings'.$tablinks.'</li>' ;

As you can see I'm trying.

Please review the above codes and I appreciate any insite.

Thanks Again

Lynne 02-21-2011 09:55 PM

For Plugin A & B, you have not posted your unique condition at all, so I don't know where the problem is. I do know that if you are linking to a forumdisplay page that you won't be able to use THIS_SCRIPT because all of the forumdisplay pages have that defined the same:
PHP Code:

define('THIS_SCRIPT''forumdisplay'); 

As for the last, Plugin C, again, you are linking to a forumdisplay page and saying the condition is if THIS_SCRIPT equals 'Cdn Listings' but I don't see how you could possible define that since THIS_SCRIPT is already defined on the forumdisplay page to be 'forumdisplay' as I showed above.

You are going to have to use something like the forumid in the condition. Like:
PHP Code:

if ($GLOBALS['forumid'] == 2176

    
$vbulletin->options['selectednavtab']='whatever'
.... 


Truth66 02-21-2011 11:51 PM

Thanks Lynne,

Your solution to Plugin C works:

I changed:
if (THIS_SCRIPT == 'Cdn Listings')

to:

if ($GLOBALS['forumid'] == 2176)

The single Tab now works the way it's supposed to.

Based on your solution, how would your original code at the start of this thread be changed so that I could do the following:

The main tab says Listings

A person clicks onto Listings and a drop menu appears containing three or more sub tabs listed. Each of these sub tabs is linked to a different forum id.

Thanks Again


All times are GMT. The time now is 03:16 AM.

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.01531 seconds
  • Memory Usage 1,771KB
  • 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
  • (4)bbcode_code_printable
  • (3)bbcode_php_printable
  • (2)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