mirror of
https://github.com/Znote/ZnoteAAC.git
synced 2025-04-30 03:09:22 +02:00
Cleanup houses
This commit is contained in:
parent
400497bd25
commit
ac2b909805
129
house.php
129
house.php
@ -5,11 +5,20 @@ if ($config['log_ip']) {
|
||||
|
||||
$house = (isset($_GET['id']) && (int)$_GET['id'] > 0) ? (int)$_GET['id'] : false;
|
||||
|
||||
if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
$house_SQL = "SELECT `id`, `owner`, `paid`, `name`, `rent`, `town_id`, `size`, `beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder` FROM `houses` WHERE `id`='$house';";
|
||||
$house = mysql_select_single($house_SQL);
|
||||
if ($house !== false) {
|
||||
$house = mysql_select_single("
|
||||
SELECT
|
||||
`h`.`id`, `h`.`owner`, `h`.`paid`, `h`.`name`, `h`.`rent`, `h`.`town_id`,
|
||||
`h`.`size`, `h`.`beds`, `h`.`bid`, `h`.`bid_end`, `h`.`last_bid`, `h`.`highest_bidder`,
|
||||
`p`.`name` AS `ownername`
|
||||
FROM `houses` AS `h`
|
||||
LEFT JOIN `players` AS `p`
|
||||
ON `h`.`owner` > 0
|
||||
AND `p`.`id` = `h`.`owner`
|
||||
WHERE `h`.`id`='{$house}';
|
||||
");
|
||||
$minbid = $config['houseConfig']['minimumBidSQM'] * $house['size'];
|
||||
if ($house['owner'] > 0) $house['ownername'] = user_name($house['owner']);
|
||||
if ($house['owner'] == 0) unset($house['ownername']);
|
||||
|
||||
if ($config['houseConfig']['shopPoints']['enabled']) {
|
||||
$house['points'] = $house['size'];
|
||||
@ -28,19 +37,36 @@ if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
if ($bid_amount && $bid_char) {
|
||||
$bid_char = (int)$bid_char;
|
||||
$bid_amount = (int)$bid_amount;
|
||||
$player = mysql_select_single("SELECT `id`, `account_id`, `name`, `level`, `balance` FROM `players` WHERE `id`='$bid_char' LIMIT 1;");
|
||||
|
||||
$player = mysql_select_single("
|
||||
SELECT `id`, `account_id`, `name`, `level`, `balance`
|
||||
FROM `players`
|
||||
WHERE `id`='$bid_char' LIMIT 1;
|
||||
");
|
||||
|
||||
if (user_logged_in() === true && $player['account_id'] == $session_user_id) {
|
||||
// Does player have or need premium?
|
||||
$premstatus = ($config['houseConfig']['requirePremium'] && $user_data['premdays'] == 0) ? false : true;
|
||||
if ($premstatus) {
|
||||
|
||||
// Can player have or bid on more houses?
|
||||
$pHouseCount = mysql_select_single("SELECT COUNT('id') AS `value` FROM `houses` WHERE ((`highest_bidder`='$bid_char' AND `owner`='$bid_char') OR (`highest_bidder`='$bid_char') OR (`owner`='$bid_char')) AND `id`!='".$house['id']."' LIMIT 1;");
|
||||
$pHouseCount = mysql_select_single("
|
||||
SELECT COUNT('id') AS `value`
|
||||
FROM `houses`
|
||||
WHERE (
|
||||
(`highest_bidder`='{$bid_char}' AND `owner`='{$bid_char}')
|
||||
OR (`highest_bidder`='{$bid_char}')
|
||||
OR (`owner`='{$bid_char}')
|
||||
)
|
||||
AND `id`!='{$house['id']}' LIMIT 1;
|
||||
");
|
||||
|
||||
if ($pHouseCount['value'] < $config['houseConfig']['housesPerPlayer']) {
|
||||
// Is character level high enough?
|
||||
if ($player['level'] >= $config['houseConfig']['levelToBuyHouse']) {
|
||||
// Can player afford this bid?
|
||||
if ($player['balance'] > $bid_amount) {
|
||||
|
||||
// Is bid higher than previous bid?
|
||||
if ($bid_amount > $house['bid']) {
|
||||
// Is bid higher than lowest bid?
|
||||
@ -55,17 +81,51 @@ if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
// Has bid already started?
|
||||
if ($house['bid_end'] > 0) {
|
||||
if ($house['bid_end'] > time()) {
|
||||
mysql_update("UPDATE `houses` SET `highest_bidder`='". $player['id'] ."', `bid`='$bid_amount', `last_bid`='$lastbid' WHERE `id`='". $house['id'] ."' LIMIT 1;");
|
||||
$house = mysql_select_single("SELECT `id`, `owner`, `paid`, `name`, `rent`, `town_id`, `size`, `beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder` FROM `houses` WHERE `id`='". $house['id'] ."';");
|
||||
|
||||
mysql_update("
|
||||
UPDATE `houses`
|
||||
SET
|
||||
`highest_bidder`='{$player['id']}',
|
||||
`bid`='{$bid_amount}',
|
||||
`last_bid`='{$lastbid}'
|
||||
WHERE `id`='{$house['id']}' LIMIT 1;
|
||||
");
|
||||
|
||||
$house = mysql_select_single("
|
||||
SELECT
|
||||
`id`, `owner`, `paid`, `name`, `rent`, `town_id`, `size`,
|
||||
`beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder`
|
||||
FROM `houses`
|
||||
WHERE `id`='{$house['id']}';
|
||||
");
|
||||
}
|
||||
|
||||
} else {
|
||||
$lastbid = $minbid + 1;
|
||||
$bidend = time() + $config['houseConfig']['auctionPeriod'];
|
||||
mysql_update("UPDATE `houses` SET `highest_bidder`='". $player['id'] ."', `bid`='$bid_amount', `last_bid`='$lastbid', `bid_end`='$bidend' WHERE `id`='". $house['id'] ."' LIMIT 1;");
|
||||
$house = mysql_select_single("SELECT `id`, `owner`, `paid`, `name`, `rent`, `town_id`, `size`, `beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder` FROM `houses` WHERE `id`='". $house['id'] ."';");
|
||||
|
||||
mysql_update("
|
||||
UPDATE `houses`
|
||||
SET
|
||||
`highest_bidder`='{$player['id']}',
|
||||
`bid`='{$bid_amount}',
|
||||
`last_bid`='{$lastbid}',
|
||||
`bid_end`='{$bidend}'
|
||||
WHERE `id`='{$house['id']}' LIMIT 1;
|
||||
");
|
||||
|
||||
$house = mysql_select_single("
|
||||
SELECT
|
||||
`id`, `owner`, `paid`, `name`, `rent`, `town_id`, `size`,
|
||||
`beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder`
|
||||
FROM `houses`
|
||||
WHERE `id`='{$house['id']}';
|
||||
");
|
||||
|
||||
}
|
||||
echo "<b><font color='green'>You have the highest bid on this house!</font></b>";
|
||||
} else echo "<b><font color='red'>You need to place a bid that is higher or equal to {$minbid}gp.</font></b>";
|
||||
|
||||
} else {
|
||||
// Check if current bid is higher than last_bid
|
||||
if ($bid_amount > $house['last_bid']) {
|
||||
@ -73,8 +133,21 @@ if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
// being forced to pay his full previous bid.
|
||||
if ($house['highest_bidder'] != $player['id']) {
|
||||
$lastbid = $bid_amount + 1;
|
||||
mysql_update("UPDATE `houses` SET `last_bid`='$lastbid' WHERE `id`='". $house['id'] ."' LIMIT 1;");
|
||||
$house = mysql_select_single("SELECT `id`, `owner`, `paid`, `name`, `rent`, `town_id`, `size`, `beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder` FROM `houses` WHERE `id`='". $house['id'] ."';");
|
||||
|
||||
mysql_update("
|
||||
UPDATE `houses`
|
||||
SET `last_bid`='$lastbid'
|
||||
WHERE `id`='{$house['id']}' LIMIT 1;
|
||||
");
|
||||
|
||||
$house = mysql_select_single("
|
||||
SELECT
|
||||
`id`, `owner`, `paid`, `name`, `rent`, `town_id`, `size`,
|
||||
`beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder`
|
||||
FROM `houses`
|
||||
WHERE `id`='{$house['id']}';
|
||||
");
|
||||
|
||||
echo "<b><font color='orange'>Unfortunately your bid was not higher than previous bidder.</font></b>";
|
||||
} else {
|
||||
echo "<b><font color='orange'>You already have a higher pledge on this house.</font></b>";
|
||||
@ -103,8 +176,22 @@ if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
if ($account_points >= $house['points']) {
|
||||
|
||||
$bid_char = (int)$bid_char;
|
||||
$player = mysql_select_single("SELECT `id`, `account_id`, `name`, `level` FROM `players` WHERE `id`='$bid_char' LIMIT 1;");
|
||||
$pHouseCount = mysql_select_single("SELECT COUNT('id') AS `value` FROM `houses` WHERE ((`highest_bidder`='$bid_char' AND `owner`='$bid_char') OR (`highest_bidder`='$bid_char') OR (`owner`='$bid_char')) AND `id`!='".$house['id']."' LIMIT 1;");
|
||||
$player = mysql_select_single("
|
||||
SELECT `id`, `account_id`, `name`, `level`
|
||||
FROM `players`
|
||||
WHERE `id`='$bid_char' LIMIT 1;
|
||||
");
|
||||
|
||||
$pHouseCount = mysql_select_single("
|
||||
SELECT COUNT('id') AS `value`
|
||||
FROM `houses`
|
||||
WHERE (
|
||||
(`highest_bidder`='$bid_char' AND `owner`='$bid_char')
|
||||
OR (`highest_bidder`='$bid_char')
|
||||
OR (`owner`='$bid_char')
|
||||
)
|
||||
AND `id`!='{$house['id']}' LIMIT 1;
|
||||
");
|
||||
|
||||
if (user_logged_in() === true
|
||||
&& $player['account_id'] == $session_user_id
|
||||
@ -177,12 +264,12 @@ if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
<li><b>Town</b>:
|
||||
<?php
|
||||
$town_name = &$config['towns'][$house['town_id']];
|
||||
echo "<a href='houses.php?id=". $house['town_id'] ."'>". ($town_name ? $town_name : 'Specify town id ' . $house['town_id'] . ' name in config.php first.') ."</a>";
|
||||
echo "<a href='houses.php?id={$house['town_id']}'>". ($town_name ? $town_name : 'Specify town id ' . $house['town_id'] . ' name in config.php first.') ."</a>";
|
||||
?></li>
|
||||
<li><b>Size</b>: <?php echo $house['size']; ?></li>
|
||||
<li><b>Beds</b>: <?php echo $house['beds']; ?></li>
|
||||
<li><b>Owner</b>: <?php
|
||||
if ($house['owner'] > 0) echo "<a href='characterprofile.php?name=". $house['ownername'] ."' target='_BLANK'>". $house['ownername'] ."</a>";
|
||||
if ($house['owner'] > 0) echo "<a href='characterprofile.php?name={$house['ownername']}' target='_BLANK'>{$house['ownername']}</a>";
|
||||
else echo "Available for auction.";
|
||||
?></li>
|
||||
<li><b>Rent</b>: <?php echo $house['rent']; ?></li>
|
||||
@ -198,17 +285,17 @@ if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
<?php
|
||||
if ($house['highest_bidder'] == 0) echo "<b>This house don't have any bidders yet.</b>";
|
||||
else {
|
||||
$bidder = mysql_select_single("SELECT `name` FROM `players` WHERE `id`='". $house['highest_bidder'] ."' LIMIT 1;");
|
||||
$bidder = mysql_select_single("SELECT `name` FROM `players` WHERE `id`='{$house['highest_bidder']}' LIMIT 1;");
|
||||
echo "<b>This house have bidders! If you want this house, now is your chance!</b>";
|
||||
echo "<br><b>Active bid:</b> ". $house['last_bid'] ."gp";
|
||||
echo "<br><b>Active bid by:</b> <a href='characterprofile.php?name=". $bidder['name'] ."' target='_BLANK'>". $bidder['name'] ."</a>";
|
||||
echo "<br><b>Active bid:</b> {$house['last_bid']}gp";
|
||||
echo "<br><b>Active bid by:</b> <a href='characterprofile.php?name={$bidder['name']}' target='_BLANK'>{$bidder['name']}</a>";
|
||||
echo "<br><b>Bid will end on:</b> ". getClock($house['bid_end'], true);
|
||||
}
|
||||
|
||||
if ($house['bid_end'] == 0 || $house['bid_end'] > time()) {
|
||||
if (user_logged_in()) {
|
||||
// Your characters, indexed by char_id
|
||||
$yourChars = mysql_select_multi("SELECT `id`, `name`, `balance` FROM `players` WHERE `account_id`='". $user_data['id'] ."';");
|
||||
$yourChars = mysql_select_multi("SELECT `id`, `name`, `balance` FROM `players` WHERE `account_id`='{$user_data['id']}';");
|
||||
if ($yourChars !== false) {
|
||||
$charData = array();
|
||||
foreach ($yourChars as $char) {
|
||||
@ -219,7 +306,7 @@ if ($house !== false && $config['ServerEngine'] === 'TFS_10') {
|
||||
<select name="char">
|
||||
<?php
|
||||
foreach ($charData as $id => $char) {
|
||||
echo "<option value='$id'>". $char['name'] ." [". $char['balance'] ."]</option>";
|
||||
echo "<option value='$id'>{$char['name']} [{$char['balance']}]</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
435
houses.php
435
houses.php
@ -5,317 +5,150 @@ include 'layout/overall/header.php';
|
||||
if ($config['log_ip'])
|
||||
znote_visitor_insert_detailed_data(3);
|
||||
|
||||
if (empty($_POST) === false && $config['ServerEngine'] === 'TFS_03') {
|
||||
// Fetch values
|
||||
$querystring_id = &$_GET['id'];
|
||||
$townid = ($querystring_id) ? (int)$_GET['id'] : $config['houseConfig']['HouseListDefaultTown'];
|
||||
$towns = $config['towns'];
|
||||
|
||||
/* Token used for cross site scripting security */
|
||||
if (isset($_POST['token']) && Token::isValid($_POST['token'])) {
|
||||
$order = &$_GET['order'];
|
||||
$type = &$_GET['type'];
|
||||
|
||||
$townid = (int)$_POST['selected'];
|
||||
$cache = new Cache('engine/cache/houses');
|
||||
$array = array();
|
||||
if ($cache->hasExpired()) {
|
||||
$tmp = fetchAllHouses_03();
|
||||
$cache->setContent($tmp);
|
||||
$cache->save();
|
||||
// Create Search house box
|
||||
?>
|
||||
<form action="" method="get" class="houselist">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Town</td>
|
||||
<td>Order</td>
|
||||
<td>Sort</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<select name="id">
|
||||
<?php
|
||||
foreach ($towns as $id => $name)
|
||||
echo '<option value="'. $id .'"' . ($townid != $id ?: ' selected') . '>'. $name .'</option>';
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="order">
|
||||
<?php
|
||||
$order_allowed = array('id', 'name', 'size', 'beds', 'rent', 'owner');
|
||||
foreach($order_allowed as $o)
|
||||
echo '<option value="' . $o . '"' . ($o != $order ?: ' selected') . '>' . ucfirst($o) . '</option>';
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="type">
|
||||
<?php
|
||||
$type_allowed = array('desc', 'asc');
|
||||
foreach($type_allowed as $t)
|
||||
echo '<option value="' . $t . '"' . ($t != $type ?: ' selected') . '>' . ($t == 'desc' ? 'Descending' : 'Ascending') .'</option>';
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<input type="submit" value="Fetch houses"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<?php
|
||||
if(!in_array($order, $order_allowed))
|
||||
$order = 'id';
|
||||
|
||||
foreach ($tmp as $t) {
|
||||
if ($t['town'] == $townid) $array[] = $t;
|
||||
}
|
||||
$array = isset($array) ? $array : false;
|
||||
} else {
|
||||
$tmp = $cache->load();
|
||||
foreach ($tmp as $t) {
|
||||
if ($t['town'] == $townid) $array[] = $t;
|
||||
}
|
||||
$array = isset($array) ? $array : false;
|
||||
if(!in_array($type, $type_allowed))
|
||||
$type = 'desc';
|
||||
|
||||
// Create or fetch data from cache
|
||||
$cache = new Cache('engine/cache/houses/houses-' . $order . '-' . $type);
|
||||
$houses = array();
|
||||
|
||||
if ($cache->hasExpired()) {
|
||||
|
||||
$houses = mysql_select_multi("
|
||||
SELECT
|
||||
`id`, `owner`, `paid`, `warnings`, `name`, `rent`, `town_id`,
|
||||
`size`, `beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder`
|
||||
FROM `houses`
|
||||
ORDER BY {$order} {$type};
|
||||
");
|
||||
|
||||
if ($houses !== false) {
|
||||
// Fetch player names
|
||||
$playerlist = array();
|
||||
|
||||
foreach ($houses as $h)
|
||||
if ($h['owner'] > 0)
|
||||
$playerlist[] = $h['owner'];
|
||||
|
||||
if (!empty($playerlist)) {
|
||||
$ids = join(',', $playerlist);
|
||||
$tmpPlayers = mysql_select_multi("SELECT `id`, `name` FROM players WHERE `id` IN ($ids);");
|
||||
|
||||
// Sort $tmpPlayers by player id
|
||||
$tmpById = array();
|
||||
foreach ($tmpPlayers as $p)
|
||||
$tmpById[$p['id']] = $p['name'];
|
||||
|
||||
for ($i = 0; $i < count($houses); $i++)
|
||||
if ($houses[$i]['owner'] > 0)
|
||||
$houses[$i]['ownername'] = $tmpById[$houses[$i]['owner']];
|
||||
}
|
||||
|
||||
// Design and present the list
|
||||
if ($array) {
|
||||
$guild_support = (isset($array[0]['guild'])) ? true : false;
|
||||
?>
|
||||
<h2>
|
||||
<?php echo ucfirst(town_id_to_name($townid)); ?> house list.
|
||||
</h2>
|
||||
<div class="well widget">
|
||||
<div class="header">
|
||||
Town list / houses
|
||||
</div>
|
||||
<div class="body">
|
||||
<form action="houses.php" method="<?php if ($config['ServerEngine'] !== 'TFS_10') echo "post"; else echo "get" ;?>">
|
||||
<select name="<?php if ($config['ServerEngine'] !== 'TFS_10') echo "selected"; else echo "id" ;?>">
|
||||
<?php
|
||||
foreach ($config['towns'] as $id => $name)
|
||||
echo '<option value="'. $id .'">'. $name .'</option>';
|
||||
?>
|
||||
</select>
|
||||
<?php Token::create(); ?>
|
||||
<input type="submit" value="Fetch houses">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<table id="housesTable" class="table table-striped">
|
||||
<tr class="yellow">
|
||||
<th>Name:</th>
|
||||
<th>Size:</th>
|
||||
<th>Doors:</th>
|
||||
<th>Beds:</th>
|
||||
<th>Price:</th>
|
||||
<th>Owner:</th>
|
||||
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($array as $value) {
|
||||
echo '<tr>';
|
||||
echo "<td>". $value['name'] ."</td>";
|
||||
echo "<td>". $value['size'] ."</td>";
|
||||
echo "<td>". $value['doors'] ."</td>";
|
||||
echo "<td>". $value['beds'] ."</td>";
|
||||
echo "<td>". $value['price'] ."</td>";
|
||||
if ($value['owner'] == 0)
|
||||
echo "<td>None</td>";
|
||||
else {
|
||||
if ($guild_support && $value['guild'] == 1) {
|
||||
$guild_name = get_guild_name($value['owner']);
|
||||
echo '<td><a href="guilds.php?name='. $guild_name .'">'. $guild_name .'</a></td>';
|
||||
} else {
|
||||
$data = user_character_data($value['owner'], 'name');
|
||||
echo '<td><a href="characterprofile.php?name='. $data['name'] .'">'. $data['name'] .'</a></td>';
|
||||
}
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<?php
|
||||
} else {
|
||||
echo 'Empty list, it appears no houses are listed in this town.';
|
||||
}
|
||||
//Done.
|
||||
} else {
|
||||
echo 'Token appears to be incorrect.<br><br>';
|
||||
//Token::debug($_POST['token']);
|
||||
echo 'Please clear your web cache/cookies <b>OR</b> use another web browser<br>';
|
||||
$cache->setContent($houses);
|
||||
$cache->save();
|
||||
}
|
||||
} else {
|
||||
if (empty($_POST) === true && $config['ServerEngine'] === 'TFS_03') {
|
||||
?>
|
||||
<div class="well widget">
|
||||
<div class="header">
|
||||
Town list / houses
|
||||
</div>
|
||||
<div class="body">
|
||||
<form action="houses.php" method="<?php if ($config['ServerEngine'] !== 'TFS_10') echo "post"; else echo "get" ;?>">
|
||||
<select name="<?php if ($config['ServerEngine'] !== 'TFS_10') echo "selected"; else echo "id" ;?>">
|
||||
<?php
|
||||
foreach ($config['towns'] as $id => $name)
|
||||
echo '<option value="'. $id .'">'. $name .'</option>';
|
||||
?>
|
||||
</select>
|
||||
<?php Token::create(); ?>
|
||||
<input type="submit" value="Fetch houses">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
} else
|
||||
$houses = $cache->load();
|
||||
|
||||
if ($houses !== false || !empty($houses)) {
|
||||
// Intialize stuff
|
||||
//data_dump($houses, false, "House data");
|
||||
?>
|
||||
<table id="housetable">
|
||||
<tr class="yellow">
|
||||
<th>Name</th>
|
||||
<th>Size</th>
|
||||
<th>Beds</th>
|
||||
<th>Rent</th>
|
||||
<th>Owner</th>
|
||||
<th>Town</th>
|
||||
</tr>
|
||||
<?php
|
||||
} else if ($config['ServerEngine'] === 'TFS_02' || $config['ServerEngine'] == 'OTHIRE') {
|
||||
$house = $config['house'];
|
||||
if (!is_file($house['house_file'])) {
|
||||
echo("<h3>House file not found</h3><p>FAILED TO LOCATE/READ FILE AT:<br><font color='red'>". $house['house_file'] ."</font><br><br>LINUX users: Make sure www-data have read access to file.<br>WINDOWS users: Learn to write correct file path.</p>");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Load and cache SQL house data:
|
||||
$cache = new Cache('engine/cache/houses/sqldata');
|
||||
if ($cache->hasExpired()) {
|
||||
$house_query = mysql_select_multi('SELECT `players`.`name`, `houses`.`id` FROM `players`, `houses` WHERE `houses`.`owner` = `players`.`id`;');
|
||||
|
||||
$cache->setContent($house_query);
|
||||
$cache->save();
|
||||
} else
|
||||
$house_query = $cache->load();
|
||||
|
||||
$sqmPrice = $house['price_sqm'];
|
||||
$house_load = simplexml_load_file($house['house_file']);
|
||||
if ($house_query !== false && $house_load !== false) {
|
||||
?>
|
||||
<h2>House list</h2>
|
||||
<table>
|
||||
<tr class="yellow">
|
||||
<td><b>House</b></td>
|
||||
<td><b>Location</b></td>
|
||||
<td><b>Owner</b></td>
|
||||
<td><b>Size</b></td>
|
||||
<td><b>Rent</b></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
//execute code.
|
||||
foreach($house_query as $row)
|
||||
$house_info[(int)$row['id']] = '<a href="characterprofile.php?name='. $row['name'] .'">'. $row['name'] .'</a>';
|
||||
|
||||
foreach ($house_load as $house_fetch){
|
||||
$house_price = (int)$house_fetch['size'] * $sqmPrice;
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo htmlspecialchars($house_fetch['name']); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
if (isset($config['towns'][(int)$house_fetch['townid']])) echo htmlspecialchars($config['towns'][(int)$house_fetch['townid']]);
|
||||
else echo '(Missing town)';
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
if (isset($house_info[(int)$house_fetch['houseid']])) echo $house_info[(int)$house_fetch['houseid']];
|
||||
else echo 'None [Available]';
|
||||
?>
|
||||
</td>
|
||||
<td><?php echo $house_fetch['size']; ?></td>
|
||||
<td><?php echo $house_price; ?></td>
|
||||
</tr>
|
||||
foreach ($houses as $house) {
|
||||
if ($house['town_id'] == $townid) {
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo "<a href='house.php?id=". $house['id'] ."'>". $house['name'] ."</a>"; ?></td>
|
||||
<td><?php echo $house['size']; ?></td>
|
||||
<td><?php echo $house['beds']; ?></td>
|
||||
<td><?php echo $house['rent']; ?></td>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<?php
|
||||
} else echo '<p><font color="red">Something is wrong with the cache.</font></p>';
|
||||
} else if ($config['ServerEngine'] === 'TFS_10') {
|
||||
// Fetch values
|
||||
$querystring_id = &$_GET['id'];
|
||||
$townid = ($querystring_id) ? (int)$_GET['id'] : $config['houseConfig']['HouseListDefaultTown'];
|
||||
$towns = $config['towns'];
|
||||
|
||||
$order = &$_GET['order'];
|
||||
$type = &$_GET['type'];
|
||||
|
||||
// Create Search house box
|
||||
?>
|
||||
<form action="" method="get" class="houselist">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Town</td>
|
||||
<td>Order</td>
|
||||
<td>Sort</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<select name="id">
|
||||
<?php
|
||||
foreach ($towns as $id => $name)
|
||||
echo '<option value="'. $id .'"' . ($townid != $id ?: ' selected') . '>'. $name .'</option>';
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="order">
|
||||
<?php
|
||||
$order_allowed = array('id', 'name', 'size', 'beds', 'rent', 'owner');
|
||||
foreach($order_allowed as $o)
|
||||
echo '<option value="' . $o . '"' . ($o != $order ?: ' selected') . '>' . ucfirst($o) . '</option>';
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="type">
|
||||
<?php
|
||||
$type_allowed = array('desc', 'asc');
|
||||
foreach($type_allowed as $t)
|
||||
echo '<option value="' . $t . '"' . ($t != $type ?: ' selected') . '>' . ($t == 'desc' ? 'Descending' : 'Ascending') .'</option>';
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<input type="submit" value="Fetch houses"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<?php
|
||||
if(!in_array($order, $order_allowed))
|
||||
$order = 'id';
|
||||
|
||||
if(!in_array($type, $type_allowed))
|
||||
$type = 'desc';
|
||||
|
||||
// Create or fetch data from cache
|
||||
$cache = new Cache('engine/cache/houses/houses-' . $order . '-' . $type);
|
||||
$houses = array();
|
||||
if ($cache->hasExpired()) {
|
||||
$houses = mysql_select_multi("SELECT `id`, `owner`, `paid`, `warnings`, `name`, `rent`, `town_id`, `size`, `beds`, `bid`, `bid_end`, `last_bid`, `highest_bidder` FROM `houses` ORDER BY {$order} {$type};");
|
||||
if ($houses !== false) {
|
||||
// Fetch player names
|
||||
$playerlist = array();
|
||||
|
||||
foreach ($houses as $h)
|
||||
if ($h['owner'] > 0)
|
||||
$playerlist[] = $h['owner'];
|
||||
|
||||
if (!empty($playerlist)) {
|
||||
$ids = join(',', $playerlist);
|
||||
$tmpPlayers = mysql_select_multi("SELECT `id`, `name` FROM players WHERE `id` IN ($ids);");
|
||||
|
||||
// Sort $tmpPlayers by player id
|
||||
$tmpById = array();
|
||||
foreach ($tmpPlayers as $p)
|
||||
$tmpById[$p['id']] = $p['name'];
|
||||
|
||||
for ($i = 0; $i < count($houses); $i++)
|
||||
if ($houses[$i]['owner'] > 0)
|
||||
$houses[$i]['ownername'] = $tmpById[$houses[$i]['owner']];
|
||||
}
|
||||
|
||||
$cache->setContent($houses);
|
||||
$cache->save();
|
||||
}
|
||||
} else
|
||||
$houses = $cache->load();
|
||||
|
||||
if ($houses !== false || !empty($houses)) {
|
||||
// Intialize stuff
|
||||
//data_dump($houses, false, "House data");
|
||||
?>
|
||||
<table id="housetable">
|
||||
<tr class="yellow">
|
||||
<th>Name</th>
|
||||
<th>Size</th>
|
||||
<th>Beds</th>
|
||||
<th>Rent</th>
|
||||
<th>Owner</th>
|
||||
<th>Town</th>
|
||||
// Status:
|
||||
if ($house['owner'] != 0)
|
||||
echo "<td><a href='characterprofile.php?name=". $house['ownername'] ."' target='_BLANK'>". $house['ownername'] ."</a></td>";
|
||||
else
|
||||
echo ($house['highest_bidder'] == 0 ? '<td>None</td>' : '<td><b>Selling</b></td>');
|
||||
?>
|
||||
<td><?php
|
||||
$town_name = &$towns[$house['town_id']];
|
||||
echo ($town_name ? $town_name : 'Specify town id ' . $house['town_id'] . ' name in config.php first.');
|
||||
?></td>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($houses as $house) {
|
||||
if ($house['town_id'] == $townid) {
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo "<a href='house.php?id=". $house['id'] ."'>". $house['name'] ."</a>"; ?></td>
|
||||
<td><?php echo $house['size']; ?></td>
|
||||
<td><?php echo $house['beds']; ?></td>
|
||||
<td><?php echo $house['rent']; ?></td>
|
||||
<?php
|
||||
// Status:
|
||||
if ($house['owner'] != 0)
|
||||
echo "<td><a href='characterprofile.php?name=". $house['ownername'] ."' target='_BLANK'>". $house['ownername'] ."</a></td>";
|
||||
else
|
||||
echo ($house['highest_bidder'] == 0 ? '<td>None</td>' : '<td><b>Selling</b></td>');
|
||||
?>
|
||||
<td><?php
|
||||
$town_name = &$towns[$house['town_id']];
|
||||
echo ($town_name ? $town_name : 'Specify town id ' . $house['town_id'] . ' name in config.php first.');
|
||||
?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
}
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
} else
|
||||
echo "<h1>Failed to fetch data from sql->houses table.</h1><p>Is the table empty?</p>";
|
||||
} // End TFS 1.0 logic
|
||||
<?php
|
||||
} else {
|
||||
echo "<h1>Failed to fetch data from sql->houses table.</h1><p>Is the table empty?</p>";
|
||||
}
|
||||
|
||||
include 'layout/overall/footer.php'; ?>
|
||||
|
Loading…
x
Reference in New Issue
Block a user