Skip to content
Snippets Groups Projects
rallysystem.php 8.06 KiB
Newer Older
Joel Kuder's avatar
Joel Kuder committed
<?php
// Variabeln
$rallyname = ($_GET['rally']);
Joel Kuder's avatar
Joel Kuder committed
$time = time();
// Ralleydaten auslesen
$sql = sql::$db->prepare ('SELECT * FROM '._VMS_.'_rallydaten WHERE name = :rallyname LIMIT 1');
$sql -> bindParam(':rallyname', $rallyname, PDO::PARAM_STR);
$sql -> execute();
$rally = $sql->fetch();
Joel Kuder's avatar
Joel Kuder committed

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_fortschritt'] == 'datum') {
Joel Kuder's avatar
Joel Kuder committed
            $swf_prozent = number_format(($time - $rally['start']) / ($rally['ende_zeit'] - $rally['start']) * 100, 2, ',', '\'');
            $swf_status = sectodays($rally['ende_zeit'] - $time);
        } elseif ($rally['ende_fortschritt'] == 'Jeden Tag') {
Joel Kuder's avatar
Joel Kuder committed
            $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_fortschritt'] == 'Jede Woche') {
Joel Kuder's avatar
Joel Kuder committed
            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_fortschritt'] == 'Jeden Monat') {
Joel Kuder's avatar
Joel Kuder committed
            $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_fortschritt'] == 'Jedes Jahr') {
Joel Kuder's avatar
Joel Kuder committed
            $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;
    }
Joel Kuder's avatar
Joel Kuder committed
        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="fortschritt"></div>
Joel Kuder's avatar
Joel Kuder committed
</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') {
Henoch Einbier's avatar
Henoch Einbier committed
    $sql = sql::$db->prepare("SELECT punkte FROM "._VMS_."_rallyuser WHERE uid=:session_uid AND rally = :rallyname LIMIT 1");
    $sql -> bindParam(':session_uid', $_SESSION['uid'], PDO::PARAM_INT);
    $sql -> bindParam(':rallyname', $rallyname, PDO::PARAM_STR);
    $sql -> execute();

    $rallystand = $sql->fetch();
Joel Kuder's avatar
Joel Kuder committed
    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') {
Henoch Einbier's avatar
Henoch Einbier committed
    echo'Diese ' . $rallyname . '-Rally endet sobald alle gemeinsam ' . $rally['ende_punkte'] . ' ' . $rally['ende_formulierung'] . ' haben.<br> ';
} elseif ($rally['ende_fortschritt'] == 'datum') {
Joel Kuder's avatar
Joel Kuder committed
    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_fortschritt'] . ') neu gestartet.<br>';
Joel Kuder's avatar
Joel Kuder committed
}

if ($rally['gewinn_art'] == 'dynamisch') {
    echo'Es handelt sich bei der ' . $rallyname . '-Rally um eine dynamische Rally. <br>
Joel Kuder's avatar
Joel Kuder committed
    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'] . ' ' . $system['waehrung'] . '. <br> ';
Joel Kuder's avatar
Joel Kuder committed
} else {
    echo'Es handelt sich bei der ' . $rallyname . '-Rally um eine statische Rally. <br>
    Die gesamte Gewinnsumme bel&auml;uft sich auf ' . $rally['gewinn_topf'] . ' ' . $system['waehrung'] . '. <br>';
Joel Kuder's avatar
Joel Kuder 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>';

Henoch Einbier's avatar
Henoch Einbier committed
$platz = sql::$db->prepare('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');
$platz -> bindParam(':rallyname', $rallyname, PDO::PARAM_STR);
$platz -> execute();

Joel Kuder's avatar
Joel Kuder committed
$rp = 1;
$gesperrt = explode(',', $rally['sperruser']);
while ($pa = $platz->fetch() ) {
Joel Kuder's avatar
Joel Kuder committed
    if (!in_array($pa['uid'], $gesperrt)) {
        if ($rally['gewinner_anzahl'] >= $rp) {
            $mg = number_format(($rally['gewinn_topf'] / 100 * $rally['p' . $rp]), 2, ',', '.') . ' ' . $system['waehrung'];
Joel Kuder's avatar
Joel Kuder 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, ',', '.') . ' ' . $system['waehrung'];
Joel Kuder's avatar
Joel Kuder committed
    $row = ($rp % 2 == 0) ? 0 : 1;
    $mindestpunkt = '<span style="color:#808080;">Wartend.</span>';
    if ($x > $rally['gewinner_anzahl']) $mg = '---';
    ?>
	<tr>
		<td align="right"><?php echo $rp++;?>.&nbsp;</td>
		<td>&nbsp;n/a</td>
		<td align="right">0&nbsp;</td>
		<td align="right"><?php echo $mg;?>&nbsp;</td>
        <td align="right"><strong><?php echo $mindestpunkt;?></strong></td>
	</tr>
<?php
}
?>
</tbody>
</table>
<?php
foot();
?>