assign('ueberschrift','Anwesenheitslisten'); if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ require_once('func/holetrainingsgruppen.inc.php'); $gruppen = holeTrainingsgruppen(true); if(count($gruppen) < 1){ $_tmpl->assign('fehler', 'Es wurden keine Trainingsgruppen gefunden'); } else{ $_tmpl->assign('gruppen',$gruppen); $query = "SELECT id, CONCAT(titel, ' - ', DATE_FORMAT(datum,'%d.%m.%Y')) as wk, IF(datum>NOW(),1,0) as zukunft FROM ".DB_PREFIX."wettkaempfe as w LEFT JOIN ".DB_PREFIX."eigenschaften as e ON w.id=e.artid AND e.art='w' AND e.eigenschaft = 'wkabwickeln' WHERE e.wert IS NOT NULL ORDER BY zukunft DESC, datum ASC"; $_db->holeDaten($query); $wettkaempfe = $_db->baueArray('wk','id'); $_tmpl->assign('wettkaempfe',$wettkaempfe); $genauigkeiten = array( 'sekunden' => 'gerundet (auf Sekunden genau)', 'zehntel' => 'gerundet (auf Zehntel genau)', 'hundertstel' => 'genaue Zeit (auf Hundertstel genau)' ); $_tmpl->assign('genauigkeiten',$genauigkeiten); if(!isset($_POST['generieren'])){ $daten = array(); # Anfang- und Ende vorbelegen $user_conf = $_einst['anwesenheitsliste']; switch($user_conf['anfang']){ case 'woche': $tmp = time(); while(date('w',$tmp) != 1){ $tmp += 86400; } $timestamp_anfang = $tmp; break; case 'monat': $timestamp_anfang = mktime(12,0,0,date('n')+1,1,(date('n')==12?date('Y')+1:date('Y'))); break; case 'ferien': $query = "SELECT UNIX_TIMESTAMP(ADDDATE(bis,INTERVAL 1 DAY)) as anfang FROM ".DB_PREFIX."ferien WHERE bis IS NOT NULL AND bis > NOW() ORDER BY bis ASC LIMIT 1"; $_db->holeDaten($query); $timestamp_anfang = $_db->holeWert(); break; case 'vorgegeben': $query = "SELECT von, bis FROM ".DB_PREFIX."ferien WHERE art IN(10,1,13) AND ((ADDDATE(von,INTERVAL 2 MONTH)>NOW() AND bis IS NULL) OR (ADDDATE(bis,INTERVAL 2 MONTH)>NOW() AND bis IS NOT NULL)) ORDER BY von LIMIT 1"; $_db->holeDaten($query); if($_db->holeAnzahl() < 1){ $timestamp_anfang = time(); } else{ $row = $_db->holeZeile(); $datum = is_null($row['bis'])?$row['von']:$row['bis']; $timestamp_anfang = strtotime($datum); $query = "SELECT UNIX_TIMESTAMP(DATE_SUB(von, INTERVAL 1 DAY)) as bis FROM ".DB_PREFIX."ferien WHERE art IN(10,1,13) AND von > '".$datum."' ORDER BY von LIMIT 1"; $_db->holeDaten($query); if($_db->holeAnzahl() > 0){ $timestamp_ende = $_db->holeWert(); } } break; case 'heute': default: $timestamp_anfang = time(); break; } $daten['von'] = date('d.m.Y',$timestamp_anfang); $zeitraum = substr($user_conf['zeitraum'],-1); if(isset($timestamp_ende)){ $daten['bis'] = date('d.m.Y',$timestamp_ende); } else{ $daten['bis'] = date('d.m.Y',strtotime($zeitraum.' month',$timestamp_anfang)); #$timestamp_ende; } # Trainingsgruppen vorbelegen $query = "SELECT trainingsgruppenid FROM ".DB_PREFIX."trainingsgruppen_uebungsleiter as tu, ".DB_PREFIX."uebungsleiter as u WHERE u.mitgliedid = ".$_SESSION['user']['id']." AND tu.uebungsleiterid=u.id"; $_db->holeDaten($query); $daten['gruppen'] = $_db->baueArray('trainingsgruppenid','#'); $daten['listenart'] = 'normale'; $daten['az'] = array('1_100','2_100','3_100','4_100'); $daten['telefonnummern_n'] = 1; $daten['kaestchen'] = 2; $_tmpl->assign('daten',$daten); } else{ require_once('func/pruefen.inc.php'); $f = $d = ''; if(!isset($_POST['daten']['gruppen'])){ $f .= 'Es wurde keine Gruppe ausgewählt.
'; } else{ $anz = count($_POST['daten']['gruppen']); for($i=0;$i<$anz;$i++){ $f .= pruefen($_POST['daten']['gruppen'][$i],'wertemenge','Die Gruppe ist ungültig',array_keys($gruppen)); } } if(!in_array($_POST['daten']['listenart'],array('normale','wettkampfmeldung','blanko'))){ $f .= 'Die Wettkampfart ist ungültig
'; } else{ switch($_POST['daten']['listenart']){ case 'normale': # Anfangs-/Enddatum prüfen $d .= pruefen($_POST['daten']['von'],'leer','Ab welchem Datum soll die Anwesenheitsliste generiert werden?'); $d .= pruefen($_POST['daten']['von'],'datum','Das von-Datum ist ungültig.'); $d .= pruefen($_POST['daten']['bis'],'leer','Bis zu welchem Datum soll die Anwesenheitsliste generiert werden?'); $d .= pruefen($_POST['daten']['bis'],'datum','Das bis-Datum ist ungültig.'); if(empty($d)){ $f .= pruefen($_POST['daten']['von'],'datumvordatum','Das bis-Datum muss nach dem von-Datum liegen',$_POST['daten']['bis']); } else{ $f .= $d; } # aktuelle Zeiten - erlaubte Strecken if(isset($_POST['daten']['aktuellezeiten'])){ if(!isset($_POST['daten']['az']) or !is_array($_POST['daten']['az'])){ $f .= 'Es wurden keine Strecken für die aktuellen Zeiten ausgewählt
'; } else{ $erlaubt = array( '1_50', '1_100', '1_200', '1_400', '1_800', '1_1500', '2_50', '2_100', '2_200', '3_50', '3_100', '3_200', '4_50', '4_100', '4_200', '5_100', '5_200', '5_400' ); foreach($_POST['daten']['az'] as $strecke){ $f .= pruefen($strecke, 'wertemenge', 'Die Strecke ist ungültig', array_keys($erlaubt)); } } $f .= pruefen($_POST['daten']['genauigkeit'], 'wertemenge', 'Die Genauigkeit ist ungültig', array_keys($genauigkeiten)); } break; case 'wettkampfmeldung': $f .= pruefen($_POST['daten']['wettkampf'],'wertemenge','Der gewählte Wettkampf ist ungültig.',array_keys($wettkaempfe)); break; case 'blanko': $f .= pruefen($_POST['daten']['kaestchen'],'zahl','Die Anzahl der Kästchen ist ungültig'); break; default: break; } } if(!empty($f)){ $_tmpl->assign('fehler',$f); $_tmpl->assign('daten',$_POST['daten']); } else{ require_once('func/erstelleanwesenheitsliste.inc.php'); $gruppen = $_POST['daten']['gruppen']; $conf = array(); switch($_POST['daten']['listenart']){ case 'wettkampfmeldung': $conf['wettkampf'] = $_POST['daten']['wettkampf']; break; case 'blanko': $conf['kaestchen'] = $_POST['daten']['kaestchen']; $conf['telefon'] = isset($_POST['daten']['telefonnummern_b']); break; case 'normale': $conf['von'] = $_POST['daten']['von']; $conf['bis'] = $_POST['daten']['bis']; $conf['telefon'] = isset($_POST['daten']['telefonnummern_n']); if(isset($_POST['daten']['aktuellezeiten'])){ $conf['aktuellezeiten'] = $_POST['daten']['az']; $conf['genauigkeit'] = $_POST['daten']['genauigkeit']; $conf['doppeltebreite'] = isset($_POST['daten']['doppeltebreite'])?1:0; } break; } erstelleAnwesenheitsliste($gruppen, $_POST['daten']['listenart'], $conf); } } $_tmpl->tk_append_string('js_inline',"function optionenzeigen(){ if(!document.getElementById){ return false; } var rb = document.forms[0].elements['daten[listenart]']; document.getElementById('normale').style.display = rb[0].checked?'':'none'; document.getElementById('wettkampfmeldung').style.display = rb[1].checked?'':'none'; document.getElementById('blanko').style.display = rb[2].checked?'':'none'; }",1); $_tmpl->tk_append_string('js_inline',"function az(){ if(!document.getElementById){ return false; } var aktuellez = document.forms[0].elements['daten[aktuellezeiten]'].checked; document.getElementById('aktuellezeiten').style.display = aktuellez?'':'none'; }",1); $_tmpl->tk_append_string('css_inline','#aktuellezeiten label { margin-left:0.5em; } #aktuellezeiten li span { display:block; width:6em; float:left; }',1); $_inh .= $_tmpl->fetch('training/34.anwesenheitsliste-formular.inc.html'); } # Ende Anzahl-Trainingsgruppen-else } # Ende Rechte-else, EOF ?>