Skip to content
Snippets Groups Projects
LKT_Rallysystem.php 7.75 KiB
Newer Older
Eric Laufer's avatar
1.1
Eric Laufer committed
<?php
// Variabeln
isaack's avatar
isaack committed
$rallyname = mysqli_real_escape_string($sql_open,$_GET['rally']);
Eric Laufer's avatar
1.1
Eric Laufer committed
$time = time();
// Ralleydaten auslesen
$rally = mysqli_fetch_array (db_query ('SELECT * FROM vms_rallydaten WHERE name = "' . $rallyname . '" LIMIT 1'));

function sectodays($secs) {
    $days = intval($secs / (60 * 60 * 24));
    $secs = $secs % (60 * 60 * 24);
    $hours = intval($secs / (60 * 60));
    $secs = $secs % (60 * 60);
    $mins = intval($secs / 60);
    $secs = $secs % 60;
    return 'noch ' . $days . ' Tage, ' . $hours . ' Std. und ' . $mins . ' Min.';
}

if ($rally['status'] != 'aktive') {
    $swf_prozent = 0;
    $swf_status = "Rally aktuell Inaktive.";
} else if (time() < $rally['start']) {
    $swf_prozent = 0;
    $swf_status = "Noch nicht gestartet.";
} elseif (($rally['ende_art'] == 'zeit' && $rally['ende_zeit'] <= $time) OR ($rally['ende_art'] == 'punkt' && $rally['ende_punkte'] <= $rally['ende_punkte_aktuell'])) {
    $swf_prozent = 10000;
    $swf_status = "Erfolgreich Beendet.";
} else {
    if ($rally['ende_art'] == 'zeit') {
        if ($rally['ende_vortschritt'] == 'datum') {
            $swf_prozent = number_format(($time - $rally['start']) / ($rally['ende_zeit'] - $rally['start']) * 100, 2, ',', '\'');
            $swf_status = sectodays($rally['ende_zeit'] - $time);
        } elseif ($rally['ende_vortschritt'] == 'Jeden Tag') {
            $tag = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
            $ende = $tag + (24 * 60 * 60);
            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
            $swf_status = sectodays($ende - time());
        } elseif ($rally['ende_vortschritt'] == 'Jede Woche') {
            if (date('w') == 0) $wochentag = 7;
            if (date('w') != 0) $wochentag = date('w');
            $tag = mktime(0, 0, 0, date('m'), (date('d') - $wochentag + 1), date('Y'));
            $ende = $tag + (7 * 24 * 60 * 60);
            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
            $swf_status = sectodays($ende - time());
        } elseif ($rally['ende_vortschritt'] == 'Jeden Monat') {
            $tag = mktime(0, 0, 0, date('m'), 1, date('Y'));
            $ende = mktime(23, 59, 59, (date('m') + 1), 0, date('Y'));
            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
            $swf_status = sectodays($ende - time());
        } elseif ($rally['ende_vortschritt'] == 'Jedes Jahr') {
            $wochentag = 365 - date('z');
            $tag = mktime(0, 0, 0, 1, 1, date('Y'));
            $ende = $tag + (365 * 24 * 60 * 60);
            $swf_prozent = number_format((time() - $tag) / ($ende - $tag) * 100, 2, ',', '\'');;
            $swf_status = sectodays($ende - time());
        }
    } else {
        $swf_prozent = number_format(100 / $rally['ende_punkte'] * $rally['ende_punkte_aktuell'], 2, ',', '\'');
        $swf_status = 'Es sind noch ' . ($rally['ende_punkte'] - $rally['ende_punkte_aktuell']) . ' ' . $rally['einheit'] . ' bis zum Ende';
    }
}
// Flash Ralley Anzeige
echo '<br><br>' . $rally['beschrieb'] . '<br><br>

<style type="text/css">
<!--
    #rot {
        background-color: #253c4e;
        border: 1px;
        width: 430px;
        height: 20px;
        text-align: left;
        -moz-border-radius: 6px;-webkit-border-radius: 6px;border-radius: 6px;
    }
    #vortschritt {
        background-color: #00FF00;
        border: 0px;
        width: ' . number_format($swf_prozent, 0, ',', '\'') . '%;
        height: 100%;
        -moz-border-radius: 6px;-webkit-border-radius: 6px;border-radius: 6px;
    }
-->
</style>
<div style="font-size:17px; line-hight:21px; font-weight:bold;">
<b><font size="+2">Fortschritt<br></font></b><br>
<div id="rot">
  <div id="vortschritt"></div>
</div>
<br>
Der Rallyfortschrit beträgt ' . ($swf_prozent) . ' Prozent. <br>
' . $swf_status . '
</div><br><br>

';

$gesperrt = explode(',', $rally['sperruser']);
if (in_array($_SESSION['uid'], $gesperrt)) {
    echo'<br><b><font size="+1" color="#9F0101">!!Gesperrt!!<br>Sie wurden vom Admin von dieser Rally ausgeschlossen.</font></b><br><br>';
}

