assign('ueberschrift','Mitgliedsdaten anzeigen'); $titel = 'Mitgliedsdaten anzeigen'; if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } elseif(!isset($_GET['id']) or !ctype_digit($_GET['id'])){ require_once('func/mitgliedwaehlen.inc.php'); $_inh .= mitgliedwaehlen('/mitglieder/anzeigen.html'); } else{ $angemeldetesmitglied = $_SESSION['user']['id']==$_GET['id']; # allgemeine Daten $query = "SELECT m.id, l.anmeldename, vorname, nachname, mw, ausgetreten, strasse, hausnr, plz, ort, YEAR(gebdatum) as jg, ".(($angemeldetesmitglied or pruefeRechte('m_anzeigen_adresse'))?"DATE_FORMAT(gebdatum,'%e. %M %Y')":"CONCAT('xx.xx.',YEAR(gebdatum))")." as gebdatum, ".(($angemeldetesmitglied or pruefeRechte('m_anzeigen_adresse'))?"((YEAR(NOW())-YEAR(gebdatum)) - (MONTH(NOW())holeDaten($query); if($_db->holeAnzahl() == 1){ $daten = $_db->holeZeile(); if(isset($_GET['bestzeitenpdf']) and ($angemeldetesmitglied or prueferechte('m_anzeigen_zeiten'))){ # Zeiten holen $query = "SELECT DATE_FORMAT(z.datum, '%d.%m.%Y') as datum, w.ort, zeit, disziplin, streckenlaenge, w.bahnlaenge FROM ".DB_PREFIX."zeiten as z LEFT JOIN ".DB_PREFIX."wettkaempfe as w ON z.wettkampfid = w.id WHERE bestenliste = 1 AND zeit IS NOT NULL AND z.mitgliedid = ".$_GET['id']." AND streckenlaenge > '25' ORDER BY disziplin, streckenlaenge, zeit ASC"; $_db->holeDaten($query); $zdaten = $_db->baueArray('*', '#'); # Bestzeiten filtern und LEN-Punkte ermitteln require_once('func/berechnelenpunkte.inc.php'); $bestzeiten = array( '25' => array( '1_50' => array('strecke' => '50m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_100' => array('strecke' => '100m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_200' => array('strecke' => '200m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_400' => array('strecke' => '400m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_800' => array('strecke' => '800m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_1500' => array('strecke' => '1500m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '2_50' => array('strecke' => '50m B', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '2_100' => array('strecke' => '100m B', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '2_200' => array('strecke' => '200m B', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '3_50' => array('strecke' => '50m R', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '3_100' => array('strecke' => '100m R', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '3_200' => array('strecke' => '200m R', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '4_50' => array('strecke' => '50m S', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '4_100' => array('strecke' => '100m S', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '4_200' => array('strecke' => '200m S', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '5_100' => array('strecke' => '100m L', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '5_200' => array('strecke' => '200m L', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '5_400' => array('strecke' => '400m L', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => '') ), '50' => array( '1_50' => array('strecke' => '50m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_100' => array('strecke' => '100m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_200' => array('strecke' => '200m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_400' => array('strecke' => '400m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_800' => array('strecke' => '800m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '1_1500' => array('strecke' => '1500m F', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '2_50' => array('strecke' => '50m B', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '2_100' => array('strecke' => '100m B', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '2_200' => array('strecke' => '200m B', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '3_50' => array('strecke' => '50m R', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '3_100' => array('strecke' => '100m R', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '3_200' => array('strecke' => '200m R', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '4_50' => array('strecke' => '50m S', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '4_100' => array('strecke' => '100m S', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '4_200' => array('strecke' => '200m S', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '5_100' => array('strecke' => '100m L', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '5_200' => array('strecke' => '200m L', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => ''), '5_400' => array('strecke' => '400m L', 'zeit' => '', 'punkte' => '', 'datum' => '', 'ort' => '') ) ); foreach($zdaten as $row){ $key = $row['disziplin'].'_'.$row['streckenlaenge']; if(!isset($bestzeiten[$row['bahnlaenge']][$key])){ continue; } if(empty($bestzeiten[$row['bahnlaenge']][$key]['zeit'])){ $bestzeiten[$row['bahnlaenge']][$key] = array( 'strecke' => $row['streckenlaenge'].'m '.$_lagen[$row['disziplin']][0], 'zeit' => text_format($row['zeit'], 'schwimmzeit'), 'punkte' => berechneLenPunkte($row['zeit'], $row['streckenlaenge'], $row['disziplin'], $daten['mw']), 'datum' => $row['datum'], 'ort' => $row['ort'] ); } } # PDF-Datei erzeugen require_once('class/pdf.inc.php'); $pdf = new tkpdf(12, 'quer'); $schriftgroesse = 12; $titel = 'Bestzeiten für '.$daten['vorname'].' '.$daten['nachname'].''; $unterueberschrift = 'Jahrgang: '.substr($daten['gebdatum'],-4).(!empty($daten['dsvid'])?', DSV-ID: '.$daten['dsvid']:''); $pdf->ezsetY(570); $y = $pdf->ezText($titel, $schriftgroesse+2, array('justification'=>'center')); $pdf->ezsetY($y-4); $y = $pdf->ezText($unterueberschrift, $schriftgroesse, array('justification'=>'center')); $pdf->ezSetDy(-10); $optionen = array( 'showLines' => 0, 'shaded' => 0, 'fontSize' => $schriftgroesse, 'titleFontSize' => $schriftgroesse+1, 'xPos' => 60, 'xOrientation' => 'right', 'rowGap' => 3, 'colGap' => 6, 'cols' => array( 'strecke' => array( 'justification' => 'right' ) ) ); $spalten = array( 'strecke' => 'Strecke', 'zeit' => 'Zeit', 'punkte' => 'Punkte', 'datum' => 'Datum', 'ort' => 'Ort', ); $pdf->ezTable($bestzeiten['25'], $spalten, '25m Bahn', $optionen); $y = $pdf->ezSety($y); $pdf->ezSetDy(-10); $optionen['xPos'] = 842-60; $optionen['xOrientation'] = 'left'; $pdf->ezTable($bestzeiten['50'], $spalten, '50m Bahn', $optionen); $pdf->ezsetY(60); $y = $pdf->ezText('Stand: '.date('j').'. '.$_monate[date('n')].' '.date('Y').'', $schriftgroesse, array('justification'=>'right')); $name = strtolower($daten['vorname'].' '.$daten['nachname']); $von = array('ä', 'ö', 'ü', 'ß', ' '); $nach = array('ae', 'oe', 'ue', 'ss', '-'); $name = str_replace($von, $nach, $name); $name = preg_replace('~[^a-z-]~', '', $name); $pdf->tkstream('bestzeiten_'.$name.'.pdf'); } require_once('func/parsesonstigesfeld.inc.php'); $daten['sonstiges'] = parsesonstigesfeld($daten['sonstiges'],'',true); if(!is_null($daten['dsvid']) and is_null($daten['ausgetreten'])){ $jahr = date('Y'); $gebjahr = substr($daten['gebdatum'],-4); if($jahr-$gebjahr >= 10){ $query = "SELECT mitgliedid FROM ".DB_PREFIX."lizenzierungen WHERE mitgliedid = ".$_GET['id']." AND jahr = ".$jahr.""; $_db->holeDaten($query); $daten['lizenziert'] = $_db->holeAnzahl()>0; } else{ $daten['lizenziert'] = 'nn'; } } # Eigenschaften $query = "SELECT eigenschaft, wert FROM ".DB_PREFIX."eigenschaften WHERE art = 'm' AND artid = ".$_GET['id'].""; $_db->holeDaten($query); $eigenschaften = $_db->baueArray('wert','eigenschaft'); if(isset($eigenschaften['langname'])){ $eigenschaften['langname'] = str_replace('|',' ',$eigenschaften['langname']); } if(isset($eigenschaften['alteadresse'])){ $eigenschaften['alteadresse'] = str_replace('|',', ',$eigenschaften['alteadresse']); } if(isset($eigenschaften['dsvidbeantragt'])){ $daten['dsvid'] = 'beantragt (am '.$eigenschaften['dsvidbeantragt'].')'; } if(isset($eigenschaften['keinewettkampfteilnahme'])){ if(!isset($daten['sonstiges']['_default'])){ $daten['sonstiges']['_default'] = ''; } $daten['sonstiges']['_default'] .= "\n".'- keine Wettkampfteilnahme'; } if(isset($eigenschaften['aufnahmeformulargeben'])){ if(!isset($daten['sonstiges']['_default'])){ $daten['sonstiges']['_default'] = ''; } $daten['sonstiges']['_default'] .= "\n".'- Aufnahmeformular geben'; } if(isset($daten['sonstiges']['_default'])){ $daten['sonstiges']['_default'] = trim($daten['sonstiges']['_default']); } $daten['_eigenschaften'] = $eigenschaften; $_tmpl->assign('daten',$daten); # Familie if($daten['familienid']!=0){ $query = "SELECT id, CONCAT(vorname,' ',nachname,' (',YEAR(gebdatum),')') as name, IF(ausgetreten IS NULL,0,1) as ausgetreten FROM ".DB_PREFIX."mitglieder WHERE familienid = ".$daten['familienid']." ORDER BY vorname, nachname"; $_db->holeDaten($query); $_tmpl->assign('familienmitglieder', $_db->baueArray('*','id')); } # Trainingsgruppen if($angemeldetesmitglied or prueferechte('m_anzeigen_trainingsgruppen')){ require_once('func/holetrainingsgruppen.inc.php'); $_tmpl->assign('trainingsgruppen',holeTrainingsgruppen(true)); $query = "SELECT trainingsgruppenid FROM ".DB_PREFIX."mitglieder_trainingsgruppen WHERE mitgliedid = ".$_GET['id']." ORDER BY trainingsgruppenid"; $_db->holeDaten($query); $_tmpl->assign('trainingsgr', $_db->baueArray('trainingsgruppenid','#')); } # Select für Mitgliedskarten $_tmpl->assign('mitgliedskarten',$_mitgliedskarten); # Zeiten if($angemeldetesmitglied or prueferechte('m_anzeigen_zeiten')){ $query = "SELECT IF(staffelid IS NOT NULL,schwimmernr,0) as staffel, z.bestenliste, w.bahnlaenge, z.id, DATE_FORMAT(z.datum,'%d.%m.%Y') as datum, zeit, disziplin, z.datum as datumsort, streckenlaenge, wettkampfid, w.kurztitel as wettkampf, CONCAT(streckenlaenge,disziplin) as strecke, '1' as schwimmernr FROM ".DB_PREFIX."zeiten as z LEFT JOIN ".DB_PREFIX."staffeln_zeiten as sz ON z.id=sz.zeitid, ".DB_PREFIX."wettkaempfe as w WHERE mitgliedid = ".$_GET['id']." AND w.id = z.wettkampfid AND z.wettkampfid > 5 AND zeit IS NOT NULL ORDER BY streckenlaenge, disziplin, z.zeit, z.datum ASC"; $_db->holeDaten($query); $einzelzeiten = $_db->baueArray('*','id'); $zeiten = array( 'anzahl' => count($einzelzeiten), 'daten' => $einzelzeiten ); if($zeiten['anzahl'] > 0){ # auf Vereins(jahrgangs)rekorde pruefen $zids = implode(', ',array_keys($zeiten['daten'])); $query = "SELECT z.id as zid, zr.art, YEAR(z.datum)-".$daten['jg']." as ak FROM ".DB_PREFIX."zeiten_rekorde as zr LEFT JOIN ".DB_PREFIX."zeiten as z ON zr.zeitid = z.id WHERE LEFT(zr.art,1)='a' AND laenge IS NULL AND z.id IN (".$zids.")"; $_db->holeDaten($query); $dbrekorde = $_db->baueArray('*','#'); $rekorde = array(); foreach($dbrekorde as $row){ if(!isset($rekorde[$row['zid']])){ $rekorde[$row['zid']] = array(); } if(strpos($row['art'],'_') !== false){ list($row['art'],$row['platz']) = explode('_', $row['art']); } switch($row['art']){ case 'aVR': $rekorde[$row['zid']][1] = 'Vereinsrekord'; break; case 'aVJR': $rekorde[$row['zid']][2] = 'Vereinsjahrgangsrekord'; if($row['ak']>=20){ $rekorde[$row['zid']][2] .= ' (AK'.(floor($row['ak']/5)*5).')'; } else{ $rekorde[$row['zid']][2] .= ' ('.$row['ak'].' Jahre)'; } break; case 'aHoF': $rekorde[$row['zid']][3] = 'Hall of Fame (Platz '.$row['platz'].')'; break; case 'aHoF11': $rekorde[$row['zid']][3] = 'Hall of Fame (bis 11 Jahre, Platz '.$row['platz'].')'; break; } } foreach($rekorde as $key => $row){ ksort($rekorde[$key]); } foreach($rekorde as $key => $row){ if(isset($row[1])){ $zeiten['daten'][$key]['vr'] = 'VR'; } elseif(isset($row[2])){ $zeiten['daten'][$key]['vr'] = 'VJR'; } $zeiten['daten'][$key]['rekord'] = implode(', ',$row); } # Zeiten formatieren, Bei Staffelzeiten die Schwimmernummer einbauen foreach($zeiten['daten'] as $id => $zeit){ $zeiten['daten'][$id]['zeit'] = text_format($zeit['zeit'],'schwimmzeit'); if($zeit['staffel'] == 0){ continue; } $zeiten['daten'][$id]['streckenlaenge'] .= ' ('.$zeit['staffel'].')'; } } $_tmpl->assign('zeiten',$zeiten); $_tmpl->assign('lagen',$_lagen); # aktuelle Zeiten $query = "SELECT a.disziplin, a.laenge, a.zeit, IF(a.laenge=z.streckenlaenge,0,1) as interpoliert, z.zeit as zzeit, z.streckenlaenge, DATE_FORMAT(z.datum,'%d.%m.%Y') as datum FROM ".DB_PREFIX."aktuellezeiten as a LEFT JOIN ".DB_PREFIX."zeiten as z ON a.zeitid = z.id WHERE z.mitgliedid = ".$_GET['id'].""; $_db->holeDaten($query); if($_db->holeAnzahl() < 1){ $aktuellezeiten = false; } else{ $aktuellezeiten = array( 1 => array(50 => '?', 100 => '?', 200 => '?', 400 => '?', 800 => '?', 1500 => '?'), 2 => array(50 => '?', 100 => '?', 200 => '?', 400 => '-', 800 => '-', 1500 => '-'), 3 => array(50 => '?', 100 => '?', 200 => '?', 400 => '-', 800 => '-', 1500 => '-'), 4 => array(50 => '?', 100 => '?', 200 => '?', 400 => '-', 800 => '-', 1500 => '-'), 5 => array(50 => '-', 100 => '?', 200 => '?', 400 => '?', 800 => '-', 1500 => '-'), ); $daten = $_db->baueArray('*','#'); foreach($daten as $row){ $aktuellezeiten[$row['disziplin']][$row['laenge']] = array( 'zeit' => text_format($row['zeit'],'schwimmzeit'), 'datum' => $row['datum'], 'originalzeit' => text_format($row['zzeit'],'schwimmzeit'), 'originalstrecke' => $row['streckenlaenge'].'m', 'interpoliert' => $row['interpoliert']==1?true:false ); } } $_tmpl->assign('aktuellezeiten',$aktuellezeiten); if($_einst['mitgliederdetails']['zeitenentwicklunganzeigen'] == 1){ $query = "SELECT id FROM ".DB_PREFIX."zeiten WHERE mitgliedid = ".$_GET['id']." AND wettkampfid > 9 AND zeit IS NOT NULL AND bestenliste = 1 AND streckenlaenge BETWEEN 50 AND 200"; $_db->holeDaten($query); $_tmpl->assign('zeitenentwicklung',$_db->ergebnis['anzahl']); } if($_einst['mitgliederdetails']['interpoliertezeitenzeigen'] == 1){ $query = "SELECT z.id, DATE_FORMAT(z.datum,'%d.%m.%Y') as datum, zeit, disziplin, streckenlaenge, wettkampfid, wettkampfid, CONCAT(streckenlaenge,disziplin) as strecke FROM ".DB_PREFIX."zeiten as z WHERE mitgliedid = ".$_GET['id']." AND z.wettkampfid <= 5 AND zeit IS NOT NULL ORDER BY streckenlaenge, disziplin, z.zeit, z.datum DESC"; $_db->holeDaten($query); $_tmpl->assign('interpoliertezeiten',$_db->ergebnis); } } # Wettkampfteilnahmen if($angemeldetesmitglied or prueferechte('m_anzeigen_wettkampfteilnahmen') and $_einst['mitgliederdetails']['wettkampfteilnahmenanzeigen']){ $query = "SELECT w.id as wid, DATE_FORMAT(w.datum,'%d.%m.%Y') as datum, w.titel, w.ort, z.mitgliedid, z.zeit, sz.staffelid, 0 as anz, mt.kommentar, mt.teilnahme, IF(w.datum>NOW(),1,0) as zukunft, w.datum as dbdatum FROM ((".DB_PREFIX."wettkaempfe as w LEFT JOIN ".DB_PREFIX."zeiten as z ON z.wettkampfid = w.id AND z.mitgliedid = ".$_GET['id'].") LEFT JOIN ".DB_PREFIX."meldungen_teilnehmer as mt ON mt.wettkampfid = w.id AND mt.mid = ".$_GET['id'].") LEFT JOIN ".DB_PREFIX."staffeln_zeiten as sz ON sz.zeitid=z.id WHERE w.id > 9 AND (z.mitgliedid IS NOT NULL OR teilnahme IS NOT NULL) ORDER BY w.datum DESC"; $_db->holeDaten($query); if($_db->holeAnzahl() >= 1){ $dbdat = $_db->baueArray('*', '#'); $daten = array(); foreach($dbdat as $row){ if(!isset($daten[$row['wid']])){ $daten[$row['wid']] = $row; } if(!is_null($row['zeit']) or !is_null($row['staffelid'])){ $daten[$row['wid']]['anz']++; } } foreach($daten as $key => $row){ if($row['anz']==0 and is_null($row['teilnahme'])){ continue; } $row['bemerkung'] = ''; if($row['teilnahme'] == '+' and $row['anz'] == 0){ $row['bemerkung'] = 'zugesagt'; if($row['zukunft'] == 0 and strtotime($row['dbdatum'])+604800 < time()){ $row['bemerkung'] .= ', nicht teilgenommen'; } } elseif($row['teilnahme'] == '-'){ $row['bemerkung'] = 'abgesagt'; } elseif($row['zukunft'] == 1 and $row['teilnahme'] == 0 and $row['anz'] == 0){ $row['bemerkung'] = 'teilnahme offen'; } elseif($row['zukunft'] == 0 and $row['teilnahme'] == '+' and $row['anz'] > 0){ $row['bemerkung'] = 'zugesagt, teilgenommen'; } elseif($row['zukunft'] == 0 and $row['anz'] > 0){ $row['bemerkung'] = 'teilgenommen'; } elseif($row['zukunft'] == 0 and $row['anz'] == 0){ $row['bemerkung'] = 'nicht teilgenommen'; } $daten[$key] = $row; } $_tmpl->assign('ruecklaufzettel', $_gleinst['wettkaempfe_abwickeln']['ruecklaufzettel']==1); $_tmpl->assign('wettkampfteilnahmen',$daten); } } # Rechtegruppen if($angemeldetesmitglied or prueferechte('a_rechtegruppen_anzeigen')){ $query = "SELECT id, sort, bezeichnung FROM ".DB_PREFIX."rechtegruppen as r, ".DB_PREFIX."rechtegruppen_mitglieder as rm WHERE rm.rechtegrid=r.id AND rm.mitgliedid = ".$_GET['id']." ORDER BY r.sort"; $_db->holeDaten($query); $_tmpl->assign('rechtegruppen',implode(', ',$_db->baueArray('bezeichnung','#'))); } # Telefonnummern if($angemeldetesmitglied or prueferechte('m_anzeigen_adresse')){ $query = "SELECT CONCAT(vorwahl,'/',nummer) as nr, telefonart FROM ".DB_PREFIX."telefon WHERE mitgliedid = ".$_GET['id']." ORDER BY telefonart, vorwahl, nummer"; $_db->holeDaten($query); $_tmpl->assign('telefon',$_db->ergebnis['daten']); $_tmpl->assign('telefonarten',$_telefonarten); } # und raus damit ... $_tmpl->assign('jahr',date('Y')); $_tmpl->assign('mitglkarte', $_gleinst['features']['mitgliederkarten']); $_tmpl->assign('conf',$_einst['mitgliederdetails']); $_tmpl->assign('angemeldetesmitglied',$angemeldetesmitglied); $_inh .= $_tmpl->fetch('mitglieder/14.mitglied-detail.inc.html'); } else{ $_inh .= T_KEINDATENSATZ; } } # Ende Rechte-else, EOF ?>