Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons

Reply
 
Thread Tools
v3 Arcade Stats Widget or Forum Sideblock Details »»
v3 Arcade Stats Widget or Forum Sideblock
Version: 4.1.3, by Gemma Gemma is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Category: Add-On Releases - Version: 4.x.x Rating:
Released: 03-29-2011 Last Update: 12-16-2012 Installs: 31
Uses Plugins Auto-Templates
Re-useable Code  
No support by the author.

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();
Add Widget to a Page

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;
And/or remove certain blocks from the stats by commenting out the relevent code from this section (see attached image for adjusted look)
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);
History
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

File Type: zip images.zip (4.9 KB, 160 views)
File Type: xml product-v3arcade-CMS-stats.xml (8.2 KB, 59 views)

Screenshots

File Type: jpg adjusted.jpg (115.1 KB, 0 views)
File Type: jpg full.jpg (150.3 KB, 0 views)
File Type: jpg sidebar.jpg (113.6 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
kylek

Comments
  #32  
Old 12-17-2012, 04:57 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Made a small update.

4.1.3 - Linked usernames in Latest Scores and Top Champs to Member Profile Arcade Tab

To update, re-import the product file.
Reply With Quote
  #33  
Old 01-04-2013, 09:16 PM
oldfan's Avatar
oldfan oldfan is offline
 
Join Date: Jul 2004
Posts: 813
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by oldfan View Post
Nope no messages, the block doesn't show up, could it have something to do with "Everywhere sidebar 1.4.4.4" mod?
I've tried adding it again and had no luck - http://www.metallifukinca.com/forums.php
Its the last block
Reply With Quote
  #34  
Old 01-04-2013, 10:44 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by oldfan View Post
I've tried adding it again and had no luck - http://www.metallifukinca.com/forums.php
Its the last block
If I have time tomorrow I'll install Everywhere Sidebar and see where the problem lies. Never used it before so can't tell you offhand.
Reply With Quote
  #35  
Old 01-05-2013, 01:13 AM
oldfan's Avatar
oldfan oldfan is offline
 
Join Date: Jul 2004
Posts: 813
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Gemma View Post
If I have time tomorrow I'll install Everywhere Sidebar and see where the problem lies. Never used it before so can't tell you offhand.
thanks a lot
Reply With Quote
  #36  
Old 01-15-2013, 12:35 PM
oldfan's Avatar
oldfan oldfan is offline
 
Join Date: Jul 2004
Posts: 813
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Any luck Gemma?
Reply With Quote
  #37  
Old 01-17-2013, 10:43 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sorry, I'm having a few health problems again just now so I've not been online and I'm probably going to be deleting my site so won't have a chance to look into this. If anyone else knows or can help then I'd appreciate them looking into why it doesn't work.
Reply With Quote
  #38  
Old 11-19-2013, 01:59 AM
londoner londoner is offline
 
Join Date: Feb 2011
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks a bunch for this mod, i dont use the cms but i wanted to use it for the sideblock addon.

I dont have the "Everywhere sidebar" mod and it still does'nt work for me.
I had the CMS disabled as I don't use it and I thought it was that so I enabled it, purged the cache for the sidebar, re-installed the product and I still have the problem and am having no luck in trying to fix it, it is not showing in the sidebar at all, and I am not getting any errors in my log. It is however showing on the CMS (Which I do not use and only enabled it to see if this mod would work). If someone can please test this to see if others have this problem, and plz if anyone finds a solution I would really appreciate it.

thx
Reply With Quote
  #39  
Old 11-19-2013, 09:50 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't use vBulletin anymore and I'm not involved with any sites running v3 Arcade but if you want to PM me temporary admin login details for your site I'll check out any problem for you.

Just to check, did you follow the instructions in this post for the forum sidebar?

https://vborg.vbsupport.ru/showpost....9&postcount=11
Reply With Quote
  #40  
Old 01-25-2014, 10:51 AM
ckgb ckgb is offline
 
Join Date: Oct 2007
Posts: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If anybody has vBAdvanced module to share, I'd greatly appreciate it.
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 05:36 AM.


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.05597 seconds
  • Memory Usage 2,355KB
  • 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
  • (3)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (1)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (5)postbit_attachment
  • (10)postbit_onlinestatus
  • (10)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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete