assign('ueberschrift','Staffeln'); if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ $_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:''; switch($_GET['aktion']){ case 'bearbeiten': if(!pruefeRechte('z_staffeln_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } $_inh .= T_NICHTIMPLEMENTIERT; break; default: $query = "SELECT CONCAT(COUNT(sz.schwimmernr),'x', laenge) as staffelartkurz, CONCAT(COUNT(sz.schwimmernr),' x ', laenge) as staffelart FROM ".DB_PREFIX."staffeln as s, ".DB_PREFIX."staffeln_zeiten as sz WHERE sz.staffelid = s.id GROUP BY s.id"; $_db->holeDaten($query); $staffelarten = $_db->baueArray('staffelart','staffelartkurz'); $staffelarten['alle'] = 'alle'; $_tmpl->assign('staffelarten',$staffelarten); unset($_lagen[6]); $_tmpl->assign('lagen',$_lagen+array('egal'=>'alle')); $_geschlechter['alle'] = 'alle'; $_tmpl->assign('mw',$_geschlechter); $sort = array( 'laenge' => 'anz, s.laenge', 'disziplin' => 's.disziplin', 'gesamtzeit' => 's.gesamtzeit', 'datum' => 'z.datum', 'wettkampf' => 's.wettkampfid' ); if(isset($_GET['staffelart'])){ $_conf = array( 'staffelart' => in_array($_GET['staffelart'],array_keys($staffelarten))?$_GET['staffelart']:'4x100', 'anzahl' => 0, 'laenge' => '', 'lage' => (in_array($_GET['lage'],array_keys($_lagen)) or $_GET['lage']=='egal')?$_GET['lage']:1, 'mw' => in_array($_GET['mw'],array_keys($_geschlechter))?$_GET['mw']:'alle', 'sort' => (isset($_GET['sort']) and in_array($_GET['sort'],array_keys($sort)))?$_GET['sort']:'gesamtzeit' ); $_tmpl->assign('query','/zeiten/staffeln.html?staffelart='.$_conf['staffelart'].'&lage='.$_conf['lage'].'&mw='.$_conf['mw'].''); if($_conf['staffelart'] != 'alle'){ list($_conf['anzahl'],$_conf['laenge']) = explode('x',$_conf['staffelart'],2); } $query = "SELECT s.id, s.wettkampfid, s.disziplin, s.laenge, s.gesamtzeit, DATE_FORMAT(z.datum,'%d.%m.%Y') as datum, count(sz.schwimmernr) as anz FROM ".DB_PREFIX."staffeln as s, ".DB_PREFIX."staffeln_zeiten as sz, ".DB_PREFIX."zeiten as z WHERE s.id=sz.staffelid".($_conf['lage']!='egal'?' AND s.disziplin = '.$_conf['lage']:'')." ".(!empty($_conf['laenge'])?' AND s.laenge = '.$_conf['laenge']:'')." AND z.id=sz.zeitid GROUP BY s.id ORDER BY ".$sort[$_conf['sort']].""; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] > 0){ $daten = array(); $ergebnis = $_db->baueArray('*','id'); if($_conf['mw'] != 'alle'){ $query = "SELECT m.id, m.mw, staffelid FROM ".DB_PREFIX."staffeln_zeiten as sz, ".DB_PREFIX."zeiten as z, ".DB_PREFIX."mitglieder as m WHERE m.id=z.mitgliedid AND sz.zeitid = z.id AND sz.zeitid=z.id AND sz.staffelid IN (".implode(',',array_keys($ergebnis)).")"; $_db->holeDaten($query); $tmp = $_db->baueArray('*','#'); $mwdat = array(); foreach($tmp as $row){ if(!isset($mwdat[$row['staffelid']])){ $mwdat[$row['staffelid']] = array(); } $mwdat[$row['staffelid']][$row['id']] = $row['mw']; } } foreach($ergebnis as $row){ if($_conf['anzahl'] != 'alle' and $row['anz'] != $_conf['anzahl']){ continue; } if($_conf['mw'] != 'alle'){ # auf richtiges Geschlecht pruefen $m = $w = false; foreach($mwdat[$row['id']] as $mitgl){ if($mitgl=='m'){ $m = true; } if($mitgl=='w'){ $w = true; } } if($_conf['mw']=='x' and (!$m or !$w)){ # keine Mixedstaffel continue; } if($_conf['mw']=='m' and (!$m or $w)){ continue; } if($_conf['mw']=='w' and ($m or !$w)){ continue; } } $daten[] = $row; } if(count($daten) > 0){ $_tmpl->assign('anzahlgefunden',count($daten)); $wettkaempfe = array(); $anzahl = count($daten); $s = 1; $proseite = $_einst['globaleeinstellungen']['blaetternseiten']!=0?$_einst['globaleeinstellungen']['blaetternseiten']:25; if(isset($_GET['seite']) and $_GET['seite'] == 'alle'){ $s = 'alle'; } elseif(isset($_GET['seite']) and ctype_digit($_GET['seite']) and $_GET['seite']!=0){ if($proseite*($_GET['seite']-1) > $anzahl){ $s = ceil($anzahl/$proseite); } else{ $s = (int)$_GET['seite']; } } $_tmpl->assign('blaettern',array('anzahl'=>$anzahl,'seite'=>$s,'proseite'=>$proseite)); $von = $s!='alle'?(($s-1)*$proseite):0; $bis = $s!='alle'?(($s*$proseite)-1):99999999; foreach($daten as $key => $row){ if($key < $von or $key > $bis){ unset($daten[$key]); continue; } $query = "SELECT CONCAT(vorname,' ',nachname,' (',YEAR(gebdatum),')') as name, mitgliedid as mid, schwimmernr, zeit as zwischenzeit FROM ".DB_PREFIX."staffeln_zeiten as sz, ".DB_PREFIX."zeiten as z, ".DB_PREFIX."mitglieder as m WHERE sz.zeitid = z.id AND z.mitgliedid=m.id AND staffelid = ".$row['id']." ORDER BY schwimmernr"; $_db->holeDaten($query); $daten[$key]['_schwimmer'] = $_db->ergebnis['daten']; $wettkaempfe[] = $row['wettkampfid']; } $query = "SELECT id, kurztitel FROM ".DB_PREFIX."wettkaempfe WHERE id IN (".implode(',',$wettkaempfe).")"; $_db->holeDaten($query); $_conf['wettkampftitel'] = $_db->baueArray('kurztitel','id'); $_conf['lagen'] = $_lagen; $_conf['staffellagen'] = array(1=>'R',2=>'B',3=>'S',4=>'F'); $_tmpl->assign('conf',$_conf); $_tmpl->assign('daten',$daten); } } } $_inh .= $_tmpl->fetch('zeiten/57.staffeln-index.inc.html'); break; } } # Ende Rechte-else, EOF ?>