assign('ueberschrift','Wettkämpfe'); $erlaubt = pruefeRechte('w_anzeigen'); 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); # 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; } $_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:''; switch($_GET['aktion']){ case 'klonen': $_tmpl->assign('ueberschrift','Wettkampf klonen'); if(!pruefeRechte('w_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } if(!isset($_GET['id']) or $_GET['id'] == '-' or !ctype_digit($_GET['id'])){ $_tmpl->assign('wettkaempfe',$wk->holeWettkampfliste(true,'neu','nurwettkaempfe')); $_inh .= $_tmpl->fetch('wettkaempfe/43.klonen-wkwaehlen.inc.html'); } else{ if(!isset($_POST['klonen'])){ $daten = $wk->holeWettkampfdaten($_GET['id']); if($daten === false){ $_tmpl->assign('fehler','Der gewählte Wettkampf wurde nicht gefunden'); break; } $daten['inkalender'] = 1; $daten['meldeschluss'] = array('datum'=>$daten['meldeschluss_datum'],'zeit'=>$daten['meldeschluss_zeit']); $_tmpl->assign('daten',$daten); } else{ require_once('func/pruefen.inc.php'); $f = ''; $f .= pruefen($_POST['titel'],'leer','Der Titel fehlt'); $f .= pruefen($_POST['titel'],'minlaenge','Der Titel ist zu kurz (min 2 Zeichen)',2); $f .= pruefen($_POST['titel'],'maxlaenge','Der Titel ist zu lang (max 100 Zeichen)',100); $f .= pruefen($_POST['kurztitel'],'leer','Der Kurztitel fehlt'); $f .= pruefen($_POST['kurztitel'],'minlaenge','Der Kurztitel ist zu kurz (min 2 Zeichen)',2); $f .= pruefen($_POST['kurztitel'],'maxlaenge','Der Kurztitel ist zu lang (max 40 Zeichen)',40); $f .= pruefen($_POST['datum'],'leer','Das Datum fehlt'); $f .= pruefen($_POST['datum'],'datum','Das Datum ist ungültig'); $f .= pruefen($_POST['meldeschluss']['datum'],'datum','Das Datum vom Meldeschluss ist ungültig'); $f .= pruefen($_POST['meldeschluss']['zeit'],'uhrzeit','Die Uhrzeit vom Meldeschluss ist ungültig'); if(!empty($f)){ $_tmpl->assign('fehler',$f); $_tmpl->assign('daten',$_POST); } else{ $umsetzarrays = array(); # Wettkampf selbst kopieren $query = "SELECT * FROM ".DB_PREFIX."wettkaempfe WHERE id = ".$_GET['id'].""; $_db->holeDaten($query); if($_db->holeAnzahl() != 1){ $_tmpl->assign('fehler','Der Wettkampf wurde nicht gefunden'); break; } $daten = $_db->holeZeile(); $daten['titel'] = $_POST['titel']; $daten['kurztitel'] = $_POST['kurztitel']; $daten['datum'] = text_format($_POST['datum'],'dbdatum'); if(!empty($_POST['meldeschluss']['datum'])){ $uhrzeit = (!empty($_POST['meldeschluss']['zeit'])?$_POST['meldeschluss']['zeit']:'00:00').':00'; $daten['meldeschluss'] = text_format($_POST['meldeschluss']['datum'],'dbdatum').' '.$uhrzeit; } $query = "INSERT INTO ".DB_PREFIX."wettkaempfe SET "; $felder = array(); foreach($daten as $spalte => $wert){ if($spalte=='id'){ continue; } if($spalte == 'bahnlaenge'){ # muss als String behandelt werden, sonst wird der Wert nicht richtig übernommen $tmp = "'".$wert."'"; } elseif($wert === NULL){ # Wert ist NULL $tmp = 'NULL'; } elseif($wert === "" OR $wert === false){ # Spalte ist leer $tmp = "''"; } elseif(!ctype_digit($wert) or ($wert{0}=='0' and strlen($wert)>1)){ # keine Zahl -> in Anfuehrungszeichen und escapen $tmp = "'".mysql_real_escape_string($wert)."'"; } else{ # Zahl -> einfach uebernehmen $tmp = $wert; } $felder[] = $spalte.' = '.$tmp; } $query .= implode(', ',$felder); $_db->fuehreQueryAus($query); $umsetzarrays['wk'] = array('alt' => $_GET['id'], 'neu' => $_db->ergebnis['insertid']); # Entwicklung if(isset($_POST['inkalender'])){ # Datum und Meldeschluss in Kalender schreiben $query = "INSERT INTO ".DB_PREFIX."termine SET datum = '".$daten['datum']."', titel = '".text_format($_POST['titel'],'db')."', was = ''"; $_db->fuehreQueryAus($query); if(!empty($daten['meldeschluss'])){ $query = "INSERT INTO ".DB_PREFIX."termine SET datum = '".$daten['meldeschluss']."', titel = 'Meldeschluss zu ".text_format($_POST['kurztitel'],'db')."', was = ''"; $_db->fuehreQueryAus($query); } } # Eigenschaften kopieren $query = "SELECT art, artid, eigenschaft, wert FROM ".DB_PREFIX."eigenschaften WHERE art = 'w' AND artid = ".$umsetzarrays['wk']['alt'].""; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] > 0){ $daten = $_db->ergebnis['daten']; foreach($daten as $row){ $query = "INSERT INTO ".DB_PREFIX."eigenschaften SET "; $felder = array(); $felder[] = "art = 'w'"; $felder[] = "artid = '".$umsetzarrays['wk']['neu']."'"; $felder[] = "eigenschaft = '".$row['eigenschaft']."'"; $felder[] = "wert = '".$row['wert']."'"; $query .= implode(', ',$felder); $_db->fuehreQueryAus($query); } } # Abschnitte kopieren $query = "SELECT * FROM ".DB_PREFIX."abschnitte WHERE wettkampfid = ".$umsetzarrays['wk']['alt'].""; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] < 1){ weiterleiten('/wettkaempfe/?aktion=detail&id='.$umsetzarrays['wk']['neu'],'Der Wettkampf wurde geklont.'); } $daten = $_db->ergebnis['daten']; $umsetzarrays['abschnitte'] = array(); foreach($daten as $row){ $query = "INSERT INTO ".DB_PREFIX."abschnitte SET "; $felder = array(); foreach($row as $spalte => $wert){ if($spalte=='id'){ continue; } if($spalte=='wettkampfid'){ $wert = $umsetzarrays['wk']['neu']; } if($wert === NULL){ # Wert ist NULL $tmp = 'NULL'; } elseif($wert === "" OR $wert === false){ # Spalte ist leer $tmp = "''"; } elseif(!ctype_digit($wert) or ($wert{0}=='0' and strlen($wert)>1)){ # keine Zahl -> in Anfuehrungszeichen und escapen $tmp = "'".mysql_real_escape_string($wert)."'"; } else{ # Zahl -> einfach uebernehmen $tmp = $wert; } $felder[] = $spalte.' = '.$tmp; } $query .= implode(', ',$felder); $_db->fuehreQueryAus($query); $umsetzarrays['abschnitte'][$row['id']] = $_db->ergebnis['insertid']; } # Wettkaempfe kopieren $query = "SELECT * FROM ".DB_PREFIX."wks WHERE abschnittid IN (".implode(',',array_keys($umsetzarrays['abschnitte'])).")"; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] < 1){ weiterleiten('/wettkaempfe/?aktion=detail&id='.$umsetzarrays['wk']['neu'],'Der Wettkampf wurde geklont.'); } $daten = $_db->ergebnis['daten']; $umsetzarrays['wks'] = array(); foreach($daten as $row){ $query = "INSERT INTO ".DB_PREFIX."wks SET "; $felder = array(); foreach($row as $spalte => $wert){ if($spalte=='id'){ continue; } if($spalte=='abschnittid'){ $wert = $umsetzarrays['abschnitte'][$wert]; } if($wert === NULL){ # Wert ist NULL $tmp = 'NULL'; } elseif($wert === "" OR $wert === false){ # Spalte ist leer $tmp = "''"; } elseif(!ctype_digit($wert) or ($wert{0}=='0' and strlen($wert)>1)){ # keine Zahl -> in Anfuehrungszeichen und escapen $tmp = "'".mysql_real_escape_string($wert)."'"; } else{ # Zahl -> einfach uebernehmen $tmp = $wert; } $felder[] = $spalte.' = '.$tmp; } $query .= implode(', ',$felder); $_db->fuehreQueryAus($query); $umsetzarrays['wks'][$row['id']] = $_db->ergebnis['insertid']; } # fertig -> zur Detailansicht leiten weiterleiten('/wettkaempfe/?aktion=detail&id='.$umsetzarrays['wk']['neu'],'Der Wettkampf wurde geklont.'); } } $_inh .= $_tmpl->fetch('wettkaempfe/43.klonen-formular.inc.html'); } break; case 'detail': if(!ctype_digit($_GET['id'])){ weiterleiten('/wettkaempfe/'); } require_once('class/dateien.inc.php'); $dat = new dateien($_db,$_tmpl,true); $verzeichnisse = $dat->baueVerzeichnisListe(2); $_tmpl->assign('ueberschrift','Wettkämpfe - Detailansicht'); $wettkampf = $wk->holeWettkampfdaten($_GET['id'], true); if($wettkampf === false){ weiterleiten('/wettkaempfe/'); } $_bahnlaengen = array( '25' => 'Kurzbahn (25m)', '50' => 'Langbahn (50m)', 'x' => 'sonstige' ); $wettkampf['bahnlaenge'] = is_null($wettkampf['bahnlaenge'])?'x':$wettkampf['bahnlaenge']; foreach($wettkampf['meldeadresse'] as $key => $value){ $wettkampf['meldeadresse'][$key] = text_format($value,'htmlmaskieren'); } $wettkampf['meldegeld'] = $wk->parseMeldegeld($wettkampf['meldegeld'],'db','array'); $query = "SELECT eigenschaft, wert FROM ".DB_PREFIX."eigenschaften WHERE art = 'w' AND artid = ".$_GET['id'].""; $_db->holeDaten($query); $wettkampf['_eigenschaften'] = $_db->baueArray('wert','eigenschaft'); $_tmpl->assign('daten',$wettkampf); $abschnitte = $wk->holeAbschnitte($_GET['id'],true); $query = "SELECT id, bezeichnung FROM ".DB_PREFIX."pflichtzeiten ORDER BY sort"; $_db->holeDaten($query); $_pflichtzeiten = $_db->baueArray('bezeichnung','id'); $_tmpl->assign('_bahnlaengen',$_bahnlaengen); $_tmpl->assign('pflichtzeiten',$_pflichtzeiten); $_tmpl->assign('abschnitte',$abschnitte); $_tmpl->assign('verzeichnisse',$verzeichnisse); $_tmpl->assign('wettkampfarten',$_wettkampfarten); $_inh .= $_tmpl->fetch('wettkaempfe/41.wettkaempfe-detail.inc.html'); break; default: $query = "SELECT COUNT(*) as anz FROM ".DB_PREFIX."wettkaempfe"; $_db->holeDaten($query); $anzahl = $_db->holeWert(); $s = 1; $proseite = $_einst['globaleeinstellungen']['blaetternseiten']!=0?$_einst['globaleeinstellungen']['blaetternseiten']:25; if(isset($_GET['seite']) and $_GET['seite'] == 'alle'){ $s = 'alle'; } elseif(isset($_GET['seite']) and ctype_digit($_GET['seite']) and $_GET['seite']!=0){ if($proseite*($_GET['seite']-1) > $anzahl){ $s = ceil($anzahl/$proseite); } else{ $s = (int)$_GET['seite']; } } $query = "SELECT w.id, titel, ort, bahnlaenge, DATE_FORMAT(w.datum,'%d.%m.%Y') as datum, IF(w.id>6,COUNT(z.id),0) as zeiten FROM ".DB_PREFIX."wettkaempfe as w LEFT JOIN ".DB_PREFIX."zeiten as z ON z.wettkampfid=w.id AND z.zeit IS NOT NULL GROUP BY w.id ORDER BY w.datum DESC ".($s!='alle'?'LIMIT '.((($s-1)*$proseite).",".$proseite):'').""; $_db->holeDaten($query); $_tmpl->assign('blaettern',array('anzahl'=>$anzahl,'seite'=>$s,'proseite'=>$proseite)); $_tmpl->assign('wettkaempfe',$_db->ergebnis['daten']); $_inh .= $_tmpl->fetch('wettkaempfe/4.wettkaempfe-uebersicht.inc.html'); break; } } # Rechte-if Ende, EOF ?>