assign('ueberschrift','Wettkampf anlegen'); 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); $_tmpl->assign('_modus','anlegen'); if(isset($_GET['art']) and $_GET['art'] == 'dsvdatei'){ if(!isset($_SESSION['dsvdateieinlesen'])){ $dateien = parse_ini_file(PFAD_INIDATEIEN.'dateien_tmp.ini'); $anzeigen = array(); foreach($dateien as $datei => $daten){ if(substr(strtolower($daten),-4) != '.dsv'){ continue; } list(,$userid,$dateiname) = explode('|',$daten); if($userid != $_SESSION['user']['id'] and !prueferechte('s_dateien_rootzugriff')){ continue; } $anzeigen[$datei] = $dateiname; } if(isset($_POST['datei']) and in_array($_POST['datei'], array_keys($anzeigen))){ require_once('class/dsv.inc.php'); $_dsv = new dsv; $erg = $_dsv->leseDateiEin(PFAD_TMP.$_POST['datei']); if($erg === false){ $_tmpl->assign('fehler', 'Die angegebene Datei ist keine gültige DSV-Datei.'); } elseif($_dsv->daten['art'] != 'wettkampfdefinitionsliste'){ $_tmpl->assign('fehler', 'Die angegebene Datei ist keine gültige Wettkampfdefinitionsliste.'); } else{ # Daten zum Speichern vorbereiten $geparst = array(); # Wettkampf selbst $sonstiges = ''; $flags = array(); # Ort $ort = !empty($_dsv->daten['veranstaltungsort']['ort'])?$_dsv->daten['veranstaltungsort']['ort']:$_dsv->daten['veranstaltungsort']['bad']; # Datum $datum = array(); foreach($_dsv->daten['abschnitte'] as $abschn){ $datum[] = text_format($abschn['datum'], 'dbdatum'); } $datum = $datum[0]; # Meldegeld $meldegelddat = array( 'einzel' => isset($_dsv->daten['meldegeld']['einzelmeldegeld'])?$_dsv->daten['meldegeld']['einzelmeldegeld']:'', 'staffel' => isset($_dsv->daten['meldegeld']['staffelmeldegeld'])?$_dsv->daten['meldegeld']['staffelmeldegeld']:'', 'wks' => isset($_dsv->daten['meldegeld']['wkmeldegeld'])?$_dsv->daten['meldegeld']['wkmeldegeld']:array(), ); if(isset($_dsv->daten['meldegeld']['meldegeldpauschale']) and $_dsv->daten['meldegeld']['meldegeldpauschale'] != '0,00'){ if(empty($meldegelddat['einzel'])){ $meldegelddat['einzel'] = $_dsv->daten['meldegeld']['meldegeldpauschale']; $flags['mannschaftsmeldegeld'] = '1'; } else{ $sonstiges .= 'Meldegeldpauschale: '.$_dsv->daten['meldegeld']['meldegeldpauschale']."\n\n"; } } $meldegeld = $wk->parseMeldegeld($meldegelddat,'array_formatieren','db'); $meldegeld = $wk->parseMeldegeld($meldegeld,'db','formular'); # Meldeadresse $meldeadressedat = array(); require_once('func/pruefen.inc.php'); if(!empty($_dsv->daten['meldeadresse']['telefon'])){ pruefen($_dsv->daten['meldeadresse']['telefon'], 'telefon', '-'); $meldeadressedat[] = 'tel: '.$_dsv->daten['meldeadresse']['telefon']; } if(!empty($_dsv->daten['meldeadresse']['fax'])){ pruefen($_dsv->daten['meldeadresse']['fax'], 'telefon', '-'); $meldeadressedat[] = 'fax: '.$_dsv->daten['meldeadresse']['fax']; } if(!empty($_dsv->daten['meldeadresse']['email'])){ $meldeadressedat[] = 'email: '.strtolower($_dsv->daten['meldeadresse']['email']); } if(!empty($_dsv->daten['meldeadresse']['strasse'])){ $tmp = 'post: '; if(!empty($_dsv->daten['meldeadresse']['name'])){ if(strpos($_dsv->daten['meldeadresse']['name'], ',') !== false){ list($v, $n) = explode(',', $_dsv->daten['meldeadresse']['name']); $tmp .= trim($v).' '.trim($n)."\r\n"; } else{ $tmp .= $_dsv->daten['meldeadresse']['name']."\r\n"; } } $tmp .= $_dsv->daten['meldeadresse']['strasse']."\r\n"; $tmp .= $_dsv->daten['meldeadresse']['plz'].' '.$_dsv->daten['meldeadresse']['ort']."\r\n"; $meldeadressedat[] = $tmp; } $meldeadresse = implode("\r\n\r\n", $meldeadressedat); # Sonstiges if(!empty($_dsv->daten['internetausschreibung'])){ $sonstiges .= 'Ausschreibung im Internet: '.$_dsv->daten['internetausschreibung']."\n\n"; } if(!empty($_dsv->daten['besonderes'])){ $sonstiges .= 'Besonderes: '.$_dsv->daten['besonderes']."\n\n"; } # in Array schieben $geparst['wettkampf'] = array( 'titel' => $_dsv->daten['veranstaltung']['bezeichnung'], 'kurztitel' => '', 'ort' => $ort, 'datum' => $datum, 'bahnlaenge' => $_dsv->daten['veranstaltung']['bahnlaenge'], 'meldeschluss' => text_format($_dsv->daten['meldeschluss']['datum'],'dbdatum').' '.$_dsv->daten['meldeschluss']['uhrzeit'].':00', 'meldegeld' => $meldegeld, 'meldeadresse' => $meldeadresse, 'sonstiges' => trim($sonstiges), '_flags' => $flags ); # Abschnitte $geparst['abschnitte'] = array(); foreach($_dsv->daten['abschnitte'] as $nr => $abschnitt){ $geparst['abschnitte'][$nr] = array( 'nr' => $nr, 'datum' => text_format($abschnitt['datum'], 'dbdatum'), 'beginn' => $abschnitt['zeit'], 'kindgerecht' => 0 ); } # Wettkämpfe $geparst['wks'] = array(); $wkart_erlaubt = array('V', 'Z', 'F', 'A', 'E', 'N'); foreach($_dsv->daten['wettkaempfe'] as $nr => $wettk){ $wkart = (empty($wettk['wkart']) or !in_array($wettk['wkart'], $wkart_erlaubt))?'e':strtolower($wettk['wkart']); $geparst['wks'][$nr] = array( 'wknr' => $nr, 'abschn' => $wettk['abschn'], 'mw' => $wettk['mw'], 'laenge' => $wettk['laenge'], 'disziplin' => $wettk['lage'], 'jahrgang' => $wettk['jahrgaenge'], 'wkart' => $wkart ); } # Pflichtzeiten if(isset($_dsv->daten['pflichtzeiten'])){ $geparst['pflichtzeiten'] = $_dsv->daten['pflichtzeiten']; } # speichern und weiterleiten $_SESSION['dsvdateieinlesen'] = $geparst; weiterleiten('/wettkaempfe/anlegen.html?art=dsvdatei', 'Die Datei wurde erfolgreich eingelesen'); } } $_tmpl->assign('dateien',$anzeigen); $_inh .= $_tmpl->fetch('wettkaempfe/43.dsvdatei-dateiwaehlen.inc.html'); } else{ if(isset($_GET['wkzuruecksetzen'])){ unset($_SESSION['dsvdateieinlesen']); weiterleiten('/wettkaempfe/anlegen.html?art=dsvdatei'); } $query = "SELECT id, bezeichnung, richtpflicht, offiziell FROM ".DB_PREFIX."pflichtzeiten ORDER BY sort"; $_db->holeDaten($query); $_pflichtzeiten = $_db->baueArray('*', 'id'); foreach($_pflichtzeiten as $key => $ds){ $_pflichtzeiten[$key] = $ds['bezeichnung'].' ('.($ds['richtpflicht']=='r'?'Richt':'Pflicht').'zeit, '.($ds['offiziell']==1?'':'in').'offiziell)'; } $_bahnlaengen = array( '25' => 'Kurzbahn (25m)', '50' => 'Langbahn (50m)', 'x' => 'sonstige' ); if(!isset($_POST['anlegen'])){ # Daten sammeln die angezeigt werden müssen # Wettkampf $s = &$_SESSION['dsvdateieinlesen']; $daten = array(); $daten['titel'] = $s['wettkampf']['titel']; $daten['kurztitel'] = $s['wettkampf']['kurztitel']; $daten['ort'] = $s['wettkampf']['ort']; $daten['bahnlaenge'] = $s['wettkampf']['bahnlaenge']; $daten['meldegeld'] = $s['wettkampf']['meldegeld']; $daten['_eigenschaften'] = $s['wettkampf']['_flags']; # Abschnitte $daten['abschnitte'] = $s['abschnitte']; # WKs $nichtmeldbar = 0; foreach($s['wks'] as $wks){ if($wks['wkart'] == 'e' or $wks['wkart'] == 'v'){ continue; } $nichtmeldbar++; } $daten['nichtmeldbarewks'] = $nichtmeldbar; $daten['nichtmeldbarewksanlegen'] = 1; # Pflichtzeiten $daten['pflichtzeiten'] = isset($s['pflichtzeiten'])?1:0; $daten['pflichtzeiten_datensatz'] = '-'; $daten['keinwettkampf'] = 0; # Sonstiges $daten['inkalender'] = 1; $daten['wkabwickeln'] = 0; } else{ require_once('func/pruefen.inc.php'); $f = ''; $d = &$_POST['daten']; # Wettkampf $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['ort'],'leer','Der Ort fehlt'); $f .= pruefen($d['ort'],'maxlaenge','Der Ort ist zu lang (max 30 Zeichen)',30); $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['bahnlaenge'],'wertemenge','Die Bahnlänge ist ungültig',array_keys($_bahnlaengen)); # Abschnitt foreach($d['abschnitte'] as $nr => $abschn){ $f .= pruefen($d['abschnitte'][$nr]['beginn'],'leer','Die Anfangszeit fehlt (Abschnitt '.text_format($nr, 'html').')'); $f .= pruefen($d['abschnitte'][$nr]['beginn'],'uhrzeit','Die Anfangszeit ist ungültig (Abschnitt '.text_format($nr, 'html').')'); } # Pflichtzeiten if(isset($d['pflichtzeiten_datensatz'])){ $tmp = pruefen($d['pflichtzeiten_datensatz'], 'wertemenge', '-', array_keys($_pflichtzeiten)); if($d['pflichtzeiten_datensatz'] != 'neu' and $d['pflichtzeiten_datensatz'] != '-' and !empty($tmp)){ $f .= 'Die Angabe in welchem Datensatz die Pflichtzeiten gespeichert werden sollen ist ungültig.
'; } if(isset($d['keinwettkampf']) and $d['pflichtzeiten_datensatz'] == '-'){ $f .= 'Wenn kein Wettkampf angelegt werden soll und die Pflichtzeiten ignoriert werden sollen gäbe es nichts zum Anlegen
'; } } if(empty($f)){ # Daten in ein Array schreiben $daten = $_SESSION['dsvdateieinlesen']; $daten['wettkampf']['kurztitel'] = $d['kurztitel']; $daten['wettkampf']['ort'] = $d['ort']; $daten['wettkampf']['bahnlaenge'] = $d['bahnlaenge']; $daten['wettkampf']['meldegeld'] = $d['meldegeld']; $daten['wettkampf']['_flags']['inkalender'] = isset($d['inkalender']); $daten['wettkampf']['_flags']['nichtmeldbarewks'] = isset($d['nichtmeldbarewks']); $daten['wettkampf']['_flags']['wkabwickeln'] = isset($d['wkabwickeln']); if($d['pflichtzeiten'] == 1){ $daten['wettkampf']['_flags']['keinwettkampf'] = isset($d['keinwettkampf']); $daten['wettkampf']['_flags']['pflichtzeiten_datensatz'] = $d['pflichtzeiten_datensatz']; } if(isset($d['_eigenschaften']) and isset($d['_eigenschaften']['mannschaftsmeldegeld'])){ $daten['wettkampf']['_flags']['mannschaftsmeldegeld'] = 1; } foreach($d['abschnitte'] as $nr => $dat){ $daten['abschnitte'][$nr]['beginn'] = $dat['beginn']; $daten['abschnitte'][$nr]['kindgerecht'] = isset($dat['kindgerecht'])?1:0; } $ids = array(); if(!isset($d['keinwettkampf'])){ # Wettkampf selbst anlegen $query = "INSERT INTO ".DB_PREFIX."wettkaempfe SET titel = '".text_format($daten['wettkampf']['titel'], 'db')."', kurztitel = '".text_format($daten['wettkampf']['kurztitel'], 'db')."', ort = '".text_format($daten['wettkampf']['ort'], 'db')."', datum = '".text_format($daten['wettkampf']['datum'], 'db')."', bahnlaenge = '".text_format($daten['wettkampf']['bahnlaenge'], 'db')."', meldeschluss = '".text_format($daten['wettkampf']['meldeschluss'], 'db')."', meldegeld = '".$wk->parseMeldegeld($daten['wettkampf']['meldegeld'], 'formular', 'db')."', meldeadresse = '".text_format($daten['wettkampf']['meldeadresse'], 'db')."', sonstiges = '".text_format($daten['wettkampf']['sonstiges'], 'db')."', verzeichnisid = NULL"; $_db->fuehreQueryAus($query); $ids['wettkampf'] = $_db->ergebnis['insertid']; # Abschnitte $ids['abschnitte'] = array(); foreach($daten['abschnitte'] as $nr => $abschn){ $query = "INSERT INTO ".DB_PREFIX."abschnitte SET wettkampfid = ".$ids['wettkampf'].", nr = '".text_format($nr, 'db')."', datum = '".text_format($abschn['datum'], 'db')."', beginn = '".text_format($abschn['beginn'], 'db').":00', kindgerecht = ".($abschn['kindgerecht']==1?1:'NULL').""; $_db->fuehreQueryAus($query); $ids['abschnitte'][$nr] = $_db->ergebnis['insertid']; } # Wettkaempfe foreach($daten['wks'] as $nr => $wks){ if($daten['wettkampf']['_flags']['nichtmeldbarewks']==1 and !in_array($wks['wkart'], array('e', 'v'))){ continue; } $query = "INSERT INTO ".DB_PREFIX."wks SET abschnittid = ".$ids['abschnitte'][$wks['abschn']].", wknr = '".text_format($nr, 'db')."', mw = '".text_format($wks['mw'], 'db')."', laenge = '".text_format($wks['laenge'], 'db')."', disziplin = '".text_format($wks['disziplin'], 'db')."', jahrgang = '".text_format($wks['jahrgang'], 'db')."', wkart = '".text_format($wks['wkart'], 'db')."'"; $_db->fuehreQueryAus($query); } # Sonstiges if($daten['wettkampf']['_flags']['wkabwickeln'] == 1){ $query = "INSERT INTO ".DB_PREFIX."eigenschaften (art, artid, eigenschaft, wert) VALUES ('w', '".$ids['wettkampf']."', 'wkabwickeln', '1')"; $_db->fuehreQueryAus($query); } if($daten['wettkampf']['_flags']['inkalender'] == 1){ $query = "INSERT INTO ".DB_PREFIX."termine SET datum = '".$daten['wettkampf']['datum']."', titel = '".text_format($daten['wettkampf']['titel'],'db')."', was = ''"; $_db->fuehreQueryAus($query); $query = "INSERT INTO ".DB_PREFIX."termine SET datum = '".$daten['wettkampf']['meldeschluss']."', titel = 'Meldeschluss ".text_format($daten['wettkampf']['kurztitel'],'db')."', was = ''"; $_db->fuehreQueryAus($query); } if(isset($daten['wettkampf']['_flags']['mannschaftsmeldegeld'])){ $query = "INSERT INTO ".DB_PREFIX."eigenschaften (art, artid, eigenschaft, wert) VALUES ('w', '".$ids['wettkampf']."', 'mannschaftsmeldegeld', '1')"; $_db->fuehreQueryAus($query); } } if(isset($daten['wettkampf']['_flags']['pflichtzeiten_datensatz']) and $daten['wettkampf']['_flags']['pflichtzeiten_datensatz'] != '-'){ $ds = $daten['wettkampf']['_flags']['pflichtzeiten_datensatz']; if($ds == 'neu'){ # Pflichtzeitensatz anlegen $query = "INSERT INTO ".DB_PREFIX."pflichtzeiten SET bezeichnung = '".trim(preg_replace('~(\d*\.?)~', '', $daten['wettkampf']['titel']))."', richtpflicht = 'p', offiziell = '1', sort = 0"; $_db->fuehreQueryAus($query); $ids['pflichtzeiten'] = $_db->ergebnis['insertid']; } else{ $ids['pflichtzeiten'] = $ds; } # ggf. bestehende Jahrgänge und Strecken holen und Zeiten löschen if($ds != 'neu'){ $bestand = array(); $query = "SELECT id, jahrgang, pos FROM ".DB_PREFIX."pflichtzeiten_jahrgaenge WHERE pflichtzeitenid = ".$ds." ORDER BY pos"; $_db->holeDaten($query); $bestand['jahrgaenge'] = $_db->baueArray('*', 'id'); $query = "SELECT id, CONCAT(disziplin, '_', laenge, '_', mw) as schluessel FROM ".DB_PREFIX."pflichtzeiten_strecken WHERE pflichtzeitenid = ".$ds." ORDER BY disziplin, laenge, mw"; $_db->holeDaten($query); $bestand['strecken'] = $_db->baueArray('id', 'schluessel'); $query = "DELETE FROM ".DB_PREFIX."pflichtzeiten_zeiten WHERE streckenid IN (".implode(',', $bestand['strecken']).") AND jahrgangid IN (".implode(',', array_keys($bestand['jahrgaenge'])).")"; $_db->fuehreQueryAus($query); } # benötigte Jahrgänge ermitteln $wkalter = substr($daten['wettkampf']['datum'],0,4); $jahrgaenge = array(); foreach($daten['pflichtzeiten'] as $strecke){ foreach($strecke as $jahrg => $zeit){ $jahrgaenge[$jahrg] = array('alter' => $jahrg, 'jahrgang' => $jahrg); } } foreach($jahrgaenge as $jahrg => $alter){ if(ctype_digit(substr($jahrg,0,4))){ $jahrgaenge[$jahrg]['alter'] = ($wkalter-substr($jahrg,0,4)).substr($jahrg,4); } } # Array bauen welcher Jahrgang zu welcher ID gehören wird $jahrgang2id = array(); if($ds != 'neu'){ # bestehenden Datensatz verwenden # prüfen ob neue sortierung auf- oder absteigend ist $aktuell = false; $aufab_neu = ''; foreach($jahrgaenge as $jahrg){ if(!ctype_digit($jahrg['alter'])){ continue; } if($aktuell !== false){ if($aktuell > $jahrg['alter']){ $aufab_neu = 'ab'; } else{ $aufab_neu = 'auf'; } break; } else{ $aktuell = $jahrg['alter']; } } # prüfen ob alte sortierung auf- oder absteigend ist $aktuell = false; $aufab_best = ''; foreach($bestand['jahrgaenge'] as $jahrg){ if(!ctype_digit($jahrg['jahrgang'])){ continue; } if($aktuell !== false){ if($aktuell > $jahrg['jahrgang']){ $aufab_best = 'ab'; } else{ $aufab_best = 'auf'; } break; } else{ $aktuell = $jahrg['jahrgang']; } } if($aufab_neu != $aufab_best){ # neue Jahrgänge umdrehen $jahrgaenge = array_reverse($jahrgaenge, true); } $i = 1; foreach($jahrgaenge as $jahrg){ $alt = array_shift($bestand['jahrgaenge']); if(!is_null($alt)){ $query = "UPDATE ".DB_PREFIX."pflichtzeiten_jahrgaenge SET jahrgang = '".text_format($jahrg['alter'],'db')."', pos = ".($i++)." WHERE id = ".$alt['id'].""; $_db->fuehreQueryAus($query); $jahrgang2id[$jahrg['jahrgang']] = $alt['id']; } else{ $query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_jahrgaenge SET jahrgang = '".text_format($jahrg['alter'],'db')."', pflichtzeitenid = ".$ids['pflichtzeiten'].", pos = ".($i++).""; $_db->fuehreQueryAus($query); $jahrgang2id[$jahrg['jahrgang']] = $_db->ergebnis['insertid']; } } if(count($bestand['jahrgaenge']) > 0){ $weg = array(); foreach($bestand['jahrgaenge'] as $jahrg){ $weg[] = $jahrg['id']; } $query = "DELETE FROM ".DB_PREFIX."pflichtzeiten_jahrgaenge WHERE id IN (".implode(',', $weg).")"; $_db->fuehreQueryAus($query); } } else{ # neuen Datensatz anlegen $i = 1; foreach($jahrgaenge as $jahrg){ $query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_jahrgaenge SET jahrgang = '".text_format($jahrg['alter'],'db')."', pflichtzeitenid = ".$ids['pflichtzeiten'].", pos = ".($i++).""; $_db->fuehreQueryAus($query); $jahrgang2id[$jahrg['jahrgang']] = $_db->ergebnis['insertid']; } } # benötigte Stecken ermitteln $strecken = array(); foreach($daten['pflichtzeiten'] as $wknr => $zeiten){ $w = $daten['wks'][$wknr]; $strecken[$wknr] = array( 'lage' => $w['disziplin'], 'laenge' => $w['laenge'], 'mw' => $w['mw'], '_key' => $w['disziplin'].'_'.$w['laenge'].'_'.$w['mw'] ); } $wknr2id = array(); if($ds != 'neu'){ # bestehenden Datensatz verwenden # schon vorhandene Strecken wiederverwenden foreach($strecken as $wknr => $strecke){ if(isset($bestand['strecken'][$strecke['_key']])){ $wknr2id[$wknr] = $bestand['strecken'][$strecke['_key']]; unset($bestand['strecken'][$strecke['_key']]); unset($strecken[$wknr]); } } # restlichen Strecken eine ID spendieren foreach($strecken as $wknr => $strecke){ $alt = array_shift($bestand['strecken']); if(is_null($alt)){ $query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_strecken (pflichtzeitenid, disziplin, laenge, mw) VALUES (".$ids['pflichtzeiten'].", ".$strecke['lage'].", '".$strecke['laenge']."', '".$strecke['mw']."')"; $_db->fuehreQueryAus($query); $wknr2id[$wknr] = $_db->ergebnis['insertid']; } else{ $query = "UPDATE ".DB_PREFIX."pflichtzeiten_strecken SET disziplin = ".$strecke['lage'].", laenge = '".$strecke['laenge']."', mw = '".$strecke['mw']."' WHERE pflichtzeitenid = ".$alt.""; $_db->fuehreQueryAus($query); $wknr2id[$wknr] = $_db->ergebnis['insertid']; } } } else{ # neuen Datensatz anlegen foreach($strecken as $wknr => $strecke){ $query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_strecken (pflichtzeitenid, disziplin, laenge, mw) VALUES (".$ids['pflichtzeiten'].", ".$strecke['lage'].", '".$strecke['laenge']."', '".$strecke['mw']."')"; $_db->fuehreQueryAus($query); $wknr2id[$wknr] = $_db->ergebnis['insertid']; } } # Zeiten in die Datenbank schreiben $datensaetze = array(); foreach($daten['pflichtzeiten'] as $wknr => $zeiten){ foreach($zeiten as $jahrg => $zeit){ pruefen($zeit, 'schwimmzeit', '-'); $datensaetze[] = '('.$wknr2id[$wknr].', '.$jahrgang2id[$jahrg].', '.$zeit.')'; } } $query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_zeiten (streckenid, jahrgangid, zeit) VALUES ".implode(', ', $datensaetze).""; $_db->fuehreQueryAus($query); # Pflichtzeiten dem vorher angelegten Wettkampf zuordnen if(!isset($d['keinwettkampf'])){ $query = "INSERT INTO ".DB_PREFIX."eigenschaften (art, artid, eigenschaft, wert) VALUES ('w', '".$ids['wettkampf']."', 'pflichtzeiten', '".$ids['pflichtzeiten']."')"; $_db->fuehreQueryAus($query); } } if(isset($d['keinwettkampf'])){ $ziel = '/wettkaempfe/pflichtzeiten.html?aktion=anzeigen&id='.$ids['pflichtzeiten']; } else{ $ziel = '/wettkaempfe/?aktion=detail&id='.$ids['wettkampf']; } unset($_SESSION['dsvdateieinlesen']); weiterleiten($ziel, 'Die Daten wurden importiert'); } else{ $_tmpl->assign('fehler', $f); $daten = $d; } } # Daten ausgeben $_tmpl->assign('daten', $daten); $_tmpl->assign('_bahnlaengen', $_bahnlaengen); $_tmpl->assign('_pflichtzeiten', $_pflichtzeiten); $_inh .= $_tmpl->fetch('wettkaempfe/43.dsvdatei-datenergaenzen.inc.html'); } } else{ # 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; } $setzbareeigenschaften = array( 'flags' => array( 'wkabwickeln', 'mannschaftsmeldegeld' ), 'werte' => array( 'wettkampfart' ) ); $_bahnlaengen = array( '25' => 'Kurzbahn (25m)', '50' => 'Langbahn (50m)', 'x' => 'sonstige' ); if(isset($_POST['speichern'])){ 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['ort'],'maxlaenge','Der Ort ist zu lang (max 30 Zeichen)',30); $f .= pruefen($d['datum'],'leer','Das Datum fehlt'); $f .= pruefen($d['datum'],'datum','Das Datum ist ungültig'); $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'; } $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); # Datum und Meldeschluss in Kalender schreiben if(isset($d['inkalender'])){ $query = "INSERT INTO ".DB_PREFIX."termine SET datum = '".$datum."', titel = '".text_format($d['titel'],'db')."', was = ''"; $_db->fuehreQueryAus($query); if($meldeschluss != 'NULL'){ $query = "INSERT INTO ".DB_PREFIX."termine SET datum = ".$meldeschluss.", titel = 'Meldeschluss zu ".text_format($d['kurztitel'],'db')."', was = ''"; $_db->fuehreQueryAus($query); } } $query = "INSERT INTO ".DB_PREFIX."wettkaempfe SET titel = '".text_format($d['titel'],'db')."', kurztitel = '".text_format($d['kurztitel'],'db')."', ort = '".text_format($d['ort'],'db')."', meldeschluss = ".$meldeschluss.", datum = '".$datum."', meldegeld = '".text_format($meldegeld,'db')."', meldeadresse = '".text_format($meldeadresse,'db')."', sonstiges = '".text_format($d['sonstiges'],'db')."'"; $_db->fuehreQueryAus($query); $neuewkid = $_db->ergebnis['insertid']; # Eigenschaften $querys = array(); $queryanfang = "INSERT INTO ".DB_PREFIX."eigenschaften (art,artid,eigenschaft,wert) VALUES ('w',".$neuewkid.", "; $queryende = ")"; # Werte: wettkampfart foreach($setzbareeigenschaften['werte'] as $wert){ if(!isset($_POST['daten']['_eigenschaften'][$wert])){ continue; } switch($wert){ case 'wettkampfart': if(isset($d['_eigenschaften']['wettkampfart']) and $d['_eigenschaften']['wettkampfart'] != '-'){ $querys[] = $queryanfang."'".$wert."', '".$d['_eigenschaften']['wettkampfart']."'".$queryende; } break; default: $querys[] = $queryanfang."'".$wert."', '".text_format($d['_eigenschaften'][$wert],'db')."'".$queryende; break; } } # Flags: wkabwickeln, mannschaftsmeldegeld foreach($setzbareeigenschaften['flags'] as $flag){ if(isset($_POST['daten']['_eigenschaften'][$flag])){ $querys[] = $queryanfang."'".$flag."', 1".$queryende; } } if(count($querys) > 0){ foreach($querys as $q){ $_db->fuehreQueryAus($q); } } weiterleiten('/wettkaempfe/?aktion=detail&id='.$neuewkid,'Der Wettkampf wurde angelegt'); } } $_tmpl->assign('_bahnlaengen',$_bahnlaengen); $_tmpl->assign('wettkampfarten',$_wettkampfarten); $_tmpl->assign('_art', 'anlegen'); $_inh .= $_tmpl->fetch('wettkaempfe/41.wettkampf-formular.inc.html'); } } # Ende Rechte-else, EOF ?>