Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases

Reply
 
Thread Tools
Addon: Auto-populate Navbar menu (for John's Arcade V3) Details »»
Addon: Auto-populate Navbar menu (for John's Arcade V3)
Version: 1.00, by Natch Natch is offline
Developer Last Online: Apr 2022 Show Printable Version Email this Page

Version: 3.0.3 Rating:
Released: 02-06-2004 Last Update: 02-06-2004 Installs: 15
 
No support by the author.

Addon: Auto-populate Navbar menu (for John's Arcade V3)

What this hack does:

It replaces the link in your navbar for the Arcade with a Dropdown menu of all the games that are active in your Arcade.

Motivation: Extrapolated from my other auto-populating menu for Erwin's vB3 hack ...

Files to edit: 2
global.php
includes/functions.php
Template to edit: 1
navbar
New phrases to insert: 1
Queries added: 1

Step 1: Add the following in the Phrase Manager under GLOBAL

Alternate: you can import the single phrase using the included XML file

************************************************** ******
Name: arcade_addon_title
Phrase: The Arcade!
************************************************** ******

Step 2: Add the following at the bottom of global.php

Find:
Code:
/*======================================================================*\
|| ####################################################################
|| # Downloaded:
Add Before:
PHP Code:
// Addon to John's vB3 ArcadeV3 hack - created by Natch
    
$nav_arcade genArcadeMenu();
// Addon to John's vB3 ArcadeV3 hack - created by Natch 
Step 3: Add the following at the bottom of includes/functions.php

Find:
Code:
/*======================================================================*\
|| ####################################################################
|| # Downloaded:
Add Before:
PHP Code:
// Addon to John's vB3 ArcadeV3 hack - created by Natch
function genArcadeMenu() {
    global 
$DB_site,$vboptions;
    
$theseGames $DB_site->query("SELECT gameid,title,gamesettings FROM " TABLE_PREFIX "games ORDER BY title");
    while (
$thisGame $DB_site->fetch_array($theseGames)) {
        
$arcmenu.= (is_int($thisGame[gamesettings]/2)) ? "" "\t\t<tr><td class=\"vbmenu_option\"><a href=\"$vboptions[bburl]/arcade.php?$session[sessionurl]do=play&amp;gameid=".$thisGame[gameid]."\">".$thisGame[title]."</a></td></tr>\n";
    }
    return 
$arcmenu;
}
// Addon to John's vB3 ArcadeV3 hack - created by Natch 
Step 4: Add the following to the template 'navbar'

Find:
Code:
<!-- / NAVBAR POPUP MENUS -->
Add Before:
Code:
<!-- Addon to John's vB3 ArcadeV3 hack - created by Natch -->
	<if condition="$show['member']"> <!-- remove this line and the endif if you wish all users and guests to view the menu -->
	<!-- flash arcade auto-menu -->
	<div class="vbmenu_popup" id="flasharcade_menu" style="display:none">
		<table cellpadding="4" cellspacing="1" border="0">
		<tr><td class="thead"><a href="$vboptions[bburl]/arcade.php?$session[sessionurl]" title="$vbphrase[arcade_addon_title]">$vbphrase[arcade_addon_title]</a></td></tr>
$nav_arcade
		</table>
	</div>
	<!-- / flash arcade auto-menu -->
	</if>
<!-- Addon to John's vB3 ArcadeV3 hack - created by Natch -->
Find:
Code:
<td class="vbmenu_control"><a href="arcade.php?$session[sessionurl]">Arcade</a></td>
REPLACE WITH:
Code:
<!-- Addon to John's vB3 ArcadeV3 hack - created by Natch -->
			<if condition="$show['member']"> <!-- remove this line and the endif if you wish all users and guests to view the menu -->
				<td id="flasharcade" class="vbmenu_control"><a href="#flasharcade">$vbphrase[arcade_addon_title]</a> <script type="text/javascript"> vbmenu_register("flasharcade"); </script></td>
			</if>
<!-- Addon to John's vB3 ArcadeV3 hack - created by Natch -->
NOTE: in the two navbar edits there are conditionals that WILL CAUSE the menu to only appear to Registered users - remove these conditional wrappers to show the menu to all and sundry ...

Should work Enjoy, and props to John for his great Hack ...
U can see a demo @ http://www.mobileforces.org/ << running vBulletin 3.0.0 RC4 and vBIndex RC3, on PHP v4.3.4, MySQL 4.0.15

Screenshots attached: one with all default games enabled, and one with asteroids disabled

UPDATE: fixed up my comments - damn that copy and paste ... those that downloaded the attachment b4 5AM +11GMT, re-get the attachment, or make the following alterations to the above script:

Find twice:
Code:
// remove this line and the endif if you wish all users and  guests to view the menu
Replace with:
Code:
<!-- remove this line and the endif if you wish all users and guests to view the menu -->
UPDATE: IF YOU WANT ONLY N MOST POPULAR GAMES - check out this post

UPDATE: if you wat IMGAES in your dropdown menu, check out this post

Show Your Support

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

Comments
  #42  
Old 07-22-2004, 01:14 PM
Intex Intex is offline
 
Join Date: Apr 2002
Posts: 576
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice one Natch. Any way to include the little mini-thumbnails for each game?

/me clicks install.
Reply With Quote
  #43  
Old 07-22-2004, 11:09 PM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yeah - I should think that would be a trivial change...

Let me look into it - it would of course make the menu more massive again...
Reply With Quote
  #44  
Old 07-23-2004, 01:22 AM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK - to add images to the menu:

Open includes/functions.php, find the query you are using (remember there are multiple versions of this query):
Original:
PHP Code:
// Addon to John's vB3 ArcadeV3 hack - created by Natch
function genArcadeMenu() {
    global 
$DB_site,$vboptions;
    
$theseGames $DB_site->query("SELECT gameid,title,gamesettings FROM " TABLE_PREFIX "games ORDER BY title");
    while (
$thisGame $DB_site->fetch_array($theseGames)) {
        
$arcmenu.= (is_int($thisGame[gamesettings]/2)) ? "" "\t\t<tr><td class=\"vbmenu_option\"><a href=\"$vboptions[bburl]/arcade.php?$session[sessionurl]do=play&amp;gameid=".$thisGame[gameid]."\">".$thisGame[title]."</a></td></tr>\n";
    }
    return 
$arcmenu;
}
// Addon to John's vB3 ArcadeV3 hack - created by Natch 
Replace with:
PHP Code:
// Addon to John's vB3 ArcadeV3 hack - created by Natch
function genArcadeMenu() {
    global 
$DB_site,$vboptions,$stylevar;
    
$theseGames $DB_site->query("SELECT gameid,title,gamesettings,miniimage FROM " TABLE_PREFIX "games ORDER BY title");
    while (
$thisGame $DB_site->fetch_array($theseGames)) {
        
$arcmenu.= (is_int($thisGame[gamesettings]/2)) ? "" "\t\t<tr><td class=\"vbmenu_option\"><img src=\"$vboptions[bburl]/$stylevar[imgdir_arcade]/".$thisGame[miniimage]."\" alt=\"\" style=\"border:0;padding-right:3px\" align=\"absmiddle\" /><a href=\"$vboptions[bburl]/arcade.php?$session[sessionurl]do=play&amp;gameid=".$thisGame[gameid]."\">".$thisGame[title]."</a></td></tr>\n";
    }
    return 
$arcmenu;
}
// Addon to John's vB3 ArcadeV3 hack - created by Natch 
Most often played:
PHP Code:
// Addon to John's vB3 ArcadeV3 hack - created by Natch
function genArcadeMenu($limit) {
    global 
$DB_site,$vboptions;
    
$theseGames $DB_site->query("
                    SELECT " 
TABLE_PREFIX "games.gameid AS gameid, " TABLE_PREFIX "games.title AS title, " TABLE_PREFIX "games.gamesettings as gamesettings, COUNT(" TABLE_PREFIX "gamesessions.gamename) AS popularity
                    FROM " 
TABLE_PREFIX "games
                    INNER JOIN " 
TABLE_PREFIX "gamesessions
                    ON " 
TABLE_PREFIX "games.shortname = " TABLE_PREFIX "gamesessions.gamename
                    GROUP BY title
                    ORDER BY popularity DESC
                    LIMIT 
$limit
                    "
);
    while (
$thisGame $DB_site->fetch_array($theseGames)) {
        
$arcmenu.= (is_int($thisGame[gamesettings]/2)) ? "" "\t\t<tr><td class=\"vbmenu_option\"><a href=\"$vboptions[bburl]/arcade.php?$session[sessionurl]do=play&amp;gameid=".$thisGame[gameid]."\">".$thisGame[title]."</a></td></tr>\n";
    }
    return 
$arcmenu;
}
// Addon to John's vB3 ArcadeV3 hack - created by Natch 
Replace with:
PHP Code:
function genArcadeMenu($limit) {
    global 
$DB_site,$vboptions,$stylevar;
    
$theseGames $DB_site->query("
                    SELECT games.gameid AS gameid, games.title AS title, games.gamesettings as gamesettings, games.miniimage AS miniimage, COUNT(gamesessions.gamename) AS popularity 
                    FROM " 
TABLE_PREFIX "games as games
                    INNER JOIN " 
TABLE_PREFIX "gamesessions AS gamesessions
                    ON games.shortname = gamesessions.gamename 
                    GROUP BY title 
                    ORDER BY popularity DESC 
                    LIMIT 
$limit
                    "
);
    while (
$thisGame $DB_site->fetch_array($theseGames)) {
        
$arcmenu.= (is_int($thisGame[gamesettings]/2)) ? "" "\t\t<tr><td class=\"vbmenu_option\"><img src=\"$vboptions[bburl]/$stylevar[imgdir_arcade]/".$thisGame[miniimage]."\" alt=\"\" style=\"border:0;padding-right:3px\" align=\"absmiddle\" /><a href=\"$vboptions[bburl]/arcade.php?$session[sessionurl]do=play&amp;gameid=".$thisGame[gameid]."\">".$thisGame[title]."</a></td></tr>\n";
    }
    return 
$arcmenu;

Open global.php, find:
PHP Code:
// Addon to Erwin's vB3 Flash hack - created by Natch
    
$nav_arcade genArcadeMenu("9"); 
MOVE THESE LINES DOWN TO BELOW:
PHP Code:
// #############################################################################
// get style variables
$stylevar fetch_stylevars($style$bbuserinfo); 
Hope this is useful to y'all
Reply With Quote
  #45  
Old 07-23-2004, 04:30 AM
Intex Intex is offline
 
Join Date: Apr 2002
Posts: 576
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Adding the images to the menu works perfect for me Natch. Good job, thx. Natch.
Reply With Quote
  #46  
Old 07-23-2004, 06:14 AM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

NP good idea
Reply With Quote
  #47  
Old 10-25-2004, 11:55 AM
Tombstone Tombstone is offline
 
Join Date: May 2004
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

As soon as I edit the functions.php file I loose access to the site (i.e. blank page). I'm doing just a simple cut and paste using notepad.
Reply With Quote
  #48  
Old 10-25-2004, 12:13 PM
Tombstone Tombstone is offline
 
Join Date: May 2004
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Any ideas?
Reply With Quote
  #49  
Old 10-25-2004, 12:54 PM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sounds like you are either copying and pasting too much code, or not enough.

Nothing in this code would cause you to get that kind of error, unless you are fundamentally altering the name of the final template name...

Revert to your backup'ed file, then make the alterations more carefully..., or send me your original file and your altered file and I'll work it out for you.
Reply With Quote
  #50  
Old 10-25-2004, 02:10 PM
Tombstone Tombstone is offline
 
Join Date: May 2004
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How can I send it to you? Post it?
Reply With Quote
  #51  
Old 05-25-2005, 08:13 PM
jugo jugo is offline
 
Join Date: Feb 2004
Location: Reading your emails.
Posts: 573
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK...so I wanted to display 10 Random Arcades on MY list so this is what I did...

Apply the changes for the Most Played Games and change the query to this:

PHP Code:
    $theseGames $DB_site->query("SELECT gameid,title,gamesettings FROM " TABLE_PREFIX "games ORDER BY RAND() LIMIT $limit"); 
Reply With Quote
Reply

Thread Tools

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:22 PM.


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.06302 seconds
  • Memory Usage 2,368KB
  • Queries Executed 25 (?)
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
  • (8)bbcode_code
  • (9)bbcode_php
  • (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
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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