The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
v3 Arcade Stats Widget or Forum Sideblock Details »» | |||||||||||||||||||||||||||||||||||
What is it?
A widget for users of vB4 Suite (should work with any version of vB 4) and v3 Arcade 2.0.x who want to show some arcade data on their CMS. This is basically the same as the vBadvanced CMPS module KW802 made, all I've done is adapt it for the Suite. The Widget shows: Latest Scores, Latest Highscore, Newest X Games, Most Played Games, Most Popular X Games (Rated), Random Game, Top Champions How To Install 1. Download the attached product file and install it, upload the images to images/arcade. 2. Create New Widget ADMIN CP > vBulletin CMS > Widgets > Create New Widget Widget Type: PHP Direct Execution Title: Arcade Statistics Description: Widget To Display Arcade Stats On CMS. Configure The Widget Paste the following code into the box Code:
global $vbulletin, $bbcode, $parser, $path, $db; $g_limit = 5; $g_champs_limit = 5; $g_news_limit = 5; $g_scores_limit = 5; function get_games ($as_handle, $as_title, $limit) { global $vbulletin; switch ($as_handle) { case 'recent': $orderby = "dateadded DESC"; break; case 'played': $orderby = "sessioncount DESC"; break; case 'popular': $orderby = "votepoints DESC"; break; default: $orderby = "gameid ASC"; break; } $getgames = $vbulletin->db->query(" SELECT games.* FROM " . TABLE_PREFIX . "v3arcade_games AS games ORDER BY " . $orderby . " LIMIT $limit "); while ($game = $vbulletin->db->fetch_array($getgames)) { $game['gamename'] = fetch_trimmed_title(stripslashes($game['title']),$maxtitlechars); $game['gamedate'] = vbdate($vbulletin->options['dateformat'], $game['dateadded']); $getbgrow = exec_switch_bg(); switch ($as_handle) { case 'recent': $as_game_data = $game['gamedate']; break; case 'played': $as_game_data = "Played " . $game['sessioncount'] . " times"; break; case 'popular': $as_game_data = $game['votepoints'] . " votes"; break; default: $as_game_data = ""; break; } //eval('$as_gamebits .= "' . fetch_template('v3a_CMS_as_gamebits') . '";'); $templater = vB_Template::create('v3a_CMS_as_gamebits'); $templater->register('as_game_data',$as_game_data); $templater->register('game',$game); $as_gamebits .= $templater->render(); } $vbulletin->db->free_result($getgames); // eval('$gametable = "' . fetch_template("v3a_CMS_as_{$as_handle}_gametable") . '";'); $templater = vB_Template::create('v3a_CMS_as_' . $as_handle . '_gametable'); $templater->register('as_title',$as_title); $templater->register('as_gamebits',$as_gamebits); $gametable = $templater->render(); return $gametable; } function get_champs ($limit) { global $vbulletin; $champs = $vbulletin->db->query_read(" SELECT COUNT(games.highscorerid) AS count, user.username, user.userid FROM " . TABLE_PREFIX . "v3arcade_games AS games LEFT JOIN " . TABLE_PREFIX . "user AS user ON user.userid = games.highscorerid WHERE user.userid IS NOT NULL GROUP BY user.username, user.userid ORDER BY count DESC, user.userid ASC LIMIT " . $limit ); $row = '0'; $awards = '0'; $leaders = '0'; while ($champ = $vbulletin->db->fetch_array($champs)) { $leaders++; if ($awards != $champ['count']) { $row = $leaders; } $awards = $champ['count']; $getbgrow = exec_switch_bg(); //eval('$as_champbits .= "' . fetch_template('v3a_CMS_as_champbits') . '";'); $templater = vB_Template::create('v3a_CMS_as_champbits'); $templater->register('getbrow',$getbrow); $templater->register('champ',$champ); $as_champbits .= $templater->render(); } $vbulletin->db->free_result($champs); //eval('$champstable = "' . fetch_template("v3a_CMS_as_champstable") . '";'); $templater = vB_Template::create('v3a_CMS_as_champstable'); $templater->register('as_champbits',$as_champbits); $champstable = $templater->render(); return $champstable; } function get_random_game () { global $vbulletin; $random_game = $vbulletin->db->query_first(" SELECT gameid,title,description,stdimage,highscore,user.userid,user.username FROM " . TABLE_PREFIX . "v3arcade_games AS games LEFT JOIN " . TABLE_PREFIX . "user AS user ON user.userid = games.highscorerid ORDER BY RAND() LIMIT 1 "); $as_random_gameid = $random_game[gameid]; $as_random_gametitle = $random_game[title]; $as_random_stdimage = $random_game[stdimage]; $as_random_description = $random_game[description]; if($random_game[highscore] == 0) { $as_random_highscore = "No Score"; $as_random_highscorer = ""; $as_random_userid = ""; } else { $as_random_highscore = intval($random_game[highscore]); $as_random_highscorer = "(" . $random_game[username] . ")"; $as_random_userid = $random_game[userid]; } $vbulletin->db->free_result($random_game); //eval('$random_table = "' . fetch_template('v3a_CMS_as_random') . '";'); $templater = vB_Template::create('v3a_CMS_as_random'); $templater->register('as_random_gameid',$as_random_gameid); $templater->register('as_random_gametitle',$as_random_gametitle); $templater->register('as_random_highscore',$as_random_highscore); $templater->register('as_random_userid',$as_random_userid); $templater->register('as_random_highscorer',$as_random_highscorer); $templater->register('as_random_stdimage',$as_random_stdimage); $templater->register('as_random_description',$as_random_description); $random_table = $templater->render(); return $random_table; } function get_latest_champs ($limit) { global $vbulletin, $bbcode_parser; //var_dump($vbulletin); //highlight_file('./modules/arcadestats.php'); //exit; $news_items = $vbulletin->db->query_read(" SELECT * FROM " . TABLE_PREFIX . "v3arcade_news WHERE newstext LIKE '%is the new%' ORDER BY datestamp DESC LIMIT $limit "); while ($news_item = $vbulletin->db->fetch_array($news_items)) { //$as_news_text = $bbcode_parser->do_parse($news_item['newstext'], 1, 1, 1, 0); $as_news_text = $news_item['newstext']; $as_news_text = str_replace("arcade.php", $vbulletin->options['bburl'] . "/arcade.php", $as_news_text); $as_news_date = vbdate($vbulletin->options['dateformat'],$news_item['datestamp']); $as_news_time = vbdate($vbulletin->options['timeformat'],$news_item['datestamp']); $getbgrow = exec_switch_bg(); //eval('$as_newsbits .= "' . fetch_template('v3a_CMS_as_newsbits') . '";'); $templater = vB_Template::create('v3a_CMS_as_newsbits'); $templater->register('getbrow',$getbrow); $templater->register('as_news_text',$as_news_text); $templater->register('as_news_date',$as_news_date); $templater->register('as_news_time',$as_news_time); $as_newsbits .= $templater->render(); } $vbulletin->db->free_result($news_items); //eval('$news_table = "' . fetch_template('v3a_CMS_as_newstable') . '";'); $templater = vB_Template::create('v3a_CMS_as_newstable'); $templater->register('as_newsbits',$as_newsbits); $news_table = $templater->render(); return $news_table; } function get_latest_scores ($limit) { global $vbulletin; $latest_scores = $vbulletin->db->query_read(" SELECT sessions.userid, sessions.gamename, sessions.gameid, sessions.score, sessions.start, sessions.finish, user.username, games.title FROM " . TABLE_PREFIX . "v3arcade_sessions as sessions LEFT JOIN " . TABLE_PREFIX . "user AS user ON (sessions.userid = user.userid) LEFT JOIN " . TABLE_PREFIX . "v3arcade_games as games on (sessions.gameid = games.gameid) WHERE valid = 1 AND tourid = 0 AND challengeid = 0 ORDER BY sessions.sessionid DESC LIMIT $limit "); while ($latest_score = $vbulletin->db->fetch_array($latest_scores)) { $as_score_userid = $latest_score['userid']; $as_score_gameid = $latest_score['gameid']; $as_score_name = $latest_score['username']; $as_score_score = floatval($latest_score['score']); $as_score_gametitle = $latest_score['title']; $as_score_date = vbdate($vbulletin->options['dateformat'],$latest_score['finish']); $as_score_time = vbdate($vbulletin->options['timeformat'],$latest_score['finish']); //echo "foo: $as_score_gametitle<br>\n"; $getbgrow = exec_switch_bg(); //eval('$as_scorebits .= "' . fetch_template('v3a_CMS_as_scorebits') . '";'); $templater = vB_Template::create('v3a_CMS_as_scorebits'); $templater->register('getbrow',$getbrow); $templater->register('as_score_userid',$as_score_userid); $templater->register('as_score_name',$as_score_name); $templater->register('as_score_score',$as_score_score); $templater->register('as_score_gameid',$as_score_gameid); $templater->register('as_score_gametitle',$as_score_gametitle); $templater->register('as_score_date',$as_score_date); $templater->register('as_score_time',$as_score_time); $as_scorebits .= $templater->render(); } $vbulletin->db->free_result($latest_scores); //eval('$score_table = "' . fetch_template('v3a_CMS_as_scoretable') . '";'); $templater = vB_Template::create('v3a_CMS_as_scoretable'); $templater->register('as_scorebits',$as_scorebits); $score_table = $templater->render(); return $score_table; } $as_score_table = get_latest_scores($g_scores_limit); $as_news_table = get_latest_champs($g_news_limit); $as_random_table = get_random_game(); $as_champs_table = get_champs($g_champs_limit); $as_recent_table = get_games("recent","Most Recent", $g_limit); $as_played_table = get_games("played","Most Played", $g_limit); $as_popular_table = get_games("popular","Most Popular", $g_limit); $collapseobj_arcadestats = $vbcollapse['collapseobj_arcadestats']; $collapseimg_arcadestats = $vbcollapse['collapseimg_arcadestats']; //eval('$home[$mods[\'modid\']][\'content\'] .= "' . fetch_template('v3a_CMS_arcadestats') . '";'); $templater = vB_Template::create('v3a_CMS_arcadestats'); $templater->register('as_score_table',$as_score_table); $templater->register('as_news_table',$as_news_table); $templater->register('as_random_table',$as_random_table); $templater->register('as_champs_table',$as_champs_table); $templater->register('as_recent_table',$as_recent_table); $templater->register('as_played_table',$as_played_table); $templater->register('as_popular_table',$as_popular_table); $output = $templater->render(); ADMIN CP > vBulletin CMS > Layout manager > Edit Insert the Welcome widget and place it central You can also change the amount of data display by adjust these values Code:
$g_limit = 5; $g_champs_limit = 5; $g_news_limit = 5; $g_scores_limit = 5; Code:
$templater->register('as_score_table',$as_score_table); $templater->register('as_news_table',$as_news_table); $templater->register('as_random_table',$as_random_table); $templater->register('as_champs_table',$as_champs_table); $templater->register('as_recent_table',$as_recent_table); $templater->register('as_played_table',$as_played_table); $templater->register('as_popular_table',$as_popular_table); 4.0.8 - Initial release on vB.org 4.0.9 - Added images to the header titles 4.1 - Minor change to Champs block 4.1.1 - bug fix regarding tournament scores 4.1.2 - removed challenge scores from appearing in latest score block. 4.1.3 - Linked Latest Scores and Top Champs username to Member Profile Arcade Tab How To Make Into A Forum Sideblock - https://vborg.vbsupport.ru/showpost....9&postcount=11 Finally, I'm blonde and never done anything like this before, so now you're warned......use at your own risk For vBAdvanced Module - http://www.v3arcade.com/forums/showthread.php?t=3502 If anyone wants to further develop any of my addons, you are free to do so. Download Now
Screenshots
Show Your Support
|
Благодарность от: | ||
kylek |
Comments |
#12
|
||||
|
||||
I've also been able to use almost all the same templates and php code to make a forum sideblock.
1. Install the product as normal. 2. Create a new template called v3a_CMS_arcadestats1 and add the following code Code:
<div> <table align="left" width="100%"> <tr><td>{vb:raw as_score_table}</td></tr> <tr><td>{vb:raw as_news_table}</td></tr> <tr><td>{vb:raw as_random_table}</td></tr> <tr><td>{vb:raw as_champs_table}</td></tr> <tr><td>{vb:raw as_recent_table}</td></tr> <tr><td>{vb:raw as_played_table}</td></tr> <tr><td>{vb:raw as_popular_table}</td></tr> </table> </div> Title - Arcade Stats (or whatever) Content Type - PHP Content - Code:
global $vbulletin, $bbcode, $parser, $path, $db; $g_limit = 5; $g_champs_limit = 5; $g_news_limit = 5; $g_scores_limit = 5; function get_games ($as_handle, $as_title, $limit) { global $vbulletin; switch ($as_handle) { case 'recent': $orderby = "dateadded DESC"; break; case 'played': $orderby = "sessioncount DESC"; break; case 'popular': $orderby = "votepoints DESC"; break; default: $orderby = "gameid ASC"; break; } $getgames = $vbulletin->db->query(" SELECT games.* FROM " . TABLE_PREFIX . "v3arcade_games AS games ORDER BY " . $orderby . " LIMIT $limit "); while ($game = $vbulletin->db->fetch_array($getgames)) { $game['gamename'] = fetch_trimmed_title(stripslashes($game['title']),$maxtitlechars); $game['gamedate'] = vbdate($vbulletin->options['dateformat'], $game['dateadded']); $getbgrow = exec_switch_bg(); switch ($as_handle) { case 'recent': $as_game_data = $game['gamedate']; break; case 'played': $as_game_data = "Played " . $game['sessioncount'] . " times"; break; case 'popular': $as_game_data = $game['votepoints'] . " votes"; break; default: $as_game_data = ""; break; } //eval('$as_gamebits .= "' . fetch_template('v3a_CMS_as_gamebits') . '";'); $templater = vB_Template::create('v3a_CMS_as_gamebits'); $templater->register('as_game_data',$as_game_data); $templater->register('game',$game); $as_gamebits .= $templater->render(); } $vbulletin->db->free_result($getgames); // eval('$gametable = "' . fetch_template("v3a_CMS_as_{$as_handle}_gametable") . '";'); $templater = vB_Template::create('v3a_CMS_as_' . $as_handle . '_gametable'); $templater->register('as_title',$as_title); $templater->register('as_gamebits',$as_gamebits); $gametable = $templater->render(); return $gametable; } function get_champs ($limit) { global $vbulletin; $champs = $vbulletin->db->query_read(" SELECT COUNT(games.highscorerid) AS count, user.username, user.userid FROM " . TABLE_PREFIX . "v3arcade_games AS games LEFT JOIN " . TABLE_PREFIX . "user AS user ON user.userid = games.highscorerid WHERE user.userid IS NOT NULL GROUP BY user.username, user.userid ORDER BY count DESC, user.userid ASC LIMIT " . $limit ); $row = '0'; $awards = '0'; $leaders = '0'; while ($champ = $vbulletin->db->fetch_array($champs)) { $leaders++; if ($awards != $champ['count']) { $row = $leaders; } $awards = $champ['count']; $getbgrow = exec_switch_bg(); //eval('$as_champbits .= "' . fetch_template('v3a_CMS_as_champbits') . '";'); $templater = vB_Template::create('v3a_CMS_as_champbits'); $templater->register('getbrow',$getbrow); $templater->register('champ',$champ); $as_champbits .= $templater->render(); } $vbulletin->db->free_result($champs); //eval('$champstable = "' . fetch_template("v3a_CMS_as_champstable") . '";'); $templater = vB_Template::create('v3a_CMS_as_champstable'); $templater->register('as_champbits',$as_champbits); $champstable = $templater->render(); return $champstable; } function get_random_game () { global $vbulletin; $random_game = $vbulletin->db->query_first(" SELECT gameid,title,description,stdimage,highscore,user.userid,user.username FROM " . TABLE_PREFIX . "v3arcade_games AS games LEFT JOIN " . TABLE_PREFIX . "user AS user ON user.userid = games.highscorerid ORDER BY RAND() LIMIT 1 "); $as_random_gameid = $random_game[gameid]; $as_random_gametitle = $random_game[title]; $as_random_stdimage = $random_game[stdimage]; $as_random_description = $random_game[description]; if($random_game[highscore] == 0) { $as_random_highscore = "No Score"; $as_random_highscorer = ""; $as_random_userid = ""; } else { $as_random_highscore = intval($random_game[highscore]); $as_random_highscorer = "(" . $random_game[username] . ")"; $as_random_userid = $random_game[userid]; } $vbulletin->db->free_result($random_game); //eval('$random_table = "' . fetch_template('v3a_CMS_as_random') . '";'); $templater = vB_Template::create('v3a_CMS_as_random'); $templater->register('as_random_gameid',$as_random_gameid); $templater->register('as_random_gametitle',$as_random_gametitle); $templater->register('as_random_highscore',$as_random_highscore); $templater->register('as_random_userid',$as_random_userid); $templater->register('as_random_highscorer',$as_random_highscorer); $templater->register('as_random_stdimage',$as_random_stdimage); $templater->register('as_random_description',$as_random_description); $random_table = $templater->render(); return $random_table; } function get_latest_champs ($limit) { global $vbulletin, $bbcode_parser; //var_dump($vbulletin); //highlight_file('./modules/arcadestats.php'); //exit; $news_items = $vbulletin->db->query_read(" SELECT * FROM " . TABLE_PREFIX . "v3arcade_news WHERE newstext LIKE '%is the new%' ORDER BY datestamp DESC LIMIT $limit "); while ($news_item = $vbulletin->db->fetch_array($news_items)) { //$as_news_text = $bbcode_parser->do_parse($news_item['newstext'], 1, 1, 1, 0); $as_news_text = $news_item['newstext']; $as_news_text = str_replace("arcade.php", $vbulletin->options['bburl'] . "/arcade.php", $as_news_text); $as_news_date = vbdate($vbulletin->options['dateformat'],$news_item['datestamp']); $as_news_time = vbdate($vbulletin->options['timeformat'],$news_item['datestamp']); $getbgrow = exec_switch_bg(); //eval('$as_newsbits .= "' . fetch_template('v3a_CMS_as_newsbits') . '";'); $templater = vB_Template::create('v3a_CMS_as_newsbits'); $templater->register('getbrow',$getbrow); $templater->register('as_news_text',$as_news_text); $templater->register('as_news_date',$as_news_date); $templater->register('as_news_time',$as_news_time); $as_newsbits .= $templater->render(); } $vbulletin->db->free_result($news_items); //eval('$news_table = "' . fetch_template('v3a_CMS_as_newstable') . '";'); $templater = vB_Template::create('v3a_CMS_as_newstable'); $templater->register('as_newsbits',$as_newsbits); $news_table = $templater->render(); return $news_table; } function get_latest_scores ($limit) { global $vbulletin; $latest_scores = $vbulletin->db->query_read(" SELECT sessions.userid, sessions.gamename, sessions.gameid, sessions.score, sessions.start, sessions.finish, user.username, games.title FROM " . TABLE_PREFIX . "v3arcade_sessions as sessions LEFT JOIN " . TABLE_PREFIX . "user AS user ON (sessions.userid = user.userid) LEFT JOIN " . TABLE_PREFIX . "v3arcade_games as games on (sessions.gameid = games.gameid) WHERE valid = 1 AND tourid = 0 AND challengeid = 0 ORDER BY sessions.sessionid DESC LIMIT $limit "); while ($latest_score = $vbulletin->db->fetch_array($latest_scores)) { $as_score_userid = $latest_score['userid']; $as_score_gameid = $latest_score['gameid']; $as_score_name = $latest_score['username']; $as_score_score = floatval($latest_score['score']); $as_score_gametitle = $latest_score['title']; $as_score_date = vbdate($vbulletin->options['dateformat'],$latest_score['finish']); $as_score_time = vbdate($vbulletin->options['timeformat'],$latest_score['finish']); //echo "foo: $as_score_gametitle<br>\n"; $getbgrow = exec_switch_bg(); //eval('$as_scorebits .= "' . fetch_template('v3a_CMS_as_scorebits') . '";'); $templater = vB_Template::create('v3a_CMS_as_scorebits'); $templater->register('getbrow',$getbrow); $templater->register('as_score_userid',$as_score_userid); $templater->register('as_score_name',$as_score_name); $templater->register('as_score_score',$as_score_score); $templater->register('as_score_gameid',$as_score_gameid); $templater->register('as_score_gametitle',$as_score_gametitle); $templater->register('as_score_date',$as_score_date); $templater->register('as_score_time',$as_score_time); $as_scorebits .= $templater->render(); } $vbulletin->db->free_result($latest_scores); //eval('$score_table = "' . fetch_template('v3a_CMS_as_scoretable') . '";'); $templater = vB_Template::create('v3a_CMS_as_scoretable'); $templater->register('as_scorebits',$as_scorebits); $score_table = $templater->render(); return $score_table; } $as_score_table = get_latest_scores($g_scores_limit); $as_news_table = get_latest_champs($g_news_limit); $as_random_table = get_random_game(); $as_champs_table = get_champs($g_champs_limit); $as_recent_table = get_games("recent","Most Recent", $g_limit); $as_played_table = get_games("played","Most Played", $g_limit); $as_popular_table = get_games("popular","Most Popular", $g_limit); $collapseobj_arcadestats = $vbcollapse['collapseobj_arcadestats']; $collapseimg_arcadestats = $vbcollapse['collapseimg_arcadestats']; //eval('$home[$mods[\'modid\']][\'content\'] .= "' . fetch_template('v3a_CMS_arcadestats1') . '";'); $templater = vB_Template::create('v3a_CMS_arcadestats1'); $templater->register('as_score_table',$as_score_table); $templater->register('as_news_table',$as_news_table); $templater->register('as_random_table',$as_random_table); $templater->register('as_champs_table',$as_champs_table); $templater->register('as_recent_table',$as_recent_table); $templater->register('as_played_table',$as_played_table); $templater->register('as_popular_table',$as_popular_table); $output = $templater->render(); Code:
$templater->register('as_score_table',$as_score_table); $templater->register('as_news_table',$as_news_table); //$templater->register('as_random_table',$as_random_table); //$templater->register('as_champs_table',$as_champs_table); //$templater->register('as_recent_table',$as_recent_table); //$templater->register('as_played_table',$as_played_table); //$templater->register('as_popular_table',$as_popular_table); |
#13
|
||||
|
||||
If you would prefer a sideblock widget instead of a central one on the CMS, you can also replace the v3a_CMS_arcadestats with this code.
Code:
<div> <table align="left" width="100%"> <tr><td>{vb:raw as_score_table}</td></tr> <tr><td>{vb:raw as_news_table}</td></tr> <tr><td>{vb:raw as_random_table}</td></tr> <tr><td>{vb:raw as_champs_table}</td></tr> <tr><td>{vb:raw as_recent_table}</td></tr> <tr><td>{vb:raw as_played_table}</td></tr> <tr><td>{vb:raw as_popular_table}</td></tr> </table> </div> *Fixed the code so it displays properly in Google Chrome. |
#14
|
||||
|
||||
Ive tried the sideblock version by Gemma and had no luck with it
|
#15
|
||||
|
||||
The forum sideblock or CMS sideblock.
Did you import the product? Any error messages? |
#16
|
||||
|
||||
Quote:
|
#17
|
||||
|
||||
Not sure, I've never used that mod. Did you try purging the forumblock cache?
If you want to send me temp access I'll have a look for you. |
#18
|
||||
|
||||
Hi Gemma!
I have this problem of layout in forum-block : |
#19
|
||||
|
||||
Try re-importing the product file. I've changed 'View Leaderboard' to 'View Leaders' so it fits better.
|
#20
|
||||
|
||||
you are too operational
Thanks..... |
#21
|
||||
|
||||
Installed again..thank you.....
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|