From 40248fbbdfddf1d5c29e7bd738f28f6f7630ef97 Mon Sep 17 00:00:00 2001 From: radiskull Date: Wed, 13 Aug 2014 06:59:22 +0000 Subject: [PATCH] #139 eingebaut Weiterhin wird bei Attacken erstellen nun auch nurnoch Attackentypen angezeigt, die in der DB sind --- ag/gm/gm_seite.php | 9 +- ag/gm/include/attacken.inc.php | 238 ++++++++++++++++++++++++++++++--- 2 files changed, 224 insertions(+), 23 deletions(-) diff --git a/ag/gm/gm_seite.php b/ag/gm/gm_seite.php index 1e4e86b..5909664 100644 --- a/ag/gm/gm_seite.php +++ b/ag/gm/gm_seite.php @@ -126,6 +126,11 @@ function displayOptions(){ Attacken bearbeiten + + + Attackentypen bearbeiten + + Umfragen bearbeiten @@ -224,7 +229,9 @@ if(checkLoginData($_SESSION['user'],$_SESSION['password'])){ } else if($_REQUEST['choose'] == 'logout'){ logout(); } else if($_REQUEST['choose'] == 'attacken'){ - displayAttackenMenu($_REQUEST['action'], $_REQUEST['attackname'], $_REQUEST['attackid'], $_REQUEST['depth'], $_REQUEST['name'], $_REQUEST['starke'], $_REQUEST['verteidigung'], $_REQUEST['speed'], $_REQUEST['hp'], $_REQUEST['mp'], $_REQUEST['rassen'], $_REQUEST['level'], $_REQUEST['geld'], $_REQUEST['options'], $_REQUEST['type'], $_REQUEST['info'], $_REQUEST['req_atk'], $_REQUEST['req_lvl'], $_REQUEST['Frucht'], $_REQUEST['runden'], $_REQUEST['maxlvl']); + displayAttackenMenu($_REQUEST['action'], $_REQUEST['attackname'], $_REQUEST['attackid'], $_REQUEST['depth'], $_REQUEST['name'], $_REQUEST['starke'], $_REQUEST['verteidigung'], $_REQUEST['speed'], $_REQUEST['hp'], $_REQUEST['mp'], $_REQUEST['rassen'], $_REQUEST['level'], $_REQUEST['geld'], $_REQUEST['options'], $_REQUEST['type'], $_REQUEST['info'], $_REQUEST['req_atk'], $_REQUEST['req_lvl'], $_REQUEST['Frucht'], $_REQUEST['runden'], $_REQUEST['maxlvl'], $_REQUEST); + } else if($_REQUEST['choose'] == 'attackentypen') { + displayAttackenTypen($_REQUEST); } else if($_REQUEST['choose'] == 'bann'){ displayBannOptions($_REQUEST['action'], $_REQUEST['username'],$_REQUEST['opfer'],$_REQUEST['gamebann'],$_REQUEST['shoutbann'],$_REQUEST['forenbann'],$_REQUEST['anonid']); } else if($_REQUEST['choose'] == 'items'){ diff --git a/ag/gm/include/attacken.inc.php b/ag/gm/include/attacken.inc.php index 24c000d..233e139 100644 --- a/ag/gm/include/attacken.inc.php +++ b/ag/gm/include/attacken.inc.php @@ -8,7 +8,7 @@ */ ?> @@ -217,12 +217,12 @@ function createOrEditAttack($action, $attackid) { - - + + @@ -420,16 +420,16 @@ function editAttack($attackname, $attackid, $Frucht, $starke, $verteidigung, $sp $row = mysql_fetch_assoc(mysql_query('Select * from attacken where id ='.$attackid)); $req_atk = implode(',', $req_atk); - json_decode($options, true); - if(JSON_ERROR_NONE != json_last_error()) { - echo "
"; - echo "Attacke konnte nicht erstellt werden, syntax för options ist nicht korrekt!"; - echo "
"; - echo displayHistoryBackLink(); + json_decode($options, true); + if(JSON_ERROR_NONE != json_last_error()) { + echo "
"; + echo "Attacke konnte nicht erstellt werden, syntax för options ist nicht korrekt!"; + echo "
"; + echo displayHistoryBackLink(); return; - } + } + - if($Frucht != 0){ $sql = 'UPDATE attacken set name = \''.htmlspecialchars(urldecode($attackname)).'\', starke = '.$starke.', verteidigung = '.$verteidigung.', speed = '.$speed.', hp = '.$hp.', mp = '.$mp.', rassen = \''.$rassen.'\', level = '.$level.', geld = '.$geld.', type = \''.$type.'\', info = \''.$info.'\', req_atk = \''.$req_atk.'\', req_lvl = \''.$req_lvl.'\', Frucht = '.$Frucht.', runden = '.$runden.', maxlvl = '.$maxlvl.', options = \''.$options.'\' where id = '.$attackid; } else { @@ -439,10 +439,10 @@ function editAttack($attackname, $attackid, $Frucht, $starke, $verteidigung, $sp mysql_query('Update lernen set name = \''.$attackname.'\' WHERE at_id ='.$attackid); } //echo 'Debugnachricht: '.$sql.'
'; - if(!mysql_query($sql)){ - echo "Fehler beim Editieren der Attacke: Überprüfe deine Eingabe und melde erst DANACH dieses Statement einem Entwickler => $sql"; - return; - } + if(!mysql_query($sql)){ + echo "Fehler beim Editieren der Attacke: Überprüfe deine Eingabe und melde erst DANACH dieses Statement einem Entwickler => $sql"; + return; + } logaction('Attacke mit dem jetzigen Namen '.$attackname.' wurde editiert!'); ?> @@ -454,5 +454,199 @@ function editAttack($attackname, $attackid, $Frucht, $starke, $verteidigung, $sp '."\n"; + echo "\t".''."\n"; + echo "\t".''."\n"; + echo "\t".'
Type:
Options:'> - Options:'> +
Info:
'."\n"; + switch ($_REQUEST['action']) { + case ACTION_EDIT: + if($_REQUEST['task'] == TASK_EDIT) { + editAttackentyp($_REQUEST['attid'], $_REQUEST['data']); + displayAttackenTypenInfo(ACTION_EDIT, TASK_EDIT, $_REQUEST['attid']); + } else { + displayAttackenTypenInfo(ACTION_EDIT, TASK_EDIT, $_REQUEST['attid']); + } + break; + case ACTION_CREATE: + echo "\t".''."\n"; + if($_REQUEST['task'] == TASK_CREATE) { + createAttackentyp($_REQUEST['data']); + } else { + displayAttackenTypenInfo(ACTION_CREATE, TASK_CREATE, $_REQUEST['attid']); + } + break; + case 'delete': + if($_REQUEST['task'] == 'dodelete') { + deleteAttackentyp($_REQUEST['attid']); + } else { + displayDeleteAttackentyp($_REQUEST['attid']); + } + break; + default: + displayAttackenTypenOverview($_REQUEST['page']); + } + echo "\t".''."\n"; + echo "\t".'
Zum Hauptmenu
'."\n"; + echo ''."\n"; +} + +function displayAttackenTypenOverview($page) { + $d_array = array('id', 'name', 'anzahl', 'farbe', 'kategorie'); + $desc_array = array('ID', 'Name', 'Anzahl', 'Farbe', 'Kategorie'); + + $sql = 'SELECT '.join($d_array,',').' FROM attackentyp ORDER BY name LIMIT '.($page*20).', 20'; + $qry = db_query($sql); + $colspan = count($d_array)+1; + echo "\t".'

