Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
Prev Previous Post   Next Post Next
  #11  
Old 06-28-2006, 02:19 AM
Code Monkey's Avatar
Code Monkey Code Monkey is offline
 
Join Date: May 2004
Posts: 1,080
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here is a little tutorial for you, hope that's what you're looking for.


To make a popup menu like those used in vBulletin using the actual vBulletin code is quite simple.

You only need to do two things beyond what you would normally do to make the menu itself. The actual menu has no additional formatting. So you can add existing or dynamic menus to a popup.

First you make the link that will be clicked to open the popup menu. This can be placed anywhere on a vBulletin page that contains the menu javascript. If the following is not on the page (It's most likely there if the navbar is) you can add it.

Code:
<script type="text/javascript" src="clientscript/vbulletin_menu.js"></script>
For the link code, you need a container. I use a table column below but you can use a div and most likely a span as well. Next you need to create a unique identifier for your menu. Below I use "my_made_up_menu_name", but it can be anything as long as it's unique to that page. You will use this as the id value for the container of the link.

Next you need to give the container the class value of "vbmenu_control". Unlike the id, this is a static choice and must be used as is.

Next you create the clickable link itself. You assign the href attribute with the value of "#unique_menu_id" which in the sample below would be "#my_made_up_menu_name". Don't forget to precede it with the # symbol.

Then give the link a display value to click. This can be whatever is appropriate for the menu. Such as "Quick Links" in the vBulletin navbar.

Finally, add the javascript code with the vbmenu_register function with the unique menu id. In the sample it is vbmenu_register("my_made_up_menu_name");. That covers the link. Simple eh?

HTML Code:
<!--The actual link code that will be clicked to open the pop up menu-->
<td id="my_made_up_menu_name"
class="vbmenu_control"
align="left">
<a href="#my_made_up_menu_name">Link Name</a> <script type="text/javascript">
//<![CDATA[
vbmenu_register("my_made_up_menu_name");
//]]>
</script>
</td>
The menu wrapper itself is quite easy. Below I use a div which you can put anything in. Such as a table or a list, or even another div or a picture of your puppy. It's all up to you.

Here is the tricky part that can get overlooked. This containers id is the unique id of the link above but you add "_menu" to the end of it. So in the example below it is "my_made_up_menu_name_menu".

Next you make the class attribute have a value of "vbmenu_popup".

And last but not least, you assign the style property of "display:none".


And your done.

HTML Code:
<!--Hidden menu code placed on the page anywhere below the actual link to open it-->
<div id="my_made_up_menu_name_menu"
class="vbmenu_popup"
style="display:none">
<!--Put your table or list code here-->
</div>
There is lot's of javascript out there to make these popup menu's. Some better and some worse than what is included in vBulletin. I myself have used overlib in many web applications. However, the proper thing to do when adding features to vBulletin or any other target software, is to add features without adding code, if possible. So if you can get the desired result using the code that is already there then that is the proper way to go about it bloat free.

The above tutorial copyright vbmodder.com
Reply With Quote
 

Thread Tools
Display Modes

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 10:17 PM.


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.06160 seconds
  • Memory Usage 2,880KB
  • Queries Executed 12 (?)
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
  • (1)bbcode_code
  • (2)bbcode_html
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (22)post_thanks_box
  • (22)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (22)post_thanks_postbit_info
  • (22)postbit
  • (22)postbit_onlinestatus
  • (22)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • 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_threaded
  • showthread_threaded_construct_link
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete