assign('ueberschrift','Trainingsgruppen'); $titel = 'Trainingsgruppe'; if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ $_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:''; $_tmpl->assign('wochentage',$_wochentage); switch($_GET['aktion']){ case 'rangfolge': if(!pruefeRechte('tr_gruppen_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } # vorhandene Daten holen $query = "SELECT DISTINCT kommentar, rangfolge FROM ".DB_PREFIX."trainingsgruppen ORDER BY kommentar"; $_db->holeDaten($query); $gruppen = $_db->baueArray('*','kommentar'); $query = "SELECT id, TIME_FORMAT(anfangszeit,'%H:%i') as anfang, wochentag, kommentar, rangfolge FROM ".DB_PREFIX."trainingsgruppen WHERE rangfolge IS NOT NULL ORDER BY rangfolge"; $_db->holeDaten($query); $gruppentmp = $_db->baueArray('*','id'); foreach($gruppen as $art => $werte){ if(is_null($werte['rangfolge'])){ $gruppen[$art]['reihenfolge'] = '-'; } else{ $tmp = array(); foreach($gruppentmp as $gr){ if($gr['kommentar'] != $art){ continue; } $tmp[] = substr($_wochentage[$gr['wochentag']],0,2).$gr['anfang']; } $gruppen[$art]['reihenfolge'] = implode(', ',$tmp); } unset($gruppen[$art]['rangfolge']); } $_tmpl->assign('gruppen', $gruppen); $_inh .= $_tmpl->fetch('training/31.rangfolge-uebersicht.inc.html'); break; case 'anlegen': $_tmpl->assign('ueberschrift','Trainingsgruppe anlegen'); if(!pruefeRechte('tr_gruppen_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } if(isset($_POST['speichern'])){ require_once('func/pruefen.inc.php'); $f = ''; $f .= pruefen($_POST['anfangszeit'],'leer','Die Anfangszeit fehlt'); $f .= pruefen($_POST['anfangszeit'],'uhrzeit','Die Anfangszeit ist ungültig'); $f .= pruefen($_POST['endzeit'],'leer','Die Endzeit fehlt'); $f .= pruefen($_POST['endzeit'],'uhrzeit','Die Endzeit ist ungültig'); $f .= pruefen($_POST['wochentag'],'wertemenge','Der Wochentag ist ungültig',array_keys($_wochentage)); $f .= pruefen($_POST['kommentar'],'maxlaenge','Der Kommentar ist zu lang (max 50 Zeichen)',50); if(!empty($f)){ $_tmpl->assign('fehler',$f); $_tmpl->assign('daten',$_POST); } else{ $query = "INSERT INTO ".DB_PREFIX."trainingsgruppen SET anfangszeit='".text_format(substr($_POST['anfangszeit'],0,5),'db').":00', endzeit='".text_format(substr($_POST['endzeit'],0,5),'db').":00', wochentag = ".$_POST['wochentag'].", kommentar='".text_format($_POST['kommentar'],'db')."'"; $_db->fuehreQueryaus($query); weiterleiten('/training/gruppen.html','Die Trainingsgruppe wurde angelegt'); } } $_inh .= $_tmpl->fetch('training/31.gruppen-formular.inc.html'); break; case 'aendern': $_tmpl->assign('ueberschrift','Trainingsgruppe ändern'); if(!pruefeRechte('tr_gruppen_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } if(!ctype_digit($_GET['id'])){ break; } if(isset($_POST['gruppeloeschen']) or isset($_GET['gruppeloeschen'])){ if(!isset($_GET['sicher'])){ $_tmpl->assign('frage','Soll die Trainingsgruppe wirklich gelöscht werden?'); $_tmpl->assign('jaquery','gruppeloeschen=1'); $_tmpl->assign('neinquery','aktion=aendern&id='.$_GET['id']); $_tmpl->assign('url', '/training/gruppen.html'); $_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html'); break; } else{ $query = "DELETE FROM ".DB_PREFIX."trainingsgruppen_uebungsleiter WHERE trainingsgruppenid = ".$_GET['id'].""; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."mitglieder_trainingsgruppen WHERE trainingsgruppenid = ".$_GET['id'].""; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."trainingsgruppen WHERE id = ".$_GET['id'].""; $_db->fuehreQueryAus($query); weiterleiten('/training/gruppen.html','Die Trainingsgruppe wurde gelöscht'); } } elseif(!isset($_POST['speichern'])){ $query = "SELECT id, TIME_FORMAT(anfangszeit,'%H:%i') as anfangszeit, TIME_FORMAT(endzeit,'%H:%i') as endzeit, kommentar, wochentag FROM ".DB_PREFIX."trainingsgruppen WHERE id=".$_GET['id'].""; $_db->holeDaten($query); if($_db->holeAnzahl() != 1){ $_inh .= T_KEINDATENSATZ; break; } $_tmpl->assign('daten',$_db->holeZeile()); } else{ require_once('func/pruefen.inc.php'); $f = ''; $f .= pruefen($_POST['anfangszeit'],'leer','Die Anfangszeit fehlt'); $f .= pruefen($_POST['anfangszeit'],'uhrzeit','Die Anfangszeit ist ungültig'); $f .= pruefen($_POST['endzeit'],'leer','Die Endzeit fehlt'); $f .= pruefen($_POST['endzeit'],'uhrzeit','Die Endzeit ist ungültig'); $f .= pruefen($_POST['wochentag'],'wertemenge','Der Wochentag ist ungültig',array_keys($_wochentage)); $f .= pruefen($_POST['kommentar'],'maxlaenge','Der Kommentar ist zu lang (max 50 Zeichen)',50); if(!empty($f)){ $_tmpl->assign('fehler',$f); $_tmpl->assign('daten',$_POST); } else{ $query = "UPDATE ".DB_PREFIX."trainingsgruppen SET anfangszeit='".text_format(substr($_POST['anfangszeit'],0,5),'db').":00', endzeit='".text_format(substr($_POST['endzeit'],0,5),'db').":00', wochentag = ".$_POST['wochentag'].", kommentar='".text_format(trim($_POST['kommentar']),'db')."' WHERE id = ".$_GET['id'].""; $_db->fuehreQueryaus($query); weiterleiten('/training/gruppen.html','Die Trainingsgruppe wurde geändert'); } } $_inh .= $_tmpl->fetch('training/31.gruppen-formular.inc.html'); break; default: $query = "SELECT t.id, TIME_FORMAT(anfangszeit,'%H:%i') as anfangszeit, wochentag, TIME_FORMAT(endzeit,'%H:%i') as endzeit, kommentar, COUNT(DISTINCT ttg.mitgliedid) as anz FROM ".DB_PREFIX."trainingsgruppen as t LEFT JOIN ".DB_PREFIX."mitglieder_trainingsgruppen as ttg ON t.id = ttg.trainingsgruppenid GROUP BY t.id ORDER BY wochentag, anfangszeit"; $_db->holedaten($query); $gruppen = $_db->baueArray('*', 'id'); # Übungsleiter holen $query = "SELECT tu.trainingsgruppenid, m.vorname, m.nachname, m.id as mid FROM (".DB_PREFIX."uebungsleiter as u LEFT JOIN ".DB_PREFIX."mitglieder as m ON u.mitgliedid=m.id) LEFT JOIN ".DB_PREFIX."trainingsgruppen_uebungsleiter as tu ON u.id = tu.uebungsleiterid WHERE tu.trainingsgruppenid IS NOT NULL ORDER BY tu.trainingsgruppenid, IF(u.trainerbis IS NOT NULL,1,0) DESC, IF((YEAR(NOW())-YEAR(m.gebdatum)) > 18,1,0) DESC, m.vorname ASC, nachname ASC"; $_db->holedaten($query); $uebungsleiter = $_db->baueArray('*', '#'); # mehrfach vorkommende Vornamen ermitteln $vornamen = array(); foreach($uebungsleiter as $row){ if(!isset($vornamen[$row['vorname']])){ $vornamen[$row['vorname']] = array(); } $vornamen[$row['vorname']][$row['mid']] = $row['nachname']; } # einfach vorkommende entfernen foreach($vornamen as $v => $nachnamen){ if(count($nachnamen)<2){ unset($vornamen[$v]); } } # ermitteln auf wieviel Buchstaben der Nachname gekurzt werden kann $vorher = ''; foreach($vornamen as $v => $nachnamen){ asort($nachnamen); for($i=1;;$i++){ $gleich = false; $maxlaenge = 0; foreach($nachnamen as $mid => $name){ if(substr($name,0,$i) == $vorher){ $gleich = true; } $maxlaenge = max($maxlaenge, strlen($name)); $vorher = substr($name,0,$i); } if(!$gleich){break;} if($i==$maxlaenge)break; } # Namen kürzen foreach($nachnamen as $mid => $name){ $nachnamen[$mid] = strlen($name)>$i?substr($name,0,$i).'.':$name; } $vornamen[$v] = $nachnamen; } # Übungsleiter den Gruppen zuordnen foreach($uebungsleiter as $row){ if(!isset($gruppen[$row['trainingsgruppenid']]['uebungsleiter'])){ $gruppen[$row['trainingsgruppenid']]['uebungsleiter'] = array(); } $tmp = $row['vorname']; if(isset($vornamen[$row['vorname']])){ $tmp .= ' '.$vornamen[$row['vorname']][$row['mid']]; } $gruppen[$row['trainingsgruppenid']]['uebungsleiter'][] = $tmp; } # Übungsleiter zusammenbauen foreach($gruppen as $id => $row){ if(!isset($row['uebungsleiter'])){ continue; } $gruppen[$id]['uebungsleiter'] = implode(', ', $row['uebungsleiter']); } $_tmpl->assign('gruppen',$gruppen); $_inh .= $_tmpl->fetch('training/31.gruppen-uebersicht.inc.html'); break; } } # Ende Rechte-else, EOF ?>