assign('ueberschrift','Wettkämpfe ändern'); $_tmpl->assign('_modus','aendern'); $erlaubt = pruefeRechte('w_bearbeiten'); if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ require_once('class/wettkaempfe.inc.php'); require_once('class/dateien.inc.php'); $wk = new wettkaempfe; $wk->tmpl = &$_tmpl; $wk->db = &$_db; $wk->conf = array('lagen'=>$_lagen,'wkarten'=>$_wkarten,'altersklassen'=>$_altersklassen,'_gleinst'=>$_gleinst,'_einst'=>$_einst); # Module laden $_module = parse_ini_file(PFAD_INCLUDE.'conf/module.ini',true); if(isset($_module['wkabwickeln'])){ $_module = $_module['wkabwickeln']; foreach($_module as $key => $modul){ $_wettkampfarten[$key] = $modul; } } else{ $_module = false; } if(!isset($_GET['id'])){ weiterleiten('/wettkaempfe/'); } $dat = new dateien($_db,$_tmpl,true); $verzeichnisse = $dat->baueVerzeichnisListe(2); $setzbareeigenschaften = array( 'flags' => array( 'wkabwickeln', 'mannschaftsmeldegeld' ), 'werte' => array( 'wettkampfart', 'pflichtzeiten' ) ); $_bahnlaengen = array( '25' => 'Kurzbahn (25m)', '50' => 'Langbahn (50m)', 'x' => 'sonstige' ); $query = "SELECT id, bezeichnung FROM ".DB_PREFIX."pflichtzeiten ORDER BY sort"; $_db->holeDaten($query); $_pflichtzeiten = $_db->baueArray('bezeichnung','id'); if(isset($_POST['speichern'])){ $query = "SELECT id FROM ".DB_PREFIX."wettkaempfe WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->holeDaten($query); if($_db->holeAnzahl() != 1){ echo 'nixda'; exit; } require_once('func/pruefen.inc.php'); $f = ''; $d = &$_POST['daten']; $f .= pruefen($d['titel'],'leer','Der Titel fehlt'); $f .= pruefen($d['titel'],'minlaenge','Der Titel ist zu kurz (min 2 Zeichen)',2); $f .= pruefen($d['titel'],'maxlaenge','Der Titel ist zu lang (max 100 Zeichen)',100); $f .= pruefen($d['kurztitel'],'leer','Der Kurztitel fehlt'); $f .= pruefen($d['kurztitel'],'minlaenge','Der Kurztitel ist zu kurz (min 2 Zeichen)',2); $f .= pruefen($d['kurztitel'],'maxlaenge','Der Kurztitel ist zu lang (max 40 Zeichen)',40); $f .= pruefen($d['datum'],'leer','Das Datum fehlt'); $f .= pruefen($d['datum'],'datum','Das Datum ist ungültig'); $f .= pruefen($d['ort'],'leer','Der Ort fehlt'); $f .= pruefen($d['ort'],'maxlaenge','Der Ort ist zu lang (max 30 Zeichen)',30); $f .= pruefen($d['bahnlaenge'],'wertemenge','Die Bahnlänge ist ungültig',array_keys($_bahnlaengen)); $f .= pruefen($d['meldeschluss']['datum'],'datum','Das Datum vom Meldeschluss ist ungültig'); $f .= pruefen($d['meldeschluss']['zeit'],'uhrzeit','Die Uhrzeit vom Meldeschluss ist ungültig'); $tmp = $wk->parseMeldegeld($d['meldegeld'],'formular','formular'); if($tmp['einzel']===false or $tmp['staffel']===false or $tmp['wks']===false){ if($tmp['einzel']===false){ $f .= 'Das Meldegeld für den Einzelstart ist ungültig
'; } if($tmp['staffel']===false){ $f .= 'Das Meldegeld für den Staffelstart ist ungültig
'; } if($tmp['wks']===false){ $f .= 'Das Meldegeld für einzelne Wettkämpfe ist ungültig
'; } } else{ $d['meldegeld'] = $tmp; } $f .= pruefen($d['meldeadresse']['email'],'email','Die E-Mailadresse in der Meldeadresse ist ungültig'); $f .= pruefen($d['meldeadresse']['email'],'maxlaenge','Die E-Mailadresse in der Meldeadresse ist zu lang (max 200 Zeichen)',200); $f .= pruefen($d['meldeadresse']['tel'],'telefon','Die Telefonnummer in der Meldeadresse ist ungültig'); $f .= pruefen($d['meldeadresse']['tel'],'maxlaenge','Die Telefonnummer in der Meldeadresse ist zu lang (max 100 Zeichen)',100); $f .= pruefen($d['meldeadresse']['fax'],'telefon','Die Faxnummer in der Meldeadresse ist ungültig'); $f .= pruefen($d['meldeadresse']['fax'],'maxlaenge','Die Faxnummer in der Meldeadresse ist zu lang (max 100 Zeichen)',100); $f .= pruefen($d['meldeadresse']['post'],'maxlaenge','Die Postadresse in der Meldeadresse ist zu lange (max 1000 Zeichen)',1000); if(isset($_POST['verzeichnisid']) and $_POST['verzeichnisid'] != '-'){ $tmp = $verzeichnisse; unset($tmp[2]); $f .= pruefen($_POST['verzeichnisid'],'wertemenge','Das Verzeichnis ist ungültig',array_keys($tmp)); } $f .= pruefen($_POST['sonstiges'],'maxlaenge','Sonstiges ist zu lang (max 65000 Zeichen)',65000); if(isset($d['_eigenschaften']['wettkampfart']) and $d['_eigenschaften']['wettkampfart'] != '-'){ $f .= pruefen($d['_eigenschaften']['wettkampfart'],'wertemenge','Die Wettkampfart ist ungültig',array_keys($_wettkampfarten)); } if(isset($d['_eigenschaften']['pflichtzeiten']) and $d['_eigenschaften']['pflichtzeiten'] != '-'){ $f .= pruefen($d['_eigenschaften']['pflichtzeiten'],'wertemenge','Die Pflichtzeit ist ungültig',array_keys($_pflichtzeiten)); } if(!empty($f)){ $_tmpl->assign('fehler',$f); $_tmpl->assign('daten',$_POST['daten']); } else{ $d = &$_POST['daten']; if(!empty($d['meldeschluss']['datum'])){ $uhrzeit = (!empty($d['meldeschluss']['zeit'])?$d['meldeschluss']['zeit']:'00:00').':00'; $meldeschluss = "'".text_format($d['meldeschluss']['datum'],'dbdatum').' '.$uhrzeit."'"; } else{ $meldeschluss = 'NULL'; } $bahnlaenge = $d['bahnlaenge']=='x'?'NULL':"'".$d['bahnlaenge']."'"; $verzeichnis = (isset($d['verzeichnisid']) and $d['verzeichnisid'] != '-')?$d['verzeichnisid']:'NULL'; $datum = text_format($d['datum'],'dbdatum'); $meldegeld = $wk->parseMeldegeld($d['meldegeld'],'formular','db'); $meldeadresse = ''; if(!empty($d['meldeadresse']['email'])){ $meldeadresse .= 'email: '.$d['meldeadresse']['email']."\r\n\r\n"; } if(!empty($d['meldeadresse']['tel'])){ $meldeadresse .= 'tel: '.$d['meldeadresse']['tel']."\r\n\r\n"; } if(!empty($d['meldeadresse']['fax'])){ $meldeadresse .= 'fax: '.$d['meldeadresse']['fax']."\r\n\r\n"; } if(!empty($d['meldeadresse']['post'])){ $meldeadresse .= 'post: '.$d['meldeadresse']['post']; } $meldeadresse = trim($meldeadresse); $query = "UPDATE ".DB_PREFIX."wettkaempfe SET titel = '".text_format($d['titel'],'db')."', kurztitel = '".text_format($d['kurztitel'],'db')."', ort = '".text_format($d['ort'],'db')."', meldeschluss = ".$meldeschluss.", verzeichnisid = ".$verzeichnis.", datum = '".$datum."', bahnlaenge = ".$bahnlaenge.", meldegeld = '".text_format($meldegeld,'db')."', meldeadresse = '".text_format($meldeadresse,'db')."', sonstiges = '".text_format($d['sonstiges'],'db')."' WHERE id = ".$_GET['id'].""; $_db->fuehreQueryAus($query); # Eigenschaften # zu schreibende Eigenschaften $zuschreibende = array(); # Werte: wettkampfart foreach($setzbareeigenschaften['werte'] as $wert){ if(!isset($_POST['daten']['_eigenschaften'][$wert])){ continue; } switch($wert){ case 'wettkampfart': if(isset($_POST['daten']['_eigenschaften']['wettkampfart']) and $_POST['daten']['_eigenschaften']['wettkampfart'] != '-'){ $zuschreibende['wettkampfart'] = $_POST['daten']['_eigenschaften']['wettkampfart']; } break; case 'pflichtzeiten': if(isset($_POST['daten']['_eigenschaften']['pflichtzeiten']) and $_POST['daten']['_eigenschaften']['pflichtzeiten'] != '-'){ $zuschreibende['pflichtzeiten'] = $_POST['daten']['_eigenschaften']['pflichtzeiten']; } break; default: $zuschreibende[$wert][] = $_POST['daten']['_eigenschaften'][$wert]; break; } } # Flags: wkabwickeln, mannschaftsmeldegeld foreach($setzbareeigenschaften['flags'] as $flag){ if(isset($_POST['daten']['_eigenschaften'][$flag])){ $zuschreibende[$flag] = 1; } } # vorhandene Eigenschaften holen if(count($zuschreibende) > 0){ # es gibt was zum Schreiben $query = "SELECT eigenschaft, wert FROM ".DB_PREFIX."eigenschaften WHERE artid = ".$_GET['id']." AND art = 'w'"; $_db->holeDaten($query); $vorhandenewerte = array(); $vorhandeneids = array(); if($_db->ergebnis['anzahl'] > 0){ foreach($_db->ergebnis['daten'] as $row){ if(!isset($vorhandenewerte[$row['eigenschaft']])){ $vorhandenewerte[$row['eigenschaft']] = ''; } $vorhandenewerte[$row['eigenschaft']] = $row['wert']; } } $querys = array(); $queryanfang = array( 'update' => 'UPDATE '.DB_PREFIX.'eigenschaften SET ', 'insert' => "INSERT INTO ".DB_PREFIX."eigenschaften (art,artid,eigenschaft,wert) VALUES ('w',".$_GET['id']."," ); $queryende = array( 'update' => " WHERE artid = ".$_GET['id']." AND art = 'w' AND eigenschaft = ", 'insert' => ")" ); foreach($zuschreibende as $eigenschaft => $wert){ if(isset($vorhandenewerte[$eigenschaft])){ $querys[] = $queryanfang['update']." wert = '".text_format($wert,'db')."'".$queryende['update']."'".$eigenschaft."'"; } else{ $querys[] = $queryanfang['insert']."'".$eigenschaft."', '".text_format($wert,'db')."'".$queryende['insert']; } unset($vorhandenewerte[$eigenschaft]); } if(count($vorhandenewerte) > 0){ # restliche Werte loeschen $querys[] = "DELETE FROM ".DB_PREFIX."eigenschaften WHERE artid = ".$_GET['id']." AND art = 'w' AND eigenschaft IN ('".implode("', '",array_keys($vorhandenewerte))."')"; } # gespeicherte Querys an die Datenbank schicken if(count($querys) > 0){ foreach($querys as $q){ $_db->fuehreQueryAus($q); } } } else{ # es ist keine setzbare Eigenschaft mehr gesetzt -> evtl. vorhandene Werte loeschen $eigenschaften = array(); foreach($setzbareeigenschaften['flags'] as $e){ $eigenschaften[] = $e; } foreach($setzbareeigenschaften['werte'] as $e){ $eigenschaften[] = $e; } $query = "DELETE FROM ".DB_PREFIX."eigenschaften WHERE artid = ".$_GET['id']." AND art = 'w' AND eigenschaft IN ('".implode("', '",$eigenschaften)."')"; $_db->fuehreQueryAus($query); } weiterleiten('/wettkaempfe/?aktion=detail&id='.$_GET['id'],'Der Wettkampf wurde geändert'); } } else{ if(!empty($_GET['id']) and !ctype_digit($_GET['id'])){ weiterleiten('/wettkaempfe/'); } $daten = $wk->holeWettkampfdaten($_GET['id']); if($daten === false){ weiterleiten('/wettkaempfe/'); } $daten['bahnlaenge'] = is_null($daten['bahnlaenge'])?'x':$daten['bahnlaenge']; $daten['meldeschluss'] = array(); $daten['meldeschluss']['datum'] = $daten['meldeschluss_datum']; $daten['meldeschluss']['zeit'] = $daten['meldeschluss_zeit']=='00:00'?'':$daten['meldeschluss_zeit']; $daten['meldegeld'] = $daten['meldegeld_formular']; $query = "SELECT eigenschaft, wert FROM ".DB_PREFIX."eigenschaften WHERE artid = ".$_GET['id']." AND art = 'w'"; $_db->holeDaten($query); $daten['_eigenschaften'] = $_db->baueArray('wert','eigenschaft'); $_tmpl->assign('daten',$daten); } $verzeichnisse[2] = 'Wettkämpfe'; $_tmpl->assign('_bahnlaengen',$_bahnlaengen); $_tmpl->assign('verzeichnisse',$verzeichnisse); $_tmpl->assign('disabled', array(2)); $_tmpl->assign('wettkampfarten',$_wettkampfarten); $_tmpl->assign('pflichtzeiten',$_pflichtzeiten); $_tmpl->assign('abschnitte',$wk->holeSelectOptionen('abschnitte',$_GET['id'])); $_tmpl->assign('_art', 'aendern'); $_inh .= $_tmpl->fetch('wettkaempfe/41.wettkampf-formular.inc.html'); } # ende rechte-if, EOF ?>