How to Create Forum Jump in The Nav Bar of the site.

2610d1202824766-how-create-forum-jump-nav-bar-site-jump.jpg
 
Kisi ko bhi nahi hay pata Yeh Kaam ka ke/ yeh kaisay hota hay??
Abh tu main nay kuch aur module ka bhi yahan discuss karna tha aap loogon kay saath...

Please achhay babies ki tarah meri help kar dain na..
Aap ki Nazia Jabeen. from My PC...
 
Here You Go

Forum Jump In Navbar
Mod Information
Add A CommentEdit SettingsMark as Installed
Nominate for MOTMJump To CommentsThe Developer
About Developer
Version: 1.00, by P1erce (Coder)
Developer Last Online: Sep 2007


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 http://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:
//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(0, 1); 
    } 
    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'] == 1 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'] > 4, 4, $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($optionvalue, 0, $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(); 

$forumNavJumpMenu= jumpforumbits2html();

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.

Greetz SuCre
 
No you must create a plugin!

1. Plugin Mangager
2. Add New Plugin

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

This is the code:
PHP:
//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(0, 1);
    }
    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'] == 1 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'] > 4, 4, $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($optionvalue, 0, $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();

$forumNavJumpMenu= jumpforumbits2html();

Here the complete Readme!
 
Back
Top