assign('ueberschrift','Abschnitte bearbeiten'); if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ require_once('class/wettkaempfe.inc.php'); $wk = new wettkaempfe; $wk->tmpl = &$_tmpl; $wk->db = &$_db; $wk->conf = array('lagen'=>$_lagen,'wkarten'=>$_wkarten,'altersklassen'=>$_altersklassen,'_gleinst'=>$_gleinst); $standardwerte = array( 'id' => 'neu', 'wknr' => '', 'mw' => 'w', 'laenge' => '100', 'lage' => '1', 'jg' => '', 'wkart' => 'e' ); # Wettkampftitel und -id holen if(isset($_GET['wkid'])){ $query = "SELECT id, titel FROM ".DB_PREFIX."wettkaempfe WHERE id=".text_format($_GET['wkid'],'db')." AND id >= 10"; $_db->holeDaten($query); if($_db->ergebnis['anzahl']<1){ $_tmpl->assign('fehler','Der Wettkampf existiert nicht.'); unset($_GET['aktion']); } else{ $wkdaten = $_db->holeZeile(); $_tmpl->assign('wkdaten',$wkdaten); } $_GET['id'] = 'neu'; } elseif(!isset($_GET['id'])){ $_tmpl->assign('fehler','Es wurde kein Abschnitt gewählt.'); $_GET['aktion'] = ''; } elseif(ctype_digit($_GET['id'])){ $query = "SELECT w.id, titel FROM ".DB_PREFIX."wettkaempfe as w, ".DB_PREFIX."abschnitte as a WHERE w.id=a.wettkampfid and a.id=".text_format($_GET['id'],'db').""; $_db->holeDaten($query); if($_db->ergebnis['anzahl']<1){ $_tmpl->assign('fehler','Der Abschnitt existiert nicht.'); $_GET['aktion'] = ''; } else{ $wkdaten = $_db->holeZeile(); $_tmpl->assign('wkdaten',$wkdaten); } } $_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:''; switch($_GET['aktion']){ case 'aendern': if($_GET['id'] != 'neu' and $_SERVER['REQUEST_METHOD']=='GET' and !preg_match('~^[0-9]+$~',$_GET['id'])){ $_tmpl->assign('fehler','Die Seite wurde mit ungültigen Parametern aufgerufen'); break; } # zum Aendern Daten aus Datenbank holen if($_GET['id'] != 'neu' and $_SERVER['REQUEST_METHOD']=='GET' and preg_match('~^[0-9]*$~',$_GET['id'])){ $query = "SELECT id, wknr, mw, laenge, disziplin as lage, jahrgang as jg, wkart FROM ".DB_PREFIX."wks WHERE abschnittid = ".$_GET['id']." ORDER BY wknr"; $_db->holeDaten($query); $_POST['daten']['wks'] = $_db->baueArray('*','#'); $query = "SELECT nr, DATE_FORMAT(datum,'%d.%m.%Y') as datum, TIME_FORMAT(beginn,'%H:%i') as beginn, kindgerecht FROM ".DB_PREFIX."abschnitte WHERE id = ".$_GET['id'].""; $_db->holeDaten($query); $_POST['daten']['abschn'] = $_db->holeZeile(); } # neuen Wettkampf/neue Wettkaempfe hinzufügen if(isset($_POST['aktionen']['neuerwettkampf']) and preg_match('~^[0-9]*$~',$_POST['aktionen']['anzahlneuerwettkaempfe'])){ $anz = $_POST['aktionen']['anzahlneuerwettkaempfe']; $anz = $anz<1?1:($anz>40?40:$anz); if(!isset($_POST['daten']['wks'])){ $_POST['daten']['wks'] = array(); } # wenn "fortlaufendneuerwettkaempfe" ausgewaehlt, letzte wknr ermitteln if(isset($_POST['aktionen']['fortlaufendneuerwettkaempfe'])){ $letzter = end($_POST['daten']['wks']); if(!is_array($letzter) or empty($letzter['wknr']) or !ctype_digit($letzter['wknr'])){ $letztenr = 1; } else{ $letztenr = $letzter['wknr']; } } # wenn "mwabwechselnneuerwettkaempfe" ausgewaehlt, letztes geschlecht ermitteln if(isset($_POST['aktionen']['mwabwechselnneuerwettkaempfe'])){ $letzter = end($_POST['daten']['wks']); if(!is_array($letzter) or empty($letzter['mw']) or !in_array($letzter['mw'],array('w','m'))){ $letztesgeschl = 'w'; } else{ $letztesgeschl = $letzter['mw']; } } for($i=1;$i<=$anz;$i++){ $tmp = $standardwerte; if(isset($_POST['aktionen']['fortlaufendneuerwettkaempfe'])){ $letztenr++; $tmp['wknr'] = $letztenr; } if(isset($_POST['aktionen']['mwabwechselnneuerwettkaempfe'])){ $letztesgeschl = $letztesgeschl=='w'?'m':'w'; $tmp['mw'] = $letztesgeschl; } $_POST['daten']['wks'][] = $tmp; $tmp = array(); } } # Abschnittsdaten speichern if(isset($_POST['aktionen']['speichern'])){ require_once('func/pruefen.inc.php'); $f = ''; $f .= pruefen($_POST['daten']['abschn']['nr'],'leer','Die Abschnittsnummer fehlt'); $f .= pruefen($_POST['daten']['abschn']['nr'],'zahl','Die Abschnittsnummer muss eine Zahl sein'); if(empty($f)){ if($_GET['id'] != 'neu'){ $query = "SELECT wettkampfid FROM ".DB_PREFIX."abschnitte WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->holeDaten($query); $wkid = $_db->holeWert(); } else{ $wkid = text_format($_GET['wkid'],'db'); } $query = "SELECT id FROM ".DB_PREFIX."abschnitte WHERE wettkampfid = ".$wkid." AND nr = ".$_POST['daten']['abschn']['nr']." AND id != '".text_format($_GET['id'],'db')."'"; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] != 0){ $f .= 'Es existiert bereits ein Abschnitt mit der Abschnittsnummer
'; } } $f .= pruefen($_POST['daten']['abschn']['beginn'],'leer','Die Anfangszeit fehlt'); $f .= pruefen($_POST['daten']['abschn']['beginn'],'uhrzeit','Die Anfangszeit ist ungültig'); $f .= pruefen($_POST['daten']['abschn']['datum'],'leer','Das Datum des Abschnittes fehlt'); $f .= pruefen($_POST['daten']['abschn']['datum'],'datum','Das Datum des Abschnittes ist ungültig',20); if(isset($_POST['daten']['wks']) and count($_POST['daten']['wks']) > 0){ foreach($_POST['daten']['wks'] as $key => $wk){ if(isset($_POST['aktionen']['loeschen']) and in_array($_POST['daten']['wks'][$key]['id'], $_POST['aktionen']['loeschen'])){ $id = $_POST['daten']['wks'][$key]['id']; $query = "DELETE FROM ".DB_PREFIX."meldungen_starts WHERE wkid = ".$id.""; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."wks WHERE id = ".$id.""; $_db->fuehreQueryAus($query); unset($_POST['daten']['wks'][$key]); continue; } if($_POST['daten']['wks'][$key]['id'] != 'neu'){ $f .= pruefen($_POST['daten']['wks'][$key]['id'],'zahl','Die ID wurde manipuliert'); } $_POST['daten']['wks'][$key]['jg'] = trim($_POST['daten']['wks'][$key]['jg']); $f .= pruefen($_POST['daten']['wks'][$key]['wknr'],'leer','Die Wettkampfnummer fehlt'); $f .= pruefen($_POST['daten']['wks'][$key]['wknr'],'zahl','Die Wettkampfnummer ist ungültig'); $f .= pruefen($_POST['daten']['wks'][$key]['wknr'],'maxlaenge','Die Wettkampfnummer ist zu lang (max 4 Zeichen)',4); $f .= pruefen($_POST['daten']['wks'][$key]['laenge'],'leer','Die Streckenlänge fehlt'); $f .= pruefen($_POST['daten']['wks'][$key]['laenge'],'regexpr', 'Die Streckenlänge "'.$_POST['daten']['wks'][$key]['laenge'].'" ist ungültig','^([1-9]\d{1,3}|((\d){1,2}x(25|50|100|200)))$'); $f .= pruefen($_POST['daten']['wks'][$key]['lage'],'wertemenge','Die Disziplin ist ungültig',array_keys($_lagen)); $f .= pruefen($_POST['daten']['wks'][$key]['mw'],'wertemenge','Das Geschlecht ist ungültig',array_keys($_geschlechter)); $f .= pruefen($_POST['daten']['wks'][$key]['wkart'],'wertemenge','Die Wettkampfart ist untgültig',array_keys($_wkarten)); $f .= pruefen($_POST['daten']['wks'][$key]['jg'],'leer','Die Jahrgänge fehlen'); $f .= pruefen($_POST['daten']['wks'][$key]['jg'],'maxlaenge','Die Jahrgänge sind zu lang (max 150 Zeichen)',150); } } if(!empty($f)){ $_tmpl->assign('fehler',$f); } else{ # Abschnittsdaten speichern if($_GET['id']=='neu'){ $query = "INSERT INTO ".DB_PREFIX."abschnitte SET wettkampfid = ".$wkdaten['id'].", nr = ".$_POST['daten']['abschn']['nr'].", datum = '".text_format($_POST['daten']['abschn']['datum'],'dbdatum')."', beginn = '".$_POST['daten']['abschn']['beginn']."'"; if(isset($_POST['daten']['abschn']['kindgerecht'])){ $query .= ", kindgerecht = 1"; } $_db->fuehreQueryAus($query); $_GET['id'] = $_db->ergebnis['insertid']; unset($_GET['wkid']); } else{ $query = "UPDATE ".DB_PREFIX."abschnitte SET nr = ".$_POST['daten']['abschn']['nr'].", datum = '".text_format($_POST['daten']['abschn']['datum'],'dbdatum')."', beginn = '".$_POST['daten']['abschn']['beginn']."', kindgerecht = ".(isset($_POST['daten']['abschn']['kindgerecht'])?'1':'NULL')." WHERE id = ".text_format($_GET['id'],'db').""; $_db->fuehreQueryAus($query); } # einzelne Wettkämpfe verarbeiten if(isset($_POST['daten']['wks']) and count($_POST['daten']['wks']) > 0){ foreach($_POST['daten']['wks'] as $key => $wk){ if($wk['id']=='neu'){ $query = "INSERT INTO ".DB_PREFIX."wks SET abschnittid = '".text_format($_GET['id'],'db')."', wknr = ".$wk['wknr'].", mw = '".$wk['mw']."', laenge = '".$wk['laenge']."', disziplin = ".$wk['lage'].", jahrgang = '".text_format($wk['jg'],'db')."', wkart = '".$wk['wkart']."'"; $_db->fuehreQueryAus($query); $_POST['daten']['wks'][$key]['id'] = $_db->ergebnis['insertid']; unset($_GET['wkid']); } else{ $query = "UPDATE ".DB_PREFIX."wks SET abschnittid = '".text_format($_GET['id'],'db')."', wknr = ".$wk['wknr'].", mw = '".$wk['mw']."', laenge = '".$wk['laenge']."', disziplin = ".$wk['lage'].", jahrgang = '".text_format($wk['jg'],'db')."', wkart = '".$wk['wkart']."' WHERE id = ".text_format($wk['id'],'db').""; $_db->fuehreQueryAus($query); } } } weiterleiten('/wettkaempfe/abschnitte.html?aktion=aendern&id='.$_GET['id'],'Die Abschnittsdaten wurden gespeichert'); } } if(!isset($_POST['daten'])){ $_POST['daten']['wks'] = array(0=>$standardwerte); $_POST['daten']['wks'][0]['wknr'] = 1; } $_tmpl->assign('geschlechter',$_geschlechter); $_tmpl->assign('wkarten',$_wkarten); $_tmpl->assign('lagen',$_lagen); $_tmpl->assign('daten',$_POST['daten']); $_inh .= $_tmpl->fetch('wettkaempfe/44.abschnitt-formular.inc.html'); break; default: break; } } # Ende Rechte-else, EOF ?>