assign('ueberschrift','verfügbare Tools'); if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ $_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:''; switch($_GET['aktion']){ case 'altersklassen': if(!isset($_GET['jahr']) or !preg_match('~^[12][0-9]{3}$~U', $_GET['jahr'])){ $_tmpl->assign('ueberschrift', 'Altersklassen ausgeben'); $_tmpl->assign('jahr', date('Y')); $_inh .= $_tmpl->fetch('tools/9.alterklassen.inc.html'); break; } foreach($_altersklassen as $ak => $alter){ $_altersklassen[$ak] = explode(',', $alter); } $altersklassen = array(); $jahr = $_GET['jahr']; for($i=6;$i<=17;$i++){ $alterskl = '-'; foreach($_altersklassen as $ak => $alter){ if(in_array($i, $alter)){ $alterskl = 'Jugend '.strtoupper($ak[1]); break; } } $wks = array(); if($i <= 9){ $wks[] = 'kindgerechte WK'; } if($i >= 8){ $wks[] = 'nichtamtliche WK'; } if($i >= 10 and $i <12){ $wks[] = 'amtliche WK (bis LSV)'; } if($i >= 12){ $wks[] = 'amtliche WK'; } $altersklassen[] = array( 'jg' => $jahr-$i, 'alter' => $i, 'ak' => $alterskl, 'wks' => implode(', ', $wks) ); } $altersklassen[] = array( 'jg' => ($jahr-$_altersklassen['junioren'][0]), 'alter' => $_altersklassen['junioren'][0], 'ak' => 'Junioren', 'wks' => 'nichtamtliche WK, amtliche WK' ); $altersklassen[] = array( 'jg' => ($jahr-$_altersklassen['junioren'][1]), 'alter' => $_altersklassen['junioren'][1], 'ak' => 'Junioren', 'wks' => 'nichtamtliche WK, amtliche WK' ); foreach($_altersklassen as $ak => $alter){ if(substr($ak,0,2) != 'ak'){ continue; } if($ak == 'ak95'){ $altersklassen[] = array( 'jg' => ($jahr-95).'+', 'alter' => '95+', 'ak' => 'AK 95', 'wks' => 'nichtamtliche WK, amtliche WK, Master WK' ); } else{ $altersklassen[] = array( 'jg' => ($jahr-$_altersklassen[$ak][4]).'-'.($jahr-$_altersklassen[$ak][0]), 'alter' => $_altersklassen[$ak][0].'-'.$_altersklassen[$ak][4], 'ak' => 'AK '.substr($ak,2), 'wks' => 'nichtamtliche WK, amtliche WK, Master WK'.($ak=='ak20'?' (bis DSV)':'') ); } } require_once('class/pdf.inc.php'); $pdf = new tkpdf(12); $pdf->tkseitentitel('Altersklassen für das Jahr '.$jahr, 14, 60, 800); $optionen = array( 'fontSize' => $pdf->tk_schriftgroesse, 'xPos' => 60, 'xOrientation' => 'right', 'showHeadings' => 1, 'shaded' => 0, 'showLines' => 2, 'colGap' => 5, 'rowGap' => 3, 'innerLineThickness' => 0.5, 'outerLineThickness' => 1.5, 'cols' => array( 'jg' => array('justification' => 'right'), 'alter' => array('justification' => 'right') ) ); $spalten = array( 'jg' => 'Jahrgang', 'alter' => 'Alter', 'ak' => 'Alterskl.', 'wks' => 'Wettkämpfe' ); $pdf->ezSetDY(-10); $pdf->ezTable($altersklassen,$spalten,'',$optionen); $pdf->tk_autor = $_SESSION['user']['realname']; $pdf->tk_titel = 'Altersklassen für das Jahr '.$jahr; $pdf->tkstream('altersklassen.pdf'); case 'lenpunkte': if(!pruefeRechte('t_lenpunkteberechnen')){ $_inh = T_KEINZUGRIFF; break; } $_tmpl->assign('ueberschrift','LEN-Punkte berechnen'); if(isset($_POST['berechnen'])){ require_once('func/berechnelenpunkte.inc.php'); if(!isset($_POST['mw'])){ $_POST['mw'] = 'm'; } $punkte = berechneLenPunkte($_POST['zeit'],$_POST['strecke'],$_POST['disziplin'],$_POST['mw']); $_tmpl->assign('punkte',$punkte); $_tmpl->assign('daten',$_POST); } $strecken = array( 50 => '50m', 100 => '100m', 200 => '200m', 400 => '400m', 800 => '800m', 1500 => '1500m' ); $mw = array( 'w' => 'weiblich', 'm' => 'männlich' ); $_tmpl->assign('lagen',$_lagen); $_tmpl->assign('mw',$mw); $_tmpl->assign('strecken',$strecken); $_inh .= $_tmpl->fetch('tools/9.lenpunkte-formular.inc.html'); break; case 'austrittevormerken': if(!pruefeRechte('t_austrittevormerken')){ $_inh = T_KEINZUGRIFF; break; } $titel = 'Tools - Austritte vormerken'; $_tmpl->assign('ueberschrift','Austritte vormerken'); $gespeicherte = parse_ini_file(PFAD_INIDATEIEN.'tools_ausgetretene.ini',true); $_tmpl->assign('gespeicherte',$gespeicherte); $jahr = date('Y'); if(isset($_GET['ausfuehren'])){ $gespeicherte = parse_ini_file(PFAD_INIDATEIEN.'tools_ausgetretene.ini',true); $anzahl = 0; require_once('func/setzemitgliedaufausgetreten.inc.php'); foreach($gespeicherte as $jahr => $mitglieder){ if($jahr >= date('Y')){ continue; } $anzahl += setzeMitgliedAufAusgetreten(array_keys($mitglieder),$jahr,$_db); unset($gespeicherte[$jahr]); } if($anzahl > 0){ $meldung = 'Es '.($anzahl==1?'wurde 1 Mitglied':'wurden '.$anzahl.' Mitglieder').' als ausgetreten markiert.'; require_once('func/schreibe_ini_datei.inc.php'); schreibe_ini_datei(PFAD_INIDATEIEN.'tools_ausgetretene.ini',$gespeicherte,true); weiterleiten('/tools/?aktion=austrittevormerken',$meldung); } } if(isset($_GET['loeschen']) and ctype_digit($_GET['loeschen'])){ $mids = array(); foreach($gespeicherte as $ids){ $mids = $mids+$ids; } if(!in_array($_GET['loeschen'],array_keys($mids))){ $_tmpl->assign('fehler','Das Mitglied war nicht vorgemerkt.'); } else{ foreach($gespeicherte as $jahr => $mitglieder){ if(in_array($_GET['loeschen'],array_keys($mitglieder))){ $gefunden = $jahr; break; } } unset($gespeicherte[$gefunden][$_GET['loeschen']]); if(count($gespeicherte[$gefunden]) < 1){ unset($gespeicherte[$gefunden]); } require_once('func/schreibe_ini_datei.inc.php'); schreibe_ini_datei(PFAD_INIDATEIEN.'tools_ausgetretene.ini',$gespeicherte,true); weiterleiten('/tools/?aktion=austrittevormerken','Das Mitglied wurde entfernt'); } } if(isset($_GET['jahr']) and ctype_digit($_GET['jahr']) and $_GET['jahr']<2100 and $_GET['jahr']>1988){ require_once('func/mitgliedwaehlen.inc.php'); if(!isset($_GET['id'])){ $_inh .= mitgliedwaehlen('/tools/', 'aktion=austrittevormerken&jahr='.$_GET['jahr']); } else{ $mids = array(); foreach($gespeicherte as $ids){ $mids = $mids+$ids; } if(in_array($_GET['id'],array_keys($mids))){ $_tmpl->assign('fehler','Das gewählte Mitglied ist bereits vorgemerkt'); $_inh .= mitgliedwaehlen('/tools/', 'aktion=austrittevormerken&jahr='.$_GET['jahr']); break; } if(!isset($gespeicherte[$_GET['jahr']])){ $gespeicherte[$_GET['jahr']] = array(); ksort($gespeicherte); } # Mitgliederdaten holen $query = "SELECT id, CONCAT(nachname, ', ', vorname, ' (', mw, ', ', DATE_FORMAT(gebdatum,'%d.%m.%Y'),')') as name, ausgetreten FROM ".DB_PREFIX."mitglieder WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] != 1){ $_tmpl->assign('fehler','Das Mitglied existiert nicht.'); $_inh .= mitgliedwaehlen('/tools/', 'aktion=austrittevormerken&jahr='.$_GET['jahr']); break; } $row = $_db->holeZeile(); if(!is_null($row['ausgetreten'])){ $_tmpl->assign('fehler','Das Mitglied ist bereits ausgetreten.'); $_inh .= mitgliedwaehlen('/tools/', 'aktion=austrittevormerken&jahr='.$_GET['jahr']); break; } $gespeicherte[$_GET['jahr']][$row['id']] = $row['name']; asort($gespeicherte[$_GET['jahr']]); require_once('func/schreibe_ini_datei.inc.php'); schreibe_ini_datei(PFAD_INIDATEIEN.'tools_ausgetretene.ini',$gespeicherte,true); weiterleiten('/tools/?aktion=austrittevormerken','Das Mitglied wurde gespeichert'); } break; } $_tmpl->assign('jahr',(date('m')<=2?$jahr-1:$jahr)); $_inh = $_tmpl->fetch('tools/9.tools-austrittevormerken.inc.html'); break; case 'rechteeinlesen': if(!pruefeRechte('t_rechteneueinlesen')){ $_inh = T_KEINZUGRIFF; break; } $query = "SELECT rgr.rechteid as id FROM ".DB_PREFIX."rechtegruppen_rechte as rgr, ".DB_PREFIX."rechtegruppen_mitglieder as rgm WHERE rgm.mitgliedid = ".$_SESSION['user']['id']." AND rgm.rechtegrid = rgr.rechtegrid GROUP BY id"; $_db->holeDaten($query); $_SESSION['user']['rechte'] = $_db->baueArray('id','#'); $query = "SELECT rechtegrid as id FROM ".DB_PREFIX."rechtegruppen_mitglieder WHERE mitgliedid = ".$_SESSION['user']['id'].""; $_db->holeDaten($query); $_SESSION['user']['rechtegruppen'] = $_db->baueArray('id','#'); weiterleiten('/tools/','Die Rechte wurden erfolgreich eingelesen'); case 'zeiteninterpolieren': if(!pruefeRechte('t_zeiteninterpolieren')){ $_inh = T_KEINZUGRIFF; break; } $titel = 'Zeiten interpolieren'; $_tmpl->assign('ueberschrift','Zeiten interpolieren'); $moeglichkeiten = array( 25 => array(50), 50 => array(25,100,200,400), 100 => array(50,200,400), 200 => array(50,100,400,800,1500), 400 => array(100,200,800,1500), 800 => array(200,400,1500), 1500 => array(200,400,800) ); if(isset($_POST['anzeigen']) and !empty($_POST['zeit'])){ require_once('func/pruefen.inc.php'); $f = ''; $f .= pruefen($_POST['zeit'],'leer','Die Zeit fehlt','wert'); $f .= pruefen($_POST['zeit'],'schwimmzeit','Die eingegebene Zeit ist ungültig','wert'); $f .= pruefen($_POST['laenge'],'wertemenge','Die Streckenlänge ist ungültig',array_keys($moeglichkeiten)); if(!empty($f)){ $_tmpl->assign('fehler',$f); } else{ $a_zeit = $_POST['zeit']; $a_laenge = $_POST['laenge']; foreach($moeglichkeiten[$a_laenge] as $z_laenge){ $richtung = $a_laenge>$z_laenge?'runter':'hoch'; $faktor = $_gleinst['wettkaempfe_abwickeln']['interplationsfaktor'.$richtung]; $q = $z_laenge/$a_laenge; $faktor = pow($faktor,abs(log($q,2)))*$q; $z_zeit = round($faktor*$a_zeit); $interpolierte[] = array('laenge'=>$z_laenge,'zeit'=>$z_zeit); } $_tmpl->assign('interpolierte',$interpolierte); } } require_once('func/array_combine.inc.php'); $_tmpl->assign('ausgangsstrecken',array_combine(array_keys($moeglichkeiten),array_keys($moeglichkeiten))); $_inh .= $_tmpl->fetch('tools/9.zeiten-interpolieren.inc.html'); break; case 'mitglkartenvorhanden': if(!pruefeRechte('e_fehlendemitgliedskarten')){ $_inh = T_KEINZUGRIFF; break; } if($_gleinst['features']['mitgliederkarten'] != 1){ $_tmpl->assign('fehler','Dieses Feature wurde deaktiviert.'); break; } if(!isset($_SESSION['flags']['fehlendemitgliedskartenexportiert'])){ $_tmpl->assign('fehler','Der Status der Mitgliederkarten kann nur auf "vorhanden" gesetzt werden, wenn die fehlenden Karten vorher exportiert wurden.'); break; } $query = "SELECT m.id as id FROM ".DB_PREFIX."mitglieder as m LEFT JOIN ".DB_PREFIX."eigenschaften as e ON m.id=e.artid AND art='m' AND eigenschaft = 'keinekartemachen' WHERE ausgetreten IS NULL AND mitgliedskarte = 1 AND e.wert IS NULL"; $_db->holeDaten($query); if($_db->holeAnzahl() > 0){ $ids = $_db->baueArray('id','#'); $query = "UPDATE ".DB_PREFIX."mitglieder SET mitgliedskarte = 3 WHERE id IN (".implode(',',$ids).")"; $_db->fuehreQueryAus($query); } unset($_SESSION['flags']['fehlendemitgliedskartenexportiert']); switch($_db->ergebnis['anzahl']){ case 0: $hinweistext = 'Es haben keine Mitgliederkarten gefehlt.'; break; case 1: $hinweistext = 'Es wurde der Mitgliederkarten-Status von 1 Mitglied auf "vorhanden" gesetzt.'; break; default: $hinweistext = 'Es wurde der Mitgliederkarten-Status von '.$_db->holeAnzahl().' Mitgliedern auf "vorhanden" gesetzt.'; break; } weiterleiten('/tools/',$hinweistext); default: $_tmpl->assign('mitglkarten', $_gleinst['features']['mitgliederkarten']); $_inh = $_tmpl->fetch('tools/9.tools-index.inc.html'); break; } } # Ende Rechte-else, EOF ?>