SimplePortal
Customization => Blocks and Modifications => Block Requests => Topic started by: SPARK on May 03, 2009, 10:45:07 AM
-
Hey can someone please make a block for SMF Arcade to show winners/high scores.
There is already a block made for TP here
http://www.smfarcade.info/forum/index.php/topic,2084.0.html
But tp is fail.
-
There is already a built-in arcade block available in SimplePortal 2.2. Also, a TP block code should be working with SP PHP block too.
-
ty for your reply i know of the built in one but it has limited functions. The tp one dose not work and gives me this error.
Fatal error: Call to undefined function db_query() in /home/idkgamin/public_html/Sources/SPortal2.php(3133) : eval()'d code on line 35
The TP block includes some features like srolling and what not but i might be worth anyonetime.
Ty anyway.
-
The TP block is designed for SMF 1.1.x, it will work if you change the database query so that it works for SMF 2.
I have converted the code below for SMF 2, it should work, but I haven't tested it:
//-------START-------------
/*
|----------------------------------
SMF ARCADE SCROLLING CHAMPS BLOCK for SMFARCADE V2
by Eric Lawson
|----------------------------------
Made for TinyPortal and SMF forum
*/
//Upload a pic called arcade_block.gif (you can use you own gif - just name it arcade_block.gif)
//to your Themes/<themename>/images/ folder
// -- SETUP EDITS ---
$no = 10; //number of top players to show
// --LANGUAGE EDITS --
$txtplay = "The Top Players"; // change "The Top Players" to your language
$txtwin = "Number Of Wins :";// change "Number Of Wins :" to your language
$txtlate = "Latest High Score by ";// change "Latest High Score set by" to your language
$txtwit = "with ";// change "with" to your language
$txton = "on ";// change "on" to your language
global $scripturl,$sourcedir,$boardurl,$smcFunc,$modSettings;
require_once($sourcedir.'/ArcadeStats.php');
//Get newest champ or die
$sql = "SELECT game.id_game, game.game_name, game.thumbnail, game.game_directory,
IFNULL(mem.id_member, 0) AS id_member, IFNULL(mem.real_name,'') AS real_name, score.score
FROM {db_prefix}arcade_scores AS score
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = score.id_member)
JOIN {db_prefix}arcade_games AS game ON (game.id_game = score.id_game)
ORDER BY `champion_from` DESC
LIMIT 0,1";
if(!($request = $smcFunc['db_query']('', $sql)))
{
die("Could not get the newest champ");
}
$row = $smcFunc['db_fetch_assoc']($request);
$smcFunc['db_free_result']($request);
if(isset($row['game_directory']))
{
$row['game_directory']=$row['game_directory']."/";
}
//newest champ details
$playerid = $row['id_member'];
$player = $row['real_name'];
$game_id = $row['id_game'];
$game_name = $row['game_name'];
$score = $row['score'];
$game_pic = $modSettings['games_url'].$row['game_irectory'].$row['thumbnail'];
$bp=ArcadeStats_BestPlayers($no);
$score_poss=0; //players position
?>
<script type="text/javascript">
/***********************************************
* Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var delayb4scrollx=2000 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeedx=1 //Specify marquee scroll speed (larger is faster 1-10)
var pauseitx=1 //Pause marquee onMousever (0=no. 1=yes)?
////NO NEED TO EDIT BELOW THIS LINE////////////
var copyspeedx=marqueespeedx
var pausespeedx=(pauseitx==0)? copyspeedx: 0
var actualheightx=''
function scrollmarqueex(){
if (parseInt(cross_marqueex.style.top)>(actualheightx*(-1)+8))
cross_marqueex.style.top=parseInt(cross_marqueex.style.top)-copyspeedx+"px"
else
cross_marqueex.style.top=parseInt(marqueeheightx)+8+"px"
}
function initializemarqueex(){
cross_marqueex=document.getElementById("vmarqueex")
cross_marqueex.style.top=0
marqueeheightx=document.getElementById("marqueecontainerx").offsetHeight
actualheightx=cross_marqueex.offsetHeight
if (window.opera || navigator.userAgent.indexOf("Netscape/7")!=-1){ //if Opera or Netscape 7x, add scrollbars to scroll and exit
cross_marqueex.style.height=marqueeheightx+"px"
cross_marqueex.style.overflow="scroll"
return
}
setTimeout('lefttime=setInterval("scrollmarqueex()",30)', delayb4scrollx)
}
if (window.addEventListener)
window.addEventListener("load", initializemarqueex, false)
else if (window.attachEvent)
window.attachEvent("onload", initializemarqueex)
else if (document.getElementById)
window.onload=initializemarqueex
</script>
<?php
echo '<table width="100%">
<tr>
<td align="center">
<br />
<a href="',$scripturl,'?action=arcade"><img src="',$settings['images_url'],'/arcade_block.gif" border= "0" alt="Arcade" /></a>
<br /><br/>
</td>
</tr>
</table>
<div id="marqueecontainerx" style="position: relative; width: 95%; height:200px; overflow: hidden; border: 0px; padding: 2px; padding-left: 4px;" onmouseover="copyspeedx=pausespeedx" onmouseout="copyspeedx=marqueespeedx">
<div id="vmarqueex" style="position: absolute; width: 98%;">
<div align="center">
<a href="',$scripturl,'?action=arcade;sa=play;game=',$game_id,'"><img src="',$game_pic,'" border="0" alt="',$game_name,'" width="60" height="60"/></a>
<br />',$txtlate,'<br />
<a href="',$scripturl,'?action=profile;u=',$playerid,'">',$player,'</a>
<br/>',$txtwit,' ',$score,' ',$txton,'<br />',$game_name,'
<br />------------------<br />',$txtplay,'<br /><br />';
foreach ($bp as $out)
{
$score_poss++;
echo '',$score_poss,' - ',$out['link'],'<br />',$txtwin,' ',$out['champions'],'
<br /><br />';
};
echo '</div>
</div>
</div>';
//---------END--------------
-
Thanks for your time but it didn't work.
Parse error: syntax error, unexpected ']' in /home/idkgamin/public_html/Sources/SPortal2.php(3133) : eval()'d code on line 39
-
I've made a fix in the post above by LHVWB. Would you try again?
-
I just tryed it and woot it works ty so much! :D
-
It works! TYVM for your support guys.
-
I donno if others have this issue but my game images didn't appear so I changed it so its looking in /Games/ for the game images not the root. below is it fixed
//-------START-------------
/*
|----------------------------------
SMF ARCADE SCROLLING CHAMPS BLOCK for SMFARCADE V2
by Eric Lawson
|----------------------------------
Made for TinyPortal and SMF forum
*/
//Upload a pic called arcade_block.gif (you can use you own gif - just name it arcade_block.gif)
//to your Themes/<themename>/images/ folder
// -- SETUP EDITS ---
$no = 10; //number of top players to show
// --LANGUAGE EDITS --
$txtplay = "The Top Players"; // change "The Top Players" to your language
$txtwin = "Number Of Wins :";// change "Number Of Wins :" to your language
$txtlate = "Latest High Score by ";// change "Latest High Score set by" to your language
$txtwit = "with ";// change "with" to your language
$txton = "on ";// change "on" to your language
global $scripturl,$sourcedir,$boardurl,$smcFunc,$modSettings;
require_once($sourcedir.'/ArcadeStats.php');
//Get newest champ or die
$sql = "SELECT game.id_game, game.game_name, game.thumbnail, game.game_directory,
IFNULL(mem.id_member, 0) AS id_member, IFNULL(mem.real_name,'') AS real_name, score.score
FROM {db_prefix}arcade_scores AS score
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = score.id_member)
JOIN {db_prefix}arcade_games AS game ON (game.id_game = score.id_game)
ORDER BY `champion_from` DESC
LIMIT 0,1";
if(!($request = $smcFunc['db_query']('', $sql)))
{
die("Could not get the newest champ");
}
$row = $smcFunc['db_fetch_assoc']($request);
$smcFunc['db_free_result']($request);
if(isset($row['game_directory']))
{
$row['game_directory']=$row['game_directory']."/";
}
//newest champ details
$playerid = $row['id_member'];
$player = $row['real_name'];
$game_id = $row['id_game'];
$game_name = $row['game_name'];
$score = $row['score'];
$game_pic = $modSettings['games_url'].$row['game_directory'].$row['thumbnail'];
$bp=ArcadeStats_BestPlayers($no);
$score_poss=0; //players position
?>
<script type="text/javascript">
/***********************************************
* Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var delayb4scrollx=2000 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeedx=1 //Specify marquee scroll speed (larger is faster 1-10)
var pauseitx=1 //Pause marquee onMousever (0=no. 1=yes)?
////NO NEED TO EDIT BELOW THIS LINE////////////
var copyspeedx=marqueespeedx
var pausespeedx=(pauseitx==0)? copyspeedx: 0
var actualheightx=''
function scrollmarqueex(){
if (parseInt(cross_marqueex.style.top)>(actualheightx*(-1)+8))
cross_marqueex.style.top=parseInt(cross_marqueex.style.top)-copyspeedx+"px"
else
cross_marqueex.style.top=parseInt(marqueeheightx)+8+"px"
}
function initializemarqueex(){
cross_marqueex=document.getElementById("vmarqueex")
cross_marqueex.style.top=0
marqueeheightx=document.getElementById("marqueecontainerx").offsetHeight
actualheightx=cross_marqueex.offsetHeight
if (window.opera || navigator.userAgent.indexOf("Netscape/7")!=-1){ //if Opera or Netscape 7x, add scrollbars to scroll and exit
cross_marqueex.style.height=marqueeheightx+"px"
cross_marqueex.style.overflow="scroll"
return
}
setTimeout('lefttime=setInterval("scrollmarqueex()",30)', delayb4scrollx)
}
if (window.addEventListener)
window.addEventListener("load", initializemarqueex, false)
else if (window.attachEvent)
window.attachEvent("onload", initializemarqueex)
else if (document.getElementById)
window.onload=initializemarqueex
</script>
<?php
echo '<table width="100%">
<tr>
<td align="center">
<br />
<a href="',$scripturl,'?action=arcade"><img src="',$settings['images_url'],'/Games/arcade_block.gif" border= "0" alt="Arcade" /></a>
<br /><br/>
</td>
</tr>
</table>
<div id="marqueecontainerx" style="position: relative; width: 95%; height:200px; overflow: hidden; border: 0px; padding: 2px; padding-left: 4px;" onmouseover="copyspeedx=pausespeedx" onmouseout="copyspeedx=marqueespeedx">
<div id="vmarqueex" style="position: absolute; width: 98%;">
<div align="center">
<a href="',$scripturl,'?action=arcade;sa=play;game=',$game_id,'"><img src="/Games',$game_pic,'" border="0" alt="',$game_name,'" width="60" height="60"/></a>
<br />',$txtlate,'<br />
<a href="',$scripturl,'?action=profile;u=',$playerid,'">',$player,'</a>
<br/>',$txtwit,' ',$score,' ',$txton,'<br />',$game_name,'
<br />------------------<br />',$txtplay,'<br /><br />';
foreach ($bp as $out)
{
$score_poss++;
echo '',$score_poss,' - ',$out['link'],'<br />',$txtwin,' ',$out['champions'],'
<br /><br />';
};
echo '</div>
</div>
</div>';
//---------END--------------
-
ahh nice tyvm i never noticed they were missing because i use Firefox.
-
um just to let you know you missed a /. It should be "/Games/"
<a href="',$scripturl,'?action=arcade;sa=play;game=',$game_id,'"><img src="/Games',$game_pic,'" border="0" alt="',$game_name,'" width="60" height="60"/></a>
or that whats working for me.
-
Sorry for bumping another old thread... but this code is working AWESOME ...aside from the fact that it is throwing these two errors:
http://www.aha-forums.com/index.php?action=admin;area=portalblocks;sa=edit
8: Undefined variable: settings
File: /home/ahaforum/public_html/Sources/PortalBlocks.php(3562) : eval()'d code
Line: 112
http://www.aha-forums.com/index.php?action=admin;area=portalblocks;sa=edit
8: Undefined index: games_url
File: /home/ahaforum/public_html/Sources/PortalBlocks.php(3562) : eval()'d code
Line: 53
Both go away when I remove the block. Any ideas on how I can fix/work around these issues?
THANKS!
-
@FrizzleFried,
I think I updated & improved this block quite a while back.
Have a look at a bunch of arcade blocks and plugins located here: SMF Arcade Blocks and Plug-ins (http://askusaquestion.net/index.php/board,34.0.html)
For the arcade blocks look at : Block Codes -> SMF 2.0 Rcx and SMF Arcade - High Scores Block