|
Autor |
Nachricht |
boris
Beiträge: 11195
|
Titel: Snippet: EM 2008 MOD - Rainbow-Cup
Verfasst am: Mi, 04 Jun 2008, 23:39 |
|
|
Rainbow-Cup (Regenbogentipper)
Der "Regenbogentipp" ist eine spezielle Rangliste, die als Add-On zum "EM 2008 Tippspiel"-MOD installiert werden kann. Es werden die drei höchsten richtigen Tipps zu einer neue Rangliste zusammengerechnet, weitere Informationen zum Algorhythmus gibt es hier.
Aufgrund des Zeitdrucks wurden keine Language-Variablen (u.a.) verwendet, Hauptsache der Kram läuft pünktlich zur EM !
Code: |
#
#-----[ OPEN ]------------------------------------------
#
em_stats.php
#
#-----[ FIND ]------------------------------------------
#
define('IN_PHPBB', true);
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$boo_showrainbowcup = true; # true|false: wheter to show the "best loser"-ranking list
#
#-----[ FIND ]------------------------------------------
#
$template->pparse('body');
#
#-----[ BEFORE, ADD ]------------------------------------------
#
if ($boo_showrainbowcup)
{
$template->assign_block_vars('switch_rainbowcup', array());
// Regenbogentipper
$arr_rainbow = array();
$sql_tipps = "SELECT tipp_user FROM " . EM_TIPPS_TABLE . " WHERE tipp_game <> 65 AND tipp_points >= " . $em_config['points_match'] . " GROUP BY tipp_user";
if (!($result_tipps = $db->sql_query($sql_tipps)))
{
message_die(GENERAL_ERROR, '', '', __LINE__, __FILE__, $sql_tipps);
}
while ($row_tipps = $db->sql_fetchrow($result_tipps))
{
$sql_user = "SELECT *, (tipp_home + tipp_away) AS summe, ABS(tipp_home - tipp_away) as differenz
FROM " . EM_TIPPS_TABLE . "
WHERE
tipp_user = " . $row_tipps['tipp_user'] . " AND
tipp_game <> 65 AND
tipp_points >= " . $em_config['points_match'] . "
ORDER BY summe DESC, differenz DESC
LIMIT 3";
if (!($result_user = $db->sql_query($sql_user)))
{
message_die(GENERAL_ERROR, '', '', __LINE__, __FILE__, $sql_user);
}
while ($row_user = $db->sql_fetchrow($result_user))
{
$arr_rainbow[$row_user['tipp_user']]["torsumme"] += $row_user['summe'];
$arr_rainbow[$row_user['tipp_user']]["anzahl"]++;
$arr_rainbow[$row_user['tipp_user']]["quote"] = ($arr_rainbow[$row_user['tipp_user']]["torsumme"] / $arr_rainbow[$row_user['tipp_user']]["anzahl"]);
$arr_rainbow[$row_user['tipp_user']]["maxabw"] = max($arr_rainbow[$row_user['tipp_user']]["maxabw"], abs($row_user['tipp_home'] - $row_user['tipp_away'])) ;
}
}
arsort($arr_rainbow);
$int_rang = 0;
$int_quote = 0;
$int_quotealt = 0;
foreach($arr_rainbow as $key => $value)
{
$int_quote = $value["quote"] + ($value["anzahl"] / 10) + ($value["maxabw"] / 100);
if ($int_quote != $int_quotealt)
{
$int_rang++;
}
$template->assign_block_vars('switch_rainbowcup.rainbowrow', array(
'RB_RANK' => ($int_quote != $int_quotealt) ? $int_rang : '',
'RB_USERNAME' => $all_user_data[$key],
'RB_AVATAR' => $arr_avatars[$key],
'RB_USERLINK' => append_sid("profile.".$phpEx."?mode=viewprofile&u=".$key),
'RB_GOALSUM' => $value["torsumme"],
'RB_NUMBER' => $value["anzahl"],
'RB_QUOTE' => number_format($value["quote"], 2, ",", "."),
'RB_MAXABW' => $value["maxabw"]
)
);
$int_quotealt = $int_quote;
}
}
#
#-----[ OPEN ]------------------------------------------
#
# NOTE: apply this to all your templates
#
templates/subSilver/em_stats_body.tpl
#
#-----[ FIND ]------------------------------------------
#
</table>
<!--
Please leave the copyright information at the bottom of your page for our mod.
//-->
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<!-- BEGIN switch_rainbowcup -->
<br />
<br />
<br />
<br />
<table class="forumline" align="center" border="0" cellpadding="2" cellspacing="1" width="350">
<tr>
<td colspan="7" class="cat" align="center"><span class="cattitle"><strong><span style="font-size: 14px;">Regenbogentipper</span></strong><br />
<br />
(es werden die Tore der 3 höchsten vollständig korrekten Tipps zusammengezählt) </span></td>
</tr>
<tr>
<td class="row2" align="center" nowrap="nowrap" valign="middle"><strong><span class="genmed">Platz</span></strong></td>
<td class="row2"> </td>
<td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Spieler</strong></td>
<td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Torsumme</strong></td>
<td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Anzahl </strong></td>
<td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Quote</strong></td>
<td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>max. Abw.</strong></td>
</tr>
<!-- BEGIN rainbowrow -->
<tr>
<td class="row1" align="center" nowrap="nowrap" valign="middle"><strong><span class="genmed">{switch_rainbowcup.rainbowrow.RB_RANK}</span></strong></td>
<td class="row1" align="center" nowrap="nowrap" valign="middle">{switch_rainbowcup.rainbowrow.RB_AVATAR}</td>
<td class="row1" align="left" nowrap="nowrap" valign="middle"><strong><a href="{switch_rainbowcup.rainbowrow.RB_USERLINK}">{switch_rainbowcup.rainbowrow.RB_USERNAME}</a></strong></td>
<td class="row1" align="center" nowrap="nowrap" valign="middle">{switch_rainbowcup.rainbowrow.RB_GOALSUM}</td>
<td class="row1" align="center" nowrap="nowrap" valign="middle"><span class="genmed">{switch_rainbowcup.rainbowrow.RB_NUMBER}</span></td>
<td class="row1" align="center" nowrap="nowrap" valign="middle"><b>{switch_rainbowcup.rainbowrow.RB_QUOTE}</b></td>
<td class="row1" align="center" nowrap="nowrap" valign="middle"><b>{switch_rainbowcup.rainbowrow.RB_MAXABW}</b></td>
</tr>
<!-- END rainbowrow -->
</table>
<!-- END switch_rainbowcup --> |
EDIT 7.6.08:
- jetzt auch mit Anzeige der Avatars, dafür ist in der includes/em_functions.php noch folgendes zu ändern:
Code: |
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT
A. * ,
sum( A.tipp_points ) AS user_points,
#
#-----[ REPLACE WITH ]------------------------------------------
#
$sql = "SELECT
A. * ,
E.user_avatar_type, E.user_allowavatar, E.user_avatar,
sum( A.tipp_points ) AS user_points, |
____________ beehave - home of humbug ... [we can't afford to be neutral]
Zuletzt bearbeitet von boris am Sa, 07 Jun 2008, 07:21, insgesamt 3-mal bearbeitet. (4 Prozent)
|
|
Nach oben |
|
boris
Beiträge: 11195
|
Titel: (Kein Titel)
Verfasst am: Fr, 06 Jun 2008, 00:03 |
|
|
HOTFIX !
Code: |
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/em_stats_body.tpl
#
#-----[ FIND ]------------------------------------------
#
{switch_rainbowcup.rain bowrow.RB_USERNAME}
#
#-----[ REPLACE WITH ]------------------------------------------
#
{switch_rainbowcup.rainbowrow.RB_USERNAME} |
Ist oben schon geändert, nur wichtig für die, die das Snippet vor heute abend schon eingebaut hatten.
____________ beehave - home of humbug ... [we can't afford to be neutral]
|
|
Nach oben |
|
|
|
ähnliche Beiträge |
|
Thema
| Autor
| Forum
| Antworten
| Verfasst am
|
|
Sie hören gerade..... (2008) |
Frederik |
silikonimplantate |
153 |
Do, 17 Sep 2009, 22:48 |
|
DLW 2008: Understanding the PHP Object-Model |
boris |
hal9000 |
0 |
Sa, 18 Apr 2009, 12:27 |
|
DLW 2008: Advanced Object-Oriented JavaScript |
boris |
hal9000 |
0 |
Sa, 18 Apr 2009, 12:21 |
|
DLW 2008: Speaker Panel: Top Speakers from Ruby, Groovy |
boris |
hal9000 |
0 |
Sa, 18 Apr 2009, 12:16 |
|
DLW 2008: Metaprogramming with Ruby |
boris |
hal9000 |
0 |
Sa, 18 Apr 2009, 12:13 |
Schreiben: nein. Antworten: nein. Bearbeiten: nein. Löschen: nein. Umfragen: nein.
|