anpera.net
http://anpera.homeip.net/phpbb3/

Editor für die persönlichen Schatztruhen
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=4498
Seite 1 von 1

Autor:  Linus [ So 27 Apr, 2008 17:07 ]
Betreff des Beitrags:  Editor für die persönlichen Schatztruhen

Ist das Modul "PersonalChest.php" für das Chaosmaker-Wohnviertel installiert hat der Admin nur per DB Zugriff auf deren Inhalte. Hier ein Editor der nur mit der superuser.php verlinkt werden muss und der Einbau ist fertig. Natürlich muss die su_pchests.php zuvor noch auf den Webspace geladen werden :D

$this->bbcode_second_pass_code('', '<?php
/*
* Version: 27.04.2008
* Author: Linus (schamlos abgkupfert von suhouses.php by anpera und Chaosmaker)
* Email: webmaster@alvion-logd.de
* Zweck: Admintool für die persönlichen Schatzkammern
*
*/

require_once("common.php");
isnewday(3);

function analyse(){
$accts=array();
$sql="SELECT `acctid` FROM `accounts`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
$accts[$i]=(int)$row['acctid'];
$i++;
}
$gut=0;
$fehl=0;
$sql="SELECT `PChestID`, `PChestUser` FROM `house_PersonalChests`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
if(in_array((int)$row['PChestUser'],$accts)){
$gut++;
}else{
$fehl++;
}
$j++;
}

return array($j, $gut, $fehl);
}

page_header("Persönliche Schatztruhen");

switch($_GET['op']){
case "delete":
$accts=array();
$sql="SELECT `acctid` FROM `accounts`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
$accts[$i]=(int)$row['acctid'];
$i++;
}
$gut=0;
$fehl=0;
$sql="SELECT `PChestID`, `PChestUser` FROM `house_PersonalChests`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
if(in_array((int)$row['PChestUser'],$accts)){
$gut++;
}else{
$fehl++;
db_query("DELETE FROM `house_PersonalChests` where `PChestUser`=".(int)$row['PChestUser'].";");
}
$j++;
}
output("`&".$fehl." persönliche Schatztruhen wurden gelöscht`n");
addnav('Zurück','su_pchests.php?');
break;

case "edit":
if ($_GET['act']=="save") { // save data
$sql="UPDATE house_PersonalChests SET PChestGold=$_POST[gold], PChestGems=$_POST[gems] WHERE PChestUser=".$_GET['id'];
$result=db_query($sql);
output("`&Daten der Schatztruhe gespeichert.");
addnav("Zurück","su_pchests.php?op=edit&id=$_GET[id]");
}else{
addnav("Zurück","su_pchests.php");
$sql="SELECT * FROM house_PersonalChests WHERE PChestUser=".$_REQUEST['id'];
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)){
$row = db_fetch_assoc($result);
$sql2="SELECT name FROM accounts WHERE acctid=".$row['PChestUser'];
$row2=db_fetch_assoc(db_query($sql2));

output("`@Inhalt der persönlichen Schatztruhe von `b$row2[name]`b ändern:`n`n`n`@ChestId: `^`b$row[PChestID]`b
`n`@UserId: `^`b$row[PChestUser]`b`n`@User: `^`b$row2[name]`b`n
`0<form action=\"su_pchests.php?op=edit&act=save&id=$row[PChestUser]\" method='POST'>
<table><tr><td>Goldeinlage</td><td><input type='text' name='gold' value='$row[PChestGold]'></td></tr>
<tr><td>Edelsteine</td><td><input type='text' name='gems' value='$row[PChestGems]'></td></tr></table>`n
<input type='submit' class='button' value='Speichern'></form>",true);
addnav("","su_pchests.php?op=edit&act=save&id=$row[PChestUser]");
}else{
output("`@`bDieser Spieler existiert nicht oder besitzt keine persönliche Schatztruhe`b`n`n");
}
}
break;
default:
list($j, $gut, $fehl)=analyse();
if($fehl>0) addnav('unnütze Truhen löschen','su_pchests.php?op=delete');
addnav('','su_pchests.php?op=edit');
output("`@`b`cDie persönlichen Schatztruhen`c`b`n`n
`7Anzahl PChests gesamt: `@".$j."`n`7PChests von existierenden Spielern: `@".$gut."`n`7PChests von gelöschten Spielern: `@".$fehl."`n`n
<form action='su_pchests.php?op=edit' method='post'>Springe direkt zu UserId. <input type='text' name='id' size='4'>
<input type='submit' value='anzeigen'></form>Wähle die Truhe:`n`n<table cellpadding=2 align='center'><tr>
<td>`bChestId.`b</td><td>`bUserId.`b</td><td>`bName`b</td><td>`bGold`b</td><td>`bGems`b</td></tr>",true);
$ppp=25; // Player Per Page +1 to display
if (!$_GET['limit']){
$page=0;
}else{
$page=(int)$_GET['limit'];
addnav("Vorherige Seite","su_pchests.php?limit=".($page-1)."");
}
$limit="".($page*$ppp).",".($ppp+1);

$sql = "SELECT * FROM house_PersonalChests WHERE 1 ORDER BY PChestUser ASC LIMIT $limit";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>$ppp) addnav("Nächste Seite","su_pchests.php?limit=".($page+1)."");
if (db_num_rows($result)==0){
output("<tr><td colspan=3 align='center'>`&`iEs gibt keine Schatztruhen`i`0</td></tr>",true);
}else{
for ($i=0;$i<db_num_rows($result);$i++){
$row2 = db_fetch_assoc($result);
$sql2="SELECT name FROM accounts WHERE acctid=".$row2['PChestUser'];
$row3=db_fetch_assoc(db_query($sql2));

output("<tr><td align='center'>$row2[PChestID]</td><td align='center'>$row2[PChestUser]</td><td><a href='su_pchests.php?op=edit&id=$row2[PChestUser]'>$row3[name]</a></td><td>$row2[PChestGold]</td><td>$row2[PChestGems]</td></tr>",true);
addnav("","su_pchests.php?op=edit&id=$row2[PChestUser]");
}
}
output("</table>",true);
break;
}


