Benutzername    Passwort    Autologin    
  Passwort vergessen       Registrieren  
beeForum Foren-übersicht » hal9000 » mod support
Neues Thema eröffnen   Neue Antwort erstellen Hervorhebung entfernen


Snippet: EM 2008 MOD - "Best Loser"
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
boris



Beiträge: 11154

Titel: Snippet: EM 2008 MOD - "Best Loser"
Verfasst am: Mi, 04 Jun 2008, 23:04
Beitrag
Antworten mit Zitat

"Best Loser"


Der "Best Loser" ist eine spezielle Rangliste, die als Add-On zum "EM 2008 Tippspiel"-MOD installiert werden kann. Es werden die User gelistet, die am häufigsten komplett daneben getippt haben, dabei aber am nächsten am richtigen Ergebnis waren. Mehr Infos 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_showbestloser = true;      # true|false%u3a wheter to show the "best loser"-ranking list

#
#-----[ FIND ]------------------------------------------
#
$template->pparse('body');

#
#-----[ BEFORE, ADD ]------------------------------------------
#
if ($boo_showbestloser)
{
   $template->assign_block_vars('switch_bestloser', array());

   // Best loser
   $arr_bestloser = array();

   // Ergebnisse holen
   $resultdata = array();
   $resultdata = get_em_results();

   // alle User mit "daneben"-Tipps holen
   $sql_alluser = "SELECT tipp_user FROM " . EM_TIPPS_TABLE . " WHERE tipp_game <> 65 AND tipp_points = 0 GROUP BY tipp_user";
   if (!($result_alluser = $db->sql_query($sql_alluser)))
   {
      message_die(GENERAL_ERROR, '', '', __LINE__, __FILE__, $sql_alluser);
   }

   while ($row_alluser = $db->sql_fetchrow($result_alluser))
   {
      // alle "daneben"-Tipps eines Users holen
      $sql_tipps = "SELECT * FROM " . EM_TIPPS_TABLE . "
               WHERE tipp_user = " . $row_alluser['tipp_user'] . " AND
                     tipp_points = 0 AND
                     tipp_game <> 65";
      if (!($result_tipps = $db->sql_query($sql_tipps)))
      {
         message_die(GENERAL_ERROR, '', '', __LINE__, __FILE__, $sql_tipps);
      }

      $int_count = 0;
      while ($row_tipps = $db->sql_fetchrow($result_tipps))
      {
         // Ergebnis des Spiels holen und ausrechnen, "wie daneben" der Tipp ist
         if (!empty($resultdata[$row_tipps['tipp_game']]))
         {
            $int_daneben = (abs($row_tipps['tipp_home'] - $resultdata[$row_tipps['tipp_game']]['result_home']) + abs($row_tipps['tipp_away'] - $resultdata[$row_tipps['tipp_game']]['result_away']));
            if ($int_daneben < 4)
            {
               $int_count++;
               $arr_bestloser[$row_alluser['tipp_user']]["tore"] += $int_daneben;
            }
         }
      }
      $arr_bestloser[$row_alluser['tipp_user']]["daneben"] = $int_count;
   }

   $arr_bestlosersort = array();

   foreach($arr_bestloser as $key => $value)
   {
      if ($value["daneben"] > 0)
      {
         $arr_bestlosersort[$key]["daneben"] = (0 - $value["daneben"]);
         $arr_bestlosersort[$key]["quote"] = ($value["tore"] / $value["daneben"]);
         $arr_bestlosersort[$key]["tore"] = $value["tore"];
      }
   }

   asort($arr_bestlosersort);

   $int_rang = 0;
   $int_quote = 0;
   $int_quotealt = 0;

   foreach($arr_bestlosersort as $key => $value)
   {
      $int_quote = $value["quote"];
      if ($int_quote != $int_quotealt)
      {
         $int_rang++;
      }

      $template->assign_block_vars('switch_bestloser.bestloserrow', array(
        'BL_RANK'      => ($int_quote != $int_quotealt) ? $int_rang %u3a '',
        'BL_USERNAME'   => $all_user_data[$key],
        'BL_AVATAR'   => $arr_avatars[$key],
        'BL_USERLINK'   => append_sid("profile.".$phpEx."?mode=viewprofile&u=".$key),
        'BL_DANEBEN'   => abs($value["daneben"]),
        'BL_TORE'      => abs($value["tore"]),
        'BL_QUOTE'   => number_format(round(abs($value["quote"]), 2), 2, ",", ".")
      )
      );

      $int_quotealt = $int_quote;
   }
}

