2017-18 Soccer Statistics - Guelph
-
Games2
-
Goals2
-
Goals/g1.00
-
Shot %.105
-
Shots/g9.5
-
GAA0.50
Team Summary
Title | Record |
---|---|
Overall | 1-1 (.500) |
Conference | 1-1 (.500) |
Streak | Lost 1 |
Home | 0-0 |
Away | 0-0 |
Neutral | 1-1 |
Team Stats
Statistics | Overall | |
---|---|---|
Games | 2 | 5th |
Shots | 19 | 6th |
Goals scored | 2 | 4th |
Shot percentage | .105 | 3rd |
Shots-per game | 9.5 | 6th |
Shots on goal | 8 | 7th |
SOG percentage | .421 | 10th |
Assists | 2 | 3rd |
Corner kicks | 9 | 4th |
Penalty kicks | 0-0 | 6th |
Yellow cards | 4 | 5th |
Red cards | 0 | 3rd |
Shutouts | 1 | 3rd |
Scoring
# | Name | Yr | Pos | gp | gs | g/g | a/g | pts/g |
---|---|---|---|---|---|---|---|---|
1 | Braden Taylor | Sr | GK | 1 | 1 | .00 | .00 | .00 |
2 | Mitchell Lefebvre | So | F | 1 | - | .00 | .00 | .00 |
3 | Oliver Yuzpe | Fr | D | - | - | - | - | - |
4 | Josh Seguin | Sr | 2 | 2 | .00 | .00 | .00 | |
5 | Conor O'Callaghan | Sr | D | 2 | 2 | .50 | .00 | .50 |
6 | Owen Botelho | 2 | 2 | .00 | .00 | .00 | ||
7 | Atchu Siva | Jr | 2 | - | .00 | .00 | .00 | |
8 | Ryan Vyrostko | Sr | 2 | 2 | .50 | .00 | .50 | |
9 | Jalen Noronha | Sr | - | - | - | - | - | |
10 | Jace Kotsopoulos | Jr | F | 2 | 2 | .00 | .00 | .00 |
11 | Zachary Rushe | Sr | D | 2 | 2 | .00 | .00 | .00 |
12 | Youssef Zaghloul | Jr | 2 | 2 | .00 | 1.00 | 1.00 | |
13 | Johnson Amoo | So | F | 1 | - | .00 | .00 | .00 |
14 | Lorenzo Podda | So | D | - | - | - | - | - |
15 | Joseph Vitulli | Fr | D | - | - | - | - | - |
16 | Marko Vidovich | Fr | - | - | - | - | - | |
17 | Willem Grant | Sr | 2 | 2 | .00 | .00 | .00 | |
18 | Evan Dick | Fr | - | - | - | - | - | |
19 | Peter Zehdee | F | 2 | 2 | .00 | .00 | .00 | |
20 | Calvin Witzell | Sr | D | 2 | - | .00 | .00 | .00 |
21 | Alec Nardi | So | 2 | - | .00 | .00 | .00 | |
22 | Ryan Collins | Fr | GK | 2 | - | .00 | .00 | .00 |
23 | Manveer Gill | 2 | - | .00 | .00 | .00 | ||
24 | Simon Norgrove | GK | 1 | 1 | .00 | .00 | .00 | |
25 | Ian Vidovich | Fr | D | 2 | 2 | .00 | .00 | .00 |
26 | Erik Hermanns | Fr | GK | - | - | - | - | - |
27 | Lucas Doros | Fr | - | - | - | - | - | |
28 | Toni Zlomislic | Fr | D | 2 | - | .00 | .00 | .00 |
Totals
-
gp 2
-
gs 2
-
g/g 1.00
-
a/g 1.00
-
pts/g 3.00
Opponents
-
gp 2
-
gs 2
-
g/g 1.00
-
a/g .50
-
pts/g 1.50
Shooting
# | Name | Yr | Pos | gp | sh/g | sh%/g | sog/g | sog%/g |
---|---|---|---|---|---|---|---|---|
1 | Braden Taylor | Sr | GK | 1 | .00 | - | .00 | - |
2 | Mitchell Lefebvre | So | F | 1 | 1.00 | .000 | .00 | .000 |
3 | Oliver Yuzpe | Fr | D | - | - | - | - | - |
4 | Josh Seguin | Sr | 2 | 2.00 | .000 | 1.00 | .500 | |
5 | Conor O'Callaghan | Sr | D | 2 | .50 | 1.000 | .50 | 1.000 |
6 | Owen Botelho | 2 | .50 | .000 | .50 | 1.000 | ||
7 | Atchu Siva | Jr | 2 | .00 | - | .00 | - | |
8 | Ryan Vyrostko | Sr | 2 | .50 | 1.000 | .50 | 1.000 | |
9 | Jalen Noronha | Sr | - | - | - | - | - | |
10 | Jace Kotsopoulos | Jr | F | 2 | 2.00 | .000 | .50 | .250 |
11 | Zachary Rushe | Sr | D | 2 | .00 | - | .00 | - |
12 | Youssef Zaghloul | Jr | 2 | 1.00 | .000 | .50 | .500 | |
13 | Johnson Amoo | So | F | 1 | .00 | - | .00 | - |
14 | Lorenzo Podda | So | D | - | - | - | - | - |
15 | Joseph Vitulli | Fr | D | - | - | - | - | - |
16 | Marko Vidovich | Fr | - | - | - | - | - | |
17 | Willem Grant | Sr | 2 | .50 | .000 | .00 | .000 | |
18 | Evan Dick | Fr | - | - | - | - | - | |
19 | Peter Zehdee | F | 2 | .00 | - | .00 | - | |
20 | Calvin Witzell | Sr | D | 2 | 1.00 | .000 | .00 | .000 |
21 | Alec Nardi | So | 2 | 1.00 | .000 | .50 | .500 | |
22 | Ryan Collins | Fr | GK | 2 | .00 | - | .00 | - |
23 | Manveer Gill | 2 | .00 | - | .00 | - | ||
24 | Simon Norgrove | GK | 1 | .00 | - | .00 | - | |
25 | Ian Vidovich | Fr | D | 2 | .00 | - | .00 | - |
26 | Erik Hermanns | Fr | GK | - | - | - | - | - |
27 | Lucas Doros | Fr | - | - | - | - | - | |
28 | Toni Zlomislic | Fr | D | 2 | .00 | - | .00 | - |
Totals
-
gp 2
-
sh/g 9.50
-
sh%/g .105
-
sog/g 4.00
-
sog%/g .421
Opponents
-
gp 2
-
sh/g 5.00
-
sh%/g .100
-
sog/g 4.00
-
sog%/g .800
Goalkeepers
# | Name | Yr | Pos | gp | gs | ga/g | gaa | sv/g |
---|---|---|---|---|---|---|---|---|
1 | Braden Taylor | Sr | GK | 1 | 1 | .00 | 0.00 | 3.00 |
22 | Ryan Collins | Fr | GK | - | - | - | - | - |
24 | Simon Norgrove | GK | 1 | 1 | 1.00 | 1.00 | 3.00 | |
26 | Erik Hermanns | Fr | GK | - | - | - | - | - |
Totals
-
gp 2
-
gs 2
-
ga/g .50
-
gaa 0.50
-
sv/g 3.00
Opponents
-
gp 2
-
gs 2
-
ga/g 1.00
-
gaa 1.00
-
sv/g 3.00
Goalkeepers Ext.
# | Name | Yr | Pos | gp | min/g |
---|---|---|---|---|---|
1 | Braden Taylor | Sr | GK | 1 | 90:00 |
22 | Ryan Collins | Fr | GK | - | 0:00 |
24 | Simon Norgrove | GK | 1 | 90:00 | |
26 | Erik Hermanns | Fr | GK | - | 0:00 |
Totals
-
gp 2
-
min/g 90:00
Opponents
-
gp 2
-
min/g 90:00
Scoring
There was a problem with a Velocity script | |
Page | sports/msoc/2017-18/postseason/teams/teaminfo-network-template |
Error | Invocation of method 'includeAgain' in class com.prestosports.render.ContentEngineInvoker threw exception java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 56,437 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. at hqmzr3ctvtvnjncbsports/msoc/2017-18/postseason/teams/teaminfo-network-template[line 136, column 26] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: 5: #set ($locale = "en_us") 6: #set ($locale = $options.get("locale")) 7: 8: #set ($showConf = true) 9: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 10: #set ($showConf = false) 11: #end 12: 13: #set ($teamId = $attributes.get("teamId")) 14: #set ($stats = $splits.overall) 15: 16: #set ($pos = "") 17: #if ($sport.enumCode == 0) ## Football 18: #set ($pos = "off") 19: #elseif ($sport.enumCode == 2) ## Basketball 20: #set ($pos = "sh") 21: #elseif ($sport.enumCode == 3) ## Soccer 22: #set ($pos = "sc") 23: #elseif ($sport.enumCode == 9) ## Field Hockey 24: #set ($pos = "fielder") 25: #end 26: 27: #set ($posEsc = $formatter.escapeXml($request.getParameter("pos").toLowerCase())) 28: #if ($posEsc.length() > 0) 29: #set ($pos = $posEsc) 30: #end 31: 32: #if ($sport.enumCode == 9) ## Field Hockey 33: #if ($pos == "goalie") 34: #set ($pos = "fielder") 35: #end 36: #if ($pos == "gg") 37: #set ($pos = "kg") 38: #end 39: #end 40: 41: #set ($restriction = 0) 42: #set ($overallActive = true) 43: #set ($conferenceActive = false) 44: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 45: #if ($restrictionEsc.length() > 0 && $restrictionEsc.equals("1")) 46: #set ($restriction = 1) 47: #set ($overallActive = false) 48: #set ($conferenceActive = true) 49: #end 50: 51: #set ($resultFormat = "AP1") 52: #if ($options.get("schedule_result_format").equals("L, 1-2")) 53: #set ($resultFormat = "AP2") 54: #end 55: 56: #set ($view = "profile") 57: #if ($request.getParameter("view")) 58: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 59: #end 60: 61: #if ($briefsCategoriesLabels) 62: #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season")) 63: #set($firstCategoryPos = $briefsCategoriesSeason.keySet().iterator().next()) 64: #end 65: 66: #set ($showRoster = false) 67: #if ($options.get("stats_show_roster") and $options.get("stats_show_roster").equalsIgnoreCase("yes")) 68: #set ($showRoster = true) 69: #end 70: 71: #set ($showAttendance = true) 72: #if ($options.get("stats_show_attendance") and $options.get("stats_show_attendance").equalsIgnoreCase("hide")) 73: #set ($showAttendance = false) 74: #end 75: 76: ## MACROS 77: #macro (printTableHeader $label $class) 78: <th class="text-uppercase $class">$label</th> 79: #end 80: 81: #macro (printResultAriaLabel $event) 82: #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}") 83: #if ($event.neutralSite.length() > 0 || $event.home) 84: #set ($ariaLabel = "${ariaLabel} vs.") 85: #else 86: #set ($ariaLabel = "${ariaLabel} at") 87: #end 88: #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:") 89: #if ($event.neutralSite.length() > 0) 90: #set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:") 91: #end 92: #set ($ariaLabel = "${ariaLabel} Box Score") 93: aria-label="$ariaLabel" 94: #end 95: 96: #macro (printBriefCategory $briefCatLabel $briefCatPos $r) 97: #if ($locale == "en_gb" && $briefCatLabel == "Defense") 98: #set ($briefCatLabel = "Defence") 99: #end 100: 101: #if ($lineupDefaultSorting && $lineupDefaultSorting.containsKey($briefCatPos)) 102: #set ($sort = $lineupDefaultSorting.get($briefCatPos)) 103: #end 104: 105: #if ($allowChooseSort) 106: #set ($sortEsc = $formatter.escapeXml($request.getParameter("sort"))) 107: #if ($sortEsc.length() > 0) 108: #set ($sort = $sortEsc) 109: #end 110: #end 111: 112: #set ($url = "") 113: #set ($url = "${page.sectionPage.sectionPage.url}/players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&pos=${briefCatPos}&r=${r}&tmpl=stats-bios-template") 114: 115: #if ($lineupMin && $lineupMin.containsKey($briefCatPos)) 116: #set ($minStat = $lineupMin.get($briefCatPos)) 117: #set ($url = $url + "&min=" + $minStat) 118: #end 119: 120: #if ($lineupFilters) 121: #if ($lineupFilters.containsKey("cs")) 122: #set($url = $url + "&cs=n") 123: #end 124: 125: #if ($lineupFilters.containsKey("skipBlank")) 126: #set($skipBlank = $lineupFilters.get("skipBlank")) 127: 128: #if ($skipBlank.contains($briefCatPos)) 129: #set($url = $url + "&skipBlank=n") 130: #end 131: #end 132: #end 133: 134: <div class="my-3"> 135: <h5>$briefCatLabel</h5> 136: $website.includeAgain($url) 137: </div> 138: 139: #end ## printBriefCategory 140: 141: #macro(printBriefCategories $r) 142: ## Set this for the inner page to pull something out 143: #if ($r == 1) 144: #set ($restrictionLabel = "conf") 145: $!request.setAttribute("teamStats", $splits.conference) 146: #else 147: #set ($restrictionLabel = "overall") 148: $!request.setAttribute("teamStats", $splits.overall) 149: #end 150: 151: #if ($briefsCategoriesLabels) 152: 153: #set($allowChooseSort = false) 154: 155: #if ($lineupFilters && $lineupFilters.containsKey("allowChooseSort")) 156: #set ($allowChooseSort = true) 157: #end 158: 159: #if ($briefsCategoriesLabels.containsKey("Game")) 160: #set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game")) 161: 162: ## Print Game categories tables 163: ## Get the first Game category position 164: #set ($gamePos = $briefsCategoriesGame.keySet().iterator().next()) 165: 166: ## GAME 167: <div #if ($gamePosActive) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-game" role="tabpanel"> 168: #foreach($briefsCatGame in $briefsCategoriesGame.entrySet()) 169: #printBriefCategory($briefsCatGame.value, $briefsCatGame.key, $r) 170: #end 171: </div> 172: 173: ## Print the Season categories tables 174: #set ($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season")) 175: 176: ## SEASON 177: <div #if ($seasonPosActive) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-season" role="tabpanel"> 178: #foreach ($briefCat in $briefsCategoriesSeason.entrySet()) 179: #printBriefCategory($briefCat.value, $briefCat.key, $r) 180: #end 181: </div> 182: 183: ## Print the Minutes categories tables 184: #if ($briefsCategoriesLabels.containsKey("Minutes")) 185: #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes")) 186: #set($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next()) 187: 188: #set($showMinutesTab = false) 189: #if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos)) 190: #set($lineupMinOverallValues = $lineupMinTeam.get($minutesPos)) 191: 192: #set($lineupMinOverallStat = $lineupMinOverallValues[0]) 193: #set($lineupMinOverallMinVal = $lineupMinOverallValues[1]) 194: #set($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal)) 195: 196: #if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue) 197: #set($showMinutesTab = true) 198: #end 199: #end 200: 201: #if ($showMinutesTab) 202: ## MINUTES 203: <div #if ($minutesPosActive) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-minutes" role="tabpanel"> 204: #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet()) 205: #printBriefCategory($briefsCatMinutes.value, $briefsCatMinutes.key, $r) 206: #end 207: </div> 208: #end 209: #end ## end minutes 210: #else 211: 212: #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season")) 213: ## SINGLE SEASON 214: #foreach($briefCat in $briefsCategoriesSeason.entrySet()) 215: #printBriefCategory($briefCat.value, $briefCat.key, $r) 216: #end 217: #end 218: 219: #elseif ($lineupFilters) 220: 221: ## All of the supported sports has lineupFilters, so print it without matter it does not have briefs category, yeah voleyball is you :) 222: #set ($sort = $formatter.escapeXml($request.getParameter("sort"))) 223: #set ($url = "../players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&r=${r}") 224: $website.includeAgain($url) 225: 226: #else 227: We do not support this sport 228: #end 229: #end ## printBriefCategories 230: 231: #macro (printCategories $briefCategoryLabels $v) 232: <div class="tab-container"> 233: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 234: <div class="secondary-tab-select-container flex-fill"> 235: <select class="tab-nav-select-helper form-select" id="teaminfo-tabs-secondary-${v}-select" aria-label="Choose a stat group"> 236: #foreach($label in $briefCategoryLabels.entrySet()) 237: #set($catLabel = $label.value) 238: #if ($locale == "en_gb" && $catLabel == "Defense") 239: #set ($catLabel = "Defence") 240: #end 241: <option value="#gamelog-${v}-${label.key}" #if ($pos == $label.key || $foreach.first) selected #end>${catLabel}</option> 242: #end 243: </select> 244: <script> 245: $('.tab-nav-select-helper').on('change', function(e) { 246: var id = $(this).val(); 247: $('a[data-bs-target="' + id + '"]').tab('show'); 248: }); 249: </script> 250: </div> 251: </div> 252: <div class="tab-nav d-none"> 253: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="teaminfo-tabs-secondary-${v}" role="tablist"> 254: #foreach($label in $briefCategoryLabels.entrySet()) 255: #set($catLabel = $label.value) 256: #if ($locale == "en_gb" && $catLabel == "Defense") 257: #set ($catLabel = "Defence") 258: #end 259: #set ($aClass = "nav-link text-nowrap text-center") 260: #if ($pos == $label.key || ($pos.length() == 0 && $velocityCount == 1)) 261: #set ($aClass = "${aClass} active") 262: #end 263: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 264: <a class="${aClass}" href="${page.url}?view=${v}&pos=${label.key}" role="tab" data-bs-toggle="tab" data-bs-target="#gamelog-${v}-${label.key}">${catLabel}</a> 265: </li> 266: #end 267: </ul> 268: </div> 269: <div class="tab-content p-3"> 270: #foreach ($briefCat in $briefCategoryLabels.entrySet()) 271: #set ($classAttr = "tab-pane") 272: #if ($briefCat.key == $pos || ($pos.length() == 0 && $velocityCount == 1)) 273: #set ($classAttr = "${classAttr} active") 274: #end 275: <div class="$classAttr" id="gamelog-${v}-${briefCat.key}" role="tabpanel"> 276: #if ($v == "gamelog") 277: #gamelogData($briefCat.key) 278: #elseif ($v == "splits") 279: #splitsTeamNetworkData($briefCat.key) 280: #end 281: </div> 282: #end 283: </div> 284: </div> 285: #end ## printCategories 286: 287: #macro (printSeasonGameMinutesTabs $r) 288: #if ($briefsCategoriesLabels.containsKey("Game")) 289: #set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game")) 290: #set ($gamePos = $briefsCategoriesGame.keySet().iterator().next()) 291: 292: #set ($restrictionLabel = "overall") 293: #if ($r == 1) 294: #set ($restrictionLabel = "conf") 295: #end 296: 297: #set ($showMinutesTab = false) 298: #if ($briefsCategoriesLabels.containsKey("Minutes")) 299: #set ($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes")) 300: #set ($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next()) 301: 302: #if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos)) 303: #set ($lineupMinOverallValues = $lineupMinTeam.get($minutesPos)) 304: #set ($lineupMinOverallStat = $lineupMinOverallValues[0]) 305: #set ($lineupMinOverallMinVal = $lineupMinOverallValues[1]) 306: #set ($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal)) 307: 308: #if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue) 309: #set($showMinutesTab = true) 310: #end 311: #end 312: #end 313: <div class="tab-container"> 314: <div class="tab-nav"> 315: #set($gamePosActive = false) 316: #set($seasonPosActive = false) 317: #set($minutesPosActive = false) 318: 319: #if($pos.equals($gamePos) || $pos.endsWith("g") || $pos.endsWith("gext")) 320: #set($gamePosActive = true) 321: #else 322: #if($showMinutesTab && $pos.equals($minutesPos)) 323: #set($minutesPosActive = true) 324: #elseif($pos.equals($firstCategoryPos)) 325: #set($seasonPosActive = true) 326: #end 327: #set($seasonPosActive = true) 328: #end 329: 330: 331: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" data-pos="$pos" data-gamePos="$pos.equals($gamePos)" data-firstCategoryPos="$pos.equals($firstCategoryPos)" data-minutesPos="$pos.equals($minutesPos)" id="teaminfo-tabs-secondary-minutes" role="tablist"> 332: #printSubTab($gamePosActive, "${url}?view=lineup&r=${r}&pos=${gamePos}", "Game", "#lineup-${restrictionLabel}-game") 333: #printSubTab($seasonPosActive, "${url}?view=lineup&r=${r}&pos=${firstCategoryPos}", "Season", "#lineup-${restrictionLabel}-season") 334: #if ($showMinutesTab) 335: #printSubTab($minutesPosActive, "${url}?view=lineup&r=${r}&pos=${minutesPos}", "Minutes", "#lineup-${restrictionLabel}-minutes") 336: #end 337: </ul> 338: </div> 339: <div class="tab-content p-3"> 340: #printBriefCategories($r) 341: </div> 342: </div> 343: #end 344: #end ## printSeasonGameMinutesTabs 345: 346: #macro (printLineupTabs) 347: <div class="tab-container"> 348: <div class="tab-nav"> 349: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="teaminfo-tabs-secondary-lineup" role="tablist"> 350: #printSubTab($overallActive, "${url}?view=lineup&r=0&pos=${pos}", "Overall", "#lineup-overall-pane") 351: #if ($showConf) 352: #printSubTab($conferenceActive, "${url}?view=lineup&r=1&pos=${pos}", "Conference", "#lineup-conf-pane") 353: #end 354: </ul> 355: </div> 356: <div class="tab-content p-3"> 357: <div class="tab-pane active" id="lineup-overall-pane" role="tabpanel"> 358: #if ($briefsCategoriesLabels.containsKey("Game")) 359: #printSeasonGameMinutesTabs(0) 360: #else 361: #printBriefCategories(0) 362: #end 363: </div> 364: #if ($showConf) 365: <div class="tab-pane" id="lineup-conf-pane" role="tabpanel"> 366: #if ($briefsCategoriesLabels.containsKey("Game")) 367: #printSeasonGameMinutesTabs(1) 368: #else 369: #printBriefCategories(1) 370: #end 371: </div> 372: #end 373: </div> 374: </div> 375: #end ## printLineupTabs 376: 377: #set($statClass = "flex-fill text-center border-bottom border-end p-3 col-3 col-lg-auto") 378: #macro (printStat $label $val $fmt) 379: <li class="$statClass" data-val="$val" data-format="$fmt"> 380: <div class="d-flex flex-column justify-content-center align-items-center h-100"> 381: <div class="small text-uppercase text-muted">$label</div> 382: <div class="fs-4 lh-1 text-nowrap fw-bold">$formatter.formatNumber($val, $fmt)</div> 383: </div> 384: </li> 385: #end 386: 387: #macro (printStatGraph $label $val $fmt) 388: <li class="$statClass" data-val="$val" data-format="$fmt"> 389: <div class="d-flex flex-column justify-content-center align-items-center h-100 proj-progress-card"> 390: <div class="small text-uppercase text-muted">$label</div> 391: <div class="fs-4 lh-1 text-nowrap fw-bold">$formatter.formatNumber($val, $fmt)</div> 392: #set ($percent = $tool.math.mul($val, 100)) 393: <div class="progress mt-2 w-100"> 394: <div class="progress-bar bg-primary" role="progressbar" style="width: $formatter.formatNumber($percent, 1)%;" aria-valuenow="$formatter.formatNumber($percent, 1)" aria-valuemin="0" aria-valuemax="100"></div> 395: </div> 396: </div> 397: </li> 398: #end 399: 400: #macro (printHighlights) 401: #if ($highlights) 402: <ul class="team-stats my-3 list-unstyled d-flex flex-wrap justify-content-center align-items-stretch border-top border-start"> 403: #foreach ($highlight in $highlights.keySet()) 404: #set ($value = "-") 405: #set ($value = $stats.get($highlight)) 406: #set ($value = $tool.math.toInteger($value.replace('-', '0'))) 407: #if($formats.get($highlight).equals("#.000") || $formats.get($highlight).equals(".000")) 408: #printStatGraph("$!highlights.get($highlight).replace('-per game', '/g').replace('per game', '')", $!value, $formats.get($highlight)) 409: #else 410: #printStat("$!highlights.get($highlight).replace('-per game', '/g').replace('per game', '')", $!value, $formats.get($highlight)) 411: #end 412: 413: #end 414: </ul> 415: #end 416: 417: #end ## macro printHighlights 418: #macro (gamelogData $p) 419: 420: #set ($gamelogStats = $gamelogs.get($p)) 421: 422: <table class="table table-hover"> 423: <thead class="thead-dark"> 424: <tr> 425: #printTableHeader("Date", "w-1 text-start") 426: #printTableHeader("Opponent", "") 427: #printTableHeader("Score", "text-center") 428: #foreach ($gamelog in $gamelogStats) 429: #printTableHeader($gamelog, "text-center") 430: #end 431: </tr> 432: </thead> 433: #foreach ($event in $events) 434: <tr> 435: <td class="text-nowrap text-start"> 436: $formatter.formatDate($event.event.date, "MMM d") 437: #if (!$event.event.overall) 438: #set ($atLeastOneNotOverall = true) # 439: #end 440: </td> 441: <td class="text-nowrap"> 442: #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end 443: $event.event.opponent.name 444: </td> 445: <td class="text-nowrap text-center"> 446: #if ($event.event.statusCode >= 0) 447: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0) 448: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a> 449: #else 450: ${event.event.APResult} 451: #end 452: #else 453: #end 454: </td> 455: #foreach ($gamelog in $gamelogStats.keySet()) 456: #set ($value = "-") 457: #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog))) 458: <td class="text-center text-nowrap">$value</td> 459: #end 460: </tr> 461: #end 462: </table> 463: #end ## gamelogData 464: 465: #macro (printRecentGames) 466: <table class="table table-hover"> 467: <thead class="thead-dark"> 468: <tr> 469: #printTableHeader("Date", "w-1 text-start") 470: #printTableHeader("Opponent", "") 471: #printTableHeader("Result", " text-center") 472: </tr> 473: </thead> 474: 475: #set ($eventEnd = -1) 476: #foreach ($event in $events) 477: #if ($event.event.result.resolved) 478: #set ($eventEnd = $velocityCount) 479: #end 480: #end 481: 482: #set ($eventStart = $eventEnd - 5) 483: #if ($eventStart < 0) #set ($eventStart = 0) #end 484: 485: #foreach ($event in $events) 486: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd) 487: <tr> 488: <td class="text-nowrap text-start"><span class="date">$formatter.formatDate($event.event.date, "MMM d")</span></td> 489: <td> 490: #if ($event.event.neutralSite.length() > 0) vs. 491: #elseif (!$event.event.home) at 492: #else ## nothing for a home game 493: #end 494: $event.event.opponent.name 495: </td> 496: <td class="text-center"> 497: #if ($event.event.statusCode >= 0) 498: ## FORMATTED RESULT 499: #set ($formattedResult = "") 500: 501: #if ($resultFormat.equals("AP1")) 502: #set ($formattedResult = $event.event.APResult) 503: #elseif ($resultFormat.equals("AP2")) 504: #set ($formattedResult = $event.event.AP2Result) 505: #end 506: 507: #if ($formattedResult.startsWith("W, ")) 508: #set ($formattedResult = $formattedResult.replace("W, ", '<span class="winner event-winner">W</span>, ')) 509: #elseif ($formattedResult.startsWith("L, ")) 510: #set ($formattedResult = $formattedResult.replace("L, ", '<span class="loser event-loser">L</span>, ')) 511: #end 512: 513: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0) 514: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${formattedResult}</a> 515: #else 516: ${formattedResult} 517: #end 518: #end 519: </td> 520: </tr> 521: #end 522: #end 523: </table> 524: #end ## printRecentGames 525: 526: #macro (splitTeamNetwork $statPosBriefs $label $stats) 527: <tr> 528: <th scope="row" class="font-weight-normal text-end">${label}</th> 529: #foreach ($brief in $statPosBriefs.keySet()) 530: #set ($value = "-") 531: #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief))) 532: <td class="text-center text-nowrap">#if ($value.length() > 0) $value #else - #end</td> 533: #end 534: </tr> 535: #end ## split 536: 537: #macro (splitsTeamNetworkData $p) 538: #set ($statPosBriefs = $briefs.get($p)) 539: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1)) 540: 541: #if ($statPosBriefs.size() > 0) 542: <table class="table table-hover"> 543: <thead class="thead-dark"> 544: <tr> 545: <th class="text-uppercase" aria-label="Title"> </th> 546: #foreach ($brief in $statPosBriefs) 547: #printTableHeader($brief, "text-center") 548: #end 549: </tr> 550: </thead> 551: #splitTeamNetwork($statPosBriefs, "Total", $splits.overall) 552: #if ($showConf) 553: #splitTeamNetwork($statPosBriefs, "Conference", $splits.conference) 554: #splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition) 555: #else 556: #splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition) 557: #end ## hide overall/conf 558: 559: <tr class="bg-transparent"> 560: <td colspan="$colspan"> </td> 561: </tr> 562: 563: #splitTeamNetwork($statPosBriefs, "Home", $splits.home) 564: #splitTeamNetwork($statPosBriefs, "Away", $splits.away) 565: #splitTeamNetwork($statPosBriefs, "Neutral", $splits.neutral) 566: 567: <tr class="bg-transparent"> 568: <td colspan="$colspan"> </td> 569: </tr> 570: 571: #foreach($gameResult in $gamesResults.entrySet()) 572: #if ($gameResult.key == "wins") 573: #set ($splitGameResult = $splits.inWins) 574: #elseif ($gameResult.key == "losses") 575: #set ($splitGameResult = $splits.inLosses) 576: #elseif ($gameResult.key == "ties") 577: #set ($splitGameResult = $splits.inTies) 578: #end 579: 580: #splitTeamNetwork($statPosBriefs, $gameResult.value, $splitGameResult) 581: #end 582: 583: <tr class="bg-transparent"> 584: <td colspan="$colspan"> </td> 585: </tr> 586: 587: #if ($monthsPlayed and $monthsPlayed.size() > 0) 588: #foreach($month in $monthsPlayed) 589: #if ($month == 'January') 590: #set ($splitMonth = $splits.january) 591: #elseif ($month == 'February') 592: #set ($splitMonth = $splits.february) 593: #elseif ($month == 'March') 594: #set($splitMonth = $splits.march) 595: #elseif ($month == 'April') 596: #set($splitMonth = $splits.april) 597: #elseif ($month == 'May') 598: #set ($splitMonth = $splits.may) 599: #elseif ($month == 'June') 600: #set ($splitMonth = $splits.june) 601: #elseif ($month == 'July') 602: #set($splitMonth = $splits.july) 603: #elseif ($month == 'August') 604: #set ($splitMonth = $splits.august) 605: #elseif ($month == 'September') 606: #set($splitMonth = $splits.september) 607: #elseif ($month == 'October') 608: #set($splitMonth = $splits.october) 609: #elseif ($month == 'November') 610: #set ($splitMonth = $splits.november) 611: #elseif ($month == 'December') 612: #set($splitMonth = $splits.december) 613: #end 614: 615: #splitTeamNetwork($statPosBriefs, $month, $splitMonth) 616: #end ## foreach 617: #end 618: </table> 619: #end 620: #end ## splitsTeamNetworkData 621: 622: #macro (printAttendance) 623: #if ($showAttendance) 624: <table class="table table-hover"> 625: <thead class="thead-dark"> 626: <tr> 627: #printTableHeader("Date", "w-1 text-start") 628: #printTableHeader("Opponent", "") 629: #printTableHeader("Score", "text-center") 630: #printTableHeader("Attend", "text-center") 631: </tr> 632: </thead> 633: #set ($counter = 0) 634: #foreach ($event in $events) 635: <tr> 636: <td class="text-nowrap text-start">$formatter.formatDate($event.event.date, "MMM d")</td> 637: <td class="text-nowrap"> 638: #if ($event.event.neutralSite.length() > 0) vs. 639: #elseif (!$event.event.home) at 640: #else ## nothing for a home game 641: #end 642: $event.event.opponent.name 643: </td> 644: <td class="text-nowrap text-center"> 645: #if ($event.event.statusCode >= 0) 646: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0) 647: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a> 648: #else 649: ${event.event.result} 650: #end 651: #else #end 652: </td> 653: <td class="text-nowrap text-center"> 654: #set ($value = "-") 655: #set ($value = $!formatter.formatNumber($event.stats.get('at'), $formats.get('at'))) 656: #if ($value.length() > 0) $value #else - #end 657: </td> 658: </tr> 659: #end 660: </table> 661: #end ## showAttendance 662: #end 663: 664: #macro (printTab $viewParam $label) 665: #set ($classAttr = "nav-link text-nowrap text-center") 666: #if ($viewParam == $view) 667: #set ($classAttr = "${classAttr} active") 668: #end 669: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 670: <a href="${page.url}?view=${viewParam}" class="$classAttr" role="tab" data-bs-toggle="tab" data-bs-target="#${viewParam}" aria-controls="$viewParam">$label</a> 671: </li> 672: #end 673: 674: #macro (printSubTab $active $url $label $target) 675: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 676: <a class="nav-link text-nowrap text-center #if ($active) active #end" href="$url" role="tab" data-bs-toggle="tab" data-bs-target="$target">$label</a> 677: </li> 678: #end 679: 680: #macro (printPaneAttrs $viewParam) 681: #set ($classAttr = "tab-pane") 682: #if ($viewParam == $view) 683: #set ($classAttr = "tab-pane active") 684: #else 685: #set ($classAttr = "${classAttr} fade") 686: #end 687: 688: class="$classAttr" role="tabpanel" id="$viewParam" 689: #end 690: 691: #macro (printCoachViewUrl) 692: #set ($coachViewUrl = "${page.url}?tmpl=teaminfo-network-monospace-template") 693: #set ($enumCode = $sport.enumCode) 694: 695: #if ($enumCode == 2) 696: #set ($coachViewUrl = "${coachViewUrl}&sort=ptspg") 697: #elseif ($enumCode == 1 || $enumCode == 11) 698: #set ($coachViewUrl = "${coachViewUrl}&sort=ab&pos=h") 699: #end 700: 701: #if ($enumCode == 7 || $enumCode == 8 || $enumCode > 11) #else 702: <li class="nav-item" data-skip="true"><a href="$coachViewUrl" target="_blank" class="nav-link text-nowrap text-center">Coach's View</a></li> 703: #end 704: #end 705: 706: #macro (printTabs) 707: $request.setAttribute("icl-responsive-tabs-script", true) 708: 709: <div class="tab-nav"> 710: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="teaminfo-tabs" role="tablist"> 711: #printTab("profile", "Team Profile") 712: 713: #if ($showRoster) 714: #printTab("roster", "Roster") 715: #end 716: 717: #printTab("lineup", "Lineup") 718: #printTab("gamelog", "Game Log") 719: #printTab("splits", "Split Stats") 720: 721: #if ($showAttendance) 722: #printTab("attendance", "Attendance") 723: #end 724: 725: #printCoachViewUrl 726: </ul> 727: </div> 728: #end ## printTabs 729: 730: #macro (printFilters) 731: <div class="p-3 border my-3 d-print-none"> 732: <div class="btn-toolbar d-flex justify-content-between gap-3 flex-column flex-sm-row flex-sm-nowrap" role="toolbar" aria-label="Standings tool bar"> 733: <div class="flex-fill"> 734: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 735: $!request.setAttribute("pageObj", $page) 736: $website.includeAgain("conf-season-filter-template") 737: </div> 738: </div> 739: <div class="" role="group" aria-label="Print friendly version"> 740: <a href="javascript:void(0);" onclick="printDynamicUrl()" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 741: </div> 742: </div> 743: </div> 744: #end ## printFilters 745: ############ END MACROS ############# 746: 747: #set ($pageTitle = $page.title) 748: #if($pageTitle.trim().length() == 0) 749: #set($pageTitle = $page.sectionPage.getTitle()) 750: #end 751: 752: #if ($pageTitle.trim().length() == 0) 753: #set ($season = "") 754: #if ($page.url.matches(".*/\d{4}-\d{2}/.*")) 755: #set ($truncateStr = $page.url.split("/\d{4}-\d{2}/").get(0)) 756: #set ($season = $page.url.replace($truncateStr, "").substring(1, 8)) 757: #end 758: 759: #set ($gender = "") 760: #if ($sport.enumCode == 6 or $sport.enumCode == 10) 761: #else 762: #if ($page.url.matches(".*/sports/m.*") || $page.url.matches(".*/sports/m-*")) 763: ##set ($gender = "Men's") 764: #elseif ($page.url.matches(".*/sports/w.*") || $page.url.matches(".*/sports/w-*")) 765: ##set ($gender = "Women's") 766: #end 767: #end 768: 769: #set ($pageTitle = "${season} ${gender} ${sport} Statistics") 770: 771: #end 772: 773: #if ($attributes.get("school_name").length() > 0) 774: #set ($pageTitle = "${pageTitle} - ${attributes.get('school_name')}") 775: #end 776: 777: $!request.setAttribute("pageTitle", "${pageTitle}") 778: 779: <head><title>$pageTitle</title></head> 780: 781: 782: <div class="page-content team-stats"> 783: 784: <h1>$pageTitle</h1> 785: 786: #printFilters 787: 788: ## TEAM HIGHLIGHT STATS 789: <div class="my-3">#printHighlights</div> 790: 791: ## TABS 792: <div class="tabs-container my-3"> 793: #printTabs 794: 795: <div class="tab-content p-3 border border-top-0"> 796: 797: ## TEAM PROFILE 798: <div #printPaneAttrs("profile")> 799: 800: <div class="row"> 801: <div class="col-lg"> 802: <div class="mb-3"> 803: <h5>Team Summary</h5> 804: <div class="stats-container table-responsive"> 805: $website.include("${page.sectionPage.sectionPage.url}/schedule?teamId=${teamId}&tmpl=schedule-data-template") 806: </div> 807: </div> 808: <div class="mb-3"> 809: <h5>Recent Results</h5> 810: <div class="stats-container table-responsive">#printRecentGames</div> 811: </div> 812: </div> 813: <div class="col-lg"> 814: <div class="mb-3"> 815: <h5>Team Stats</h5> 816: <div class="stats-container table-responsive"> 817: $website.include("${page.sectionPage.url}/teams?tmpl=stats-teams-rank-template&rank=${teamId}") 818: </div> 819: </div> 820: </div> 821: </div> 822: </div> ## team profile 823: 824: ## ROSTER 825: #if ($showRoster) 826: <div #printPaneAttrs("roster")> 827: $website.includeAgain("../players?teamId=${teamId}&view=roster&tmpl=stats-bios-template") 828: </div> 829: #end 830: 831: ## LINEUP 832: <div #printPaneAttrs("lineup")> 833: ## start of overall/conference 834: #set ($url = $request.requestURI) 835: #printLineupTabs() 836: 837: Download roster: 838: <a href="../players?teamId=${attributes.teamId}&view=ext">${rosterExtension} (First Last) </a> | 839: <a href="../players?teamId=${attributes.teamId}&view=ext&type=lf"> ${rosterExtension} (Last, First)</a> 840: #if ($rosterExtraExtension) 841: <a href="../players?teamId=${attributes.teamId}&view=exte">${rosterExtraExtension} (First Last)</a> | 842: <a href="../players?teamId=${attributes.teamId}&view=exte&type=lf">${rosterExtraExtension} (Last, First)</a> 843: #end 844: </div> ## lineup 845: 846: ## GAMELOG 847: <div #printPaneAttrs("gamelog")> 848: <div class="stats-container table-responsive"> 849: #if ($gamelogsCategoriesLabels && $gamelogsCategoriesLabels.size() > 1) 850: #printCategories($gamelogsCategoriesLabels, 'gamelog') 851: #else 852: #gamelogData($pos) 853: #end 854: </div> 855: </div> 856: 857: ## SPLITS 858: <div #printPaneAttrs("splits")> 859: <div class="stats-container table-responsive"> 860: #if ($briefsTeamCategoriesLabels && $briefsTeamCategoriesLabels.size() > 1) 861: #printCategories($briefsTeamCategoriesLabels, 'splits') 862: #else 863: #splitsTeamNetworkData($pos) 864: #end 865: </div> 866: </div> ## splits 867: 868: ## ATTENDANCE 869: <div #printPaneAttrs("attendance")> 870: <div class="stats-container table-responsive">#printAttendance</div> 871: </div> 872: </div> ## tab-content 873: </div> ## tab-container 874: </div> ## stats-container 875: $wiki.su |