assign('ueberschrift','Zeiten importieren'); if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ if(isset($_GET['anderedatei']) and isset($_SESSION['zeitenimport'])){ unset($_SESSION['zeitenimport']); } if(!isset($_SESSION['zeitenimport'])){ $dateien = parse_ini_file(PFAD_INIDATEIEN.'dateien_tmp.ini'); $anzeigen = array(); foreach($dateien as $datei => $daten){ if(substr($daten,-4) != '.csv'){ continue; } list(,$userid,$dateiname) = explode('|',$daten); if(!prueferechte('s_dateien_rootzugriff') and $userid != $_SESSION['user']['id']){ continue; } $anzeigen[$datei] = $dateiname; } $_tmpl->assign('dateien',$anzeigen); } if(isset($_POST['datei']) and in_array($_POST['datei'],array_keys($anzeigen))){ $fh = fopen(PFAD_TMP.$_POST['datei'],'r'); $_SESSION['zeitenimport'] = array( 'wkid' => '', 'wktitel' => '', 'wkdatum' => '', 'daten' => array() ); $daten = array(); while(($dat = fgetcsv($fh, 1000, ';', '"')) !== false){ $daten[] = $dat; } fclose($fh); if(!in_array(count($daten[0]),array(7,8))){ $_tmpl->assign('fehler','Die angegebene CSV-Datei ist ungültig.'); unset($_SESSION['zeitenimport']); } elseif(!isset($_POST['wettkampf']) or $_POST['wettkampf'] == 0){ $_tmpl->assign('fehler','Es wurde kein Wettkampf angegeben'); unset($_SESSION['zeitenimport']); } else{ $_SESSION['zeitenimport']['wkid'] = $_POST['wettkampf']; $query = "SELECT CONCAT(titel,' - ',DATE_FORMAT(datum,'%d.%m.%Y')) as titel, datum FROM ".DB_PREFIX."wettkaempfe WHERE id = '".text_format($_POST['wettkampf'],'db')."'"; $_db->holeDaten($query); $_SESSION['zeitenimport']['wktitel'] = $_db->holeWert('titel'); $_SESSION['zeitenimport']['wkdatum'] = $_db->holeWert('datum'); $tmp = $daten; $daten = $sort = array(); $lagen = array_flip($_lagen); foreach($tmp as $row){ if(strlen($row[2])==2){ $row[2] = (($row[2]>date('y'))?'19':'20').$row[2]; } $sort[] = $row[0].$row[1].$row[2].$row[3]; $daten[] = array( '_sort' => $row[0].$row[1].$row[2].$row[3], 'nachname' => $row[0], 'vorname' => $row[1], 'jahrgang' => $row[2], 'mw' => strtolower($row[3]), 'lage' => $lagen[$row[4]], 'strecke' => $row[5], 'zeit' => $row[6], 'datum' => (isset($row[7])?$row[7]:$_SESSION['zeitenimport']['wkdatum']) ); } $sort = array_unique($sort); sort($sort); $tmp = $daten; $daten = array(); foreach($sort as $s){ foreach($tmp as $row){ if($s != $row['_sort']){ continue; } if(!isset($tmp2)){ $tmp2 = array( 'id' => -1, 'nachname' => $row['nachname'], 'vorname' => $row['vorname'], 'jahrgang' => $row['jahrgang'], 'mw' => $row['mw'], '_zeiten' => array() ); } $tmp2['_zeiten'][] = array( 'lage' => $row['lage'], 'strecke' => $row['strecke'], 'zeit' => $row['zeit'], 'datum' => $row['datum'] ); } $daten[] = $tmp2; unset($tmp2); } foreach($daten as $key => $row){ $query = "SELECT id FROM ".DB_PREFIX."mitglieder WHERE nachname = '".text_format($row['nachname'],'db')."' AND vorname = '".text_format($row['vorname'],'db')."' AND YEAR(gebdatum) = '".text_format($row['jahrgang'],'db')."' AND mw = '".text_format($row['mw'],'db')."'"; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] == 1){ $daten[$key]['id'] = $_db->holeWert(); } } $_SESSION['zeitenimport']['daten'] = $daten; } } if(!isset($_SESSION['zeitenimport']['wkid'])){ 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); $wettkaempfe = $wk->holeWettkampfliste(true,'neu','vergangene interpoliertetraining'); $_tmpl->assign('wettkaempfe',$wettkaempfe); $_inh .= $_tmpl->fetch('zeiten/54.import-dateiformular.inc.html'); } else{ $_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:''; switch($_GET['aktion']){ case 'mitgliedsuchen': if(!isset($_GET['id'])){ require_once('func/mitgliedwaehlen.inc.php'); $_inh .= mitgliedwaehlen('/zeiten/importieren.html', 'aktion=mitgliedsuchen&key='.$_GET['key']); } else{ $_SESSION['zeitenimport']['daten'][$_GET['key']]['id'] = $_GET['id']; weiterleiten('/zeiten/importieren.html'); } break; case 'uebernehmen': $wkid = $_SESSION['zeitenimport']['wkid']; $queryanfang = "INSERT INTO ".DB_PREFIX."zeiten (mitgliedid, datum, zeit, disziplin, streckenlaenge, wettkampfid, bestenliste) VALUES "; $i = 0; require_once('func/pruefen.inc.php'); foreach($_SESSION['zeitenimport']['daten'] as $m){ foreach($m['_zeiten'] as $z){ $datum = strpos($z['datum'],'-')===false?text_format($z['datum'],'dbdatum'):$z['datum']; $f = pruefen($z['zeit'],'schwimmzeit','-'); if(!empty($f)){ trigger_error('[tkswim] die Zeit »'.$z['zeit'].'« ist ungültig.',E_USER_ERROR); } $bl = ($wkid < 5)?0:1; $query = $queryanfang.'('.$m['id'].",'".$datum."',".$z['zeit'].','.$z['lage'].','.$z['strecke'].','.$wkid.','.$bl.')'; $_db->fuehreQueryAus($query); $i++; } } unset($_SESSION['zeitenimport']); weiterleiten('/zeiten/importieren.html','Es wurden '.$i.' Zeiten gespeichert'); default: $_tmpl->assign('lagen',$_lagen); $_tmpl->assign('daten',$_SESSION['zeitenimport']['daten']); $_inh .= $_tmpl->fetch('zeiten/54.import-formular.inc.html'); break; } } } # Ende Rechte-else, EOF ?>