#
#-----[ OPEN ]------------------------------------------
#
# NOTE%u3a 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_bestloser -->
<br />
<br />
<br />
<br />
<table class="forumline" align="center" border="0" cellpadding="2" cellspacing="1" width="350">
  <tr>
    <td colspan="6" class="cat" align="center"><span class="cattitle"><strong><span style="font-size%u3a 14px;">Best loser</span></strong><br />
      <br />
      (User, die am häufigsten am knappsten - max. 3 Tore -<br />vollständig daneben lagen) </span></td>
  </tr>
  <tr>
    <td class="row2" align="center" nowrap="nowrap" valign="middle"><strong><span class="genmed">Platz</span></strong></td>
    <td class="row2">&nbsp;</td>
    <td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Spieler</strong></td>
    <td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Tipps daneben</strong></td>
    <td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Tore daneben</strong></td>
    <td class="row2" align="center" nowrap="nowrap" valign="middle"><strong>Quote</strong></td>
  </tr>
  <!-- BEGIN bestloserrow -->
  <tr>
    <td class="row1" align="center" nowrap="nowrap" valign="middle"><strong><span class="genmed">{switch_bestloser.bestloserrow.BL_RANK}</span></strong></td>
    <td class="row1" align="center" nowrap="nowrap" valign="middle">{switch_bestloser.bestloserrow.BL_AVATAR}</td>
    <td class="row1" align="left" nowrap="nowrap" valign="middle"><strong><a href="{switch_bestloser.bestloserrow.BL_USERLINK}">{switch_bestloser.bestloserrow.BL_USERNAME}</a></strong></td>
    <td class="row1" align="center" nowrap="nowrap" valign="middle">{switch_bestloser.bestloserrow.BL_DANEBEN}</td>
    <td class="row1" align="center" nowrap="nowrap" valign="middle">{switch_bestloser.bestloserrow.BL_TORE}</td>
    <td class="row1" align="center" nowrap="nowrap" valign="middle">{switch_bestloser.bestloserrow.BL_QUOTE}</td>
  </tr>
  <!-- END bestloserrow -->
</table>
<!-- END switch_bestloser -->


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, 06:19, insgesamt 8-mal bearbeitet. (4 Prozent)

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Rang:godmode methusalem 3. platz professioneller Sportangler Profi-Winzer (7x Hamm) Arcade-Meister, Rang 16 rainbow-cup
boris



Beiträge: 11154

Titel: (Kein Titel)
Verfasst am: Do, 05 Jun 2008, 23:04
Beitrag
Antworten mit Zitat

HOTFIX !

Code:
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/em_stats_body.tpl

#
#-----[ FIND ]------------------------------------------
#
{switch_bestloser.best loserrow.BL_USERNAME}

#
#-----[ REPLACE WITH ]------------------------------------------
#
{switch_bestloser.bestloserrow.BL_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
Private Nachricht senden Website dieses Benutzers besuchen Rang:godmode methusalem 3. platz professioneller Sportangler Profi-Winzer (7x Hamm) Arcade-Meister, Rang 16 rainbow-cup
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    beeForum Foren-übersicht » hal9000 » mod support Seite 1 von 1
Gehe zu:  



ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Doris Dörrie - "Was wollen Sie von mir?" boris kühnes mittelscharfer 0 Sa, 06 Jan 2024, 13:55 Letzten Beitrag anzeigen
Keine neuen Beiträge Gute "How to do ..." - Videos auf Youtube rantanplan le finesnäcker 1 Di, 24 Jan 2017, 16:59 Letzten Beitrag anzeigen
Keine neuen Beiträge Hände weg von "Billigjeans" Hansch joxe und so 2 Mo, 26 Jan 2015, 14:59 Letzten Beitrag anzeigen
Keine neuen Beiträge "Der Meisterfälscher" in der 3sat Mediathek Erdbär silikonimplantate 6 Di, 09 Dez 2014, 10:04 Letzten Beitrag anzeigen
Keine neuen Beiträge Every James Hetfield "Yea"... ever. jrose silikonimplantate 0 Do, 14 März 2013, 20:21 Letzten Beitrag anzeigen


Schreiben: nein. Antworten: nein. Bearbeiten: nein. Löschen: nein. Umfragen: nein.
phpBB © phpBB Group | impressum