if ($_SESSION['login'] == 'true') {
    $rallystand = mysqli_fetch_array(db_query("SELECT punkte FROM vms_rallyuser WHERE uid=" . $_SESSION['uid'] . " and  rally = '" . $rallyname . "' LIMIT 1"));
    echo'<h2><font color="#010101">Du hast in der ' . $rallyname . '-Rally bereits ' . number_format($rallystand['punkte'], 0, ",", ".") . ' ' . $rally['ende_formulierung'] . '. (Danke)</font></h2><br>';
}

if ($rally['ende_art'] == 'punkt') {
    echo'Diese ' . $rallyname . '-Rally endet soball alle gemeinsam ' . $rally['ende_punkte'] . ' ' . $rally['ende_formulierung'] . ' haben.<br> ';
} elseif ($rally['ende_vortschritt'] == 'datum') {
    echo'Diese ' . $rallyname . '-Rally endet am ' . date('j F Y  G:i', $rally['ende_zeit']) . '<br>';
} else {
    echo 'Diese Rally hat kein Ende. Sie wird immer wieder in bestimmten Abständen (' . $rally['ende_vortschritt'] . ') neu gestartet.<br>';
}

if ($rally['gewinn_art'] == 'dynamisch') {
    echo'Es handelt sich bei der ' . $rallyname . '-Rally um eine Dynamische Rally. <br>
    Dies bedeutet der Gewinn pro Rang steigt mit der Aktivit&auml;t der User in der Rally. <br>
    Der Gewinn-Topf ist nach oben nicht begrenzt und beträgt aktuell  ' . $rally['gewinn_topf'] . ' ' . $pageconfig['waehrung'] . '. <br> ';
Eric Laufer's avatar
1.1
Eric Laufer committed
} else {
    echo'Es handelt sich bei der ' . $rallyname . '-Rally um eine Statische Rally. <br>
    Die gesammte Gewinnsumme bel&auml;uft sich auf ' . $rally['gewinn_topf'] . ' ' . $pageconfig['waehrung'] . '. <br>';
Eric Laufer's avatar
1.1
Eric Laufer committed
}

if ($rally['mindestpunktzhl'] > '0') {
    echo'<br>Sie müssen mindestens ' . $rally['mindestpunktzhl'] . ' ' . $rally['ende_formulierung'] . ' haben um in der Rally gewertet zu werden<br><br>';
}

echo '


<br>
<table width="100%" cellpadding="1" cellspacing="1" border="0" class="tablesorter">
<thead>
	<tr >
		<th width="30"><b>Rang</b></th>
		<th><b>User</b></th>
		<th width="100"><b>' . $rally['einheit'] . '</b></th>
		<th width="180"><b>möglicher Gewinn</b></th>
		<th width="110"><b>Mindestpunktzahl</b></th>
	</tr>
</thead>
<tbody>';

$platz = db_query ('SELECT k.punkte,u.nickname,u.uid FROM vms_rallyuser k LEFT JOIN vms_userdaten u ON u.uid = k.uid WHERE k.rally = "' . $rallyname . '" AND k.ausgezahlt = "0" ORDER BY k.punkte DESC');
$rp = 1;
$gesperrt = explode(',', $rally['sperruser']);
while ($pa = mysqli_fetch_array($platz)) {
    if (!in_array($pa['uid'], $gesperrt)) {
        if ($rally['gewinner_anzahl'] >= $rp) {
            $mg = number_format(($rally['gewinn_topf'] / 100 * $rally['p' . $rp]), 2, ',', '.') . ' ' . $pageconfig['waehrung'];
Eric Laufer's avatar
1.1
Eric Laufer committed
        } else $mg = '---';
        if ($pa['punkte'] < $rally['mindestpunktzhl']) $mindestpunkt = '<span style="color:#FF6600;">Nicht erreicht.</span>';
        if ($pa['punkte'] >= $rally['mindestpunktzhl']) $mindestpunkt = '<span style="color:#339966;">Erreicht.</span>';
        echo '<tr>
    		<td align="right">' . $rp++ . '.&nbsp;</td>
    		<td>&nbsp;' . $pa['nickname'] . '</td>
    		<td align="right">' . number_format($pa['punkte'], 0) . '&nbsp;</td>
    		<td align="right">' . $mg . '&nbsp;</td>
            <td align="right"><strong>' . $mindestpunkt . '</strong></td>
    	</tr>';
    }
}

for($x = $rp;$x < $rally['gewinner_anzahl'] + 1;$x++) {
    $mg = number_format(($rally['gewinn_topf'] / 100 * $rally['p' . $rp]), 2, ',', '.') . ' ' . $waehrung;
    $row = ($rp % 2 == 0) ? 0 : 1;
    $mindestpunkt = '<span style="color:#808080;">Wartend.</span>';
    if ($x > $rally['gewinner_anzahl']) $mg = '---';
    ?>
	<tr>
		<td align="right"><?=$rp++;?>.&nbsp;</td>
		<td>&nbsp;n/a</td>
		<td align="right">0&nbsp;</td>
		<td align="right"><?=$mg;?>&nbsp;</td>
        <td align="right"><strong><?=$mindestpunkt;?></strong></td>
	</tr>
<?php
}
?>
</tbody>
</table>
<?php
foot();
?>