|
Article Options |
vB4.2 Navigation Manager - how to discussion
by
19 May 2012
I have vB 4.2.0 BETA 1 running in my test system. Products that use templates/hooks to integrate with the navbar will need the following changes to work with the Navigation Manager. Please post code snips and hints in this thread, we are all on a learning curve. 1. Remove old style navigation hooks/templates etc. 2. Create a new <navigation> section in the product XML file (You can create the navigation in the navigation manager, linked to a product then export the product file as a skeleton) 3. Set any conditionals in a hook or in your main code Eg. $show['apmgtug'] = true; is set for one of the menu items in my example My example relies on $show['member'] = true; as well. Leave the <show> tag empty for 'public' tabs/links 4. If you have multiple scripts, leave <scripts> blank and set $root at the new hooks set_navigation_tab_fallaback or set_navigation_tab_vbview
I hope that helps you get a quick leg up for this change. I would probably have a new vB4.2 code base because of the differences, you could have the same code base with some sort of version check. In the end the new navigation integration is better and easier. Here are sample <navigation> from one of my own plugins...
Sample phrases the give the text of the navigation items.
--------------- Added 19 May 2012 at 01:31 --------------- Pull down menu's can also be coded. Have a look at the vB source for examples. Specifically "./install/vbulletin-navigation.xml" Last edited by AusPhotography; 26 May 2012 at 00:19.. |
||||||||||||
Views: 34614
|
Comments |
#2
|
|||
|
|||
FYI, the navtab_end template hook in 4.2.0 still works the same as it did in 4.1.12.
It's the navbar that gives headaches. You can add to the navbar with a DB routine too. EDIT: But this does totally screw up dynamically built navbar links. On first glance it looks like a phrase needs to be created for each navbar link. If that's the case, the maintenance DB routines for a dynamically created link will be interesting. No members have liked this post.
Last edited by nhawk; 19 May 2012 at 11:32. |
#3
|
||||
|
||||
FYI, the 'show' check can use multiple variables, so if you want a link to only appear if $show['cond1'] and $show['cond2'] are set, you add them both, separated by a dot
<show>cond1.cond2</show> Custom $show variables can be created pretty much in any hook, as the navigation is almost the last thing built, but two common ones added for the purpose are load_show_variables & load_forum_show_variables.
__________________
Former vBulletin.org Staff Member
Cable Forum Please do not PM me about custom work - I no longer undertake any. Note: I will not answer support questions via e-mail or PM - please use the relevant thread or forum. |
#4
|
||||
|
||||
May I ask why you would need dynamically created links? |
#5
|
|||
|
|||
Originally Posted by Andreas
Posted on vB.com..
'user' in this case means the administrator. ie: A mod uses a portion of the information entered by the user for the navbar link, say the 'title' portion of the user entry. In order to create the navbar link in the community menu, that 'title' must be also be saved in the phrase table of vB. And then the additional navbar link must be created in the navigation table. Along with that a $show variable must be created in a plugin if the member has permission to view that link. Now because different 'titles' can have different permissions, there has to be a different $show for each menu item. That seems like a lot to go through for something that use to take a one line piece of code to throw the menu selection in the community menu in earlier versions. No members have liked this post.
Last edited by nhawk; 19 May 2012 at 17:15. |
#6
|
||||
|
||||
Originally Posted by nhawk
Can you give a concreate example of an Add-on so it is easier to understand what exactly you are talking abount?
As far as I understand you intentions by now is that the Add-on allows the administrator to set the title for a link in the Community Menu on the Forum tab? This can easily be achived by just using the Navigation Manager to rename the link.
(Which will happen automatically if you have already added that link on your developement system, assigned in to the Add-on and exported the XML).
But again this is not different from how it worked in vB 4.1
In vB 4.1 you had to
In vB 4.2
No members have liked this post.
|
#7
|
||||
|
||||
Originally Posted by Andreas
Sure.. it's my Advanced Application Forms..
Here's a snippet of the code to add an application type to the community menu...
Don't get me wrong. I can create the menu in the database when the application is created. It just seems like more work to me. This reminds me of the addition of the <vb:each> in templates... Nobody is going to tell me that reading a database, parse the data to build an array, sending that array to the template and parsing it a second time is faster than bulding/formating the array and sending it in all one lump piece of data to the template. It's just not possible. Two parses take double the time. But that's a different topic. No members have liked this post.
Last edited by nhawk; 19 May 2012 at 17:48. |
#8
|
||||||||
|
||||||||
Originally Posted by nhawk
Thanks, that's what I expected
The idea behind Navigation Manager is to give the Administrator full control over the menu structure - if you are creating links dynamically at runtime (which is still possible) you are IMHO somewhat defeating that goal.
Here is a little benchmark:
No members have liked this post.
|
#9
|
||||
|
||||
Just in case you dont bother running that benchmark, here is the result on my local test environment
Time taken for 10.000 Bit Templates: 1.2209470272064 Time taken for 10.000 Array-Elements with <vb:each>: 0.010501146316528 (over 100x faster) Success - Both methods yielded the same result data and on my remote test server ; Time taken for 10.000 Bit Templates: 1.3666188716888 Time taken for 10.000 Array-Elements with <vb:each>: 0.01978611946106 (over 70x faster) Success - Both methods yielded the same result data
__________________
Former vBulletin.org Staff Member
Cable Forum Please do not PM me about custom work - I no longer undertake any. Note: I will not answer support questions via e-mail or PM - please use the relevant thread or forum. No members have liked this post.
|
#10
|
||||||||
|
||||||||
I've already given in to the idea of having to create the menu additions in the database and have the update for that particular mod ready to be released. And those menu selections were always under the admin's control to begin with. Now they can just move them around a little more.
The bechmark isn't exactly what I was talking about. In the case of rendering bits templates I agree it's much faster. But I see people using it something like this...
When bulding the array as a static value and displaying it as a single value is much faster..
No members have liked this post.
Last edited by nhawk; 19 May 2012 at 20:16. |
#11
|
||||
|
||||
Originally Posted by nhawk
Although that is a bit slower than hardcoding the HTML, this is the way it should be done as it separates the presentation from the business logic.
If the designer want's to do smth. complletely different from <ul> he can do that by simply modifying the template - with the list entries being generated in PHP he can't No members have liked this post.
|
#12
|
|||
|
|||
I'm curious, do you know why that is? Is it the time needed to create the objects?
No members have liked this post.
|
#13
|
||||
|
||||
Originally Posted by kh99
The render uses 'eval' 'nuff said
Kym
__________________
www.AusPhotography.net.au a.k.a. AP is a photography forum where members share their photography, photo editing skills and techniques. We run regular photographic competitions; Rick (site owner) and Kym (site tech) using this account *** Home of the AP fully comprehensive vb4 photographic competition management solution *** No members have liked this post.
|
#14
|
||||
|
||||
This is very handy... http://www.vbulletin.org/forum/showthread.php?t=283123 (Thanks Andreas)
Also Scott's post on vb.com https://www.vbulletin.com/forum/show...56#post2295256
__________________
www.AusPhotography.net.au a.k.a. AP is a photography forum where members share their photography, photo editing skills and techniques. We run regular photographic competitions; Rick (site owner) and Kym (site tech) using this account *** Home of the AP fully comprehensive vb4 photographic competition management solution *** No members have liked this post.
|
#15
|
|||
|
|||
Originally Posted by Andreas
Even though I'm not a big fan of anything that increases processing time, I see your point.
And a note for any other coders that might want to add menus via DB addition rather than at installation.. Be sure you run build_language() after adding the navigation and phrase info. If you don't, your phrase won't appear in the menus. EDIT: Another note.. The information that's the original topic of this thread gets added to the install XML when you export it. So, you just need to create the navigation links and export a new XML for the mod. No members have liked this post.
Last edited by nhawk; 20 May 2012 at 12:28. |
Similar Article | ||||
Article | Author | Type | Replies | Last Post |
Administrative and Maintenance Tools Navigation Manager Enhancements | Andreas | vBulletin 4.x Add-ons | 337 | 03 Jan 2018 15:58 |
«
Previous Article
|
Next Article
»
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
New To Site? | Need Help? |
All times are GMT. The time now is 00:56.