PDA

View Full Version : Miscellaneous Hacks - navbar forumjump dropdown


Floris
12-20-2006, 10:00 PM
This is beta, and I won't support it.

What does this do?

This will add a dropdown to your navbar that lists the forums below a parent forum.

On my bro's site we have a list of 12 worksheets, and each worksheet is a forum. We needed a list of all 12 worksheets for quick navigation. Instead of me getting emails every time they make a forum change, the dropdown is now auto updated, populated and I don't have to worry those emails anymore.

It uses forumcache (tnx danny) so it won't add a query to each page, unless it needs to.

===== TEMPLATE CHANGES =====
Open the template: navbar, and find this code:
<if condition="$show['registerbutton']">Above this, add the following code:
<td id="navforums" class="vbmenu_control"><a href="$show[nojs_link]#navforums">Pick a Forum!</a> <script type="text/javascript"> vbmenu_register("navforums"); </script></td>Then find this code:
<!-- / NAVBAR POPUP MENUS -->And above this, add the following code:
<!-- popup navforums -->
<div class="vbmenu_popup" id="navforums_menu" style="display:none">
<table cellpadding="4" cellspacing="1" border="0">
<tr><td class="thead">Quickly jump to one of the forums</td></tr>
$navbarforum
</table>
</div>
<!-- / popup navforums -->And save the template.

===== PLUGIN =====
Create a new plugin in the global_start hook location, call it navbarforums and give it this code:

if (is_array($vbulletin->forumcache))
{
foreach ($vbulletin->forumcache AS $forum)
{
if ($forum[parentid] == 7)
{
$navforumid = $forum[forumid];
$navforumtitle = $forum[title];
$navbarforum .= "<tr><td class=\"vbmenu_option\"><a href=\"forumdisplay.php?f=".$navforumid."\" rel=\"nofollow\">".$navforumtitle."</a></td></tr>";
}
}
}
else
{
$navbarforums = $db->query_read("
SELECT forumid, title
FROM " . TABLE_PREFIX . "forum
WHERE parentid = '7'
");

while ($navbarresult = $db->fetch_array($navbarforums))
{
$navforumid = $navbarresult[forumid];
$navforumtitle = $navbarresult[title];
$navbarforum .= "<tr><td class=\"vbmenu_option\"><a href=\"forumdisplay.php?f=".$navforumid."\" rel=\"nofollow\">".$navforumtitle."</a></td></tr>";
}
}
Find the if ($forum[parentid] == 7) to point to your forumid
(that means, change the 7 to your PARENT forumid, as it will get all the childforums below this parent)

And you're done.

Q : Does it list the subforums below the forums too?
A : No, only the first level forums below the parentid.

Q : My list is too long!
A : Your parentid has a lot of forums.

Apoco
12-21-2006, 12:17 AM
wtf no plugin or products? >_>

Why are there no phrases?

Apoco
12-21-2006, 12:18 AM
Screenshot? Live Demo? Anything? I don't understand

Hornstar
12-21-2006, 04:44 AM
A demo site or a screen shot would be great to see it in action. Thanks.

bashy
12-21-2006, 05:10 AM
wtf no plugin or products? >_>

Why are there no phrases?

===== PLUGIN =====
Create a new plugin, call it navbarforums and give it this code:

Floris
12-21-2006, 02:00 PM
wtf no plugin or products? >_>

Why are there no phrases?
This is no product, hence why it isn't added as a product. It has no phrases, it is a beta. So there's no need to make this a product. It is a plugin, the instructions say to create a new plugin. So no need to add a plugin.xml as you have to edit the code anyway. Takes away one step during install. ;)

Screenshot? Live Demo? Anything? I don't understand There's no need for a demo, it is a dropdown .. and it has the same forum titles listed as the forums below the parent you've picked, just conv. listed in a dropdown for quick access. ;)


A demo site or a screen shot would be great to see it in action. Thanks. Take a look at any dropdown on any vb powered site in the navbar, that's how it would look, only now with titles from forum names. ;)

===== PLUGIN =====
Create a new plugin, call it navbarforums and give it this code:

exactly ;)

Darat
12-21-2006, 02:09 PM
What hook location for the plugin?

teeech
12-21-2006, 08:02 PM
I got the code placed correctly but I don't get a list of forums. I changed the parent ID to accomodate one of my forum id's but no dice.

also, would I repeat a portion of the code if I wanted to display multiple "parents"?

I understand you don't support this, but I'd appreciate a little help from anyone that's got it working properly.

Floris
12-22-2006, 06:52 AM
global_start, as the navbar is for every page

Ramsesx
12-25-2006, 09:51 PM
Nice and thanks, but sad doesn't work on a vba cmps index page. For people who asked for a screenshot, have a look to the attached one. Oh, and I saw it now, attention it's listening hidden forums for all users (guests) too.

teeech
12-31-2006, 03:56 AM
Any update on getting it to work on an cmps index page or what I should change in the plugin?

Very useful feature, but not so helful unless it works on my portal page. Any help is appreciated.

Also, what section of the code would be changed/repeated in the instance of multiple parent forums?

4x4 Mecca
03-12-2007, 06:01 PM
Can't you make it list all forums? There may already be a hack for that, I'm not sure.

MelH
04-03-2007, 01:57 AM
Any update on getting it to work on an cmps index page or what I should change in the plugin?

Very useful feature, but not so helful unless it works on my portal page. Any help is appreciated.

Also, what section of the code would be changed/repeated in the instance of multiple parent forums?

I agree, it?s a great hack but it needs to work on vBadvanced CMPS pages and show all forums, not just those in one category.

Usually with vBa CMPS the fix is to put the full url somewhere in the navbar code additions but I cant see where to do that.

Can anyone help?

MelH
04-03-2007, 02:28 AM
Woo hoo!

I was digging around in the vBa CMPS forums and found the solution to the problem of this menu not working from their pages.

Go to Admin CP => vBa CMPS => Default Settings => Portal Output Global Variables

Add the word 'navbarforum' (without the quotes) to that setting. That just gets the drop down working.

Then, to make the links work -

In the plug in you created find the two instances of 'forumdisplay.php' and add the full url before.

This means change this:

$navbarforum .= "<tr><td class=\"vbmenu_option\"><a href=\"forumdisplay.php?f=".$navforumid."\" rel=\"nofollow\">".$navforumtitle."</a></td></tr>";

to this in two places.

$navbarforum .= "<tr><td class=\"vbmenu_option\"><a href=\"http://yourwebsite/forum/forumdisplay.php?f=".$navforumid."\" rel=\"nofollow\">".$navforumtitle."</a></td></tr>";

MelH
04-03-2007, 12:29 PM
Just edited the fix for vBadvanced CMPS in the previous post of mine. The drop down works fine now.