Übersicht

'."\n";; + echo "\t".''."\n"; + for($i=0;$i'.$desc_array[$i].''."\n"; + } + echo "\t\t".'Bearbeiten'."\n"; + echo "\t".''."\n"; + + echo "\t".'
'."\n"; + + while($row = mysql_fetch_assoc($qry)){ + echo "\t".''."\n"; + for($i=0;$i'.$row[$d_array[$i]].''."\n"; + } + + echo "\t\t".''."\n"; + + // Echo the delete and the edit button :) + echo "\t\t\t".'Edit, '."\n"; + echo "\t\t\t".'Delete'."\n"; + + echo "\t\t".''."\n"; + echo "\t".''."\n"; + + } + $total = mysql_num_rows(db_query('SELECT '.join($d_array,',').' FROM attackentyp')); + $url = '###LABEL###'; + echo "\t".'
'."\n"; + echo "\t".''.displayPagelinksNew(20, $total, $page, $url).''."\n"; + echo "\t".'
'."\n"; + echo "\t".'Create a new Type'."\n"; +} + +function displayAttackenTypenInfo($action, $task, $attid) { + //Form-Variablen + echo "\t".''."\n"; + echo "\t".''."\n"; + //initialisierung der Variablen für Inhalt + $d_array = array('id', 'name', 'anzahl', 'farbe', 'kategorie'); + $desc_array = array('ID', 'Name', 'Anzahl', 'Farbe', 'Kategorie'); + + //initialisieren falls editiert wird (dort existieren schon Inhalte) + if($task == TASK_EDIT) { + $sql = 'SELECT * FROM attackentyp WHERE id = '.$attid.';'; + $qry = db_query($sql); + $row = mysql_fetch_assoc($qry); + } + + $colspan = 2; + + if($task == TASK_EDIT) { + echo "\t".'

