Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Forum Jump In Navbar Details »»
Forum Jump In Navbar
Version: 1.00, by P1erce P1erce is offline
Developer Last Online: Feb 2014 Show Printable Version Email this Page

Category: Mini Mods - Version: 3.6.7 Rating:
Released: 07-03-2007 Last Update: Never Installs: 24
Re-useable Code  
No support by the author.

Okay a few notes first.

A. I wont support this software
B. I dont plan to improve it unless I have a requirement to do so personally for www.minimins.com
C. If you want to modify it, change it, make it something like DigitalPoint.com drop down, and charge for the modification be my guest, ill even pay for it
D. Thanks to the original idea at http://forums.digitalpoint.com
E. I dont know how to make a plugin so dont say anything about it not being a plugin.
F. It wont work as guest on my forum for SEO reasons. But please dont register on my forum just to see it in action, the screenshot says it all.
G. Dont complaine about my code, it works, but I accept it may not be the best way to do this.
H. Its the code for the Forum Jump menu, so its dynamic. If you have admin forums thoes who can see thoes forums will be able to see it in the jump menu, thoes who dont, wont simple

So, right, theres various other attempts at making this dropdown but to be honest they were not adequait. As such I spent 4/5 hours making my own one from the Forum Jump menu function.

The code!

1. Plugin Mangager
2. Add New Plugin

hook location : global
name : whatever, i called it "navbar jump menu"

This is the code:

