LoGD Standardrelease steht hier zum Download zur Verfügung!
Home-Adresse dieser Version: anpera.net/logd
Anfragen nach dieser Version bitte an: logd@anpera.de
<?php //09052010
/* Jobeditor by Schizo 2009
ganz speziell für Lexx, an-daingean.de
*/
if($_GET['op']=='help'){
if($_GET['act']==1){
$titel='Hilfe zu: Allgemeine Angaben zum Job';
$echo='<table><tr><td style="text-align:right;">ID</td><td>Die ID wird beim Erstellen eines Jobs vom System ausgefüllt. Sie ist dadruch eindeutig und wird auch beim Editieren ausschließlich zur Einsicht preisgegeben. Von manuellen Änderungsversuchen rate ich ab. Es gibt aber die Möglichkeit, die IDs vom System auf möglichst kleine Werte zu senken. Das ist allerdings eine rein kosmetische Angelegenheit und hat keinen sonderlich großen Nutzen.</td></tr>
<tr><td style="text-align:right;">Beruf</td><td>Um eine geschlechtsspezifische Ausgabe des Spiels zu ermöglichen, gib bitte männliche und weibliche Form des Jobs an.<br>Wird nur der männliche Part ausgefüllt, wird der weibliche genauso benannt, nur mit einem "in" am Ende. Wird nur der weibliche Part ausgefüllt, heißt der männliche Part genauso.<br>Soll der männliche Part des Berufes nicht existieren, schreibe als erstes (oder einziges) Zeichen "#". Im Arbeitsamt wird für Männer dieser Job nicht wählbar sein und er wird in der Auflistung mit weiblicher Bezeichnung stehen. Der Ganze Spaß geht anders herum genauso. Soll ein Job im Arbeitsamt gar nicht auftauchen - etwa weil daran noch gearbeitet wird - schreibe vor beiden Namen "#".<br>Farbcodes sind möglich. %%% (ja, ich meine wirklich drei Prozentzeichen hintereinander) ist verboten.<br>Männliche und weibliche Berufsbereichnung müssen mit Farbcodes unter 200 Zeichen haben.</td></tr>
<tr><td style="text-align:right;">Status</td><td>"öffentlich" bedeutet, dass dieser Job im Arbeitsamt von jedem Spieler angenommen werden kann - soweit überhaupt eine Stelle frei ist.<br>"speziell" bedeutet, dass dieser Job auf Spielerwunsch erstellt wird bzw. wurde. Diese Jobs können von diesem Editor aus vergeben werden.<br>Ein Wechseln dieses Status\' ist natürlich jederzeit möglich und hat für die momentan Angestellten keine Auswirkung.</td></tr>
</table>';
}elseif($_GET['act']==2){
$titel='Hilfe zu: Angaben für das Arbeitsamt';
$echo='<table><tr><td style="text-align:right;">IQ-Punkte</td><td>Gib die IQ-Punkte an, die ein Spieler haben soll, um diesen Job ausüben zu können. Bei speziellen Jobs ist dieser Wert standardmäßig 0. Wird der Job im Nachhinein öffentlich gemacht, muss auch eine IQ-Grenze angegeben werden.<br>Das Limit liegt bei 999 Punkten.</td></tr>
<tr><td style="text-align:right;">Arbeitsort</td><td>Bennene den Ort, der im Arbeitsamt für diesen Job genannt werden soll.<br>Farbcodes sind möglich.<br>Maximale Zeichenlänge ist 120.</td></tr>
<tr><td style="text-align:right;">Arbeitsplätze</td><td>Gib an, wie viele Arbeitsplätze von diesem Job existieren sollen.<br>Beim Erstellen von öffentlichen Jobs muss diese Zahl größer sein als 0. Beim Editieren von öffentlichen Jobs muss die Anzahl größer sein, als die Anzahl der bereits angestellten Spieler.<br>Beim Erstellen und Editieren von speziellen Jobs wird dieses Feld System vom ausgefüllt.<br>Das Limit liegt bei 999 Stellen.</td></tr>
<tr><td style="text-align:right;">Beschreibung</td><td>Gib an, wie der Job im Arbeitsamt beschrieben werden soll.<br>Wird bei der Berufsbezeichnung mit "#" gearbeitet, kann hier auch eine z.B. rein weibliche Beschreibung geschrieben werden. Ansonsten wird dieser Text für beide Geschlechter gelten.<br>Alle appoencodes werden akzeptiert, also Farbcodes genauso wie `c, `i, usw. Achte aber darauf, dass offene `c\'s u.ä. auch wieder geschlossen werden.</td></tr>
</table>';
}elseif($_GET['act']==3){
$titel='Hilfe zu: Angaben für das Arbeiten';
$echo='<table><tr><td style="text-align:right;">Datei</td><td>Dieser Eintrag gibt an, wo der "Arbeiten"-Link auftauchen soll. Genauere Linkangaben wie "datei.php?op=held&act=5" sind möglich und bewirken, dass der Link auch wirklich an der richtigen stelle sitzt.<br>Sollte eine Arbeitsstelle im special-Ordner liegen, benutze den Dateinamen des Besonderen Ereignisses, nicht die forest.php. Dabei gibt es aber eine wichtige Einschränkung: Solch ein Ereignis muss im entsprechenden Link die Variable $session[user][specialinc] mit seinem Namen füllen.<br>Letztendlich gibt diese Eingabe auch an, wohin der Spieler nach seiner Arbeit verlinkt wird; folgerichtig genau dorthin, von wo er auch kam.<br>Maximale Zeichenlänge ist 60.<br><span style="font-weight:bold;text-decoration:underline;">zwei Beispiele:</span><br>Um eine Klofrau im Haus mit der Nummer 5 zu werden, wäre die Angabe "houseses.php?id=5&type=4&op=drin" - der Link taucht dann entsprechend im Bad auf. Die Reihenfolge der "op", "id" und "type" ist wichtig und kommt auf den Code drauf an. Zur Not hilft ein Blick in die Linkleiste des Browsers.<br>Um bei den Gauklern im Wald zu arbeiten, wäre die Angabe "gaukler.php", also nichts mit "forest", auch wenn die Linkleiste des Browsers soetwas vorgaukelt. Angaben wie "special/gaukler.php" werden nicht erkannt.</td></tr>
<tr><td style="text-align:right;">Lohn</td><td>Lege fest, wieviel Gold der Spieler erhalten soll, wenn er eine Runde arbeitet.<br>Das Limit liegt bei 9999 Gold.</td></tr>
<tr><td style="text-align:right;">Überschrift</td><td>Gib die Überschrift der Arbeitsstätte an.<br>Alle appoencodes werden akzeptiert, also Farbcodes genauso wie `c, `i, usw. Achte aber darauf, dass offene `c\'s u.ä. auch wieder geschlossen werden. %%% (ja, ich meine wirklich drei Prozentzeichen hintereinander) ist verboten.</td></tr>
<tr><td style="text-align:right;">Annahmetext</td><td>Gib an, welchen Text der Spieler sehen soll, wenn er genug Runden hat, um zu arbeiten.<br>Alle appoencodes werden akzeptiert, also Farbcodes genauso wie `c, `i, usw. Achte aber darauf, dass offene `c\'s u.ä. auch wieder geschlossen werden. %%% (ja, ich meine wirklich drei Prozentzeichen hintereinander) ist verboten.</td></tr>
<tr><td style="text-align:right;">Arbeitstext</td><td>Gib an, welchen Text der Spieler sehen soll, wenn er gearbeitet hat. Für "sagenhafte x Runden" benutze {RUNDEN} - bei einer Runde wird dafür automatisch "eine sagenhafte Runde" geschrieben. Für "x Gold" benutze {GOLD}.<br>Alle appoencodes werden akzeptiert, also Farbcodes genauso wie `c, `i, usw. Achte aber darauf, dass offene `c\'s u.ä. auch wieder geschlossen werden. %%% (ja, ich meine wirklich drei Prozentzeichen hintereinander) ist verboten.</td></tr>
</table>';
}elseif($_GET['act']==4){
$titel='Hilfe zum Jobeditor: Grundlagen';
$echo='<table><tr><td style="text-align:right;">Startansicht</td><td>In der Startansicht sind alle bestehenden Jobs aufgeführt. Klicke auf den jeweiligen Namen, um alle Details einzublenden. Schon von hier aus ist jede Menge möglich:
<ul><li>Kündige Spieler von ihrem bestehenden Arbeitsverhältnis. Sie werden darüber umgehend informiert.</li>
<li>Ist der Jobstatus "speziell", hast Du die Möglichkeit, Spieler einzustellen.</li>
<li>Prüfe durch Anklicken direkt, ob Dein Dateilink dort hinführt, wo er hinführen soll.</li>
<li>Klicke auf den grünen Button, um beliebige Details des Jobs zu ändern.</li>
<li>Klicke auf den roten Button, um den Job zu löschen. Alle bei diesem Job angestellten Spieler werden automatisch entlassen und darüber informiert.</li>
</ul></td></tr>
<tr><td style="text-align:right;">Jobs kreieren und Editieren</td><td>Hier kannst Du alle Details des Jobs (bis auf die ID) nach belieben einstellen und ändern. Dabei erkennt das System versehentlich leer gelassene Felder und hilft bei der Klärung des Problems. Brauchst Du dort zusätzliche Hilfe für die Einzelheiten, klicke auf die Überschriften, um diese zu bekommen.</td></tr>
<tr><td style="text-align:right;">Jobvorschläge/-wünsche</td><td>Stehen Jobwünsche der User aus, wird das in der Startsicht in der Navigation deutlich. Dort raufgeklickt, kannst Du zunächst alle Jobwünsche mit Spieler und Beschreibung sehen. Dann gibt es zwei Möglichkeiten:
<ul><li>Lehne den Wunsch ab. Die vom Spieler gezahlten 2500 Donationspunkte bekommt er daraufhin sofort zurück. Außerdem wird er von der Entscheidung in Kenntnis gesetzt. Ein anschließendes Wiederherstellen des Wunsches ist nicht möglich.</li>
<li>Nehme den Wunsch an und gelange direkt ins Editionsmenü. Hier wird Dir die Beschreibung nochmals aufgeführt und Du hast nun freie Wahl, ihn zu erschaffen. Wird der Job kreiert, bekommt der Spieler, der den Job vorschlug, umgehend eine Nachricht; außerdem geht die Information, wer den Wunsch schickte und was für eine Beschreibung er beifügte, sofort verlohren. Man gelangt im Anschluss allerdings direkt in die das Einstellmenü, wo der dementsprechende Spieler schon darauf wartet, eingestellt zu werden.</li>
</ul>
Sollte ein Spieler im Spiel nicht mehr existiere, aber einen Wunsch abgeschickt haben, so wird das an dieser Stelle erkannt und der Wunsch wird automatisch entfernt. Er wird ausdrücklich nicht angezeigt.</td></tr>
<tr><td style="text-align:right;">Einstellmenü</td><td>Kreierst Du einen Jobwunsch, wirst Du direkt in dieses Menü geschickt. Hier kannst Du auswählen, wer diesen Job ausführen darf.<br>Außerdem gelagst Du in dieses Menü, wenn Du in der Startansicht bei Jobs mit dem Status "speziell" Spieler hinzufügen möchtest.<br>Wird ein Spieler eingestellt, wird er darüber sofort informiert.</td></tr>
<tr><td style="text-align:right;">IDs minimieren</td><td>Es ist im Kreations- und Editionsmenü aus gutem Grund nicht möglich, die ID des Jobs zu bestimmen bzw. zu ändern. Der Editor stellt aber die Funktion bereit, die IDs der Jobs auf möglichst kleine Zahlenwerte zu bringen.</td></tr>
<tr><td colspan="2">Sind noch Fragen offen?
<ul><li>Kann ich einen Job für User unsichtbar machen, weil ich daran erst noch etwas feilen möchte?: Ja, schreibe vor männlichen und weiblichen Namen einfach ein "#". Dieser Job wird im Arbeitsamt nicht auftauchen.</li>
<li>Geht es, dass nur Frauen (nur Männer) einen Job annehmen können?: Ja, schreibe für oder vor die männliche (weibliche) Berufsbezeichnung einfach "#".</li>
<li>Der Arbeiten-Link taucht für einen Job nicht auf, was nun?: Der in den Jobdetails angegebene Dateiname mit eventuell folgenden GET-Variablen ist falsch. Achte unbedingt auf korrekte Schreibweise und Reihenfolge der Angaben.</li>
<li>Ich finde einen User im Einstellmenü nicht, was nun?: Gib seine komplette ID oder seinen kompletten Loginnamen ein. Der Loginname kann dabei vom im Spiel angezeigten Namen schon recht stark abweichen.</li>
<li>Ich bin doch so tastaturvernarrt, aber bis auf einen Zurück-Link gibt es keine Tastenkombinationen, warum?: Weil ich dagegen bin.</li>
<li>Mir reicht die maximale Zeichenlänge bzw. der maximale Zahlenwert eines Feldes nicht aus, was nun?: Die Zeichenlänge wird durch die Spalten der Tabelle "arbeit" in der Datenbank begrenzt. Die Zahlen werden im Wesentlichen durch die maximale Zeichenlänge ihres Feldes im Editor begrenzt. Ändere diese Einträge manuell.</li>
<li>Was ist, wenn ich noch andere Fragen habe?: Ganz einfach, stell sie jemanden, der sie beantworten kann.</li>
</ul></td></tr>
</table>';
}
echo '<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>'.$titel.'</title>
<style type="text/css">
<!--
td{font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;padding:2px;background-color:#000000;}
body{font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;background-color:#000000;color:#CCCCCC;}
table{border:none;border-collapse:separate;border-spacing:1px;background-color:#BBBBBB;}
-->
</style>
</head><body>'.$echo.'</body></html>';
exit();
}
else{
require_once "common.php";
page_header("Jobeditor");
isnewday(2);
$info=array();
rawoutput('<style type="text/css">
<!--
td{cursor:default;}
body{color:#CCCCCC;}
input,textarea{font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;background-color:#222222;color:#CCCCCC;border:1px solid #CCCCCC;}
span.spanbutton{}
span.spanbutton:hover{cursor:pointer;font-weight:bold;color:#EEEEEE;}
-->
</style>
');
$styles=array('arbeit_ID'=>'style="width:70px;color:#444444;cursor:default;text-align:center;"',
'name1'=>'style="width:160px;"',
'name2'=>'style="width:160px;"',
'need_iq'=>'style="width:30px;text-align:center;"',
'arbeitsort'=>'style="width:160px;"',
'anzahl'=>'style="width:30px;text-align:center;"',
'desc'=>'style="width:330px;height:90px;"',
'datei'=>'style="width:160px;"',
'lohn_gold'=>'style="width:40px;text-align:center;"',
'head'=>'style="width:160px;"',
'accepttext'=>'style="width:330px;height:90px;"',
'worktext'=>'style="width:330px;height:90px;"');
if($_POST['action']=='create' || $_POST['action']=='userjob'){
$defaults=array('arbeit_ID'=>'automatisch',
'name1'=>'männlich',
'name2'=>'weiblich',
'need_iq'=>20,
'arbeitsort'=>'Ort',
'anzahl'=>5,
'desc'=>'Beschreibung des Jobs',
'datei'=>'datei.php',
'lohn_gold'=>200,
'head'=>'`c`bOrt`b`c',
'accepttext'=>'Du möchtest arbeiten und Dir etwas Geld verdienen? Mach das.',
'worktext'=>'Du arbeitest {RUNDEN} und verdienst {GOLD}.');
if($_POST['action']=='userjob'){
$result=db_query("SELECT `acctid` FROM accounts WHERE acctid=".$_POST['acctid']." LIMIT 1");
if(db_num_rows($result)==0){unset($_GET,$_POST);$info[]='Der Jobwunsch ist ungültig, der User existiert nicht mehr.';}
else{
$result=db_query("SELECT A.desc,B.name FROM arbeit AS A, accounts AS B WHERE `ID`=".$_POST['arbeit_ID']." AND B.acctid=A.lohn_gold LIMIT 1");
$row=db_fetch_assoc($result);
$defaults['desc']=$row['desc'];
$_POST['userdesc']=$row['desc'];
$_POST['username']=$row['name'];
$defaults['status']=1;
}
}
if($_POST['action']=='userjob' && $_POST['send']=="Jobwunsch ablehnen"){
db_query("DELETE FROM arbeit WHERE ID=".$_POST['arbeit_ID']);
$rpresult=db_query("SELECT superuser FROM accounts WHERE acctid={$_POST['acctid']} LIMIT 1");
$rprow=db_fetch_assoc($rpresult);;
if(isset($_POST['acctid'])){
if($session['user']['acctid']==$_POST['acctid'])$session['user']['donationspent']+=2500;
db_query("UPDATE `accounts` SET ".($rprow['superuser']==1?"rppoints=rppoints+100000":"donationspent=donationspent+2500")." WHERE acctid=".$_POST['acctid']);
systemmail($_POST['acctid'],"Jobanfrage abgelehnt","Ein Admin hat entschieden, Deinem Jobwunsch nicht nachzukommen. Deine ".($rprow['superuser']==1?"100000 Rollenspielpunkte":"2500 Donationspunkte")." wurden Dir wieder gutgeschrieben.");
}
unset($_POST,$_GET);
output("Die Jobanfrage wurde gelöscht.`n`n");
}
}
if($_POST['action']=='edit'){
if(isset($_POST['arbeit_ID'])){
$result=db_query("SELECT * FROM `arbeit` WHERE `ID`=".$_POST['arbeit_ID']);
$row=db_fetch_assoc($result);
if(db_num_rows($result)<>1){unset($_POST,$_GET);$info[]='Die Suche nach dem gewünschten Job war ohne Erfolg. Keine Bearbeitung möglich.';}
$name=explode('%%%',$row['name']);
$text=explode('%%%',$row['text']);
$defaults=array('arbeit_ID'=>$row['ID'],
'name1'=>$name[0],
'name2'=>$name[1],
'need_iq'=>$row['need_iq'],
'status'=>$row['status'],
'arbeitsort'=>$row['arbeitsort'],
'anzahl'=>$row['anzahl'],
'desc'=>$row['desc'],
'datei'=>$row['datei'],
'lohn_gold'=>$row['lohn_gold'],
'head'=>$text[0],
'accepttext'=>$text[1],
'worktext'=>$text[2]);
$styles['arbeit_ID']='style="width:20px;color:#333333;cursor:default;text-align:center;"';
}else{unset($_POST,$_GET);$info[]='Fehler in der Navigation, kein Zugriff auf das Bearbeitungsmenü.';}
}
if($_POST['action']=='delete'){
if(!isset($_POST['true'])){
$result=db_query("SELECT name FROM arbeit WHERE `ID`={$_POST['arbeit_ID']}");
$row=db_fetch_assoc($result);
$count=db_num_rows($result);
if($count==0){
$info[]='Der angefragte Job mit der ID '.$_POST['arbeit_ID'].' wurde nicht gefunden. Ein Löschen ist nicht möglich.';
unset($_POST,$_GET);
}else{
$name=str_replace("%%%","`0, ",$row['name']);
$result=db_query("SELECT name FROM accounts WHERE arbeit_ID={$_POST['arbeit_ID']}");
$count=db_num_rows($result);
output('Bist Du sicher, dass Du den Job "'.$name.'"`n löschen möchtest? ');
if($count>0)rawoutput('Dadurch werden folgende Spieler arbeitslos:<br>');
for($i=0;$i<$count;$i++){
$row=db_fetch_assoc($result);
output('`n'.$row['name'].'`0');
}
if($count>0)rawoutput('<br><br>Diese Spieler werden bei einer Löschung mit einer yom benachrichtigt.');
rawoutput('<br>Möchtest Du wirklich fortfahren? Ein einmal gelöschter Job, kann nicht wiederhergestellt werden - höchstens neu geschaffen. Sei Dir dessen bitte bewusst.');
rawoutput('<form action="jobeditor.php" method="POST"><input type="hidden" name="arbeit_ID" value="'.$_POST['arbeit_ID'].'"><input type="hidden" name="action" value="delete"><input type="hidden" name="true" value="1"><input type="submit" name="senden" value="Ja, diesen Job wirklich löschen" style="color:#FF0000;font-weight:bold;cursor:pointer;"></from>');
}
}elseif($_POST['true']=='1'){
$result=db_query("SELECT `name`,`ID` FROM `arbeit` WHERE `ID`={$_POST['arbeit_ID']}");
if(db_num_rows($result)<>1)$info[]='Dieser Job kann nicht gelöscht werden. Entweder existiert er nicht oder es sind doppelt verteilte IDs aufgetreten.';
else{
$row=db_fetch_assoc($result);
$name=explode('%%%',$row['name']);
$uresult=db_query("SELECT acctid FROM accounts WHERE arbeit_ID={$_POST['arbeit_ID']}");
$ucount=db_num_rows($uresult);
for($i=0;$i<$ucount;$i++){
$urow=db_fetch_assoc($uresult);
systemmail($urow['acctid'],'Gefeuert','Die höheren Mächte dieses Landes haben Dich von den Aufgaben als '.$name[$row['sex']].' entbunden und diese Job abgeschafft.');
}
db_query('DELETE FROM `arbeit` WHERE `ID`='.$_POST['arbeit_ID']);
db_query('UPDATE `accounts` SET `arbeit_ID`=0 WHERE `arbeit_ID`='.$_POST['arbeit_ID']);
}
unset($_GET,$_POST);output('Löschung erfolgreich.`n');
}
}
if($_POST['action']=='rauswurf'){
if(!isset($_POST['acctid'])){unset($_GET,$_POST);$info[]='Fehler beim Kündigen. Kein Spieler gefunden.';}
elseif(!isset($_POST['true'])){
$result=db_query("SELECT A.name AS username,A.sex,A.arbeit_ID,B.name AS arbeitname FROM `accounts` AS A, `arbeit` AS B WHERE `arbeit_ID`=`ID` AND `acctid`=".$_POST['acctid']);
$row=db_fetch_assoc($result);
$name=explode('%%%',$row['arbeitname']);
output('Bist Du sicher, dass Du '.$row['username'].'`0 als '.$name[$row['sex']].'`0 entlassen möchtest?');
rawoutput('<form action="jobeditor.php" method="POST"><input type="hidden" name="action" value="rauswurf"><input type="hidden" name="acctid" value="'.$_POST['acctid'].'"><input type="hidden" name="arbeit_ID" value="'.$row['arbeit_ID'].'"><input type="hidden" name="true" value="1"><input type=submit name="send" value="Ja, raus mit '.($row['sex']?'ihr':'ihm').'" style="cursor:pointer;"></form>');
}else{
if($session['user']['acctid']==$_POST['acctid'])$session['user']['arbeit_ID']=0;
db_query("UPDATE `accounts` SET `arbeit_ID`=0 WHERE `acctid`=".$_POST['acctid']);
db_query("UPDATE `arbeit` SET anzahl=anzahl-1 WHERE `ID`=".$_POST['arbeit_ID']);
$result=db_query("SELECT A.name,B.sex FROM `arbeit` AS A, `accounts` AS B WHERE A.ID=".$_POST['acctid']." AND B.acctid=A.ID");
$row=db_fetch_assoc($result);
$name=explode('%%%',$row['name']);
systemmail($_POST['acctid'],'Gefeuert','Die höheren Mächte dieses Landes haben Dich von den Aufgaben als '.$name[$row['sex']].'`0 entbunden.');
unset($_GET,$_POST);output('Kündigung erfolgte.`n');
}
}
if($_POST['action']=='anfrage'){
$result=db_query("SELECT A.lohn_gold,A.desc,B.name,A.ID FROM arbeit AS A, accounts AS B WHERE A.status=2 AND A.lohn_gold=B.acctid");
$count=db_num_rows($result);
if($count==1)output("Die folgende Jobanfrage wurde geschickt:");
else output("Die folgenden Jobanfragen wurden geschickt:");
rawoutput('<table style="border:none;border-collapse:separate;border-spacing:1px;background-color:#BBBBBB;width:100%;">');
for($i=0;$i<$count;$i++){
$row=db_fetch_assoc($result);
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">');
output($row['name'].'`0');
rawoutput('</td><td style="background-color:#000000;">');
output($row['desc'].'`0');
rawoutput('<div style="text-align:right;"><form action="jobeditor.php" method="POST"><input type="hidden" name="action" value="userjob"><input type="hidden" name="acctid" value="'.$row['lohn_gold'].'"><input type="hidden" name="arbeit_ID" value="'.$row['ID'].'"><input type="submit" name="send" value="Jobwunsch kreieren" style="color:#44BB44;margin:2px;width:125px;cursor:pointer;"><input type="submit" name="send" value="Jobwunsch ablehnen" style="color:#BB0000;margin:2px;width:125px;cursor:pointer;"></form></div></td><tr>');
}
rawoutput('</table>');
}
if($_POST['act']=='sql'){
$insert=true;
if(empty($_POST['name2'])){
if(empty($_POST['name1'])){
$styles['name1']='style="color:#FF0000;font-weight:bold;width:160px;border-color:#FF0000;"';
$styles['name2']='style="color:#FF0000;font-weight:bold;width:160px;border-color:#FF0000;"';
$insert=false;
$info[]='Mindestens ein Name muss eingegeben werden.';
}else{
$defaults['name1']=$_POST['name1'];
$defaults['name2']=$_POST['name1'].'in';
}
}else{
$defaults['name2']=$_POST['name2'];
$defaults['name1']=(empty($_POST['name1']))?$_POST['name2']:$_POST['name1'];
}
$defaults['status']=(int)$_POST['status'];
if(empty($defaults['status'])){
if(!(int)$_POST['need_iq']>0){
$styles['need_iq']='style="width:30px;text-align:center;color:#FF0000;font-weight:bold;border-color:#FF0000;"';
$insert=false;
$info[]='Ist ein Job öffentlich, so muss die IQ-Grenze über Null liegen.';
}else $defaults['need_iq']=(int)$_POST['need_iq'];
if(!(int)$_POST['anzahl']>0){
$styles['anzahl']='style="width:30px;text-align:center;color:#FF0000;font-weight:bold;border-color:#FF0000;"';
$insert=false;
$info[]='Die Anzahl der zur Verfügung stehenden Jobs muss größer sein als Null.';
}else $defaults['anzahl']=(int)$_POST['anzahl'];
}else{
$defaults['need_iq']=0;
$defaults['anzahl']=0;
}
if(empty($_POST['arbeitsort'])){
$styles['arbeitsort']='style="color:#FF0000;font-weight:bold;width:160px;border-color:#FF0000;"';
$insert=false;
$info[]='Der im Arbeitsamt angezeigte Ort darf nicht leer sein.';
}else $defaults['arbeitsort']=$_POST['arbeitsort'];
if(empty($_POST['desc'])){
$styles['desc']='style="color:#FF0000;font-weight:bold;width:330px;height:90px;border-color:#FF0000;"';
$insert=false;
$info[]='Der Job muss eine Beschreibung bekommen.';
}else $defaults['desc']=$_POST['desc'];
if(empty($_POST['datei'])){
$styles['datei']='style="color:#FF0000;font-weight:bold;width:160px;border-color:#FF0000;"';
$insert=false;
$info[]='Die Dateiangabe darf nicht leer sein.';
}else $defaults['datei']=$_POST['datei'];
if(empty($_POST['head'])){
$styles['head']='style="color:#FF0000;font-weight:bold;width:160px;border-color:#FF0000;"';
$insert=false;
$info[]='Die Überschrift darf nicht leer sein.';
}else $defaults['head']=$_POST['head'];
if(empty($_POST['accepttext'])){
$styles['accepttext']='style="color:#FF0000;font-weight:bold;width:330px;height:90px;border-color:#FF0000;"';
$info[]='Der Annahmetext darf nicht leer sein.';
$insert=false;
}else $defaults['accepttext']=$_POST['accepttext'];
if(empty($_POST['worktext'])){
$styles['worktext']='style="color:#FF0000;font-weight:bold;width:330px;height:90px;border-color:#FF0000;"';
$insert=false;
$info[]='Der Arbeitstext darf nicht leer sein.';
}else $defaults['worktext']=$_POST['worktext'];
if(!(int)$_POST['lohn_gold']>0){
$styles['lohn_gold']='style="width:40px;text-align:center;color:#FF0000;font-weight:bold;border-color:#FF0000;"';
$insert=false;
$info[]='Der Lohn muss größer als Null sein.';
}else $defaults['lohn_gold']=(int)$_POST['lohn_gold'];
if($_POST['action']=='edit'){
$sql="SELECT count(arbeit_ID) AS angestellt FROM accounts WHERE arbeit_ID={$_POST['arbeit_ID']}";
$result=db_query($sql);
$row=db_fetch_assoc($result);
if($row['angestellt']>$_POST['anzahl'] && $_POST['status']==0){
$defaults['anzahl']=$row['angestellt'];
$styles['anzahl']='style="width:30px;text-align:center;color:#FF0000;font-weight:bold;"';
$insert=false;
$info[]='Der Job ist öffentlich und darf nicht weniger Plätze haben, als es schon Arbeiter dazu gibt. Der Wert wurde auf das Minimum korrigiert.';
}elseif($_POST['status']==1){
$defaults['anzahl']=$row['angestellt'];
}
}
if($_POST['action']=='create' && $insert){
$sql="INSERT INTO `arbeit` (`name`,status,need_iq,arbeitsort,anzahl,datei,lohn_gold,`text`,`desc`) VALUES
('".addslashes($defaults['name1']."%%%".$defaults['name2'])."',{$defaults['status']},{$defaults['need_iq']},'".addslashes($defaults['arbeitsort'])."',
{$defaults['anzahl']},'".addslashes($defaults['datei'])."',{$defaults['lohn_gold']},
'".addslashes($defaults['head']."%%%".$defaults['accepttext']."%%%".$defaults['worktext'])."','".addslashes($defaults['desc'])."')";
db_query($sql);output('Job geschaffen.`n');
unset($_GET,$_POST);
}elseif(($_POST['action']=='edit' || $_POST['action']=='userjob') && $insert){
$sql="UPDATE arbeit SET `name`='".addslashes($defaults['name1']."%%%".$defaults['name2'])."', status={$defaults['status']},
need_iq={$defaults['need_iq']}, arbeitsort='".addslashes($defaults['arbeitsort'])."', anzahl={$defaults['anzahl']},
datei='".addslashes($defaults['datei'])."', lohn_gold={$defaults['lohn_gold']},
`text`='".addslashes($defaults['head']."%%%".$defaults['accepttext']."%%%".$defaults['worktext'])."',
`desc`='".addslashes($defaults['desc'])."'
WHERE `id`={$_POST['arbeit_ID']}";
db_query($sql);
if(isset($_POST['acctid'])){
$_POST['action']='vergabe';
$_POST['add1']=$_POST['acctid'];
$_POST['act']='suche';
systemmail($_POST['acctid'],"Dein Wunschjob wurde geschaffen","Deine Wunschjob wurde soeben von einem Admin kreiert. Nun musst Du nur noch angestellt werden. Wenn der Admin gute Laune hat, wir das in Kürze passieren.");
}
else{unset($_GET,$_POST);output('Job geändert.`n');}
}
}
if($_POST['action']=='vergabe'){
if($_POST['send']=='Auswahl einstellen' && !empty($_POST['arbeit_ID'])){
if(count($_POST['addsuch'])==0)$_POST['send']='';
else{
$aresult=db_query("SELECT name,arbeitsort FROM arbeit WHERE `ID`=".$_POST['arbeit_ID']);
$arow=db_fetch_assoc($aresult);
$aname=explode('%%%',$arow['name']);
$sql="SELECT A.acctid,A.sex,A.arbeit_ID,B.name FROM accounts AS A, arbeit AS B WHERE A.acctid IN (".implode(',',$_POST['addsuch']).") AND B.ID=A.arbeit_ID";
$result=db_query($sql);
$count=db_num_rows($result);
for($i=1;$i<=$count;$i++){
$row=db_fetch_assoc($result);
$name=explode('%%%',$row['name']);
if($row['arbeit_ID']>0){
systemmail($row['acctid'],'Gefeuert','Die höheren Mächte dieses Landes haben Dich von den Aufgaben als '.$name[$row['sex']].' entbunden.');
db_query("UPDATE `arbeit` SET anzahl=anzahl-1 WHERE `ID`=".$row['arbeit_ID']);
}
systemmail($row['acctid'],'Eingestellt','Die höheren Mächte dieses Landes haben entschieden, dass Du von nun an '.$aname[$row['sex']].' bist.');
}
if(in_array($session['user']['acctid'],$_POST['addsuch']))$session['user']['arbeit_ID']=$_POST['arbeit_ID'];
db_query("UPDATE `accounts` SET `arbeit_ID`={$_POST['arbeit_ID']} WHERE acctid IN (".implode(',',$_POST['addsuch']).")");
db_query("UPDATE `arbeit` SET anzahl=anzahl+".count($_POST['addsuch'])." WHERE `ID`=".$_POST['arbeit_ID']);
}
}
if($_POST['send']<>'Auswahl einstellen'){
$count=0;
if($_POST['act']=='suche'){
$form='';
$i=1;
$suche=array();
while(isset($_POST['add'.$i])){
if(!empty($_POST['add'.$i]))$suche[]=((int)$_POST['add'.$i]>0)?(int)$_POST['add'.$i]:"'".addslashes($_POST['add'.$i])."'";
$i++;
}if(count($suche)<>0){
$asql="SELECT `ID`,`name` FROM `arbeit`";
$aresult=db_query($asql);$acount=db_num_rows($aresult);$name=array();
for($i=0;$i<$acount;$i++){$arow=db_fetch_assoc($aresult);$name[$arow['ID']]=explode('%%%',$arow['name']);}
$sql="SELECT login,acctid,arbeit_ID,iq,sex FROM accounts WHERE login IN (".implode(',',$suche).") OR acctid IN (".implode(',',$suche).")";
$result=db_query($sql);
$count=db_num_rows($result);
}if($count==0)rawoutput('Deine Suche hat keine Ergebnisse gebracht. Versuche es noch einmal.<br><br>');
else{
for($i=1;$i<=$count;$i++){
$row=db_fetch_assoc($result);
$form.='<table><tr><td style="width:20px;"><input type="checkbox" name="addsuch[]" value="'.$row['acctid'].'" '.($row['arbeit_ID']==$_POST['arbeit_ID']?'disabled':'checked').'></td><td><input type="text" id="suchid'.$i.'" name="add'.$i.'" value="'.$row['login'].'" style="margin:5px;width:90px;">';
if($row['arbeit_ID']==$_POST['arbeit_ID'])$form.=" (übt diesen Job schon aus, eine Auswahl wäre etwas unsinnig)";
elseif($row['arbeit_ID']>0)$form.=" (ist bereits ".$name[$row['arbeit_ID']][$row['sex']]."`0, wird bei einer Einstellung gekündigt und darüber per yom informiert.)";
else $form.=" (wird bei einer Einstellung per yom darüber informiert)";
$form.='</td></tr></table>';
}
}
}
rawoutput('Gib in das Feld login-Name oder User-ID ein - bitte jeweils eine vollständige Angabe. Hast Du zu viele Felder geöffnet, lasse sie einfach leer, Reihenfolge ist ganz egal. Sie werden dann nicht in der Suche berücksichtigt.<br>Auch Spieler, die bereits einen Job haben, werden beim Suchergebnis aufgeführt.');
rawoutput('<form action="jobeditor.php" method="POST"><table>
<div id="addsuche"></div>
<script language="JavaScript"><!--
if('.(int)strlen($form).'>0){document.getElementById(\'addsuche\').innerHTML="'.addslashes(appoencode($form,true)).'";}
var suche='.($count+1).';
function addsuche(){
var suchinh=Array();
var suchdiv=document.getElementById(\'addsuche\');
for(var i=1;i<=suche-1;i++) suchinh[i]=document.getElementById("suchid"+i).value;
suchdiv.innerHTML+="<table><tr><td style=\"width:20px;\"><input type=\"checkbox\" name=\"addsuch[]\" value=\"0\" disabled></td><td><input type=\"text\" id=\"suchid"+suche+"\" name=\"add"+suche+"\" value=\"\" style=\"margin:5px;width:90px;\"></td></tr></table>";
for(var i=1;i<=suche-1;i++) document.getElementById("suchid"+i).value=suchinh[i];
suche=suche+1;
}
//--></script>
<input type="button" name="add" value="Noch jemanden suchen" onclick="addsuche();">
<input type="submit" name="send" value="Suche starten" style="cursor:pointer;">
'.((int)strlen($form)>0?'<input type="submit" name="send" value="Auswahl einstellen" style="color:#55BB55;cursor:pointer;">':'').'
<input type="hidden" name="action" value="vergabe">
<input type="hidden" name="act" value="suche">
<input type="hidden" name="arbeit_ID" value="'.$_POST['arbeit_ID'].'">
<script language="JavaScript"><!--
'.((int)strlen($form)>0?'':'addsuche();').'
//--></script></table></form>
');
}if($_POST['send']=='Auswahl einstellen'){unset($_GET,$_POST);output('Auswahl wurde eingestellt.`n');}
}
if($_POST['action']=='create' || $_POST['action']=='edit' || $_POST['action']=='userjob'){
if(isset($info) && count($info)>0){output('`P'.(count($info)==1?'Das folgendes Problem ist':'Die folgende Probleme sind').' aufgetreten:');foreach($info AS $num=>$i){rawoutput('<br>('.($num+1).') '.$i);}output('`0`n`n');}
if(isset($_POST['username']))output("`nEinen Job für ".$_POST['username']." `0erstellen`n`nVorstellung:`n".$_POST['userdesc'].'`n`n');
rawoutput('
<script language="JavaScript"><!--
function radiodis(bool){
document.getElementById(\'need_iq\').disabled=bool;
document.getElementById(\'anzahl\').disabled=bool;
document.getElementById(\'need_iq\').style.cursor=(!bool)?"auto":"default";
document.getElementById(\'anzahl\').style.cursor=(!bool)?"auto":"default";
document.getElementById(\'need_iq\').style.color=(!bool)?"#CCCCCC":"#444444";
document.getElementById(\'anzahl\').style.color=(!bool)?"#CCCCCC":"#444444";
}
//--></script>
<form action="jobeditor.php" method="POST">
<table>
<tr><td colspan="2" style="cursor:help;font-size:14px;vertical-align:bottom;text-align:center;text-decoration:underline;" onClick="window.open(\'jobeditor.php?op=help&act=1\',\'Hilfe1\',\'scrollbars=no,resizable=no,width=550,height=330\');">Allgemeine Angaben zum Job</td></tr>
<tr>
<td style="text-align:right;">ID:</td>
<td><input name="arbeit_ID" value="'.$defaults['arbeit_ID'].'" disabled '.$styles['arbeit_ID'].'></td></tr>
<tr>
<td style="text-align:right;">Beruf:</td>
<td><input name="name1" id="name" value="'.$defaults['name1'].'" '.$styles['name1'].'><br>
<input name="name2" value="'.$defaults['name2'].'" '.$styles['name2'].'></td></tr>
<tr>
<td style="text-align:right;">Status</td>
<td><input type="radio" name="status" value="0" onChange="radiodis(false);" '.(((!isset($_POST['status']) || empty($_POST['status']))|| !$defaults['status'])?'checked':'').'>öffentlich<br>
<input type="radio" name="status" value="1" onChange="radiodis(true);" '.((( isset($_POST['status']) && !empty($_POST['status']))|| $defaults['status'])?'checked':'').'>speziell</td></tr>
<tr style="height:40px;">
<td colspan="2" style="cursor:help;font-size:14px;vertical-align:bottom;text-align:center;text-decoration:underline;" onClick="window.open(\'jobeditor.php?op=help&act=2\',\'Hilfe2\',\'scrollbars=no,resizable=no,width=550,height=275\');">Angaben für das Arbeitsamt</td></tr>
<tr>
<td style="text-align:right;">IQ-Punkte:</td>
<td><input type="text" id="need_iq" name="need_iq" maxlength="3" '.$styles['need_iq'].' value="'.$defaults['need_iq'].'" onkeyup="var Eingabe=this.value;var Ausgabe=Eingabe.replace(/[^0-9]/gi,\'\');this.value=Ausgabe;" value=""></td></tr>
<tr>
<td style="text-align:right;">Arbeitsort:</td>
<td><input type="text" name="arbeitsort" value="'.$defaults['arbeitsort'].'" '.$styles['arbeitsort'].'></td></tr>
<tr>
<td style="text-align:right;">Arbeitsplätze:</td>
<td><input type="text" id="anzahl" name="anzahl" maxlength="3" '.$styles['anzahl'].' value="'.$defaults['anzahl'].'" onkeyup="var Eingabe=this.value;var Ausgabe=Eingabe.replace(/[^0-9]/gi,\'\');this.value=Ausgabe;" value=""></td></tr>
<tr>
<td style="text-align:right;">Beschreibung:</td>
<td><textarea cols="40" rows="3" name="desc" '.$styles['desc'].'>'.$defaults['desc'].'</textarea></td></tr>
<tr style="height:40px;">
<td colspan="2" style="cursor:help;font-size:14px;vertical-align:bottom;text-align:center;text-decoration:underline;" onClick="window.open(\'jobeditor.php?op=help&act=3\',\'Hilfe3\',\'scrollbars=no,resizable=no,width=600,height=450\');">Angaben für das Arbeiten</td></tr>
<tr>
<td style="text-align:right;">Datei:</td>
<td><input type="text" name="datei" value="'.$defaults['datei'].'" '.$styles['datei'].'></td></tr>
<tr>
<td style="text-align:right;">Lohn:</td>
<td><input type="text" name="lohn_gold" maxlength="4" '.$styles['lohn_gold'].' value="'.$defaults['lohn_gold'].'" onkeyup="var Eingabe=this.value;var Ausgabe=Eingabe.replace(/[^0-9]/gi,\'\');this.value=Ausgabe;if(this.value==\'\')this.value=0;" value=""></td></tr>
<tr>
<td style="text-align:right;">Überschrift:</td>
<td><input type="text" name="head" value="'.$defaults['head'].'" '.$styles['head'].'></td></tr>
<tr>
<td style="text-align:right;">Annahmetext:</td>
<td><textarea cols="40" rows="3" name="accepttext" '.$styles['accepttext'].'>'.$defaults['accepttext'].'</textarea></td></tr>
<tr>
<td style="text-align:right;">Arbeitstext:</td>
<td><textarea cols="40" rows="3" name="worktext" '.$styles['worktext'].'>'.$defaults['worktext'].'</textarea></td></tr>
<tr>
<td colspan="2" style="text-align:right;">
<input type="hidden" name="arbeit_ID" value="'.(isset($_POST['arbeit_ID'])?$_POST['arbeit_ID']:0).'">
<input type="hidden" name="action" value="'.$_POST['action'].'">
'.(isset($_POST['username'])?'<input type="hidden" name="username" value="'.$_POST['username'].'"><input type="hidden" name="userdesc" value="'.$_POST['userdesc'].'"><input type="hidden" name="acctid" value="'.$_POST['acctid'].'">':'').'
<input type="submit" name="send" value="Job '.($_POST['action']=='edit'?'ändern':'kreieren').'" style="cursor:pointer;">
<input type="hidden" name="act" value="sql">
</td></tr>
</table>
</form>
<script language="JavaScript"><!--
document.getElementById("name").focus();
if('.(int)$_POST['status'].'==1 || '.(int)$defaults['status'].'==1){radiodis(true);}
//--></script>
');
}
if($_POST['action']=='auto_increment'){
if(!isset($_POST['true'])){
$result=db_query("SELECT COUNT(`id`) AS count, MAX(`id`) AS max FROM `arbeit`");
$row=db_fetch_assoc($result);
if($row['count']>=$row['max'])rawoutput("Die größe JobID ist momentan {$row['max']} und es existieren {$row['count']} Jobs inklusive Jobanfragen. Ergo: Die IDs können nicht verkleinert werden.");
else rawoutput("Es gibt im Moment {$row['count']} Jobs (inkl. Jobanfragen) und der neuste Job (evtl. auch Jobanfrage) hat die ID {$row['max']}. Dieser Unterschied kommt durch gelöschte Jobs und abgelehnte Jobanfragen der User zustande. Wenn Dir soviel daran liegt, die IDs zahlentechnisch klein zu halten, sollst Du die Möglichkeit dazu bekommen. Sei Dir aber bewusst, dass diese Änderung auf Nichts positiven Einfluss haben wird, schon gar nicht auf die Spielgeschwindigkeit. Das ist im besten Fall reine Kosmetik.<br><br>Ich möchte bei der Gelegenheit auch auf eine mögliche Gefahr hinweisen: Wird ein User durch das Spielen im Spiel gerade aus der Datenbank gelesen (er ruft die common auf), minimierst Du danach die IDs und wird dann erst der User wieder abgespeichert (page_footer wird ausgeführt), wird es passieren - nicht kann sondern wird - dass die Änderung der IDs an ihm vorbei ging. Das ist nicht weiter dramatisch, wenn sein Job gar nicht betroffen war oder er gar keinen hat. Außerdem ist ist das eine Sache von ein paar hundertstel Sekunden, je nach Servergeschwindigkeit. Stelle also sicher, das sich momentan möglichst wenig User im Spiel aufhalten.<br>Die Warnung ist nichts Neues, das Problem kann bei jeder Umschreibung der accounts-Tabelle auftauchen und wird bei solchen Massenumschreibung schlicht etwas wahrscheinlicher.<br>Das Prinzip sollte eigentlich bekannt sein. Mach sonst einfach mal den Test, nehme eine x-beliebige Datei, schreibe<br>db_query(\"UPDATE accounts SET name='Held der Stunde' WHERE acctid={\$session['user']['acctid']}\");<br>dazu und stelle fest, dass diese Änderung im besten Fall Bruchteile von Sekunden Bestand hat.<br>Aber was redet der Mann auf dem Bildschirm da schon wieder, Du bist Admin, also:<br>Möchtest Du die IDs minimieren?<br><form action=\"jobeditor.php\" method=\"POST\"><input type='hidden' name='true' value='1'><input type='hidden' name='action' value='auto_increment'><input type='submit' name='send' value='Ja, die IDs minimieren.' style=\"margin:5px;cursor:pointer;\"></form>");
}elseif($_POST['true']=='1'){
$result=db_query("SELECT `id` FROM `arbeit` ORDER BY `id` ASC");
$num=db_num_rows($result);
for($id=1;$id<=$num;$id++){
$row=db_fetch_assoc($result);
if($id<$row['id']){
db_query("UPDATE `arbeit` SET `id`={$id} WHERE `id`={$row['id']}");
db_query("UPDATE `accounts` SET `arbeit_ID`={$id} WHERE `arbeit_ID`={$row['id']}");
}
}
db_query("ALTER TABLE `arbeit` AUTO_INCREMENT = ".($id));
rawoutput("Minimierung der JobIDs abgeschlossen, die Spieler wurden entsprechend angepasst, die nächste JobID wird ".($id)." sein.");
}
}
if(empty($_GET['op']) && empty($_POST['action'])){
if(isset($info) && count($info)>0){output('`P'.(count($info)==1?'Das folgendes Problem ist':'Die folgende Probleme sind').' aufgetreten:`n');foreach($info AS $i){rawoutput('<br>'.$i);}output('`0`n`n');}
$sql="SELECT A.ID, A.name,A.anzahl,A.need_iq,A.arbeitsort,A.desc,A.lohn_gold,A.datei,A.status,A.text, SUM(IF(B.arbeit_ID=A.id,1,0)) AS angestellt FROM `arbeit` AS A, `accounts` AS B WHERE status<2 GROUP BY A.ID";
$result=db_query($sql);
$count=db_num_rows($result);
output("`0Der Jobeditor ist dazu gedacht, die Jobs des Spiel zentral zu verwalten.`nFolgende Jobs stehen aktuell zur Verfügung:`n`n");
rawoutput('<table style="border:none;width:100%;">');
for($i=0;$i<$count;$i++){
$row=db_fetch_assoc($result);
rawoutput('<script language="JavaScript"><!--
function jobdescription'.$row['ID'].'(){
var desctable=document.getElementById("jobtableid'.$row['ID'].'");
var desctd1=document.getElementById("jobtd1id'.$row['ID'].'");
var desctd2=document.getElementById("jobtd2id'.$row['ID'].'");
if(desctable.style.display=="none"){desctable.style.display="block";desctd1.style.color="#FFFFFF";desctd2.style.color="#FFFFFF";desctd1.style.backgroundColor="#555555";desctd2.style.backgroundColor="#555555";}
else{desctable.style.display="none";desctd1.style.color="#BBBBBB";desctd2.style.color="#BBBBBB";desctd1.style.backgroundColor="#222222";desctd2.style.backgroundColor="#222222";};
}
//--></script>');
rawoutput('<tr style="height:15px;"><td style="background-color:#222222;cursor:help;padding:0px 9px 0px 0px;" id="jobtd1id'.$row['ID'].'" onclick="jobdescription'.$row['ID'].'();">');output(str_replace("%%%",", ",$row['name']).'`0'.($row['status']?' (speziell)':''));rawoutput('</td><td style="background-color:#222222;padding:0px 9px 0px 0px;" id="jobtd2id'.$row['ID'].'">'.$row['angestellt'].'/'.$row['anzahl'].' vergeben</td></tr>');
rawoutput('<tr><td colspan="2">
<table id="jobtableid'.$row['ID'].'" style="border:none;border-collapse:separate;border-spacing:1px;background-color:#BBBBBB;width:100%;">');
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Dieser Job wird ausgeübt in:</td><td colspan="2" style="background-color:#000000;">');output($row['arbeitsort'].'`0');rawoutput('</td></tr>');
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Status:</td><td colspan="2" style="background-color:#000000;">'.($row['status']?'speziell <form id="formvergabe'.$row['ID'].'" action="jobeditor.php" method="POST" style="display:inline;"><input type="hidden" name="action" value="vergabe"><input type="hidden" name="arbeit_ID" value="'.$row['ID'].'"><span style="color:#55BB55;text-decoration:underline;font-weight:bold;cursor:pointer;" onclick="document.getElementById(\'formvergabe'.$row['ID'].'\').submit();">[User einstellen]</span></form>':'öffentlich').'</td></tr>');
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">IQ-Voraussetzung:</td><td colspan="2" style="background-color:#000000;">'.$row['need_iq'].'</td></tr>');
if($row['angestellt']>0){
$uresult=db_query("SELECT acctid,name,iq,sex FROM accounts WHERE arbeit_ID=".$row['ID']);
$ucount=db_num_rows($uresult);
for($k=0;$k<$ucount;$k++){
$urow=db_fetch_assoc($uresult);
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Angestellte'.($urow['sex']?'':'r').':</td><td style="background-color:#000000;cursor:pointer;" title="kündigen"><form id="formraus'.$urow['acctid'].'" action="jobeditor.php" method="POST" style="display:inline;"><input type="hidden" name="action" value="rauswurf"><input type="hidden" name="acctid" value="'.$urow['acctid'].'">');output('<span class="spanbutton" onclick="document.getElementById(\'formraus'.$urow['acctid'].'\').submit();">'.$urow['name'].'`0</span>',true);rawoutput('</form></td><td style="text-align:left;background-color:#000000;">(<span '.($urow['iq']<$row['need_iq']?'style="color:#FF0000;font-weight:bold;"':'').'>'.$urow['iq'].'</span> IQ-Punkte)</td></tr>');
}
}else rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Angestellt:</td><td colspan="2" style="background-color:#000000;">Niemand</td></tr>');
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Entlohnung:</td><td colspan="2" style="background-color:#000000;">'.$row['lohn_gold'].' Gold</td></tr>');
$position=strrpos($row['datei'],".php");
$specialinc=substr($row['datei'],0,$position+4);
if(!file_exists($specialinc)){
$endung=(strlen($row['datei'])>=$position+5)?substr($row['datei'],$position+4,strlen($row['datei'])):'';
$dateilink='forest.php'.$endung;
}else{$dateilink=$row['datei'];$specialinc='';}
addnav('',$dateilink);
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Arbeiten-Link in:</td><td colspan="2" style="background-color:#000000;"><form id="formdatei'.$row['ID'].'" action="'.$dateilink.'" method="POST"><input type="hidden" name="action" value="dateitest"><input type="hidden" name="specialinc" value="'.$specialinc.'"><span onclick="document.getElementById(\'formdatei'.$row['ID'].'\').submit();" class="spanbutton" title="Link folgen">'.$row['datei'].(empty($specialinc)?'':' (Besonderes Ereignis)').'</span></form></td></tr>');
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Jobbeschreibung:</td><td colspan="2" style="background-color:#000000;">');output($row['desc']);rawoutput('</td></tr>');
$text=explode('%%%',$row['text']);
rawoutput('<tr><td style="text-align:right;padding:0px 9px 0px 0px;background-color:#000000;">Arbeitstext:</td><td colspan="2" style="background-color:#000000;">');output($text[0].'`n'.$text[1].'`n`n...`n`n'.$text[2].'`0');rawoutput('</td></tr>');
rawoutput('<tr><td colspan="3" style="text-align:right;width:100%;vertical-align:middle;background-color:#000000;">
<form action="jobeditor.php" method="POST" style="display:inline;"><input type="hidden" name="arbeit_ID" value="'.$row['ID'].'"><input type="hidden" name="action" value="edit"><input type="submit" name="update" value="Job editieren" style="color:#44BB44;margin:2px;width:100px;cursor:pointer;"></form>
<form action="jobeditor.php" method="POST" style="display:inline;"><input type="hidden" name="arbeit_ID" value="'.$row['ID'].'"><input type="hidden" name="action" value="delete"><input type="submit" name="update" value="Job löschen" style="color:#BB0000;margin:2px;width:100px;cursor:pointer;"></form>
</td></tr>');
rawoutput('</table></td></tr>');
rawoutput('<script language="JavaScript"><!--
document.getElementById("jobtableid'.$row['ID'].'").style.display="none";
//--></script>
');
}
rawoutput('</table>');
addnav("Dolle Übersicht");
addnav('<form id="formcreate" action="jobeditor.php" method="POST" style="display:inline;"><input type="hidden" name="action" value="create"><span class="spanbutton" onclick="document.getElementById(\'formcreate\').submit();">Job kreieren</span></form>','',true);
addnav('<form id="formautoincrement" action="jobeditor.php" method="POST" style="display:inline;"><input type="hidden" name="action" value="auto_increment"><span class="spanbutton" onclick="document.getElementById(\'formautoincrement\').submit();">JobIDs minimieren</span></form>','',true);
$result=db_query("SELECT A.ID FROM arbeit AS A, accounts AS B WHERE status=2 AND A.lohn_gold=B.acctid");
$count=db_num_rows($result);
if($count>0)addnav('<form id="formanfrage" action="jobeditor.php" method="POST" style="display:inline;"><input type="hidden" name="action" value="anfrage"><span class="spanbutton" style="color:#22DD22;" onclick="document.getElementById(\'formanfrage\').submit();">'.($count==1?'Eine Jobanfrage':$count.' Jobanfragen').' vorhanden</span></form>','',true);
else addnav("`TKeine Jobanfragen vorhanden","");
addnav('<span class="spanbutton" style="cursor:help;color:#AAAAAA;" onClick="window.open(\'jobeditor.php?op=help&act=4\',\'Hilfe4\',\'scrollbars=no,resizable=no,width=800,height=635\');">How to do...</span>',"",true);
}
if(!(empty($_GET['op']) && empty($_POST['action'])))addnav('<form id="formback" action="jobeditor.php" method="POST" style="display:inline;"><span class="spanbutton" onclick="document.getElementById(\'formback\').submit();">zurück zur Übersicht</span></form>','',true);
addnav('','jobeditor.php');
addnav("zurück zur Grotte","superuser.php");
page_footer();
}
?>