Changeset 31 for trunk/index.php
- Timestamp:
- Sep 21, 2019, 8:56:17 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/index.php
r30 r31 318 318 } 319 319 320 function ShowTeams() 321 { 322 return $this->ShowTeamsInternal('Teams', 'Team', 'teams', 'team', 'Team', '(IsFamily=0)'); 323 } 324 320 325 function ShowFamilies() 321 326 { 327 return $this->ShowTeamsInternal('Families', 'Family', 'families', 'family', 'Team', '(IsFamily=1)'); 328 } 329 330 function ShowTeamsInternal($Title, $TitleItem, $UrlDir, $UrlDirItem, $Table, $Where = '1') 331 { 322 332 $Output = ''; 323 $Output .= '<div class="page-title"> Families</div>';333 $Output .= '<div class="page-title">'.$Title.'</div>'; 324 334 $Year = $this->GetYear(); 325 335 326 $Output .= '<div class="section-title">'.$this->YearList('/families/', $Year).' Name: '.$this->ShowSearch().'</div>'; 327 $Where = '(IsFamily=1) AND (Year='.$Year.')'; 336 $Where = '(Year='.$Year.') AND '.$Where; 328 337 if (array_key_exists('query', $_GET) and ($_GET['query'] != '')) 329 338 { 330 339 $Where .= ' AND (Name LIKE "%'.addslashes($_GET['query']).'%")'; 331 340 } 332 333 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Team` WHERE '.$Where); 341 $Output .= '<div class="section-title">'.$this->YearList('/'.$UrlDir.'/', $Year, $Table).' Name: '.$this->ShowSearch().'</div>'; 342 343 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `'.$Table.'` WHERE '.$Where); 334 344 $DbRow = $DbResult->fetch_row(); 335 345 $PageList = GetPageList($DbRow[0]); … … 360 370 while($Item = $DbResult->fetch_assoc()) 361 371 { 362 if ($Item['Name'] == '') $Item['Name'] = 'Family'.$Item['WebId'];372 if ($Item['Name'] == '') $Item['Name'] = $TitleItem.' '.$Item['WebId']; 363 373 $Output .= '<tr>'. 364 '<td><a href="'.$this->Link('/ family/'.$Item['Id'].'/').'">'.$Item['Name'].'</a></td>'.374 '<td><a href="'.$this->Link('/'.$UrlDirItem.'/'.$Item['Id'].'/').'">'.$Item['Name'].'</a></td>'. 365 375 '<td>'.$Item['RunnersCount'].'</td>'. 366 376 '<td>'.$Item['Distance'].'</td>'. … … 378 388 } 379 389 380 function ShowFamily()381 {382 $Output = '';383 384 $TeamId = 1;385 if ((count($this->PathItems) > 0) and ($this->PathItems[count($this->PathItems) - 1] != ''))386 $TeamId = $this->PathItems[count($this->PathItems) - 1];387 if (!is_numeric($TeamId)) die('FamilyId needs to be numeric');388 389 $DbResult = $this->Database->query('SELECT Team.*, '.390 '(SELECT COUNT(*) FROM Runner WHERE Runner.Team=Team.Id) AS RunnerCount, '.391 '(SELECT TeamStat.Distance FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY TeamStat.Time DESC LIMIT 1) AS Distance, '.392 '(SELECT TeamStat.Money FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY Time DESC LIMIT 1) AS Money, '.393 '(SELECT TeamStat.Rank FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY Time DESC LIMIT 1) AS Rank '.394 'FROM Team WHERE Id='.$TeamId.' AND IsFamily=1');395 $DbRow = $DbResult->fetch_assoc();396 $Output .= '<div class="page-title">Family '.$DbRow['Name'].'</div>';397 $Output .= '<div class="section-title">'.$this->ItemsYearList('/family/', $RunnerId, 'Team', 'Name="'.$DbRow['Name'].'"').'</div>';398 $Output .= '<div class="section-title">Runners: '.$DbRow['RunnerCount'].', Distance: '.$DbRow['Distance'].' km, Money: '.$DbRow['Money'].' Kč, Rank: '.$DbRow['Rank'].'</div>';399 400 $Where = 'Team='.$TeamId;401 402 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Runner` WHERE '.$Where);403 $DbRow = $DbResult->fetch_row();404 $PageList = GetPageList($DbRow[0]);405 406 $Gender = array('', 'Man', 'Woman', 'Kid');407 $Output .= '<div id="list_content">';408 $Output .= $PageList['Output'];409 $TableColumns = array(410 array('Name' => 'Name', 'Title' => 'Name'),411 array('Name' => 'Gender', 'Title' => 'Category'),412 array('Name' => 'Distance', 'Title' => 'Distance'),413 array('Name' => 'Money', 'Title' => 'Money'),414 array('Name' => 'Rank', 'Title' => 'Rank'),415 array('Name' => 'Time', 'Title' => 'Last change'),416 );417 $Order = GetOrderTableHeader($TableColumns, 'Distance', 1);418 $Output .= '<table class="WideTable">';419 $Output .= $Order['Output'];420 $DbResult = $this->Database->select('Runner', '*, '.421 '(SELECT RunnerStat.Distance FROM RunnerStat WHERE RunnerStat.Runner=Runner.Id ORDER BY Time DESC LIMIT 1) AS Distance'.422 ', (SELECT RunnerStat.Money FROM RunnerStat WHERE RunnerStat.Runner=Runner.Id ORDER BY Time DESC LIMIT 1) AS Money'.423 ', (SELECT RunnerStat.Time FROM RunnerStat WHERE RunnerStat.Runner=Runner.Id ORDER BY Time DESC LIMIT 1) AS Time'.424 ', (SELECT RunnerStat.Rank FROM RunnerStat WHERE RunnerStat.Runner=Runner.Id ORDER BY Time DESC LIMIT 1) AS Rank',425 $Where.$Order['SQL'].$PageList['SQLLimit']);426 while($Item = $DbResult->fetch_assoc())427 {428 $Output .= '<tr>'.429 '<td><a href="'.$this->Link('/runner/'.$Item['Id'].'/').'">'.$Item['Name'].'</a></td>'.430 '<td>'.$Gender[$Item['Gender']].'</td>'.431 '<td>'.$Item['Distance'].'</td>'.432 '<td>'.$Item['Money'].'</td>'.433 '<td>'.$Item['Rank'].'</td>'.434 '<td>'.$this->RunningState(MysqlDateTimeToTime($Item['Time'])).'</td>'.435 '</tr>';436 }437 $Output .= '</table>';438 $Output .= $PageList['Output'];439 $Output .= '</div><br>';440 441 $Output .= $this->ShowDetailed('Team', $TeamId);442 $Output .= $this->ShowDaily('Team', $TeamId);443 444 return($Output);445 }446 447 function ShowTeams()448 {449 $Output = '';450 $Output .= '<div class="page-title">Teams</div>';451 $Year = $this->GetYear();452 453 $Where = '(IsFamily=0) AND (Year='.$Year.')';454 if (array_key_exists('query', $_GET) and ($_GET['query'] != ''))455 {456 $Where .= ' AND (Name LIKE "%'.addslashes($_GET['query']).'%")';457 }458 $Output .= '<div class="section-title">'.$this->YearList('/teams/', $Year, 'Team').' Name: '.$this->ShowSearch().'</div>';459 460 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Team` WHERE '.$Where);461 $DbRow = $DbResult->fetch_row();462 $PageList = GetPageList($DbRow[0]);463 464 $Output .= '<div id="list_content">';465 $Output .= $PageList['Output'];466 $TableColumns = array(467 array('Name' => 'Name', 'Title' => 'Name'),468 array('Name' => 'RunnersCount', 'Title' => 'Runners'),469 array('Name' => 'Distance', 'Title' => 'Distance'),470 array('Name' => 'Money', 'Title' => 'Money'),471 array('Name' => 'DistanceRunner', 'Title' => 'Distance per runner'),472 array('Name' => 'MoneyRunner', 'Title' => 'Money per runner'),473 array('Name' => 'Rank', 'Title' => 'Rank'),474 );475 $Order = GetOrderTableHeader($TableColumns, 'Distance', 1);476 $Output .= '<table class="WideTable">';477 $Output .= $Order['Output'];478 $DbResult = $this->Database->select('Team', '*, '.479 '(SELECT COUNT(*) FROM Runner WHERE Runner.Team=Team.Id) AS RunnersCount, '.480 '(SELECT TeamStat.Distance FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY TeamStat.Time DESC LIMIT 1) AS Distance, '.481 '(SELECT TeamStat.Money FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY Time DESC LIMIT 1) AS Money, '.482 '(SELECT TeamStat.Time FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY Time DESC LIMIT 1) AS Time, '.483 '(SELECT TeamStat.Rank FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY Time DESC LIMIT 1) AS Rank, '.484 'ROUND((SELECT TeamStat.Distance FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY TeamStat.Time DESC LIMIT 1) / (SELECT COUNT(*) FROM Runner WHERE Runner.Team=Team.Id), 1) AS DistanceRunner, '.485 'ROUND((SELECT TeamStat.Money FROM TeamStat WHERE TeamStat.Team=Team.Id ORDER BY Time DESC LIMIT 1) / (SELECT COUNT(*) FROM Runner WHERE Runner.Team=Team.Id)) AS MoneyRunner',486 $Where.$Order['SQL'].$PageList['SQLLimit']);487 while($Item = $DbResult->fetch_assoc())488 {489 if ($Item['Name'] == '') $Item['Name'] = 'Team '.$Item['WebId'];490 $Output .= '<tr>'.491 '<td><a href="'.$this->Link('/team/'.$Item['Id'].'/').'">'.$Item['Name'].'</a></td>'.492 '<td>'.$Item['RunnersCount'].'</td>'.493 '<td>'.$Item['Distance'].'</td>'.494 '<td>'.$Item['Money'].'</td>'.495 '<td>'.$Item['DistanceRunner'].'</td>'.496 '<td>'.$Item['MoneyRunner'].'</td>'.497 '<td>'.$Item['Rank'].'</td>'.498 '</tr>';499 }500 $Output .= '</table>';501 $Output .= $PageList['Output'];502 $Output .= '</div>';503 504 return($Output);505 }506 507 390 function RunningState($Time) 508 391 { … … 514 397 515 398 function ShowTeam() 399 { 400 return $this->ShowTeamInternal('Team', 'team'); 401 } 402 403 function ShowFamily() 404 { 405 return $this->ShowTeamInternal('Family', 'family'); 406 } 407 408 function ShowTeamInternal($Title, $UrlDir) 516 409 { 517 410 $Output = ''; … … 529 422 'FROM Team WHERE Id='.$TeamId); 530 423 $DbRow = $DbResult->fetch_assoc(); 531 $Output .= '<div class="page-title"> Team'.$DbRow['Name'].'</div>';532 $Output .= '<div class="section-title">'.$this->ItemsYearList('/ team/', $TeamId, 'Team', 'Name="'.$DbRow['Name'].'"').'</div>';424 $Output .= '<div class="page-title">'.$Title.' '.$DbRow['Name'].'</div>'; 425 $Output .= '<div class="section-title">'.$this->ItemsYearList('/'.$UrlDir.'/', $TeamId, 'Team', 'Name="'.$DbRow['Name'].'"').'</div>'; 533 426 $Output .= '<div class="section-title">Runners: '.$DbRow['RunnerCount'].', Distance: '.$DbRow['Distance'].' km, Money: '.$DbRow['Money'].' Kč, Rank: '.$DbRow['Rank'].'</div>'; 534 427
Note:
See TracChangeset
for help on using the changeset viewer.