addnav("G?Zurück zur Grotte","superuser.php");
addnav("W?Zurück zum Weltlichen","village.php");

output("`n<div align='right'>`72007/2008 by Linus, based on suhouses.php by 2004 anpera & 2005 Chaosmaker</div>",true);
page_footer();
?>')

Die Navigation für das seitenweise Vor- und Zurückblättern hab ich aus der suhouses.php abgekupfert, weshalb diese auch im Copyright vermerkt ist ;)

Ich hoffe ihr findet es nutzbar und nützlich^^

Autor:  Alkatar91 [ Mi 28 Mai, 2008 21:24 ]
Betreff des Beitrags:  Re: Editor für die persönlichen Schatztruhen

Hallo Linus,

ich habe mir dein Script mal runtergeladen und eingebaut und finde die Idee und die Umsetzung ganz Gut.
Nur habe ich noch einen Verbesserungsvorschlag:

Wenn die Spieler sich schon gelöscht haben kann man per link nichtmehr drauf zugreifen.
Ich habe das mal geändert, hier der zu Ändernde Code:

Suche:
PHP:
$row3[name]


Ersetze durch:
PHP:
".($row3[name]!="" ? "".$row3[name]."" : "`4Gelöscht`0")."


Mit freundlichen Grüßen
Alkatar

Autor:  Linus [ Mi 23 Jul, 2008 11:31 ]
Betreff des Beitrags:  Re: Editor für die persönlichen Schatztruhen

Zunächst mal sorry das ich erst so spät antworte, hatte aber aus diversen Anlässen leider keine Zeit mich hier im Forum umzutun. Das soll sich ab sofort wieder ändern ;)

Uih, war gar nicht auf die Idee gekommen es könnte wünschenswert sein die Schatztruhe zu manipulieren wenn der Spieler bereits nicht mehr existiert. Aber deine Idee ist gut, hab sie übernommen^^

Autor:  rumburak [ So 17 Aug, 2008 16:58 ]
Betreff des Beitrags:  Re: Editor für die persönlichen Schatztruhen

Linus hat geschrieben:
Ist das Modul "PersonalChest.php" für das Chaosmaker-Wohnviertel installiert


Und wo gibts das?
Habs hier nirgends gefunden. :?

Autor:  Linus [ So 17 Aug, 2008 18:51 ]
Betreff des Beitrags:  Re: Editor für die persönlichen Schatztruhen

rumburak hat geschrieben:
Und wo gibts das?
Habs hier nirgends gefunden. :?


Guggst du hier: http://anpera.homeip.net/forum/download.php?id=798 :D

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/