Attackentyp bearbeiten

'."\n"; + } else { + echo "\t".'

Attackentyp erstellen

'."\n"; + } + + echo "\t\t".''.$desc_array[0].''.$row[$d_array[0]].''."\n"; + $j = 0; + //allgemeine informationen + for($i = 1;$i'.$desc_array[$i].''."\n"; + } + + //menü + echo "\t".''."\n"; + echo "\t".'Attackentyp Übersicht'."\n"; +} + +function editAttackentyp($attid, $data) { + $d_array = array('name', 'anzahl', 'farbe', 'kategorie'); + + $sql = 'UPDATE attackentyp SET '; + + for($i=0;$iFehler aufgetreten!'; + } else{ + echo "\t\t\t".'Änderungen wurden übernommen!'; + $log++; + } + + if($log >= 1) { + logaction('Ein Attackentyp wurde geändert (id = '.$attid.','.encodeNoHTMLWithBB(join($data,',')).')'); + } +} + +function createAttackentyp($data) { + if($data['name'] != null) { + $sql = 'Insert into attackentyp (name, anzahl, farbe, kategorie) VALUES ('; + $sql .= '\''.$data['name'].'\','; + if($data['anzahl'] == null) { + $data['anzahl'] = 1; + } + $sql .= $data['anzahl'].','; + if($data['farbe'] == null) { + $data['farbe'] = 'white'; + } + $sql .= '\''.$data['farbe'].'\','; + if($data['kategorie'] == null) { + $sql .= 'null'; + } else { + $sql .= '\''.$data['kategorie'].'\''; + } + $sql .= ');'; + $identifier = mysql_query($sql); + if($identifier == FALSE){ + echo "\t".'Es gab Probleme beim erstellen des Attacktyps!'."\n"; + } else { + echo "\t".'Attackentyp '.$data['name'].' wurde erfolgreich erstellt!'."\n"; + } + } + echo "\t".'Attackentypen Übersicht'."\n"; +} + +function deleteAttackentyp($attid) { + $colspan = 1; + $sql = 'DELETE FROM attackentyp WHERE id = '.$attid.';'; + $qry = db_query($sql); + if($qry === FALSE || mysql_affected_rows() <= 0){ + echo "\t".'Der Attackentyp '.$row['name'].' konnte nicht gelöscht werden!'."\n";; + } else { + echo "\t".'Der Attackentyp '.$row['name'].' wurde gelöscht!'."\n";; + } + echo "\t".'Attackentypen Übersicht'."\n"; +} + +function displayDeleteAttackentyp($attid) { + $colspan = 1; + + $sql = 'SELECT * FROM attackentyp WHERE id = '.$attid; + $qry = db_query($sql); + $row = mysql_fetch_assoc($qry); + echo "\t".'

Attackentyp löschen

'."\n"; + + echo "\t".'Soll der Attackentyp '.$row['name'].' wirklich gelöscht werden?'."\n"; + echo "\t".'ja, nein'."\n"; +} ?>