PageRenderTime 51ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/tournament2/details.php

http://lansuite.googlecode.com/
PHP | 225 lines | 177 code | 37 blank | 11 comment | 70 complexity | 8d49b860088d0959c2466a90ea889f1a MD5 | raw file
Possible License(s): LGPL-3.0, AGPL-1.0, LGPL-2.1
  1. <?php
  2. include_once("modules/tournament2/class_tournament.php");
  3. $tfunc = new tfunc;
  4. $headermenuitem = $_GET['headermenuitem'];
  5. if ($headermenuitem == "") $headermenuitem = 1;
  6. $tournament = $db->qry_first("SELECT *, UNIX_TIMESTAMP(starttime) AS starttime FROM %prefix%tournament_tournaments WHERE tournamentid = %int%", $_GET['tournamentid']);
  7. if (!$tournament["tournamentid"]) $func->error(t('Das ausgewählte Turnier existiert nicht'), "index.php?mod=tournament2");
  8. else {
  9. switch ($_GET['step']){
  10. // Shuffle maps
  11. case 20:
  12. if ($auth['type'] <= 1) $func->information('ACCESS_DENIED');
  13. else {
  14. $maps = explode("\n", $tournament["mapcycle"]);
  15. shuffle($maps);
  16. $tournament["mapcycle"] = implode("\n", $maps);
  17. $db->qry("UPDATE %prefix%tournament_tournaments SET mapcycle = %string% WHERE tournamentid = %int%", $tournament['mapcycle'], $_GET['tournamentid']);
  18. }
  19. break;
  20. }
  21. switch ($_GET['step']){
  22. case 10: // Activate Seeding
  23. $seeded = $db->qry_first("SELECT COUNT(*) AS anz FROM %prefix%t2_teams WHERE (tournamentid = %int%) AND (seeding_mark = '1') GROUP BY tournamentid", $_GET['tournamentid']);
  24. $team = $db->qry_first("SELECT COUNT(*) AS anz FROM %prefix%t2_teams WHERE (tournamentid = %int%) GROUP BY tournamentid", $_GET['tournamentid']);
  25. if (($seeded['anz']+1) > ($team['anz'] / 2)){
  26. $func->information(t('Es wurde bereits die Hälfte der fest angemeldeten Teams markiert! Demarkiere zuerst ein Team, bevor du ein weiteres markierst'), "index.php?mod=tournament2&action=details&tournamentid={$_GET['tournamentid']}&headermenuitem=2");
  27. } else {
  28. $db->qry("UPDATE %prefix%t2_teams SET seeding_mark = '1' WHERE (teamid = %int%)", $_GET['teamid']);
  29. $func->confirmation(t('Das Team wurde zum Setzen markiert.<br>Alle markierten Teams werden beim Generieren so gesetzt, dass sie möglichst spät im Turnierbaum aufeinander treffen werden.'), "index.php?mod=tournament2&action=details&tournamentid={$_GET['tournamentid']}&headermenuitem=2");
  30. }
  31. break;
  32. case 11: // Deaktivate Seeding
  33. $db->qry("UPDATE %prefix%t2_teams SET seeding_mark = '0' WHERE (teamid = %int%)", $_GET['teamid']);
  34. $func->confirmation(t('Das Team wurde demarkiert.'), "index.php?mod=tournament2&action=details&tournamentid={$_GET['tournamentid']}&headermenuitem=2");
  35. break;
  36. default: // Show details
  37. $dsp->NewContent(t('Turnier %1', $tournament['name']), t('Hier findest du Informationen zu diesem Turnier und kannst dich anmelden'));
  38. /*$menunames[1] = t('Turnierinfos');
  39. $menunames[2] = t('Angemeldete Teams');
  40. $dsp->AddHeaderMenu($menunames, "index.php?mod=tournament2&action=details&tournamentid={$_GET['tournamentid']}", $headermenuitem);
  41. */
  42. $dsp->StartTabs();
  43. $dsp->StartTab(t('Turnierinfos'), 'details');
  44. $dsp->AddDoubleRow(t('Turniername'), $tournament['name']);
  45. if (($tournament['icon']) && ($tournament['icon'] != "none")) $icon = "<img src=\"ext_inc/tournament_icons/{$tournament['icon']}\" alt=\"Icon\"> ";
  46. if ($tournament['version'] == "") $tournament['version'] = "<i>".t('unbekannt')."</i>";
  47. $dsp->AddDoubleRow(t('Spiel'), $icon . $tournament['game'] ." (".t('Version').": ". $tournament['version'] .")");
  48. $league = "";
  49. if ($tournament['wwcl_gameid'] != 0) $league .= ", <img src=\"ext_inc/tournament_icons/leagues/wwcl.png\" alt=\"WWCL\">";
  50. if ($tournament['ngl_gamename']) $league .= ", <img src=\"ext_inc/tournament_icons/leagues/ngl.png\" alt=\"NGL\">";
  51. if ($tournament['mode'] == "single") $modus = t('Single-Elimination');
  52. if ($tournament['mode'] == "double") $modus = t('Double-Elimination');
  53. if ($tournament['mode'] == "liga") $modus = t('Liga');
  54. if ($tournament['mode'] == "groups") $modus = t('Gruppenspiele + KO');
  55. if ($tournament['mode'] == "all") $modus = t('Alle in einem');
  56. if ($tournament['blind_draw']) $blind_draw = " (Blind Draw)";
  57. else $blind_draw = "";
  58. $dsp->AddDoubleRow(t('Spiel-Modus'), $modus .", ". $tournament['teamplayer'] ." ".t('gegen')." ". $tournament['teamplayer'] . $blind_draw . $league);
  59. $sponsor_banners = '';
  60. $sponsor = $db->qry("SELECT * FROM %prefix%sponsor WHERE tournamentid = %int%", $_GET['tournamentid']);
  61. while($sponsor_row = $db->fetch_array($sponsor)) {
  62. $sponsor_banner = '<img src="'. $sponsor_row['pic_path'] .'" border="1" class="img_border" title="'. $sponsor_row['name'] .'" alt="Sponsor Banner"/>';
  63. if ($cfg['sys_internet']) $sponsor_banner = '<a href="index.php?mod=sponsor&action=bannerclick&design=base&type=banner&sponsorid='. $sponsor_row["sponsorid"] .'" target="_blank">'. $sponsor_banner .'</a><br>';
  64. $sponsor_banners .= $sponsor_banner;
  65. }
  66. $db->free_result($sponsor);
  67. if ($sponsor_banners) $dsp->AddDoubleRow('Sponsored by', $sponsor_banners);
  68. $dsp->AddFieldsetStart(t('Anmeldeeinschränkungen'));
  69. if ($tournament['status'] == "invisible") $status = t('Unsichtbar');
  70. if ($tournament['status'] == "open") $status = t('Anmeldung offen');
  71. if ($tournament['status'] == "locked") $status = t('Anmeldung geschlossen');
  72. if ($tournament['status'] == "closed") $status = "<div class=\"tbl_error\">".t('Turnier beendet')."</div>";
  73. if ($tournament['status'] == "process") $status = "<div class=\"tbl_error\">".t('Partien werden gespielt')."</div>";
  74. $dsp->AddDoubleRow(t('Status'), $status);
  75. ($tournament['groupid'] == 0) ?
  76. $dsp->AddDoubleRow(t('Turniergruppe'), t('Dieses Turnier wurde keiner Gruppe zugeordnet. Jeder darf teilnehmen.'))
  77. : $dsp->AddDoubleRow(t('Turniergruppe'), t('Dieses Turnier wurde der Gruppe %1 zugeordnet. Es düfen sich nur Spieler anmelden, welche nicht bereits zu einem anderen Turnier der Gruppe %1 angemeldet sind.', $tournament['groupid']));
  78. if ($auth['userid'] != '') {
  79. if ($tournament['coins'] == 0) $dsp->AddDoubleRow(t('Coin-Kosten'), t('Für dieses Turnier werden keine Coins benötigt'));
  80. else {
  81. $team_coin = $db->qry_first("SELECT SUM(t.coins) AS t_coins
  82. FROM %prefix%tournament_tournaments AS t
  83. INNER JOIN %prefix%t2_teams AS teams ON t.tournamentid = teams.tournamentid
  84. WHERE (teams.leaderid = %int%)
  85. AND t.party_id=%int%
  86. GROUP BY teams.leaderid
  87. ", $auth["userid"], $party->party_id);
  88. $member_coin = $db->qry_first("SELECT SUM(t.coins) AS t_coins
  89. FROM %prefix%tournament_tournaments AS t
  90. INNER JOIN %prefix%t2_teammembers AS members ON t.tournamentid = members.tournamentid
  91. WHERE (members.userid = %int%)
  92. AND t.party_id=%int%
  93. GROUP BY members.userid
  94. ", $auth["userid"], $party->party_id);
  95. (($cfg['t_coins'] - $team_coin['t_coins'] - $member_coin['t_coins']) < $tournament['coins']) ?
  96. $coin_out = t('Das Anmelden kostet %COST% Coins, du besitzt jedoch nur %IS% Coins!')
  97. : $coin_out = t('Das Anmelden kostet %COST% Coins. Du besitzen noch: %IS% Coins');
  98. $dsp->AddDoubleRow(t('Coin-Kosten'), "<div class=\"tbl_error\">". str_replace("%IS%", ($cfg['t_coins'] - $team_coin['t_coins'] - $member_coin['t_coins']), str_replace("%COST%", $tournament['coins'], $coin_out)) ."</div>");
  99. }
  100. }
  101. ($tournament['over18']) ?
  102. $dsp->AddDoubleRow(t('U18-Sperre'), t('Nur zugänglich für Spieler aus Über-18-Blöcken'))
  103. : $dsp->AddDoubleRow(t('U18-Sperre'), t('Keine Sperre'));
  104. $dsp->AddFieldsetEnd();
  105. ($tournament["defwin_on_time_exceed"] == "1")? $defwin_warning = "<div class=\"tbl_error\">".t('ACHTUNG: Bei Zeitüberschreitung wird das Ergebnis automatisch gelost!')."</div> ".t('Wir bitten euch daher die Spiele direkt zu beginnen und das Ergebnis umgehend zu melden!')."" : $defwin_warning = "";
  106. $dsp->AddFieldsetStart(t('Zeiten') . $defwin_warning);
  107. $dsp->AddDoubleRow(t('Turnier beginnt um'), $func->unixstamp2date($tournament["starttime"], "datetime"));
  108. $dsp->AddDoubleRow(t('Dauer einer Runde'), t('Maximal %1 Spiel(e) pro Runde (je %2) + %3 Pause -> %4', $tournament["max_games"], $tournament["game_duration"] ."min", $tournament["break_duration"] ."min", $tournament["max_games"] * $tournament["game_duration"] + $tournament["break_duration"] ."min"));
  109. ;
  110. $dsp->AddFieldsetEnd();
  111. $dsp->AddFieldsetStart(t('Regeln und Sonstiges'));
  112. if ($tournament['rules_ext']) $dsp->AddDoubleRow(t('Regelwerk'), "<a href=\"./ext_inc/tournament_rules/{$tournament['rules_ext']}\" target=\"_blank\">".t('Regelwerk öffnen')."({$tournament['rules_ext']})</a>");
  113. $dsp->AddDoubleRow(t('Bemerkung'), $func->text2html($tournament["comment"]));
  114. $maps = explode("\n", $tournament["mapcycle"]);
  115. $map_str = '';
  116. foreach ($maps as $key => $val) $map_str .= t('Runde')." $key: $val \n";
  117. $mapcycle = t('Mapcycle'). HTML_NEWLINE . HTML_NEWLINE;
  118. if ($auth['type'] > 1) $mapcycle .= '<a href="index.php?mod=tournament2&action=details&tournamentid='. $_GET['tournamentid'] .'&step=20">'. t('Maps neu mischen') .'</a>';
  119. $dsp->AddDoubleRow($mapcycle, $func->text2html($map_str));
  120. $dsp->AddFieldsetEnd();
  121. $dsp->EndTab();
  122. $dsp->StartTab(t('Angemeldete Teams'), 'assign');
  123. $waiting_teams = "";
  124. $completed_teams = "";
  125. $teams = $db->qry("SELECT name, teamid, seeding_mark, disqualified FROM %prefix%t2_teams WHERE (tournamentid = %int%)", $_GET['tournamentid']);
  126. while($team = $db->fetch_array($teams)) {
  127. $members = $db->qry_first("SELECT COUNT(*) AS members
  128. FROM %prefix%t2_teammembers
  129. WHERE (teamid = %int%)
  130. GROUP BY teamid
  131. ", $team['teamid']);
  132. $team_out = $team["name"] . $tfunc->button_team_details($team['teamid'], $_GET['tournamentid']);
  133. if (($tournament['mode'] == "single") or ($tournament['mode'] == "double")){
  134. if ($team["seeding_mark"]) $team_out .= " ". t('Dieses Team wird beim Generieren gesetzt');
  135. if (($auth["type"] > 1) && ($tournament['status'] == "open")) {
  136. if ($team["seeding_mark"]) $team_out .= " <a href=\"index.php?mod=tournament2&action=details&step=11&tournamentid={$_GET['tournamentid']}&teamid={$team['teamid']}\">".t('demarkieren')."</a>";
  137. else $team_out .= " <a href=\"index.php?mod=tournament2&action=details&step=10&tournamentid={$_GET['tournamentid']}&teamid={$team['teamid']}\">".t('Team setzen')."</a>";
  138. }
  139. }
  140. /* // Disquallifiy droped, due to errors
  141. if ($auth["type"] > 1 and $tournament['status'] == "process") {
  142. if ($team['disqualified']) $team_out .= " <font color=\"#ff0000\">".t('Disqualifiziert')."</font> ". $dsp->FetchSpanButton(t('Disqualifizieren rückgängig'), "index.php?mod=tournament2&action=disqualify&teamid={$team['teamid']}&step=10");
  143. else $team_out .= " ". $dsp->FetchSpanButton(t('Disqualifizieren'), "index.php?mod=tournament2&action=disqualify&teamid={$team['teamid']}");
  144. }
  145. */
  146. $team_out .= HTML_NEWLINE;
  147. if(($members["members"] + 1) < $tournament['teamplayer']) {
  148. $teamcount[0]++;
  149. $waiting_teams .= $team_out;
  150. } else {
  151. $teamcount[1]++;
  152. $completed_teams .= $team_out;
  153. }
  154. }
  155. $db->free_result($teams);
  156. $dsp->AddSingleRow(t('Es sind %1 von maximal %2 Teams zu diesem Turnier angemeldet.',($teamcount[0] + $teamcount[1]), $tournament['maxteams']));
  157. if ($completed_teams == "") $completed_teams = "<i>".t('Keine')."</i>";
  158. $dsp->AddDoubleRow(t('Teamnamen'), $completed_teams);
  159. if (($tournament['teamplayer'] > 1) && ($waiting_teams != "")){
  160. $dsp->AddSingleRow(t('Folgende %1 Teams sind noch unvollständig', ($teamcount[0] + 0)));
  161. $dsp->AddDoubleRow(t('Teamnamen'), $waiting_teams);
  162. }
  163. $dsp->EndTab();
  164. $dsp->EndTabs();
  165. $buttons="";
  166. switch($tournament["status"]) {
  167. case "open":
  168. $buttons .= $dsp->FetchSpanButton(t('Teilnehmen'), "index.php?mod=tournament2&action=join&tournamentid={$_GET['tournamentid']}&step=2"). " ";
  169. if ($auth["type"] > 1) $buttons .= $dsp->FetchSpanButton(t('Generieren'), "index.php?mod=tournament2&action=generate_pairs&step=2&tournamentid={$_GET['tournamentid']}"). " ";
  170. break;
  171. case "process":
  172. $buttons .= $dsp->FetchSpanButton(t('Paarungen'), "index.php?mod=tournament2&action=games&step=2&tournamentid={$_GET['tournamentid']}"). " ";
  173. $buttons .= $dsp->FetchSpanButton(t('Spielbaum'), "index.php?mod=tournament2&action=tree&step=2&tournamentid={$_GET['tournamentid']}"). " ";
  174. if ($auth["type"] > 1) $buttons .= $dsp->FetchSpanButton(t('Generieren rückgängig'), "index.php?mod=tournament2&action=undo_generate&tournamentid={$_GET['tournamentid']}"). " ";
  175. break;
  176. case "closed":
  177. $buttons .= $dsp->FetchSpanButton(t('Paarungen'), "index.php?mod=tournament2&action=games&step=2&tournamentid={$_GET['tournamentid']}"). " ";
  178. $buttons .= $dsp->FetchSpanButton(t('Spielbaum'), "index.php?mod=tournament2&action=tree&step=2&tournamentid={$_GET['tournamentid']}"). " ";
  179. if ($auth["type"] > 1) $buttons .= $dsp->FetchSpanButton(t('Schließen rückgängig'), "index.php?mod=tournament2&action=undo_close&tournamentid={$_GET['tournamentid']}"). " ";
  180. break;
  181. } // END: switch status
  182. $dsp->AddDoubleRow("", $buttons);
  183. $dsp->AddBackButton("index.php?mod=tournament2", "tournament2/details");
  184. $dsp->AddContent();
  185. break;
  186. } // END: Switch Step
  187. } // else
  188. ?>