You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
410 lines
17 KiB
410 lines
17 KiB
<?php
|
|
/*
|
|
* Created on 14.08.2007
|
|
*
|
|
* @copyright (c) 2010 animegame.eu
|
|
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence
|
|
*
|
|
*/
|
|
/******************************************************************************
|
|
* Dieser Skript erzeugt die Eingabemaske für die Auktion,
|
|
* es nutzt hierbei die in auktion_functions.inc.php zur verfügung gestellten Funktionen
|
|
*******************************************************************************
|
|
* Autor: Pascal Proksch
|
|
* Erstellungsdatum: 14.08.2007
|
|
* Zuletzt verändert: 15.08.2007
|
|
*******************************************************************************/
|
|
|
|
include_once('path.inc.php'); // get the path ;)
|
|
include_once(ROOT_PATH.'/include/config.inc.php');
|
|
include_once(ROOT_PATH.'/include/auktion_functions.inc.php');
|
|
include_once(ROOT_PATH.'/include/designfunctions.inc.php');
|
|
include_once(ROOT_PATH.'/include/parse.inc.php');
|
|
|
|
// GET-Section
|
|
// Kritisch (SQL-Injections)
|
|
$auktionsid = validateUnsignedInteger($_GET['auktionsid'],null);
|
|
$gebot = validateUnsignedInteger($_GET['gebot'],null);
|
|
$anzahl = validateUnsignedInteger($_GET['anzahl'], null);
|
|
$start = validateUnsignedInteger($_GET['start'], null);
|
|
$entries = validateUnsignedInteger($_GET['entries'], null);
|
|
$page = validateUnsignedInteger($_GET['page'], null);
|
|
$maxpreis = validateUnsignedInteger($_GET['maxpreis'], null);
|
|
$itemname = validateString($_GET['itemname']);
|
|
|
|
// Unkritisch
|
|
$pay = $_GET['pay'];
|
|
$action = $_GET['action'];
|
|
|
|
// Wird selbst geprueft!!
|
|
$items = $_GET['items'];
|
|
$order = $_GET['order'];
|
|
$dir = $_GET['dir'];
|
|
$kategorie = $_GET['kategorie'];
|
|
|
|
|
|
function stelleBietenMaskeDar($userid,$auktionsid,$gebot){
|
|
if($gebot != NULL && $gebot != ''){
|
|
$errorMsg = biete($userid,$auktionsid,$gebot);
|
|
if($errorMsg == ''){
|
|
echo 'Es wurde erfolgreich für das Item geboten!<br><br>';
|
|
} else{
|
|
echo 'Es ist beim Bieten ein Fehler aufgetreten: '.$errorMsg.'!<br><br>';
|
|
}
|
|
}
|
|
$auktionsdaten = getEntryInformation($auktionsid);
|
|
if ($auktionsdaten === NULL) {
|
|
displayErrorMessage(NULL, 'Auktion ist nicht mehr verfügbar!!',displayHistoryBackLink());
|
|
return;
|
|
}
|
|
?>
|
|
<form action="" method=GET>
|
|
<input type="hidden" name="as" value="auktion"></input>
|
|
<input type="hidden" name="action" value="1"></input>
|
|
<input type='hidden' name="auktionsid" value='<?php echo $auktionsdaten['auktionsid']; ?>'></input>
|
|
<table border="0" width="332" height="187" align="center">
|
|
<tr>
|
|
<th height="25" width="332" colspan="2" align="center">Item Auktion</th>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Name</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayItemLink($auktionsdaten['tablename'], $auktionsdaten['itemid'], $auktionsdaten['itemname']); ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Höchstbietender?</b></td>
|
|
<td height="25" width="178" align="left"> <?php echo displayUserLink($auktionsdaten['bieter'],$auktionsdaten['bietername']); ?> </td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Aktuelles Gebot</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayMoney($auktionsdaten['aktuellesgebot']); ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Startgebot</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayMoney($auktionsdaten['startgebot']); ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Anzahl</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayCount($auktionsdaten['anzahl']); ?></td>
|
|
</tr>
|
|
<?php
|
|
if($auktionsdaten['anbieter'] != 1){
|
|
?>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Durchschnittlicher Kaufpreis</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayMoney(getAveragePrice($auktionsdaten['itemid'], $auktionsdaten['tablename'], $auktionsdaten['anzahl'])); ?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
?>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Bieten</b></td>
|
|
<td height="25" width="178" align="left"><input id="input" type="int" name="gebot" value="<?php echo aktuellesMindestgebot($auktionsdaten['auktionsid']); ?>" size="7"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td height="25" width="178" align="left"><input id="input" type="submit" value="bieten"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" colspan="2">INFO: Es muss immer mindestens 2% mehr Geboten werden, als das akutelle Gebot.<br><br>Es ist verboten weit über dem Wert zu ersteigern! Dies wird als Cheatingverdacht behandelt und auch bestraft! Bsp. HP Trank II für 20.000</td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
<?php
|
|
|
|
}
|
|
|
|
function stelleAuktionErstellenMaskeDar($userid,$id_db_mix, $anzahl, $startgebot){
|
|
// Maske in <html>
|
|
if($id_db_mix != '' && !is_null($id_db_mix)){
|
|
$errorMessage = insertItem($userid,$id_db_mix, $anzahl, $startgebot);
|
|
if($errorMessage == '' OR $errorMessage == NULL){
|
|
echo '<br>Das Item konnte erfolgreich eingefügt werden.<br>';
|
|
$id_db_mix = '';
|
|
$anzahl = '1';
|
|
$startgebot = '10';
|
|
}
|
|
else{
|
|
echo '<br>Das Item konnte nicht eingefügt werden: '.$errorMessage.'<br>';
|
|
}
|
|
}
|
|
else{
|
|
$anzahl = '1';
|
|
$startgebot = '10';
|
|
}
|
|
?>
|
|
<form action="" method=GET>
|
|
<input type="hidden" name="as" value="auktion"></input>
|
|
<input type="hidden" name="action" value="2"></input>
|
|
<table cellpadding="0" cellspacing="0" width="100%" border="0">
|
|
<tr>
|
|
<th height="20" valign="center" width="557" colspan="2" align="center">Item versteigern!</th>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="50%" valign="center" align="center">Item</td>
|
|
<td height="25" width="50%" valign="center" align="right">
|
|
<select id="input" name="items">
|
|
<?php
|
|
// Nun erstmal die Optionen empfangen
|
|
$options = getItemOptions($userid,$id_db_mix);
|
|
$index = 0;
|
|
while($options[$index] != NULL){
|
|
echo "\t\t\t\t\t".$options[$index++]."\n";
|
|
}
|
|
?> </select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="50%" valign="center" align="center">Mindestgebot</td>
|
|
<td height="25" width="50%" valign="center" align="right"> <input id="input" type="int" name="start" value="<?php echo $startgebot; ?>" size="5"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="50%" valign="center" align="center">Anzahl</td>
|
|
<td height="25" width="50%" valign="center" align="right"> <input id="input" type="int" name="anzahl" value="<?php echo $anzahl; ?>" size="5"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="50%"> </td>
|
|
<td height="25" width="50%" valign="center" align="right"><input id="input" type=submit value="Verkaufen"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" colspan="2">Da dieser Service nicht gratis ist, werden als Bearbeitungsgebühr 1% des Versteigerungspreises enthalten.</td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
<?php
|
|
}
|
|
|
|
function stelleAuktionsuebersichtDar($userid,$kategorie,$itemnamepart,$entries,$pageNumber,$maxpreis,$order,$dir){
|
|
if($pageNumber == NULL || $pageNumber<0 || !is_numeric($pageNumber)){$pageNumber=0;}
|
|
if($entries == NULL || $entries == 0 || !is_numeric($entries)){ $entries = 20;}
|
|
|
|
if(!($kategorie == 'ware' || $kategorie == 'sp_ware' || $kategorie == 'wochen_ware')){$kategorie = 'all';}
|
|
if(!($order == 'itemname' || $order == 'aktuellesgebot' || $order == 'anbietername' || $order == 'bietername' || $order == 'anzahl' || $order == 'deadline')){
|
|
$order = 'deadline';
|
|
}
|
|
if($dir != 'DESC' || $dir == NULL){
|
|
$dir = 'ASC';
|
|
}
|
|
// // Wichtig fuer die SQL-Abfrage -> Muss nicht mehr
|
|
// $itemnamepart = preg_replace('#\'#','',$itemnamepart);
|
|
|
|
$orderstring = '<a href="index.php?as=auktion&page='.$pageNumber.'&entries='.$entries.'&maxpreis='.$maxpreis.'&kategorie='.$kategorie.'&itemname='.$itemnamepart.'&###ORDER###">###LABEL###</a>';
|
|
?>
|
|
<form action="" method='GET'>
|
|
<input type="hidden" name="as" value="auktion"></input>
|
|
<input type="hidden" name="order" value="<?php echo $order; ?>"></input>
|
|
<input type="hidden" name="dir" value="<?php echo $dir; ?>"></input>
|
|
<table cellpadding="0" cellspacing="0" width="100%">
|
|
<tr>
|
|
<td height="30" valign="top" width="410" align="center"><b>Auktions-Markt</b></td>
|
|
<td height="30" valign="top" width="136" align="center"><b><a href="index.php?as=auktion&action=2">Item Online Stellen</a></b></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">Suchfeld einschränken</td>
|
|
<td align="right">
|
|
<select id="input" id="input" name='kategorie'>
|
|
<?php
|
|
$index = 0;
|
|
$options = getKategorieOptions($kategorie);
|
|
while($options[$index] != NULL){
|
|
echo "\t\t\t\t".$options[$index++]."\n";
|
|
}
|
|
?> </select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">Auktionen pro Seite</td>
|
|
<td align="right"><input id="input" type="int" name="entries" size="5" value="<?php echo $entries;?>"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">Maximalgebot</td>
|
|
<td align="right"><input id="input" type="int" name="maxpreis" size="5" value="<?php echo $maxpreis;?>"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">Itemname</td>
|
|
<td align="right"><input id="input" name="itemname" size="5" value="<?php echo $itemnamepart;?>"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="131"> </td>
|
|
<td height="25" width="426" valign="center" align="right"><input id="input" type=submit value="Suchanfrage absenden"></input></form></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="546" colspan="2">
|
|
<table cellpadding="0" cellspacing="0" width="100%">
|
|
<tr>
|
|
<th height="31" valign="top" align="center">
|
|
<?php
|
|
if($order == 'itemname' && $dir == 'ASC'){
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=itemname&dir=DESC','Item'),$orderstring);
|
|
}
|
|
else{
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=itemname&dir=ASC','Item'),$orderstring);
|
|
}
|
|
?>
|
|
</th>
|
|
<th height="31" valign="top" align="center">
|
|
<?php
|
|
if($order == 'aktuellesgebot' && $dir == 'ASC'){
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=aktuellesgebot&dir=DESC','Akuelles Gebot'),$orderstring);
|
|
} else{
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=aktuellesgebot&dir=ASC','Akuelles Gebot'),$orderstring);
|
|
}
|
|
|
|
?>
|
|
</th>
|
|
<th height="31" valign="top" align="center">
|
|
<?php if($order == 'anbietername' && $dir == 'ASC'){
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=anbietername&dir=DESC','Anbieter'),$orderstring);
|
|
} else{
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=anbietername&dir=ASC','Anbieter'),$orderstring);
|
|
}
|
|
?>
|
|
</th>
|
|
<th height="31" valign="top" align="center">
|
|
<?php if($order == 'bietername' && $dir == 'ASC'){
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=bietername&dir=DESC','Höchstbietender'),$orderstring);
|
|
} else{
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=bietername&dir=ASC','Höchstbietender'),$orderstring);
|
|
}
|
|
?>
|
|
</th>
|
|
<th height="31" valign="top" align="center">
|
|
<?php if($order == 'anzahl' && $dir == 'ASC'){
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=anzahl&dir=DESC','Anzahl'),$orderstring);
|
|
} else{
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=anzahl&dir=ASC','Anzahl'),$orderstring);
|
|
}
|
|
?>
|
|
</th>
|
|
<th height="31" valign="top" align="center">
|
|
<?php if($order == 'deadline' && $dir == 'ASC'){
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=deadline&dir=DESC','Deadline'),$orderstring);
|
|
} else{
|
|
echo preg_replace(array('/###ORDER###/','/###LABEL###/'), array('order=deadline&dir=ASC','Deadline'),$orderstring);
|
|
}
|
|
?>
|
|
</th>
|
|
<th height="31" valign="top" align="center">
|
|
Bieten
|
|
</th>
|
|
</tr>
|
|
<?php
|
|
$aktionentries = getAuktionEntries($kategorie,$itemnamepart,$entries,$pageNumber,$maxpreis,$order,$dir);
|
|
$index = 0;
|
|
while($aktionentries[$index] != NULL){
|
|
echo "\t\t\t\t".'<tr>'."\n";
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center">'.displayItemLink($aktionentries[$index]['tablename'], $aktionentries[$index]['itemid'], $aktionentries[$index]['itemname']).'</td>'."\n";
|
|
if($aktionentries[$index]['aktuellesgebot'] != NULL){
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center">'.displayMoney($aktionentries[$index]['aktuellesgebot']).'</td>'."\n";
|
|
} else{
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center">'.displayMoney($aktionentries[$index]['startgebot']).'</td>'."\n";
|
|
}
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center">'.displayUserLink($aktionentries[$index]['anbieter'],$aktionentries[$index]['anbietername']).'</td>'."\n";
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center">'.displayUserLink($aktionentries[$index]['bieter'],$aktionentries[$index]['bietername']).'</td>'."\n";
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center">'.displayCount($aktionentries[$index]['anzahl']).'</td>'."\n";
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center">'.$aktionentries[$index]['deadline'].'</td>'."\n";
|
|
if($userid == $aktionentries[$index]['anbieter']){
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center"><a href="index.php?as=auktion&action=3&auktionsid='.$aktionentries[$index]['auktionsid'].'">zurückziehen</a></td>'."\n";
|
|
} else{
|
|
echo "\t\t\t\t\t".'<td height="31" valign="top" align="center"><a href="index.php?as=auktion&action=1&auktionsid='.$aktionentries[$index]['auktionsid'].'">mitbieten</a></td>'."\n";
|
|
}
|
|
echo "\t\t\t\t".'</tr>'."\n";
|
|
$index++;
|
|
}
|
|
?>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center" width="100%" colspan="2">
|
|
<?php
|
|
if($entries > 0){
|
|
$anzahl = ceil(getAuktionTotalCount($kategorie,$itemnamepart,$maxpreis) / $entries);
|
|
$pagestring = '<a href="index.php?as=auktion&page=###PAGE###&entries='.$entries.'&maxpreis='.$maxpreis.'&kategorie='.$kategorie.'&itemname='.$itemnamepart.'&order='.$order.'&dir='.$dir.'">###LABEL###</a>';
|
|
echo displayPagelinks($pageNumber,$anzahl,$pagestring);
|
|
}
|
|
?>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<input type='hidden' name='page' value='0'></input>
|
|
</form>
|
|
<?php
|
|
}
|
|
|
|
function zieheAuktionZurueck($userid,$auktionsid,$pay){
|
|
$auktionsdaten = getEntryInformation($auktionsid);
|
|
if ($auktionsdaten === NULL) {
|
|
displayErrorMessage(NULL, 'Auktion ist nicht mehr verfügbar!!',displayHistoryBackLink());
|
|
return;
|
|
}
|
|
|
|
|
|
if($pay == NULL || $pay == ''){
|
|
// Nix eigentlich!!
|
|
$pay = $auktionsdaten['aktuellesgebot']!=NULL?'YES':'NO';
|
|
} else{
|
|
$errMessage = zurueckziehen($userid, $auktionsid, $pay);
|
|
if($errMessage == ''){
|
|
echo 'Zurückziehen erfolgreich!';
|
|
return;
|
|
}
|
|
else{
|
|
echo 'Fehler beim Zurückziehen aufgetreten: '.$errMessage;
|
|
}
|
|
}
|
|
?>
|
|
<form action="" method=GET>
|
|
<input type="hidden" name="as" value="auktion"></input>
|
|
<input type="hidden" name="action" value="3"></input>
|
|
<input type="hidden" name="auktionsid" value='<?php echo $auktionsdaten['auktionsid']; ?>'></input>
|
|
<input type="hidden" name="pay" value="<?php echo $pay; ?>"></input>
|
|
<table border="0" width="332" height="187" align="center">
|
|
<tr>
|
|
<th height="25" width="332" colspan="2" align="center">Item zurückziehen</th>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Name</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayItemLink($auktionsdaten['tablename'], $auktionsdaten['itemid'], $auktionsdaten['itemname']); ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Höchstbietender?</b></td>
|
|
<td height="25" width="178" align="left"> <?php echo displayUserLink($auktionsdaten['bieter'],$auktionsdaten['bietername']);; ?> </td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Aktuelles Gebot</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayMoney($auktionsdaten['aktuellesgebot']); ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" width="138" align="left"><b>Startgebot</b></td>
|
|
<td height="25" width="178" align="left"><?php echo displayMoney($auktionsdaten['startgebot']); ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td height="25" width="178" align="left"><input id="input" type="submit" value="zurückziehen"></input></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25" colspan="2">
|
|
Auktionen, bei denen noch niemand geboten hat, können ohne zusätzliche Kosten zurückgezogen werden. Auktionen mit aktuellem Gebot kosten beim Zurückziehen 10% des aktuellen Gebots!
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
<?php
|
|
|
|
}
|
|
|
|
if(isset($user_ida['id'])){
|
|
// Abfrage der uebergebenen Aktionen
|
|
if($action == 1){ // Bieten für eine Auktion
|
|
stelleBietenMaskeDar($user_ida['id'],$auktionsid, $gebot);
|
|
} else if($action == 2){ // Erstellen einer Auktion
|
|
stelleAuktionErstellenMaskeDar($user_ida['id'],$items,$anzahl,$start);
|
|
} elseif($action == 3){ // Zurueckziehen einer Auktion
|
|
zieheAuktionZurueck($user_ida['id'],$auktionsid,$pay);
|
|
} else{ // Ansonsten Standardfenster
|
|
stelleAuktionsuebersichtDar($user_ida['id'],$kategorie,$itemname,$entries,$page,$maxpreis,$order,$dir);
|
|
}
|
|
}
|
|
|
|
?>
|