Alle Dateien, die hier eingesehen werden können, sind unter der GNU GPL lizenziert. Wenn du etwas darin findest, das du gerne hättest, so schreibe mir doch bitte eine Anfrage damit ich, wenn ich es rausgeben will, alle Änderungen raussuchen könnte. Denn ich übernehme keine Verantwortung, solltest du was rausnehmen und es geht nicht. Und Support deswegen geb ich schon gar nicht.
Solltest du eine Schwachstelle im Code finden, sei es eine kritische Lücke oder eine Möglichkeit zu cheaten, dann bitte ich dich, mir das mitzuteilen. Solltest du beim cheaten erwischt werden, werde ich deinen Account eigenhändig löschen & bannen; Solltest du meinen Server angreifen, so werde ich meine Rechtsschutzversicherung kontaktieren.
Verzeichnisse:
<?php
/*
* Version: 25.04.2004
* Author: anpera
* Email: logd@anpera.de
*
* Purpose: Admin tool for houses
*
* BETA !!
*
* Ok, lets do the code...
*
*
* Version: 02.07.2005
* Revision: Chaosmaker
* Email: webmaster@chaosonline.de
*
*
*
* Kleine Veränderung 21112009 by Kita
*
*
* Möglichkeit eingebaut, für jedes Wohngebiet einen individuellen Text schreiben zu können.
* DB-Fieldname: loctext
*/
require_once("common.php");
require_once('housefunctions.php');
page_header("Hausmeister");
addnav("W?Zurück zum Weltlichen","village.php");
addnav("G?Zurück zur Grotte","superuser.php");
if ($_GET['op']=="drin"){
if (!empty($_GET['subop'])) {
if ($_GET['subop']=='addmodule') {
// add a module
$sql = 'SELECT modulefile, modulename FROM housemodules WHERE moduleid='.$_GET['mid'];
$result = db_query($sql);
if ($row = db_fetch_assoc($result)) {
require_once('housemodules/'.$row['modulefile']);
$function = 'module_build_'.$row['modulename'];
$function($_GET['id']);
}
}
elseif ($_GET['subop']=='delmodule') {
// delete a module
$sql = 'SELECT modulefile, modulename FROM housemodules WHERE moduleid='.$_GET['mid'];
$result = db_query($sql);
if ($row = db_fetch_assoc($result)) {
require_once('housemodules/'.$row['modulefile']);
$function = 'module_destroy_'.$row['modulename'];
$function($_GET['id']);
}
}
}
addnav("Schlüssel hinzufügen","suhouses.php?op=keys&hid=$_REQUEST[id]");
addnav("Daten ändern","suhouses.php?op=data&id=$_REQUEST[id]");
addnav("Haus zerstören","suhouses.php?op=destroy&id=$_REQUEST[id]"); // bad idea
addnav("Kommentare","suhouses.php?op=comment&id=$_REQUEST[id]");
addnav("Hausmeister","suhouses.php");
$sql="SELECT * FROM houses WHERE houseid=$_REQUEST[id]";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
output("`n`@Hausnummer: `^`b$row[houseid]`b");
output("`n`@Name: `^`b$row[housename]`b");
output("`n`@Beschreibung: `^`b$row[description]`b");
output("`n`@Goldpreis (wenn im Bau): `^`b$row[goldprice]`b");
output("`n`@Edelsteinpreis (wenn im Bau): `^`b$row[gemprice]`b");
output("`n`@Status: `^`b$row[status]`b (");
if ($row['status']=='build') {
if ($row['owner']>0) output("`6im Bau`0");
else output("`\$Bauruine`0");
}
elseif ($row['status']=='ready') {
if ($row['owner']>0) output("`!bewohnt`0");
else output("`4verlassen`0");
}
elseif ($row['status']=='sell') output("`^zum Verkauf`0");
if ($row['owner']>0) {
$sql = "SELECT name FROM accounts WHERE acctid=$row[owner]";
$result2 = db_query($sql);
$row2 = db_fetch_assoc($result2);
output("`^)`n`@Besitzer: `^`b$row[owner]`b ($row2[name]`^)");
}
else output("`^)`n`@Besitzer: `^`b`iderzeit niemand`i`b");
output("`n`n`@Schlüssel: `^`n");
output("<table border='0' cellpadding='3' cellspacing='0'><tr><td>Nr.</td><td>Owner ID (Name)</td><td>Hausnr</td><td>Nr. (DB)</td><td>gebraucht?</td><td>Ops</td></tr>",true);
$sql = "SELECT items.*,accounts.acctid, accounts.name FROM items LEFT JOIN accounts ON accounts.acctid=items.owner WHERE items.value1=$row[houseid] AND items.class='Schlüssel' ORDER BY items.value2 ASC,items.id ASC";
$result = db_query($sql) or die(db_error(LINK));
for ($i=1;$i<=db_num_rows($result);$i++){
$item = db_fetch_assoc($result);
output("<tr><td>`b$i`b</td><td>".($item['acctid']?"$item[acctid] ($item[name])":"0 (`4Verloren`0)")."</td><td>$item[value1]</td><td>$item[value2]</td><td>$item[hvalue]</td><td>",true);
if ($row2['name']==""){
output("<a href='suhouses.php?op=keys&subop=change&hid=$_REQUEST[id]&id2=$i&owner=$row[owner]'>Reset</a> | ",true);
addnav("","suhouses.php?op=keys&subop=change&hid=$_REQUEST[id]&id2=$i&owner=$row[owner]");
}
output("<a href='suhouses.php?op=keys&subop=edit&id=$item[id]&hid=$_REQUEST[id]'>Edit</a> | <a href='suhouses.php?op=keys&subop=delete&id=$item[id]&hid=$_REQUEST[id]' onClick=\"return confirm('Diesen Schlüssel wirklich löschen?');\">Löschen</a>",true);
addnav("","suhouses.php?op=keys&subop=edit&id=$item[id]&hid=$_REQUEST[id]");
addnav("","suhouses.php?op=keys&subop=delete&id=$item[id]&hid=$_REQUEST[id]");
output("</td></tr>",true);
}
output("</table>`n",true);
output('`n`n`@Gebaute Module: `^`n');
output("<table border='0' cellpadding='3' cellspacing='0'><tr><td>eingebaut</td><td>interner Name</td><td>externer Name</td><td>Kategorie</td><td>immer inklusive</td><td>Ops</td></tr>",true);
$sql = 'SELECT hm.moduleid, hm.linkcategory, hm.linktitle, hm.modulename, hm.built_in, hmd.value
FROM housemodules hm
LEFT JOIN housemoduledata hmd
ON hmd.moduleid=hm.moduleid
AND hmd.houseid="'.$_REQUEST['id'].'"
AND hmd.name="#activated#"
ORDER BY hm.linkorder ASC';
$result = db_query($sql) or die(db_error(LINK));
while ($row = db_fetch_assoc($result)) {
if ($row['built_in']==1 || $row['value']==1) output('<tr><td>`2ja`0</td>',true);
else output('<tr><td>`4nein`0</td>',true);
output('<td>'.$row['modulename'].'</td><td>'.$row['linktitle'].'</td><td>'.$row['linkcategory'].'</td><td>'.$row['built_in'].'</td>',true);
if ($row['built_in']==0) {
if ($row['value']==1) {
output('<td><a href="suhouses.php?op=drin&subop=delmodule&mid='.$row['moduleid'].'&id='.$_REQUEST['id'].'">entfernen</a></td>',true);
addnav('','suhouses.php?op=drin&subop=delmodule&mid='.$row['moduleid'].'&id='.$_REQUEST['id']);
}
else {
output('<td><a href="suhouses.php?op=drin&subop=addmodule&mid='.$row['moduleid'].'&id='.$_REQUEST['id'].'">hinzufügen</a></td>',true);
addnav('','suhouses.php?op=drin&subop=addmodule&mid='.$row['moduleid'].'&id='.$_REQUEST['id']);
}
}
else output('<td> </td>',true);
output('</tr>',true);
}
output('</table>',true);
}else if ($_GET['op']=="comment"){
if ($_GET['subop']=="delete"){
$sql = "DELETE FROM commentary WHERE commentid='$_GET[commentid]'";
db_query($sql);
}
viewcommentary("house-$_GET[id]","X",100);
addnav("Zurück zu Haus $_GET[id]","suhouses.php?op=drin&id=$_GET[id]");
}else if ($_GET['op']=="info"){
$sql="SELECT acctid,name,house,housekey FROM accounts WHERE house ORDER BY house ASC";
output("<table cellpadding=2 align='center'><tr><td>`bacctid`b</td><td>`bName`b</td><td>`bhouse`b</td><td>`bhousekey`b</td></tr>",true);
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)==0){
output("<tr><td colspan=4 align='center'>`&`iEs gibt keine Häuser`i`0</td></tr>",true);
}else{
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
output("<tr><td align='center'>$row[acctid]</td><td>$row[name]</td><td>$row[house]</td><td>$row[housekey]</td></tr>",true);
}
}
output("</table>",true);
addnav("Hausmeister","suhouses.php");
}else if ($_GET['op']=="destroy"){ // bad idea! write this code on your own risk! .. ok, i wrote it
if ($_GET['subop']=="confirmed"){
// first, delete all modules of this house
$sql = 'SELECT modulefile, modulename FROM housemoduledata LEFT JOIN housemodules USING(moduleid) WHERE value="#activated#"';
$result = db_query($sql);
while ($row = db_fetch_assoc($result)) {
require_once('housemodules/'.$row['modulefile']);
$function = 'module_destroy_'.$row['modulename'];
$function($_GET['id']);
}
$sql="DELETE FROM houses WHERE houseid=$_GET[id]";
db_query($sql);
$sql="DELETE FROM items WHERE class='Schlüssel' AND value1=$_GET[id]";
db_query($sql);
$sql="UPDATE accounts SET house=0,housekey=0 WHERE house=$_GET[id]";
db_query($sql);
output("`@Haus gelöscht");
}else{
output("`b`\$Haus Nummer $_GET[id] und alle Schlüssel wirklich löschen?`b");
addnav("LÖSCHEN","suhouses.php?op=destroy&subop=confirmed&id=$_GET[id]");
}
addnav("Hausmeister","suhouses.php");
}
elseif ($_GET['op']=="newhouse") {
addnav("Hausmeister","suhouses.php");
if ($_GET['subop']=="save") { // save new house
if ($_POST['auto']=="true") { // check given data
$sql = "SELECT house,housekey FROM accounts WHERE acctid=$_POST[owner]";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
if ($row['house']>0 && !empty($_POST['owner'])) {
output("`\$Fehler: Zielperson besitzt bereits ein anderes Haus oder existiert nicht.");
}
elseif (empty($_POST['housename'])) {
output("`\$Fehler: Du musst einen Namen für das Haus eingeben.");
}
else {
if ($_POST['status']=='sell' && (int)$_POST['owner']>0) {
output("`^Warnung: Diesem Status darf kein Besitzer zugeordnet werden. Besitzer auf 0 gesetzt.`n");
$_POST['owner'] = "0";
}
output("`@Neues Haus erstellt.`n");
$sql = "INSERT INTO houses (owner,status,goldprice,gemprice,housename,description,locid) VALUES ($_POST[owner],'$_POST[status]',$_POST[goldprice],$_POST[gemprice],'$_POST[housename]','$_POST[description]','$_POST[locid]')";
db_query($sql);
$sql = "SELECT houseid FROM houses WHERE owner=$_POST[owner] ORDER BY houseid DESC LIMIT 1";
$result2 = db_query($sql) or die(db_error(LINK));
$row2 = db_fetch_assoc($result2);
if ($_POST['status']=="ready") {
for ($i=1;$i<getsetting('newhousekeys',10);$i++) {
$sql = "INSERT INTO items (name,owner,class,value1,value2,description) VALUES ('Hausschlüssel',".($_POST['owner']>0?"$_POST[owner]":"0").",'Schlüssel',$row2[houseid],$i,'Schlüssel für Haus Nummer $row2[houseid]')";
db_query($sql);
}
output("`@Schlüssel in Datenbank eingetragen`n");
}
if ($_POST['status']!="sell"){
$sql="UPDATE accounts SET house=$row2[houseid],housekey=".($_POST['status']=="ready"?"$row2[houseid]":"0")." WHERE acctid=$_POST[owner]";
output("`@Userdatenbank angepasst`n");
db_query($sql);
}
}
}
else {
output("`@Neues Haus erstellt.");
$sql = "INSERT INTO houses (owner,status,goldprice,gemprice,housename,description,locid) VALUES ($_POST[owner],'$_POST[status]',$_POST[goldprice],$_POST[gemprice],'$_POST[housename]','$_POST[description]','$_POST[locid]')";
db_query($sql);
}
}
else {
output("`@Neues Haus anlegen:`n`n");
output("`0<form action=\"suhouses.php?op=newhouse&subop=save\" method='POST'>",true);
output("<table><tr><td>Name </td><td><input name='housename' maxlength='25'></td></tr>",true);
output("<tr><td>Goldpreis (im Bau) </td><td><input type='text' name='goldprice' value='0'> </td></tr>",true);
output("<tr><td>Edelsteinpreis (im Bau) </td><td><input type='text' name='gemprice' value='0'></td></tr>",true);
output("<tr><td>Beschreibung </td><td><input type='text' name='description' maxlength='250'></td></tr>",true);
output("<tr><td>Standort </td><td><select name='locid'>",true);
$sql = 'SELECT locid, locname FROM houseconfig ORDER BY locname ASC';
$result = db_query($sql);
while ($row = db_fetch_assoc($result)) output('<option value="'.$row['locid'].'">'.$row['locname'].'</option>',true);
output('</select></td></tr>',true);
output("<tr><td>Status </td><td><select name='status'><option value='build'>im Bau</option><option value='ready'>fertig</option><option value='sell'>zum Verkauf</option></select></td></tr>",true);
output("<tr><td>`4Besitzer (ID)`0 </td><td><input type='text' name='owner' value='0'> `4(VORSICHT!)`0</td></tr>",true);
output("<tr><td>`4Sicherer Modus`0 </td><td><input type='checkbox' name='auto' checked='true' value='true'> `4(VORSICHT!)`0</td></tr></table>`n",true);
output("<input type='submit' class='button' value='Speichern'></form>",true);
output("`0`n`nIm unsicheren Modus Haus auch im User-Editor beim Besitzer eintragen! Status berücksichtigen! Schlüsselverwaltung!");
addnav("","suhouses.php?op=newhouse&subop=save");
}
}else if ($_GET['op']=="keys"){
addnav("Hausmeister","suhouses.php");
addnav("Zurück zu Haus $_GET[hid]","suhouses.php?op=drin&id=$_GET[hid]");
if ($_GET['subop']=="change"){ // reset key owner
$sql="UPDATE items SET owner=$_GET[owner] WHERE value1=$_GET[hid] AND class='Schlüssel' AND value2=$_GET[id2]";
db_query($sql);
output("`@Schlüssel `^$_GET[id2]`@ für Haus Nummer `^$_GET[hid]`@ zurückgesetzt.");
}
elseif ($_GET['subop']=="edit"){ // enter new values for key
$sql = "SELECT * FROM items WHERE id=$_GET[id]";
$result = db_query($sql) or die(db_error(LINK));
$item = db_fetch_assoc($result);
output("`@Schlüssel Nr. $item[value2] (item-ID $_GET[id]) für Haus $_GET[hid] bearbeiten:`n`n");
output("`0<form action=\"suhouses.php?op=keys&subop=edit2&id=$_GET[id]&hid=$_GET[hid]\" method='POST'>",true);
output("<table>",true);
output("<tr><td>Besitzer (owner: acctid) </td><td><input type='text' name='owner' value='$item[owner]'></td></tr>",true);
// output("<tr><td>Für Haus Nr. (value1) </td><td><input type='text' name='value1' value='$item[value1]'></td></tr>",true); // to change house delete the key and add a new key in other house
output("<tr><td>In Gebrauch? (hvalue: 0 oder Hausnr.) </td><td><input type='text' name='hvalue' value='$item[hvalue]'></td></tr>",true);
output("<tr><td>`4Schlüssel-ID (value2: Laufende Nr.)`0 </td><td><input type='text' name='value2' value='$item[value2]'> `4(VORSICHT!)`0</td></tr>",true);
output("</table>`n",true);
output("<input type='submit' class='button' value='Speichern'></form>",true);
output("`0`n`nSchlüssel-ID darf nicht doppelt vergeben werden.`nSchlüssel ohne Besitzer werden als verloren behandelt.");
addnav("","suhouses.php?op=keys&subop=edit2&id=$_GET[id]&hid=$_GET[hid]");
}
elseif ($_GET['subop']=="edit2"){ // save new values into DB
$sql = "SELECT * FROM items WHERE id=$_GET[id]";
$result = db_query($sql) or die(db_error(LINK));
$item = db_fetch_assoc($result);
$action=false;
if ((int)$_POST['value2']!=(int)$item['value2']){
$sql = "SELECT id FROM items WHERE class='Schlüssel' AND value1=$_GET[hid] AND value2=$_POST[value2]";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
if ($row[id]){
output("`\$Fehler: Diese ID ist bereits vergeben.");
}else{
$action=true;
}
}
if ((int)$item['owner']!=(int)$_POST['owner']){
$action=false;
$sql = "SELECT acctid FROM accounts WHERE acctid=$_POST[owner]";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
if (!$row[acctid]){
output("`\$Fehler: Der User existiert nicht.");
}else{
$action=true;
}
}
if ($action){
$sql = "UPDATE items SET owner=$_POST[owner],value2=$_POST[value2],hvalue=$_POST[hvalue] WHERE id=$_GET[id]";
db_query($sql);
output("`@Änderungen übernommen.");
}
}
elseif ($_GET['subop']=="savenew"){ // save new key
if ($_POST['value2']){
$sql = "SELECT value1,value2 FROM items WHERE class='Schlüssel' AND value2=$_POST[value2] AND value1=$_GET[hid]";
$result = db_query($sql) or die(db_error(LINK));
$item = db_fetch_assoc($result);
$sql="SELECT COUNT(acctid) AS num FROM accounts WHERE acctid=$_POST[owner]";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
}
if (empty($_POST['value2'])){
output("`\$Fehler: Du musst eine Schlüssel-ID angeben");
}
elseif ((int)$item['value2']==(int)$_POST['value2']){
output("`\$Fehler: Diese ID ist bereits vergeben.");
}
elseif ($row['num']==0){
output("`\$Fehler: Der User existiert nicht.");
}
else{
$sql = "INSERT INTO items (name,owner,class,value1,value2,hvalue,description) VALUES ('Hausschlüssel',$_POST[owner],'Schlüssel',$_GET[hid],$_POST[value2],$_POST[hvalue],'Schlüssel für Haus Nummer $_GET[hid]')";
db_query($sql);
output("`@Schlüssel eingetragen.");
}
}
elseif ($_GET['subop']=="delete"){ // delete key
output("`@Schlüssel gelöscht.");
$sql = "DELETE FROM items WHERE id=$_GET[id]";
db_query($sql);
}
else{ // enter new key
output("`@Neuen Schlüssel für Haus $_GET[hid] anlegen:`n`n");
output("`0<form action=\"suhouses.php?op=keys&subop=savenew&hid=$_GET[hid]\" method='POST'>",true);
output("<table>",true);
output("<tr><td>Besitzer (owner: acctid) </td><td><input type='text' name='owner' value='0'></td></tr>",true);
output("<tr><td>In Gebrauch? (hvalue: 0 oder Hausnr.) </td><td><input type='text' name='hvalue' value='0'></td></tr>",true);
output("<tr><td>`4Schlüssel-ID (value2: Laufende Nr.)`0 </td><td><input type='text' name='value2'> `4(VORSICHT!)`0</td></tr>",true);
output("</table>`n",true);
output("<input type='submit' class='button' value='Speichern'></form>",true);
output("`0`n`nSchlüssel-ID darf nicht doppelt vergeben werden.`nSchlüssel ohne Besitzer werden als verloren behandelt.");
addnav("","suhouses.php?op=keys&subop=savenew&hid=$_GET[hid]");
}
}else if ($_GET['op']=="data"){
addnav("Hausmeister","suhouses.php");
addnav("Zurück zu Haus $_GET[id]","suhouses.php?op=drin&id=$_GET[id]");
if ($_GET['subop']=="save"){ // save values
$action=false;
if ($_POST['auto']=="true"){ // check given data
$sql = "SELECT * FROM houses WHERE houseid=$_GET[id]";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
$sql = "SELECT house,housekey FROM accounts WHERE acctid=$_POST[owner]";
$result2 = db_query($sql) or die(db_error(LINK));
$row2 = db_fetch_assoc($result2);
if ($row2['house']!=$_GET['id'] && $row2['house']>0){
output("`\$Fehler: Zielperson besitzt bereits ein anderes Haus oder existiert nicht. Datenbank nicht aktualisiert.");
}
elseif ($row['status']!=$_POST['status'] && $row['owner']!=$_POST['owner']){
output("`\$Fehler: Status und Besitzer können im sicheren Modus nicht gleichzeitig geändert werden. Datenbank nicht aktualisiert.");
}
else{
if ($row['owner']!=$_POST['owner'] && $_POST['status']=='sell'){
$_POST['status']="build";
output("`^Warnung: Status dieses Hauses lässt keinen Besitzer zu. Status auf 'im Bau' gesetzt.`n");
}
elseif ($row['status']!=$_POST['status'] && $_POST['status']=='sell' && (int)$_POST['owner']>0){
$_POST['owner']="0";
output("`^Warnung: Dieser Statuswechsel lässt keinen Besitzer zu. Besitzer auf 0 gesetzt.`n");
}
$action=true;
if ($_POST['status']!=$row['status']){
if ($_POST['status']=="build" || $_POST['status']=="sell"){
$sql="DELETE FROM items WHERE class='Schlüssel' AND value1=$_GET[id]";
db_query($sql);
if ($_POST['status']=="build") $house=$_GET['id'];
else $house=0;
$housekey=0;
output("`@Schlüssel aus Datenbank gelöscht`n");
}
elseif ($_POST['status']=="ready"){
$sql="DELETE FROM items WHERE class='Schlüssel' AND value1=$_GET[id]";
db_query($sql);
for ($i=1;$i<getsetting('newhousekeys',10);$i++){
$sql = "INSERT INTO items (name,owner,class,value1,value2,description) VALUES ('Hausschlüssel',$_POST[owner],'Schlüssel',$_GET[id],$i,'Schlüssel für Haus Nummer $_GET[id]')";
db_query($sql);
}
$house=$_GET['id'];
$housekey=$_GET['id'];
output("`@Schlüssel in Datenbank eingetragen`n");
}
$sql="UPDATE accounts SET house=$house,housekey=$housekey WHERE acctid='$row[owner]'";
db_query($sql);
}
else{
$sql="UPDATE accounts SET house=0,housekey=0 WHERE acctid=$row[owner]";
db_query($sql);
if ($_POST['status']=="ready"){
$housekey = $_GET['id'];
$house = $_GET['id'];
}else{
$housekey = 0;
if ($_POST['status']=='sell') $house = 0;
else $house = $_GET['id'];
}
$sql="UPDATE accounts SET house='$house',housekey='$housekey' WHERE acctid='$_POST[owner]'";
db_query($sql);
if ($_POST['status']=='ready') {
$sql="UPDATE items SET owner=$_POST[owner] WHERE class='Schlüssel' AND owner=$row[owner] AND value1=$_GET[id]";
db_query($sql);
}
}
}
}else{
$action=true;
}
if ($action){
output("`@Daten gespeichert.");
$sql="UPDATE houses SET owner=$_POST[owner],housename='".rawurldecode($_POST['housename'])."',goldprice=$_POST[goldprice],gemprice=$_POST[gemprice],status='$_POST[status]',description='".rawurldecode($_POST['description'])."',locid='".$_POST['locid']."' WHERE houseid='$_GET[id]'";
db_query($sql);
}
}else{
$sql = "SELECT * FROM houses WHERE houseid=$_GET[id]";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
output("`@Daten für Haus `b$_GET[id]`b ändern:`n`n");
output("`0<form action=\"suhouses.php?op=data&subop=save&id=$_GET[id]\" method='POST'>",true);
output("<table><tr><td>Name </td><td><input name='housename' maxlength='25' value='".(rawurlencode($row[housename]))."'></td></tr>",true);
output("<tr><td>Goldpreis (wenn im Bau) </td><td><input type='text' name='goldprice' value='$row[goldprice]'> </td></tr>",true);
output("<tr><td>Edelsteinpreis (wenn im Bau) </td><td><input type='text' name='gemprice' value='$row[gemprice]'></td></tr>",true);
output("<tr><td>Beschreibung </td><td><input type='text' name='description' maxlength='250' value='".(rawurlencode($row[description]))."'></td></tr>",true);
output("<tr><td>Standort </td><td><select name='locid'>",true);
$sql = 'SELECT locid, locname FROM houseconfig ORDER BY locname ASC';
$result = db_query($sql);
while ($row2 = db_fetch_assoc($result)) output('<option value="'.$row2['locid'].'" '.($row['locid']==$row2['locid']?'selected="selected"':'').'>'.$row2['locname'].'</option>',true);
output('</select></td></tr>',true);
output("<tr><td>Status </td><td><select name='status'>
<option value='build' ".($row['status']=='build'?'selected="selected"':'').">im Bau</option>
<option value='ready' ".($row['status']=='ready'?'selected="selected"':'').">fertig</option>
<option value='sell' ".($row['status']=='sell'?'selected="selected"':'').">zum Verkauf</option></select></td></tr>",true);
output("<tr><td>`4Besitzer (ID)`0 </td><td><input type='text' name='owner' value='$row[owner]'> `4(VORSICHT!)`0</td></tr>",true);
output("<tr><td>`4Sicherer Modus`0 </td><td><input type='checkbox' name='auto' checked='true' value='true'> `4(VORSICHT!)`0</td></tr></table>`n",true);
output("<input type='submit' class='button' value='Speichern'></form>",true);
output("`0`n`nDaten, die nicht geändert werden sollen, `bnicht`b verändern!`nStatusänderung kann Auswirkungen auf die Schlüsselverwaltung haben!`nBesitzer- und Statusänderungen müssen im unsicheren Modus manuell übertragen werden!`n");
addnav("","suhouses.php?op=data&subop=save&id=$_GET[id]");
}
} elseif ($_GET['op']=='location') {
addnav("Hausmeister","suhouses.php");
if ($_GET['subop']=='new') {
addnav('Zu den Wohngebieten','suhouses.php?op=location');
// Neues Wohngebiet eintragen
if (!empty($_POST['location'])) {
$sql = "INSERT INTO houseconfig (location,locname,loctext,buy,sell,build,rob,defaultgoldprice,defaultgemprice,buildprice_increase) VALUES ('$_POST[location]','$_POST[locname]','$_POST[buy]','$_POST[sell]','$_POST[build]','$_POST[rob]','$_POST[defaultgoldprice]','$_POST[defaultgemprice]','$_POST[buildprice_increase]')";
db_query($sql);
output('Das Wohngebiet wurde erstellt. die ID (für Links) ist '.db_insert_id(LINK));
}
// Erstellformular
else {
output('`c`bWohngebiet erstellen`b`c`n`n');
output('<form action="suhouses.php?op=location&subop=new" method="POST">',true);
addnav('','suhouses.php?op=location&subop=new');
output('<table><tr><td>Standort (Script):</td><td><input type="text" name="location" size="50" maxlength="255"></td></tr>',true);
output('<tr><td>Name:</td><td><input type="text" name="locname" size="50" maxlength="50"></td></tr>',true);
output('<tr><td>Ortstext:</td><td><textarea cols="40" rows="3" class="input" name="loctext">'.$row['loctext'].'</textarea></td></tr>',true);
output('<tr><td>Hauskauf ermöglichen:</td>
<td><select name="buy" size="1"><option value="1">ja</option>
<option value="0">nein</option></select></td></tr>
<tr><td>Hausverkauf ermöglichen:</td>
<td><select name="sell" size="1"><option value="1">ja</option>
<option value="0">nein</option></select></td></tr>
<tr><td>Hausbau ermöglichen:</td>
<td><select name="build" size="1"><option value="1">ja</option>
<option value="0">nein</option></select></td></tr>
<tr><td>Einbruch ermöglichen:</td>
<td><select name="rob" size="1"><option value="1">ja</option>
<option value="0">nein</option></select></td></tr>
<tr><td>Standard-Hauspreis Gold:</td>
<td><input type="text" name="defaultgoldprice" size="6" value="30000"></td></tr>
<tr><td>Standard-Hauspreis Edelsteine:</td>
<td><input type="text" name="defaultgemprice" size="6" value="50"></td></tr>
<tr><td>Teuerungsfaktor pro leerstehendem Haus:</td>
<td><input type="text" name="buildprice_increase" size="3" value="0">%</td></tr>
</table>',true);
output('<input type="Submit" value="Erstellen"></form>',true);
}
}
elseif ($_GET['subop']=='edit') {
addnav('Zu den Wohngebieten','suhouses.php?op=location');
// Änderung übernehmen
if (!empty($_POST['location'])) {
if ($_POST['delete']==1) $sql = "DELETE FROM houseconfig WHERE locid='$_GET[locid]'";
else $sql = "UPDATE houseconfig SET location='$_POST[location]',locname='$_POST[locname]',loctext='$_POST[loctext]',buy='$_POST[buy]',sell='$_POST[sell]',build='$_POST[build]',rob='$_POST[rob]',defaultgoldprice='$_POST[defaultgoldprice]',defaultgemprice='$_POST[defaultgemprice]',buildprice_increase='$_POST[buildprice_increase]' WHERE locid='$_GET[locid]'";
db_query($sql);
output('Änderung übernommen!');
}
// Änderungsformular
else {
$sql = 'SELECT * FROM houseconfig WHERE locid="'.$_GET['locid'].'"';
$row = db_fetch_assoc(db_query($sql));
output('`c`bWohngebiet bearbeiten`b`c`n`n');
output('<form action="suhouses.php?op=location&subop=edit&locid='.$_GET['locid'].'" method="POST">',true);
addnav('','suhouses.php?op=location&subop=edit&locid='.$_GET['locid']);
output('<table><tr><td>ID (für Links):</td><td>'.$_GET['locid'].'</td></tr>',true);
output('<tr><td>Standort:</td><td><input type="text" name="location" size="50" maxlength="255" value="'.$row['location'].'"></td></tr>',true);
output('<tr><td>Name:</td><td><input type="text" name="locname" size="50" maxlength="50" value="'.$row['locname'].'"></td></tr>',true);
output('<tr><td>Ortstext:</td><td><textarea cols="40" rows="3" class="input" name="loctext">'.$row['loctext'].'</textarea></td></tr>',true);
output('<tr><td>Hauskauf ermöglichen:</td>
<td><select name="buy" size="1"><option value="1">ja</option>
<option value="0" '.($row['buy']==1?'':'selected').'>nein</option></select></td></tr>
<tr><td>Hausverkauf ermöglichen:</td>
<td><select name="sell" size="1"><option value="1">ja</option>
<option value="0" '.($row['sell']==1?'':'selected').'>nein</option></select></td></tr>
<tr><td>Hausbau ermöglichen:</td>
<td><select name="build" size="1"><option value="1">ja</option>
<option value="0" '.($row['build']==1?'':'selected').'>nein</option></select></td></tr>
<tr><td>Einbruch ermöglichen:</td>
<td><select name="rob" size="1"><option value="1">ja</option>
<option value="0" '.($row['rob']==1?'':'selected').'>nein</option></select></td></tr>
<tr><td>Standard-Hauspreis Gold:</td>
<td><input type="text" name="defaultgoldprice" size="6" value="'.$row['defaultgoldprice'].'"></td></tr>
<tr><td>Standard-Hauspreis Edelsteine:</td>
<td><input type="text" name="defaultgemprice" size="6" value="'.$row['defaultgemprice'].'"></td></tr>
<tr><td>Teuerungsfaktor pro leerstehendem Haus:</td>
<td><input type="text" name="buildprice_increase" size="3" value="'.$row['buildprice_increase'].'">%</td></tr>
<tr><td>`4Löschen:`0</td>
<td><input type="checkbox" name="delete" value="1"> `4(VORSICHT!)`0</td></tr>
</table>',true);
output('<input type="Submit" value="Ändern"></form>',true);
}
}
else {
$sql = 'SELECT locid,locname FROM houseconfig ORDER BY locname ASC';
$result = db_query($sql);
output('`c`bWohngebiete`b`c`n`n');
output('`c<table><tr><td>ID</td><td>Wohngebiet</td></tr>',true);
while ($row = db_fetch_assoc($result)) {
output('<tr><td>'.$row['locid'].'</td><td><a href="suhouses.php?op=location&subop=edit&locid='.$row['locid'].'">'.$row['locname'].'</a></td></tr>',true);
addnav('','suhouses.php?op=location&subop=edit&locid='.$row['locid']);
}
output('</table>`c',true);
addnav('Neues Wohngebiet','suhouses.php?op=location&subop=new');
}
}
elseif ($_GET['op']=='modules') {
addnav('Zurück zum Hausmeister','suhouses.php');
output('`@`b`cHausmodule`c`b`0`n`n');
if (empty($_GET['subop']) || $_GET['subop']!='create') {
if (file_exists('./housemodules/_default_template.tpl') && (fileperms('./housemodules') & 0x0002)) {
addnav('Modul erstellen / bearbeiten','suhouses.php?op=modules&subop=create');
}
// get all module files
$dir = dir('./housemodules');
while ($file = $dir->read()) {
if (substr($file,-4)=='.php') {
include('./housemodules/'.$file);
}
elseif (substr($file,-4)=='.tmp') {
unlink('./housemodules/'.$file);
}
}
$dir->close();
// do action now
if (!empty($_GET['subop'])) {
if ($_GET['subop']=='save') {
$sql = 'SELECT linkorder FROM housemodules WHERE moduleid="'.$_GET['mid'].'"';
$result = db_query($sql);
$row = db_fetch_assoc($result);
if ($row['linkorder']>$_POST['linkorder']) {
$sql = 'UPDATE housemodules SET linkorder=linkorder+1 WHERE linkorder >= "'.$_POST['linkorder'].'" AND linkorder < '.$row['linkorder'];
db_query($sql);
}
else {
$sql = 'UPDATE housemodules SET linkorder=linkorder-1 WHERE linkorder <= "'.$_POST['linkorder'].'" AND linkorder > '.$row['linkorder'];
db_query($sql);
}
$sql = 'UPDATE housemodules SET linkorder="'.$_POST['linkorder'].'" WHERE moduleid="'.$_GET['mid'].'"';
db_query($sql);
}
elseif ($_GET['subop']=='uninstall') {
$sql = 'SELECT linkorder FROM housemodules WHERE modulename="'.$_GET['name'].'"';
$result = db_query($sql);
$row = db_fetch_assoc($result);
$sql = 'UPDATE housemodules SET linkorder=linkorder-1 WHERE linkorder > '.$row['linkorder'];
db_query($sql);
$fname = 'module_uninstall_'.$_GET['name'];
$fname();
}
elseif ($_GET['subop']=='install') {
$fname = 'module_install_'.$_GET['name'];
$fname();
$moduleid = getmoduleid($_GET['name']);
$sql = 'SELECT MAX(linkorder) AS maximum FROM housemodules';
$result = db_query($sql);
$row = db_fetch_assoc($result);
$sql = 'UPDATE housemodules SET linkorder='.($row['maximum']+1).' WHERE moduleid='.$moduleid;
db_query($sql);
}
}
// check for module functions
$function_array = get_defined_functions();
$modules = array();
foreach ($function_array['user'] AS $thisfunction) {
if (substr($thisfunction,0,15)=='module_getinfo_') $modules[] = $thisfunction;
}
// unset large array to free memory
unset($function_array);
// get all installed modules
$installed = array();
$sql = 'SELECT * FROM housemodules ORDER BY linkorder ASC';
$result = db_query($sql);
while ($row = db_fetch_assoc($result)) {
$installed[$row['modulename']] = $row;
}
// show installed modules first
foreach ($installed AS $thismod) {
if (file_exists('./housemodules/'.$thismod['modulefile'])) {
$status = '`2installiert`0';
}
else $status = '`qFehler: installiert, aber Datei fehlt!`0';
output('<form action="suhouses.php?op=modules&subop=save&mid='.$thismod['moduleid'].'" method="post">',true);
addnav('','suhouses.php?op=modules&subop=save&mid='.$thismod['moduleid']);
$str = '<div style="float:right;"><a href="suhouses.php?op=modules&subop=create&module='.$thismod['modulename'].'">bearbeiten</a></div>';
addnav('','suhouses.php?op=modules&subop=create&module='.$thismod['modulename']);
output('<table border="0"><tr class="trhead"><td colspan="2">'.$str.$thismod['modulename'].'</td></tr>
<tr class="trlight"><td>Datei:</td><td>'.$thismod['modulefile'].'</td></tr>
<tr class="trdark"><td>Autor:</td><td>'.$thismod['moduleauthor'].'</td></tr>
<tr class="trlight"><td>Version:</td><td>'.$thismod['moduleversion'].'</td></tr>
<tr class="trdark"><td>Immer eingebaut:</td><td>'.$thismod['built_in'].'</td></tr>
<tr class="trlight"><td>Linkkategorie:</td><td>'.$thismod['linkcategory'].'</td></tr>
<tr class="trdark"><td>Linktitel:</td><td>'.$thismod['linktitle'].'</td></tr>
<tr class="trlight"><td>Anzeige:</td><td>'.$thismod['showto'].'</td></tr>
<tr class="trdark"><td>Sortierung:</td><td><input type="text" class="input" name="linkorder" value="'.$thismod['linkorder'].'"><input type="submit" class="button" name="save" value="Speichern"></td></tr>
<tr class="trlight"><td>Status:</td><td>'.$status.' [<a href="suhouses.php?op=modules&subop=uninstall&name='.$thismod['modulename'].'">deinstallieren</a>]</td></tr>
</table>',true);
addnav('','suhouses.php?op=modules&subop=uninstall&name='.$thismod['modulename']);
output('</form>',true);
}
// show other modules now
sort($modules);
foreach ($modules AS $thismodule) {
$modinfo = $thismodule();
if (isset($installed[$modinfo['modulename']])) continue;
$str = '<div style="float:right;"><a href="suhouses.php?op=modules&subop=create&module='.$modinfo['modulename'].'">bearbeiten</a></div>';
addnav('','suhouses.php?op=modules&subop=create&module='.$modinfo['modulename']);
output('<table border="0"><tr class="trhead"><td colspan="2">'.$str.$modinfo['modulename'].'</td></tr>
<tr class="trlight"><td>Datei:</td><td>'.$modinfo['modulefile'].'</td></tr>
<tr class="trdark"><td>Autor:</td><td>'.$modinfo['moduleauthor'].'</td></tr>
<tr class="trlight"><td>Version:</td><td>'.$modinfo['moduleversion'].'</td></tr>
<tr class="trdark"><td>Immer eingebaut:</td><td>'.$modinfo['built_in'].'</td></tr>
<tr class="trlight"><td>Linkkategorie:</td><td>'.$modinfo['linkcategory'].'</td></tr>
<tr class="trdark"><td>Linktitel:</td><td>'.$modinfo['linktitle'].'</td></tr>
<tr class="trlight"><td>Anzeige:</td><td>'.$modinfo['showto'].'</td></tr>
<tr class="trdark"><td>Status:</td><td>`4nicht installiert`0 [<a href="suhouses.php?op=modules&subop=install&name='.$modinfo['modulename'].'">installieren</a>]</td></tr>
</table><br /><br />',true);
addnav('','suhouses.php?op=modules&subop=install&name='.$modinfo['modulename']);
}
}
else {
addnav("Fertige Module","suhouses.php?op=modules");
$step = isset($_GET['step']) ? $_GET['step'] : 0;
switch ($step) {
case 0:
if (!isset($_GET['module'])) {
// show first data
output('<form action="suhouses.php?op=modules&subop=create&step=1" method="post">',true);
addnav('','suhouses.php?op=modules&subop=create&step=1');
output('<table border="0"><tr class="trhead"><td colspan="2">Grunddaten</td></tr>
<tr class="trlight"><td>Interner Name (nur Buchstaben, Zahlen, _):</td><td><input type="text" name="int_name"></td></tr>
<tr class="trdark"><td>Autor:</td><td><input type="text" name="author"></td></tr>
<tr class="trlight"><td>Version:</td><td><input type="text" name="version"></td></tr>
<tr class="trdark"><td>Immer eingebaut:</td><td><select name="built_in"><option value="1">ja</option><option value="0">nein</option></select></td></tr>
<tr class="trlight"><td>Linkkategorie:</td><td><input type="text" name="linkcategory"></td></tr>
<tr class="trdark"><td>Linktitel:</td><td><input type="text" name="linktitle"></td></tr>
<tr class="trlight"><td>Anzeige für:</td><td><select name="showto"><option value="owner,guest">Besitzer und Gäste</option><option value="owner">Besitzer</option><option value="guest">Gäste</option></select></td></tr>
<tr class="trhead"><td colspan="2" align="right"><input type="submit" class="submit" value="Weiter"></td></tr>
</table>',true);
output('</form>',true);
break;
}
else {
if (!isset($_POST)) $_POST = array();
include('./housemodules/'.$_GET['module'].'.php');
$fname = 'module_getinfo_'.$_GET['module'];
$modinfo = $fname();
if (!is_array($modinfo)) redirect('suhouses.php?op=modules&subop=create');
$_POST['int_name'] = $modinfo['modulename'];
$_POST['author'] = $modinfo['moduleauthor'];
$_POST['version'] = $modinfo['moduleversion'];
$_POST['built_in'] = $modinfo['built_in'];
$_POST['linkcategory'] = $modinfo['linkcategory'];
$_POST['linktitle'] = $modinfo['linktitle'];
$_POST['showto'] = $modinfo['showto'];
}
case 1:
// show editable source
$find = array('{modulename}','{author}','{version}','{built_in}','{category}','{linktitle}','{showto}');
$replace = array($_POST['int_name'],$_POST['author'],$_POST['version'],$_POST['built_in'],$_POST['linkcategory'],$_POST['linktitle'],$_POST['showto']);
$tpl = file_get_contents('./housemodules/_default_template.tpl');
$tpl = str_replace($find, $replace, $tpl);
$tpl = highlight_string($tpl,true);
// Wenn das Modul schon existiert: Editieren!
if (file_exists('./housemodules/'.$_POST['int_name'].'.tmp')) {
$content = file_get_contents('./housemodules/'.$_POST['int_name'].'.tmp');
preg_match_all('/\/\* (\w+) begin \*\/\s*(.*)\s*\/\* \w+ end \*\//Us',$content,$matches);
$values = array();
foreach ($matches[1] as $key=>$val) {
$values[$val] = $matches[2][$key];
}
}
elseif (file_exists('./housemodules/'.$_POST['int_name'].'.php')) {
$content = file_get_contents('./housemodules/'.$_POST['int_name'].'.php');
preg_match_all('/\/\* (\w+) begin \*\/\s*(.*)\s*\/\* \w+ end \*\//Us',$content,$matches);
$values = array();
foreach ($matches[1] as $key=>$val) {
$values[$val] = $matches[2][$key];
}
}
$find = array('"{install_moduledata}"','"{install_other}"','"{delete_other}"','"{build_other}"','"{destroy_other}"');
$raw = '<textarea name="{name}" cols="100" rows="20" style="white-space:nowrap;">{value}</textarea>';
$replace = array();
foreach ($find as $part) {
if (isset($values) && isset($values[substr($part,2,-2)])) {
$v = htmlentities($values[substr($part,2,-2)]);
}
else $v = '';
$replace[] = str_replace(array('{name}','{value}'),array(substr($part,2,-2),$v),$raw);
}
$tpl = str_replace($find, $replace, $tpl);
$find = '"{content_show}"';
if (isset($values) && isset($values['content_show'])) {
$v = htmlentities($values['content_show']);
}
else $v = <<< PHP
// uncomment these lines if you want to show the default navs even if this is not the default module
// global \$shownavs;
// \$shownavs = true;
// uncomment these lines if you want to hide the default navs even if this is the default module
// global \$shownavs;
// \$shownavs = false;
PHP;
$v = '<textarea name="content_show" cols="100" rows="20" style="white-space:nowrap;">'.$v.'</textarea>';
$tpl = str_replace($find, $v, $tpl);
output('<form action="suhouses.php?op=modules&subop=create&step=2" method="post">',true);
addnav('','suhouses.php?op=modules&subop=create&step=2');
output('<input type="hidden" name="int_name" value="'.$_POST['int_name'].'"',true);
output('<input type="hidden" name="author" value="'.$_POST['author'].'"',true);
output('<input type="hidden" name="version" value="'.$_POST['version'].'"',true);
output('<input type="hidden" name="built_in" value="'.$_POST['built_in'].'"',true);
output('<input type="hidden" name="linkcategory" value="'.$_POST['linkcategory'].'"',true);
output('<input type="hidden" name="linktitle" value="'.$_POST['linktitle'].'"',true);
output('<input type="hidden" name="showto" value="'.$_POST['showto'].'"',true);
output('<div style="background-color:#FFF;color:#000;">',true);
output($tpl,true);
output('</div>',true);
output('<input type="submit" class="submit" style="float:right;" value="Fertigstellen"></form>',true);
addnav('','suhouses.php?op=modules&subop=create&step=1');
break;
case 2:
ini_set('error_prepend_string',
'<html>
<head></head>
<body>
<form action="suhouses.php?op=modules&subop=create&step=1" method="post">
<input type="hidden" name="int_name" value="'.$_POST['int_name'].'">
<input type="hidden" name="author" value="'.$_POST['author'].'">
<input type="hidden" name="version" value="'.$_POST['version'].'">
<input type="hidden" name="built_in" value="'.$_POST['built_in'].'">
<input type="hidden" name="linkcategory" value="'.$_POST['linkcategory'].'">
<input type="hidden" name="linktitle" value="'.$_POST['linktitle'].'">
<input type="hidden" name="showto" value="'.$_POST['showto'].'">
Leider ist das Script fehlerhaft:<br>');
ini_set('error_append_string','<br><input type="submit" value="Fehler beheben"></form></body></html>');
// create module script
$find = array('{modulename}','{author}','{version}','{built_in}','{category}','{linktitle}','{showto}');
$replace = array($_POST['int_name'],$_POST['author'],$_POST['version'],$_POST['built_in'],$_POST['linkcategory'],$_POST['linktitle'],$_POST['showto']);
$tpl = file_get_contents('./housemodules/_default_template.tpl');
$tpl = str_replace($find, $replace, $tpl);
$find = array('"{install_moduledata}"','"{install_other}"','"{delete_other}"','"{build_other}"','"{destroy_other}"','"{content_show}"');
$replace = array();
foreach ($find as $part) {
$cleanpart = substr($part,2,-2);
$replace[] = "/* $cleanpart begin */\n".stripslashes($_POST[$cleanpart])."\n/* $cleanpart end */";
}
$tpl = str_replace($find, $replace, $tpl);
$fp = fopen('./housemodules/'.$_POST['int_name'].'.tmp','w+');
fwrite($fp, $tpl);
fclose($fp);
chmod('./housemodules/'.$_POST['int_name'].'.tmp',0777);
include('./housemodules/'.$_POST['int_name'].'.tmp');
@unlink('./housemodules/'.$_POST['int_name'].'.php');
rename('./housemodules/'.$_POST['int_name'].'.tmp', './housemodules/'.$_POST['int_name'].'.php');
output('`b`2Das Modul wurde gespeichert!`0`b`n`n');
addnav('Modul erstellen / bearbeiten','suhouses.php?op=modules&subop=create');
break;
}
}
}
else {
output("`@`b`cDas Wohnviertel`c`b`n`n");
output('<form action="suhouses.php" method="post">',true);
addnav('','suhouses.php');
output('Häuser filtern: ');
output('<select name="status" size="1">
<option value="">--- alle ---</option>
<option value="0" '.($_REQUEST['status']==='0'?'selected="selected"':'').'>im Bau</option>
<option value="1" '.($_REQUEST['status']==1?'selected="selected"':'').'>Bauruine</option>
<option value="2" '.($_REQUEST['status']==2?'selected="selected"':'').'>bewohnt</option>
<option value="3" '.($_REQUEST['status']==3?'selected="selected"':'').'>verlassen</option>
<option value="4" '.($_REQUEST['status']==4?'selected="selected"':'').'>zum Verkauf</option>
</select> <input type="submit" value="anzeigen"></form>',true);
output('<form action="suhouses.php?op=drin" method="post">',true);
addnav('','suhouses.php?op=drin');
output('Springe direkt zu Haus Nr. ');
output('<input type="text" name="id" size="4">',true);
output('<input type="submit" value="anzeigen"></form>',true);
output("Wähle das Haus:`n`n");
output("<table cellpadding=2 align='center'><tr><td>`bHausNr.`b</td><td>`bName`b</td><td>`bStatus`b</td></tr>",true);
$ppp=25; // Player Per Page +1 to display
if (!$_GET['limit']){
$page=0;
}else{
$page=(int)$_GET['limit'];
addnav("Vorherige Straße","suhouses.php?limit=".($page-1).($_REQUEST['status']!=''?"&status=$_REQUEST[status]":""));
}
$limit="".($page*$ppp).",".($ppp+1);
if ($_REQUEST['status']!='') {
switch ($_REQUEST['status']) {
case '0': $search = ' AND status="build" AND owner > 0'; break;
case 1: $search = ' AND status="build" AND owner=0'; break;
case 2: $search = ' AND status="ready" AND owner > 0'; break;
case 3: $search = ' AND status="ready" AND owner=0'; break;
case 4: $search = ' AND status="sell"'; break;
default: $search = '';
}
}
else $search = '';
$sql = "SELECT houseid,housename,status FROM houses WHERE 1$search ORDER BY houseid ASC LIMIT $limit";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>$ppp) addnav("Nächste Seite","suhouses.php?limit=".($page+1).($_REQUEST['status']!=''?"&status=$_REQUEST[status]":""));
if (db_num_rows($result)==0){
output("<tr><td colspan=3 align='center'>`&`iEs gibt keine Häuser`i`0</td></tr>",true);
}else{
for ($i=0;$i<db_num_rows($result);$i++){
$row2 = db_fetch_assoc($result);
output("<tr><td align='center'>$row2[houseid]</td><td><a href='suhouses.php?op=drin&id=$row2[houseid]'>$row2[housename]</a></td><td>$row2[status]</td></tr>",true);
addnav("","suhouses.php?op=drin&id=$row2[houseid]");
}
}
output("</table>",true);
addnav("User mit Haus","suhouses.php?op=info");
addnav("Neues Haus","suhouses.php?op=newhouse");
addnav("Wohnorte","suhouses.php?op=location");
addnav("Module","suhouses.php?op=modules");
}
output("`n<div align='right'>`)2004 by anpera & 2005 Chaosmaker</div>",true);
page_footer();
?>