PHP Code:
//copyright MiniMins.com
function construct_jump2($parentid = -1$addbox true$prependchars ''$permission '')
{    
    global 
$vbulletin$optionselected$usecategories$jumpforumid$jumpforumtitle$jumpforumbits$curforumid$daysprune$jumpforumbits2;
    global 
$stylevar$vbphrase$defaultselected$forumjump$selectedone;
    global 
$frmjmpsel// allows context sensitivity for non-forum areas
    
global $gobutton;
    static 
$complete false;
    

    if (
$complete OR !$vbulletin->options['useforumjump'] OR !($vbulletin->userinfo['permissions']['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview']))
    {
        return;
    }

    if (empty(
$vbulletin->iforumcache))
    {
        
// get the vbulletin->iforumcache, as we use it all over the place, not just for forumjump
        
cache_ordered_forums(01);
    }
    if (empty(
$vbulletin->iforumcache["$parentid"]) OR !is_array($vbulletin->iforumcache["$parentid"]))
    {
        return;
    }

    foreach(
$vbulletin->iforumcache["$parentid"] AS $forumid)
    {
        
$forumperms $vbulletin->userinfo['forumpermissions']["$forumid"];
        
#if ((!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND !$vbulletin->options['showprivateforums']) OR !($vbulletin->forumcache["$forumid"]['options'] & $vbulletin->bf_misc_forumoptions['showonforumjump']) OR !$vbulletin->forumcache["$forumid"]['displayorder'] OR !($vbulletin->forumcache["$forumid"]['options'] & $vbulletin->bf_misc_forumoptions['active']))
        
if ((!($forumperms $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums']))) OR !($vbulletin->forumcache["$forumid"]['options'] & $vbulletin->bf_misc_forumoptions['showonforumjump']) OR !$vbulletin->forumcache["$forumid"]['displayorder'] OR !($vbulletin->forumcache["$forumid"]['options'] & $vbulletin->bf_misc_forumoptions['active']))
        {
            continue;
        }
        else
        {
            
// set $forum from the $vbulletin->forumcache
            
$forum $vbulletin->forumcache["$forumid"];

            
$optionvalue $forumid;
            
$optiontitle $prependchars $forum[title_clean]";

            
$optionclass 'fjdpth' iif($forum['depth'] > 44$forum['depth']);

            if (
$curforumid == $optionvalue)
            {
                
$optionselected 'selected="selected"';
                
$optionclass 'fjsel';
                
$selectedone 1;
            }
            else
            {
                
$optionselected '';
            }

            
//eval('$jumpforumbits2 .= "' . fetch_template('option') . '";');
            //$jumpforumbits2 .= 
            
$jumpforumbits2[$optionvalue] .= "<a href=\"forumdisplay.php?f=".$forumid."\">".$optiontitle."</a>";
            
construct_jump2($optionvalue0$prependchars FORUM_PREPEND$forumperms);
            

        } 
// if can view
    
// end foreach ($vbulletin->iforumcache[$parentid] AS $forumid)

}

function 
jumpforumbits2html()
{
    global 
$jumpforumbits2;
    
    
$forumNavJumpMenu "<div class=\"vbmenu_popup\" id=\"navbar_forumjump_menu\" style=\"display:none; position:absolute; padding: 0px;\">\n";
    
$forumNavJumpMenu .= "\t<table cellpadding=\"4\" cellspacing=\"1\" border=\"0\">\n";
    
$forumNavJumpMenu .= "\t\t<tr><td class=\"tcat\" colspan=\"6\" style=\"padding: 4px\">Forums</td></tr>\n";
    
$forumNavJumpMenu .= "\t\t<tr class=\"fjump\">\n";
    
$forumNavJumpMenu .= "\t\t\t<td valign=\"top\">\n";
    
    
$start true;
    
    foreach(
$jumpforumbits2 AS $bit)
    {
        
$canArray explode("&nbsp;",$bit);
        if(
$canArray[1] != " ")
        {
            
//this is the table heading!
            //end previous table
            
if(!$start)
            {
                                                
//uncomment if you want multiple columns
                //$forumNavJumpMenu .= "\t\t\t\t</table>\n";
                //$forumNavJumpMenu .= "\t\t\t</td>\n";
                //$forumNavJumpMenu .= "\t\t\t<td valign=\"top\">\n";
            
}
            
//start table - uncomment the next 2 lines if you want.. multiple columns rather than 1 solid column
            //$forumNavJumpMenu .= "\t\t\t\t<table cellpadding=\"2\" style=\"border-bottom:1px solid #fff; border-collapse: collapse; padding:1px;\">\n";
            //$forumNavJumpMenu .= "\t\t\t\t<table cellpadding=\"0\" cellspacing=\"1\" border=\"0\">";
            //start header
            
$forumNavJumpMenu .= "\t\t\t\t\t<tr><td class=\"thead\">".$bit."</td></tr>\n";
        }
        else
        {
            
//just a normal heading
            
$forumNavJumpMenu .= "\t\t\t\t\t<tr><td class=\"vbmenu_option\">".$bit."</td></tr>\n";
        
        }
        
        
$start false;
    }
    
    
//end tables
    
$forumNavJumpMenu .= "\t\t\t\t</table>\n";
    
$forumNavJumpMenu .= "\t\t\t</td>\n";
    
$forumNavJumpMenu .= "\t\t</tr>\n";
    
$forumNavJumpMenu .= "\t</table>\n";
    
$forumNavJumpMenu .= "</div>";
    
    return 
$forumNavJumpMenu;
    
}
$forumNavJumpList construct_jump2();

$forumNavJumpMenujumpforumbits2html(); 
Now, heres the code for the navbar, place it where you want the dropdown.

Code:
<td id="navbar_forumjump" class="vbmenu_control"><a href="$show[nojs_link]#forumjump" accesskey="j">Forum Jump</a> <script type="text/javascript"> vbmenu_register("navbar_forumjump"); </script></td>
And place this before <!-- / PAGENAV POPUP -->

Code:
<!-- Forum Jump -->
$forumNavJumpMenu
<!-- /ForumJump -->
So you can format the HTML to change the format from single column to multi column. Just uncomment the lines required. (see the comments in the source). I used a single column because I have too many sub forums and I didnt want to negoicate on the size of the text and it was going off the screen, so a single column was better suited to my needs.

If you have any general questions about the code Ill try and help. But the one part and dont ask me, is the recursvie function in construct_jump2 I barely understand it myself.

Enjoy

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #2  
Old 07-04-2007, 04:37 PM
P1erce P1erce is offline
 
Join Date: Aug 2006
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

In tradition i reserve the first post
Reply With Quote
  #3  
Old 07-04-2007, 05:43 PM
Kaleem's Avatar
Kaleem Kaleem is offline
 
Join Date: May 2006
Location: New Jersey
Posts: 324
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How is it different from this ?
https://vborg.vbsupport.ru/showthread.php?t=133277
Reply With Quote
  #4  
Old 07-04-2007, 05:48 PM
P1erce P1erce is offline
 
Join Date: Aug 2006
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

see the last box of code on that post?

You have to manually define every forum url and forum name. The one above fully automatic/dynamic content.

For me, with 100 forums, that was just totaly impractical. I did start and got through 20 forums and just got sick of it. Because I knew I would be moving forums around, renaming etc, so this semi-mod was created

Pierce
Reply With Quote
  #5  
Old 07-04-2007, 06:00 PM
Magnumutz's Avatar
Magnumutz Magnumutz is offline
 
Join Date: Feb 2006
Location: Romania
Posts: 731
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Heh... very nice. Good job !!
*Clicks install*

Later edit: Damn... my skin is too modified to use it :|
Hope i can modify it some way.
Reply With Quote
  #6  
Old 07-04-2007, 06:10 PM
projectego's Avatar
projectego projectego is offline
 
Join Date: Feb 2006
Location: UK
Posts: 724
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Awesome! Thank you very much!
Reply With Quote
  #7  
Old 07-04-2007, 06:51 PM
SkyCatcher's Avatar
SkyCatcher SkyCatcher is offline
 
Join Date: Feb 2003
Location: Germany
Posts: 310
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I took a look at it and made you a nice little product file. The code is unchanged from what you've posted. Users still need to make the 2 template edits.

I played with this for about an hour coming up with a simple if($i = 6) {$pagenavthingy .="<br />";} but it doesn't work that way :/

The way the HTML is coded, it will count the categories and forums as the same thing so:

Lobby (Category)
Forum1
Forum2

That would be 3 loops instead of 1

Which means it needs an extra check... if act as forum = 0 then counter+1.. then when counter = 6, throw in a <br /> and reset to 0. Then clean up the html code and you should be on your way if you care to make it resemble the other site.


Edit: Good lord my spelling is off!
Reply With Quote
  #8  
Old 07-04-2007, 06:54 PM
P1erce P1erce is offline
 
Join Date: Aug 2006
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SkyCatcher View Post
I took a look at it and made you a nice little product file. The code is unchanged from what you've posted. Users still need to make the 2 template edits.

I played with this for about an hour coming up with a simple if($i = 6) {$pagenavthingy .="<br />";} but it doesn't work that way :/

The way the HTML is coded, it will count the categories and forums as the same thing so:

Lobby (Category)
Forum1
Forum2

That would be 3 loops instead of 1

Which means it needs an extra check... if act as forum = 0 then counter+1.. then when counter = 1, throw in a <br /> and reset to 0. Then clean up the html code and you should be on your way if you care to make it resemble the other site.


Edit: Good lord my spelling is off!
Thanks!!
Reply With Quote
  #9  
Old 07-04-2007, 07:06 PM
bhen13 bhen13 is offline
 
Join Date: Apr 2007
Location: Texas
Posts: 82
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does it work with 3.6.5.?
Reply With Quote
  #10  
Old 07-04-2007, 07:08 PM
SkyCatcher's Avatar
SkyCatcher SkyCatcher is offline
 
Join Date: Feb 2003
Location: Germany
Posts: 310
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by bhen13 View Post
does it work with 3.6.5.?
Tested with 3.6.7PL1 here so yeah, should work with 3.5.x and 3.6.x
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 04:10 AM.


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.05126 seconds
  • Memory Usage 2,355KB
  • Queries Executed 23 (?)
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
  • (1)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete