2022-23 Football Statistics - Webber International
-
Yds217.2
-
Rush8.7
-
Pass208.5
-
Pts/game21.0
-
Yds allowed263.2
-
Rush allowed23.0
-
Pass allowed240.2
-
Pts allowed/game22.7
Team Summary
Title | Record |
---|---|
Overall | 10-8 (.556) |
Conference | 4-7 (.364) |
Streak | Won 1 |
Home | 6-2 |
Away | 2-6 |
Neutral | 2-0 |
Recent Results
Date | Opponent | Result |
---|---|---|
Apr 4 | Campbellsville | W, 33-0 |
Apr 6 | at Thomas | L, 19-6 |
Apr 19 | at Keiser | L, 39-19 |
Apr 22 | Warner | W, 27-13 |
Apr 28 | at Thomas | L, 33-14 |
May 19 | vs. Midland | W, 20-14 |
Team Stats
Statistics | Overall | Conf | ||
---|---|---|---|---|
Games | 6 | 6th | 6 | 5th |
Scoring | 126 | 5th | 126 | 5th |
Points per game | 21.0 | 5th | 21.0 | 4th |
Total offense | 1303 | 6th | 1303 | 4th |
Yards per game | 217.2 | 7th | 217.2 | 8th |
Passing yards | 1251 | 8th | 1251 | 6th |
Comp-Att-Int | 151-216-4 | 6th | 151-216-4 | 5th |
Passing yards per game | 208.5 | 6th | 208.5 | 5th |
Passing yards per attempt | 5.8 | 8th | 5.8 | 7th |
Passing yards per completion | 8.3 | 9th | 8.3 | 8th |
Passing touchdowns | 13 | 6th | 13 | 6th |
Rushing yards | 52 | 10th | 52 | 7th |
Rushing attempts | 31 | 11th | 31 | 8th |
Rushing yards per game | 8.7 | 10th | 8.7 | 8th |
Yards per rush | 1.7 | 8th | 1.7 | 6th |
Rushing touchdowns | 4 | 3rd | 4 | 3rd |
1st downs | 13 | 13th | 13 | 10th |
Rushing 1st downs | 1 | 12th | 1 | 11th |
Passing 1st downs | 12 | 12th | 12 | 10th |
Penalty 1st downs | 0 | 12th | 0 | 12th |
1st downs per game | 2.2 | 13th | 2.2 | 12th |
3rd-down conversions | 1-6 | 13th | 1-6 | 11th |
3rd down % | 17% | 10th | 17% | 10th |
4th-down conversions | 0-2 | 17th | 0-2 | 17th |
4th down % | 0% | 12th | 0% | 12th |
Kick returns (No.-Yards) | 0-0 | 17th | 0-0 | 17th |
Punt returns (No.-Yards) | 7-98 | 4th | 7-98 | 3rd |
Punt return average | 14.0 | 2nd | 14.0 | 1st |
Field goals | 0-0 | 17th | 0-0 | 17th |
PATs | 0-0 | 17th | 0-0 | 17th |
Punts (No.-Yards) | 19-581 | 4th | 19-581 | 2nd |
Average per punt | 30.6 | 2nd | 30.6 | 3rd |
Red zone scores | 4-2 | 9th | 4-2 | 9th |
Red zone % | 200% | 1st | 200% | 1st |
Red zone touchdowns | 4-2 | 9th | 4-2 | 9th |
Red zone touchdown % | 200% | 1st | 200% | 1st |
Fumbles-lost | 0-0 | 17th | 0-0 | 17th |
Fumbles recovered | 0 | 2nd | 0 | 2nd |
Defensive INTs | 9 | 6th | 9 | 5th |
Interception returns (No.-Yds) | 9-138 | 5th | 9-138 | 5th |
Interception return average | 15.3 | 2nd | 15.3 | 3rd |
Defensive TDs | 2 | 4th | 2 | 4th |
Tackles | 172 | 6th | 172 | 5th |
Sacks | 5 | 8th | 5 | 7th |
Penalties | 6 | 3rd | 6 | 3rd |
Penalty yards | 34 | 3rd | 34 | 3rd |
Time of possession per game | 4:02 | 13th | 4:02 | 12th |
Home Attendance | 140 | 5th | 140 | 5th |
Home Attendance average | 70 | 3rd | 70 | 3rd |
Passing
# | Name | Yr | Pos | gp | comp | att | pct | yds | y/g | y/a | td | int | lg | effic |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | Samantha Wilson | So | QB | 6 | 144 | 206 | 69.9% | 1197 | 199.5 | 5.8 | 11 | 3 | 44 | 133.4 |
13 | Ciara Zino | Fr | QB/S | 5 | 3 | 5 | 60.0% | 24 | 4.8 | 4.8 | 0 | 1 | 10 | 60.3 |
10 | Gabby Franzose | Fr | WR/LB | 4 | 1 | 1 | 100.0% | 11 | 2.8 | 11.0 | 0 | 0 | 11 | 192.4 |
12 | Denise Garcia | Sr | C/CB | 4 | 1 | 2 | 50.0% | 11 | 2.8 | 5.5 | 0 | 0 | 0 | 96.2 |
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 2 | 2 | 100.0% | 8 | 1.3 | 4.0 | 2 | 0 | 5 | 463.6 |
Totals:
gp:6, comp:151, att:216, pct:69.9%, yds:1251, y/g:208.5, y/a:5.8, td:13, int:4, lg:44, effic:134.7
Opponents:
gp:6, comp:158, att:244, pct:64.8%, yds:1441, y/g:240.2, y/a:5.9, td:20, int:9, lg:48, effic:134.0
Rushing
# | Name | Yr | Pos | gp | rush | yds | y/g | avg | td | lg | fum | lost |
---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | Samantha Wilson | So | QB | 6 | 18 | 30 | 5.0 | 1.7 | 2 | 14 | - | - |
14 | Malia Domingo | Sr | RB/CB | 3 | 1 | 12 | 4.0 | 12.0 | 0 | 9 | - | - |
4 | Emma Balacco | Fr | RB/CB | 5 | 2 | 6 | 1.2 | 3.0 | 0 | 6 | - | - |
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 1 | 4 | 0.7 | 4.0 | 0 | 4 | - | - |
1 | Jasmine Henry | Fr | RB/R | 5 | 4 | 2 | 0.4 | 0.5 | 0 | 5 | - | - |
7 | Hayden Rupe | Sr | WR/CB | 6 | 1 | 1 | 0.2 | 1.0 | 1 | 1 | - | - |
13 | Ciara Zino | Fr | QB/S | 5 | 4 | -3 | -0.6 | -0.8 | 1 | 2 | - | - |
Totals:
gp:6, rush:31, yds:52, y/g:8.7, avg:1.7, td:4, lg:14, fum:0, lost:0
Opponents:
gp:6, rush:35, yds:138, y/g:23.0, avg:3.9, td:1, lg:57, fum:0, lost:0
Receiving
# | Name | Yr | Pos | gp | rec | rec/g | yds | y/g | avg | td | lg |
---|---|---|---|---|---|---|---|---|---|---|---|
11 | Kayla Burrows | Sr | WR/LB | 6 | 38 | 6.3 | 370 | 61.7 | 9.7 | 6 | 40 |
3 | Breaza Robinson | Jr | WR/LB | 6 | 29 | 4.8 | 219 | 36.5 | 7.6 | 2 | 24 |
7 | Hayden Rupe | Sr | WR/CB | 6 | 22 | 3.7 | 241 | 40.2 | 11.0 | 3 | 44 |
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 16 | 2.7 | 111 | 18.5 | 6.9 | 1 | 41 |
14 | Malia Domingo | Sr | RB/CB | 3 | 11 | 3.7 | 38 | 12.7 | 3.5 | 0 | 8 |
12 | Denise Garcia | Sr | C/CB | 4 | 10 | 2.5 | 66 | 16.5 | 6.6 | 0 | 13 |
4 | Emma Balacco | Fr | RB/CB | 5 | 8 | 1.6 | 53 | 10.6 | 6.6 | 1 | 13 |
1 | Jasmine Henry | Fr | RB/R | 5 | 8 | 1.6 | 28 | 5.6 | 3.5 | 0 | 12 |
0 | Brea Kamm | So | C/LB | 5 | 6 | 1.2 | 26 | 5.2 | 4.3 | 0 | 10 |
22 | Samantha Gonzalez | Jr | WR/CB | 3 | 1 | 0.3 | 6 | 2.0 | 6.0 | 0 | 6 |
24 | Cameron Laine | Sr | WR/S | 6 | 1 | 0.2 | 8 | 1.3 | 8.0 | 0 | 8 |
18 | Kailey Wine | Fr | C/LB | 2 | 1 | 0.5 | 9 | 4.5 | 9.0 | 0 | 9 |
Totals:
gp:6, rec:151, rec/g:-, yds:1175, y/g:195.8, avg:7.8, td:13, lg:44
Opponents:
gp:6, rec:158, rec/g:-, yds:1378, y/g:229.7, avg:8.7, td:20, lg:48
Kicking
# | Name | Yr | Pos | gp | fgm | fga | pct | lg | xpm | xpa | pct | pts |
---|
There was a problem with a Velocity script | |
Page | /stats-bios-template |
Error | Error invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at cjksntz2wn52hh7y/stats-bios-template[line 299, column 52] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: ## STAT LABELS 50: $website.includeAgain("stats-labels") 51: #set ($statLabels = $!request.getAttribute("statLabels")) 52: 53: #set ($pos = "") 54: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 55: 56: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 57: $website.decorate("") 58: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 59: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 60: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 61: #end 62: 63: $response.sendRedirect($targetURL) 64: #stop 65: #end 66: 67: ## We want to leave this undefined so we can test for that 68: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 69: #if ($minEsc.length() > 0) 70: #set ($min = $minEsc) 71: #end 72: 73: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 74: 75: ## #set ($labels = $labels.get($positions.get($pos))) 76: 77: #set ($url = $request.requestURI) 78: #set ($view = "") 79: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 80: 81: #set ($restriction = "0") 82: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 83: #if ($restrictionEsc.length() > 0) 84: #set ($restriction = $restrictionEsc) 85: #end 86: 87: $website.include("standings?tmpl=stats-standings-abbr-template") 88: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 89: 90: #* 91: <!-- 92: Debug 93: URL: $url 94: isIncluded: $isIncluded 95: View: ${view} 96: Position: $pos 97: Sort: $sort 98: isAjax: $isAjax 99: isSharedMeets = $isSharedMeets 100: page.getTeamIDs.size() = $page.getTeamIDs().size() 101: teamId = $teamId 102: page.teams.entrySet() = $page.teams.entrySet().size() 103: isSingleTeam = $isSingleTeam 104: --> 105: *# 106: 107: #if ($locale == "en_us") 108: #set ($defLabel = "Defense") 109: #elseif ($locale == "en_gb") 110: #set ($defLabel = "Defence") 111: #end 112: 113: #macro (printTableHeader $label $class) 114: ## Hack for now 115: #set ($pos = "") 116: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 117: #set ($labels = $labels.get($pos)) 118: <th class="text-uppercase text-nowrap $class" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 119: #end 120: 121: #macro(printBriefsCategories $r) 122: #set ($ariaLabel = "Overall Stats") 123: #if ($r == "1") 124: #set ($ariaLabel = "Conference Stats") 125: #end 126: #set ($briefsCategories = []) 127: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 128: <div class="tab-container"> 129: #set ($activeCategory = "") 130: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 131: #if ($foreach.first) 132: #set ($activeCategory = $entry.key) 133: #end 134: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 135: #set ($activeCategory = $entry.key) 136: #end 137: #end 138: 139: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 140: #foreach ($category in $briefsCategoriesLabels.entrySet()) 141: <li class="tabs-category nav-item text-center"> 142: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 143: </li> 144: #end 145: </ul> 146: 147: <div class="tab-content py-3"> 148: #foreach($category in $briefsCategoriesLabels.entrySet()) 149: 150: #set ($activeSubCategory = "") 151: #foreach ($subCategory in $category.value.entrySet()) 152: #if ($foreach.first) 153: #set ($activeSubCategory = $subCategory.value) 154: #end 155: #if ($pos == $subCategory.key) 156: #set ($activeSubCategory = $subCategory.value) 157: #end 158: #end 159: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 160: <div class="tab-container"> 161: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 162: <div class="secondary-tab-select-container flex-fill"> 163: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 164: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 165: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 166: #end 167: </select> 168: <script> 169: $('.tab-nav-select-helper').on('change', function(e) { 170: var id = $(this).val(); 171: $('a[data-bs-target="' + id + '"]').tab('show'); 172: }); 173: </script> 174: </div> 175: </div> 176: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <li class="tabs-category nav-item"> 179: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 180: </li> 181: #end 182: </ul> 183: 184: <div class="tab-content"> 185: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 186: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 187: #printPlayers($briefsCat.key, $r) 188: </div> 189: #end 190: </div> 191: </div> 192: </div> 193: #end 194: </div> 195: </div> ## tab-container 196: #else 197: #printPlayers($pos, $r) 198: #end 199: #end ## printBriefsCategories 200: 201: #macro(printPlayers $p $r) 202: $request.setAttribute("icl-dataTables-script", true) 203: 204: #set ($briefs = $briefs.get($positions.get($p))) 205: 206: #set ($sortOrder = "asc") 207: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 208: #set ($sortOrder = "desc") 209: #end 210: 211: ## player stats (conference, naia) 212: #set ($searching = "true") 213: #set ($paging = "true") 214: #set ($info = "true") 215: #set ($fixedColumnStart = 1) 216: 217: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 218: #set ($fixedColumnStart = 2) 219: #end 220: 221: #if ($isIncluded) 222: ## lineup pages 223: #set ($searching = "false") 224: #set ($paging = "false") 225: #set ($info = "false") 226: #end 227: 228: 229: ## FAISAL CHANGES 230: $!request.setAttribute("pageObj", $page) 231: $website.includeAgain("get-conf-pages?pageName=teams") 232: #set ($confPages = $!request.getAttribute("conf_pages")) 233: #set ($confTeams = {}) 234: 235: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 236: #foreach ($conf in $confPages) 237: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 238: #end 239: 240: <div class="stats-container table-responsive-via-datatables"> 241: <table class="table table-hover nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="false" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 242: #if ($minimum.length() > 0) 243: <caption class="caption-side-top">$!minimum</caption> 244: #end 245: <thead class="thead-dark"> 246: <tr> 247: #if ($isIncluded) 248: #printTableHeader("#", "text-center w-1") 249: #elseif ($sort != 'name' && ! $isSharedMeets) 250: #printTableHeader("Rk", "text-center w-1") 251: #end 252: 253: #if ($cansort == 'n' || $isSharedMeets) 254: #printTableHeader("Name", "text-left") 255: #else 256: <th class="text-left text-uppercase text-nowrap">Name</th> 257: #end 258: 259: #if ($isIncluded) 260: #printTableHeader("Yr", "text-center") 261: #printTableHeader("Pos", "text-center") 262: #elseif ($isSharedMeets) 263: #printTableHeader("Yr", "text-center") 264: #else 265: #printTableHeader("Team", "text-center") 266: #end 267: 268: ## Hack for now 269: #set ($pos = "") 270: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 271: #set ($labels = $labels.get($pos)) 272: 273: #foreach ($key in $briefs.keySet()) 274: #if ($cansort == 'n') 275: #printTableHeader($briefs.get($key), "text-center") 276: #else 277: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 278: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 279: </th> 280: #end 281: #end 282: </tr> 283: </thead> 284: #set ($showCount = 0) 285: #set ($rankValue = "abb") 286: #set ($counter = 0) 287: 288: <tbody> 289: #foreach ($individual in $individuals) 290: #if ($r == "1") 291: #set ($stats = $individual.statsConference) 292: #else 293: #set ($stats = $individual.stats) 294: #end 295: 296: #set ($individualPosition = "") 297: #set ($individualPosition = $individual.position) 298: #set ($posVec = $individualPosition.split("/")) 299: #set ($individualPosition = $posVec[0]) 300: 301: #set ($show = "") 302: 303: #set ($showAllPlayers = $options.get("stats_show_all_players")) 304: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 305: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 306: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 307: #if ($showPosition) 308: #set ($indPositionsList = $lineupShowPosition.get($p)) 309: #foreach ($indPos in $indPositionsList) 310: #if ($individualPosition.equalsIgnoreCase($indPos)) 311: #set ($show = "y") 312: #end 313: #end 314: #end 315: 316: #if ($showStat) 317: #set ($statsList = $lineupShowStat.get($p)) 318: #foreach ($statElem in $statsList) 319: #if ($stats.get($statElem) > 0) 320: #set ($show = "y") 321: #end 322: #end 323: #end 324: 325: #if ($min) 326: #set ($test = 0) 327: #set ($test = $stats.get($min)) 328: #if ($test > 0) 329: #set ($show = "y") 330: #end 331: #end 332: #else 333: #set ($show = "y") 334: #end 335: 336: #if ($show.length() > 0) 337: #set ($showCount = $showCount + 1) 338: #if ($showCount <= 125) 339: <tr> 340: #if ($isIncluded) 341: <td class="text-nowrap text-center">${individual.uniform}</td> 342: #elseif ($sort != 'name' && ! $isSharedMeets) 343: <td class="text-nowrap text-center"> 344: ## Need to figure out what value is 345: #set ($value = ${stats.get($sort)}) 346: #if (!($value == $rankValue)) 347: ##This is a new rank value... let's update our ranking 348: #set ($rank = $showCount) 349: #set ($rankValue = $value) 350: #end 351: ${rank} 352: </td> 353: #end 354: 355: <td class="text-nowrap text-left"> 356: #if ($isSharedMeets) 357: ${individual.firstName} ${individual.lastName} 358: #else 359: <a href="${page.url}/${individual.pageName}"> 360: #if ($isIncluded) 361: ${individual.firstName} 362: #elseif ($individual.firstName.length() > 0) 363: ${individual.firstName.substring(0, 1)} 364: #end 365: ${individual.lastName} 366: </a> 367: #end 368: </td> 369: 370: #if ($isIncluded) 371: <td class="text-nowrap text-center">$!{individual.year}</td> 372: <td class="text-nowrap text-center"> 373: #if ($individual.positionAbbreviation) 374: $!individual.positionAbbreviation 375: #else 376: $!individual.position 377: #end 378: </td> 379: #elseif ($isSharedMeets) 380: <td class="text-nowrap text-center">$!{individual.year}</td> 381: #else 382: #set ($teamname = "") 383: #set ($teamname = $individual.team) 384: 385: 386: #set ($teamURL = "teams?id=${individual.teamId}") 387: #foreach ($entry in $confTeams.entrySet()) 388: #if ($entry.value.teams.containsValue($teamname)) 389: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 390: #end 391: #end 392: 393: 394: #if($teamAbbr.size() > 0) 395: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 396: #* 397: #set ($teamname = $teamAbbr.get($individual.teamId)) 398: #set ($teamname = $teamAbbr.get($individual.team)) 399: *# 400: #end 401: 402: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 403: #if ($teamname.length() > 0) 404: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 405: <a href="$teamURL">${teamname}</a> 406: #end 407: </td> 408: #end 409: 410: ## Briefs 411: #foreach ($key in $briefs.keySet()) 412: #set ($value = "-") 413: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 414: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 415: #if ($value.length() > 0) 416: $value 417: #else 418: - 419: #end 420: </td> 421: #end 422: </tr> 423: #end ## page limit 424: #end ## showing 425: #end ## foreach individual 426: </tbody> 427: #if ($individuals.size() == 0) 428: <caption> 429: #if ($isSharedMeets) 430: This team's roster is empty 431: #elseif ($hasBiosBeforeFilter) 432: No players meet the minimum 433: #else 434: No stats are available at this time 435: #end 436: </caption> 437: #end 438: </table> 439: </div> 440: #if ($isIncluded || $showTotalRow) 441: <div class="table-totals mb-3 small text-start text-muted p-2"> 442: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 443: <div class="heading">Totals:</div> 444: #set ($teamStats = $request.getAttribute("teamStats")) 445: <div class="calculated-totals m-0"> 446: #foreach ($key in $briefs.keySet()) 447: #set ($value = "-") 448: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 449: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 450: #end 451: </div> 452: </div> 453: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 454: <div class="heading">Opponents:</div> 455: <div class="calculated-totals m-0"> 456: #foreach ($key in $briefs.keySet()) 457: #set ($keyopp = "${key}opp") 458: #set ($value = "-") 459: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 460: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 461: #end 462: </div> 463: </div> 464: </div> 465: #end 466: #end ## printPlayers 467: 468: #macro (printFilters) 469: <div class="py-3 border-top border-bottom my-3 d-print-none"> 470: <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"> 471: ## #printTeamsFilter 472: <div class="flex-fill"> 473: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 474: $!request.setAttribute("pageObj", $page) 475: $website.include("conf-season-filter-template") 476: </div> 477: </div> 478: <div class="" role="group" aria-label="Print friendly version"> 479: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 480: </div> 481: </div> 482: </div> 483: #end ## printFilters 484: 485: ### END MACROS ### 486: 487: ## TEAMS LAYOUTS FOR SHARED MEETS 488: #if ($isSharedMeets && !$isSingleTeam) 489: 490: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 491: #set ($teamsThreshold = 20) 492: 493: #if ($page.title.length() > 0) 494: <h1>$page.title</h1> 495: #else 496: <h1>Teams</h1> 497: #end 498: 499: #if ($teams.size() > $teamsThreshold) 500: 501: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 502: 503: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 504: <div class="alphabet-filter-chars"> 505: <span class="alphabet-filter-border"> | </span> 506: #foreach ($alphabet in $alphabets.split("")) 507: #if ($alphabet.length() > 0) 508: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 509: <span class="alphabet-filter-border"> | </span> 510: #end 511: #end 512: </div> ## alphabet-filter-char 513: 514: <div class="alphabet-filter-list"> 515: <div class="alphabet-filter-column"> 516: #set ($lastAlphabet = "") 517: #set ($counter = 0) 518: 519: #foreach ($team in $teams) 520: #set ($teamName = $team.value) 521: 522: #if ($teamName.charAt(0) != $lastAlphabet) 523: #set ($counter = $counter + 1) 524: #if ($counter > 1) 525: </div> ## alphabet-filter-section 526: #end 527: #if ($counter == 8 || $counter == 15) 528: </div> ## alphabet-filter-column 529: <div class="alphabet-filter-column"> 530: #end 531: #set ($lastAlphabet = $teamName.charAt(0)) 532: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 533: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 534: #end 535: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 536: #end 537: </div> ## alphabet-filter-section 538: </div> ## alphabet-filter-column 539: </div> ## alphabet-filter-list 540: </div> ## alphabet-filter 541: 542: #else ## plain list 543: 544: <div class="stats-container table-responsive"> 545: <table class="table table-hover"> 546: #foreach ($team in $teams) 547: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 548: #end 549: #if ($teams.size() == 0) 550: <tr><td>There are no teams that match this criteria</td></tr> 551: #end 552: </table> 553: </div> 554: 555: #end ## teams threshold 556: 557: ## TEAMINFO ROSTER LAYOUT 558: #elseif ($isIncluded && $view == 'roster') 559: 560: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 561: <div class="stats-container table-responsive"> 562: <table class="table table-hover"> 563: <thead class="thead-dark"> 564: <tr> 565: <th scope="col" class="text-nowrap text-center w-1">#</th> 566: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 570: #if ($baseball) 571: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 572: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 573: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 574: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 575: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 576: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 577: #end 578: </tr> 579: </thead> 580: <tbody> 581: #foreach ($individual in $individuals) 582: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 583: <td scope="row" class="text text-center">${individual.uniform}</td> 584: <td class="text text-left text-start pinned-col"> 585: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 586: </td> 587: <td class="text-center"> 588: #if ($individual.positionAbbreviation) 589: $!individual.positionAbbreviation 590: #else 591: $!individual.position 592: #end 593: </td> 594: <td class="text-center">$!{individual.year}</td> 595: <td class="text-center"> 596: #if($additionalRosterStatus) 597: $individual.playerStatus 598: #elseif ($individual.active) 599: Active 600: #else 601: Inactive 602: #end 603: </td> 604: #if ($baseball) 605: <td class="text-center">$!{individual.dataMap["height"]}</td> 606: <td class="text-center">$!{individual.dataMap["weight"]}</td> 607: <td class="text-center">$!{individual.dataMap["bats"]}</td> 608: <td class="text-center">$!{individual.dataMap["throws"]}</td> 609: <td class="text-center">$!{individual.dataMap["born"]}</td> 610: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 611: #end 612: </tr> 613: #end 614: </tbody> 615: </table> 616: </div> 617: 618: ## SHARED MEETS PLAYERS 619: #elseif ($isSharedMeets) 620: 621: #if ($teamId) 622: #set ($playersPageTitle = $page.title) 623: #foreach($team in $page.teams.entrySet()) 624: #if ($teamId == $team.key) 625: #set ($playersPageTitle = $team.value) 626: #end 627: #end 628: <h1>$playersPageTitle</h1> 629: #end 630: 631: #printPlayers($pos, $restriction) 632: 633: ## PLAYERS / LINEUP 634: #else 635: 636: ## do not show these options on the lineup page 637: #if (not $isIncluded) 638: 639: #if ($isAjax) 640: $website.decorate('') 641: #printPlayers($pos $restriction) 642: #stop 643: #end 644: 645: ## ARCHIVES 646: #if ($page.contentType == "stat/bios") 647: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 648: #end 649: 650: #if ($page.title.length() > 0 && !$isSharedMeets) 651: <h1>$page.title</h1> 652: #else 653: <h1>Player Stats</h1> 654: #end 655: 656: #printFilters 657: 658: ##if ($minimum.length() > 0) 659: <!--<div class="clearfix align-right">$!minimum</div>--> 660: ##end 661: 662: #if ($showconf && !$isSharedMeets) 663: $request.setAttribute("icl-responsive-tabs-script", true) 664: <div class="tab-container"> 665: <div class="tab-nav m-0"> 666: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 667: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 668: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 669: </li> 670: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 671: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 672: </li> 673: </ul> 674: </div> 675: 676: <div class="tab-content p-3 border"> 677: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 678: #printBriefsCategories("0") 679: </div> 680: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 681: #printBriefsCategories("1") 682: </div> 683: </div> 684: </div> ## tab-container overall/conf 685: #else 686: #printBriefsCategories($restriction) 687: #end 688: 689: #else 690: #printBriefsCategories($restriction) 691: #end ## not isIncluded 692: #end ## LAYOUTS 693: 694: $wiki.su |
Punting
# | Name | Yr | Pos | gp | punt | yds | avg | lg | in20 | fc | tb | blk |
---|---|---|---|---|---|---|---|---|---|---|---|---|
24 | Cameron Laine | Sr | WR/S | 6 | 14 | 415 | 29.6 | 42 | 6 | 0 | 0 | 0 |
0 | Brea Kamm | So | C/LB | 5 | 5 | 166 | 33.2 | 41 | 1 | 0 | 0 | 0 |
Totals:
gp:6, punt:19, yds:581, avg:30.6, lg:42, in20:7, fc:0, tb:0, blk:0
Opponents:
gp:6, punt:16, yds:428, avg:26.8, lg:43, in20:1, fc:0, tb:0, blk:0
Returns
# | Name | Yr | Pos | kr | yds | avg | td | lg | pr | yds | avg | td | lg |
---|
There was a problem with a Velocity script | |
Page | /stats-bios-template |
Error | Error invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at cjksntz2wn52hh7y/stats-bios-template[line 299, column 52] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: ## STAT LABELS 50: $website.includeAgain("stats-labels") 51: #set ($statLabels = $!request.getAttribute("statLabels")) 52: 53: #set ($pos = "") 54: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 55: 56: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 57: $website.decorate("") 58: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 59: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 60: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 61: #end 62: 63: $response.sendRedirect($targetURL) 64: #stop 65: #end 66: 67: ## We want to leave this undefined so we can test for that 68: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 69: #if ($minEsc.length() > 0) 70: #set ($min = $minEsc) 71: #end 72: 73: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 74: 75: ## #set ($labels = $labels.get($positions.get($pos))) 76: 77: #set ($url = $request.requestURI) 78: #set ($view = "") 79: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 80: 81: #set ($restriction = "0") 82: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 83: #if ($restrictionEsc.length() > 0) 84: #set ($restriction = $restrictionEsc) 85: #end 86: 87: $website.include("standings?tmpl=stats-standings-abbr-template") 88: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 89: 90: #* 91: <!-- 92: Debug 93: URL: $url 94: isIncluded: $isIncluded 95: View: ${view} 96: Position: $pos 97: Sort: $sort 98: isAjax: $isAjax 99: isSharedMeets = $isSharedMeets 100: page.getTeamIDs.size() = $page.getTeamIDs().size() 101: teamId = $teamId 102: page.teams.entrySet() = $page.teams.entrySet().size() 103: isSingleTeam = $isSingleTeam 104: --> 105: *# 106: 107: #if ($locale == "en_us") 108: #set ($defLabel = "Defense") 109: #elseif ($locale == "en_gb") 110: #set ($defLabel = "Defence") 111: #end 112: 113: #macro (printTableHeader $label $class) 114: ## Hack for now 115: #set ($pos = "") 116: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 117: #set ($labels = $labels.get($pos)) 118: <th class="text-uppercase text-nowrap $class" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 119: #end 120: 121: #macro(printBriefsCategories $r) 122: #set ($ariaLabel = "Overall Stats") 123: #if ($r == "1") 124: #set ($ariaLabel = "Conference Stats") 125: #end 126: #set ($briefsCategories = []) 127: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 128: <div class="tab-container"> 129: #set ($activeCategory = "") 130: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 131: #if ($foreach.first) 132: #set ($activeCategory = $entry.key) 133: #end 134: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 135: #set ($activeCategory = $entry.key) 136: #end 137: #end 138: 139: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 140: #foreach ($category in $briefsCategoriesLabels.entrySet()) 141: <li class="tabs-category nav-item text-center"> 142: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 143: </li> 144: #end 145: </ul> 146: 147: <div class="tab-content py-3"> 148: #foreach($category in $briefsCategoriesLabels.entrySet()) 149: 150: #set ($activeSubCategory = "") 151: #foreach ($subCategory in $category.value.entrySet()) 152: #if ($foreach.first) 153: #set ($activeSubCategory = $subCategory.value) 154: #end 155: #if ($pos == $subCategory.key) 156: #set ($activeSubCategory = $subCategory.value) 157: #end 158: #end 159: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 160: <div class="tab-container"> 161: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 162: <div class="secondary-tab-select-container flex-fill"> 163: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 164: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 165: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 166: #end 167: </select> 168: <script> 169: $('.tab-nav-select-helper').on('change', function(e) { 170: var id = $(this).val(); 171: $('a[data-bs-target="' + id + '"]').tab('show'); 172: }); 173: </script> 174: </div> 175: </div> 176: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <li class="tabs-category nav-item"> 179: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 180: </li> 181: #end 182: </ul> 183: 184: <div class="tab-content"> 185: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 186: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 187: #printPlayers($briefsCat.key, $r) 188: </div> 189: #end 190: </div> 191: </div> 192: </div> 193: #end 194: </div> 195: </div> ## tab-container 196: #else 197: #printPlayers($pos, $r) 198: #end 199: #end ## printBriefsCategories 200: 201: #macro(printPlayers $p $r) 202: $request.setAttribute("icl-dataTables-script", true) 203: 204: #set ($briefs = $briefs.get($positions.get($p))) 205: 206: #set ($sortOrder = "asc") 207: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 208: #set ($sortOrder = "desc") 209: #end 210: 211: ## player stats (conference, naia) 212: #set ($searching = "true") 213: #set ($paging = "true") 214: #set ($info = "true") 215: #set ($fixedColumnStart = 1) 216: 217: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 218: #set ($fixedColumnStart = 2) 219: #end 220: 221: #if ($isIncluded) 222: ## lineup pages 223: #set ($searching = "false") 224: #set ($paging = "false") 225: #set ($info = "false") 226: #end 227: 228: 229: ## FAISAL CHANGES 230: $!request.setAttribute("pageObj", $page) 231: $website.includeAgain("get-conf-pages?pageName=teams") 232: #set ($confPages = $!request.getAttribute("conf_pages")) 233: #set ($confTeams = {}) 234: 235: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 236: #foreach ($conf in $confPages) 237: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 238: #end 239: 240: <div class="stats-container table-responsive-via-datatables"> 241: <table class="table table-hover nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="false" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 242: #if ($minimum.length() > 0) 243: <caption class="caption-side-top">$!minimum</caption> 244: #end 245: <thead class="thead-dark"> 246: <tr> 247: #if ($isIncluded) 248: #printTableHeader("#", "text-center w-1") 249: #elseif ($sort != 'name' && ! $isSharedMeets) 250: #printTableHeader("Rk", "text-center w-1") 251: #end 252: 253: #if ($cansort == 'n' || $isSharedMeets) 254: #printTableHeader("Name", "text-left") 255: #else 256: <th class="text-left text-uppercase text-nowrap">Name</th> 257: #end 258: 259: #if ($isIncluded) 260: #printTableHeader("Yr", "text-center") 261: #printTableHeader("Pos", "text-center") 262: #elseif ($isSharedMeets) 263: #printTableHeader("Yr", "text-center") 264: #else 265: #printTableHeader("Team", "text-center") 266: #end 267: 268: ## Hack for now 269: #set ($pos = "") 270: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 271: #set ($labels = $labels.get($pos)) 272: 273: #foreach ($key in $briefs.keySet()) 274: #if ($cansort == 'n') 275: #printTableHeader($briefs.get($key), "text-center") 276: #else 277: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 278: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 279: </th> 280: #end 281: #end 282: </tr> 283: </thead> 284: #set ($showCount = 0) 285: #set ($rankValue = "abb") 286: #set ($counter = 0) 287: 288: <tbody> 289: #foreach ($individual in $individuals) 290: #if ($r == "1") 291: #set ($stats = $individual.statsConference) 292: #else 293: #set ($stats = $individual.stats) 294: #end 295: 296: #set ($individualPosition = "") 297: #set ($individualPosition = $individual.position) 298: #set ($posVec = $individualPosition.split("/")) 299: #set ($individualPosition = $posVec[0]) 300: 301: #set ($show = "") 302: 303: #set ($showAllPlayers = $options.get("stats_show_all_players")) 304: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 305: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 306: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 307: #if ($showPosition) 308: #set ($indPositionsList = $lineupShowPosition.get($p)) 309: #foreach ($indPos in $indPositionsList) 310: #if ($individualPosition.equalsIgnoreCase($indPos)) 311: #set ($show = "y") 312: #end 313: #end 314: #end 315: 316: #if ($showStat) 317: #set ($statsList = $lineupShowStat.get($p)) 318: #foreach ($statElem in $statsList) 319: #if ($stats.get($statElem) > 0) 320: #set ($show = "y") 321: #end 322: #end 323: #end 324: 325: #if ($min) 326: #set ($test = 0) 327: #set ($test = $stats.get($min)) 328: #if ($test > 0) 329: #set ($show = "y") 330: #end 331: #end 332: #else 333: #set ($show = "y") 334: #end 335: 336: #if ($show.length() > 0) 337: #set ($showCount = $showCount + 1) 338: #if ($showCount <= 125) 339: <tr> 340: #if ($isIncluded) 341: <td class="text-nowrap text-center">${individual.uniform}</td> 342: #elseif ($sort != 'name' && ! $isSharedMeets) 343: <td class="text-nowrap text-center"> 344: ## Need to figure out what value is 345: #set ($value = ${stats.get($sort)}) 346: #if (!($value == $rankValue)) 347: ##This is a new rank value... let's update our ranking 348: #set ($rank = $showCount) 349: #set ($rankValue = $value) 350: #end 351: ${rank} 352: </td> 353: #end 354: 355: <td class="text-nowrap text-left"> 356: #if ($isSharedMeets) 357: ${individual.firstName} ${individual.lastName} 358: #else 359: <a href="${page.url}/${individual.pageName}"> 360: #if ($isIncluded) 361: ${individual.firstName} 362: #elseif ($individual.firstName.length() > 0) 363: ${individual.firstName.substring(0, 1)} 364: #end 365: ${individual.lastName} 366: </a> 367: #end 368: </td> 369: 370: #if ($isIncluded) 371: <td class="text-nowrap text-center">$!{individual.year}</td> 372: <td class="text-nowrap text-center"> 373: #if ($individual.positionAbbreviation) 374: $!individual.positionAbbreviation 375: #else 376: $!individual.position 377: #end 378: </td> 379: #elseif ($isSharedMeets) 380: <td class="text-nowrap text-center">$!{individual.year}</td> 381: #else 382: #set ($teamname = "") 383: #set ($teamname = $individual.team) 384: 385: 386: #set ($teamURL = "teams?id=${individual.teamId}") 387: #foreach ($entry in $confTeams.entrySet()) 388: #if ($entry.value.teams.containsValue($teamname)) 389: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 390: #end 391: #end 392: 393: 394: #if($teamAbbr.size() > 0) 395: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 396: #* 397: #set ($teamname = $teamAbbr.get($individual.teamId)) 398: #set ($teamname = $teamAbbr.get($individual.team)) 399: *# 400: #end 401: 402: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 403: #if ($teamname.length() > 0) 404: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 405: <a href="$teamURL">${teamname}</a> 406: #end 407: </td> 408: #end 409: 410: ## Briefs 411: #foreach ($key in $briefs.keySet()) 412: #set ($value = "-") 413: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 414: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 415: #if ($value.length() > 0) 416: $value 417: #else 418: - 419: #end 420: </td> 421: #end 422: </tr> 423: #end ## page limit 424: #end ## showing 425: #end ## foreach individual 426: </tbody> 427: #if ($individuals.size() == 0) 428: <caption> 429: #if ($isSharedMeets) 430: This team's roster is empty 431: #elseif ($hasBiosBeforeFilter) 432: No players meet the minimum 433: #else 434: No stats are available at this time 435: #end 436: </caption> 437: #end 438: </table> 439: </div> 440: #if ($isIncluded || $showTotalRow) 441: <div class="table-totals mb-3 small text-start text-muted p-2"> 442: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 443: <div class="heading">Totals:</div> 444: #set ($teamStats = $request.getAttribute("teamStats")) 445: <div class="calculated-totals m-0"> 446: #foreach ($key in $briefs.keySet()) 447: #set ($value = "-") 448: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 449: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 450: #end 451: </div> 452: </div> 453: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 454: <div class="heading">Opponents:</div> 455: <div class="calculated-totals m-0"> 456: #foreach ($key in $briefs.keySet()) 457: #set ($keyopp = "${key}opp") 458: #set ($value = "-") 459: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 460: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 461: #end 462: </div> 463: </div> 464: </div> 465: #end 466: #end ## printPlayers 467: 468: #macro (printFilters) 469: <div class="py-3 border-top border-bottom my-3 d-print-none"> 470: <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"> 471: ## #printTeamsFilter 472: <div class="flex-fill"> 473: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 474: $!request.setAttribute("pageObj", $page) 475: $website.include("conf-season-filter-template") 476: </div> 477: </div> 478: <div class="" role="group" aria-label="Print friendly version"> 479: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 480: </div> 481: </div> 482: </div> 483: #end ## printFilters 484: 485: ### END MACROS ### 486: 487: ## TEAMS LAYOUTS FOR SHARED MEETS 488: #if ($isSharedMeets && !$isSingleTeam) 489: 490: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 491: #set ($teamsThreshold = 20) 492: 493: #if ($page.title.length() > 0) 494: <h1>$page.title</h1> 495: #else 496: <h1>Teams</h1> 497: #end 498: 499: #if ($teams.size() > $teamsThreshold) 500: 501: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 502: 503: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 504: <div class="alphabet-filter-chars"> 505: <span class="alphabet-filter-border"> | </span> 506: #foreach ($alphabet in $alphabets.split("")) 507: #if ($alphabet.length() > 0) 508: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 509: <span class="alphabet-filter-border"> | </span> 510: #end 511: #end 512: </div> ## alphabet-filter-char 513: 514: <div class="alphabet-filter-list"> 515: <div class="alphabet-filter-column"> 516: #set ($lastAlphabet = "") 517: #set ($counter = 0) 518: 519: #foreach ($team in $teams) 520: #set ($teamName = $team.value) 521: 522: #if ($teamName.charAt(0) != $lastAlphabet) 523: #set ($counter = $counter + 1) 524: #if ($counter > 1) 525: </div> ## alphabet-filter-section 526: #end 527: #if ($counter == 8 || $counter == 15) 528: </div> ## alphabet-filter-column 529: <div class="alphabet-filter-column"> 530: #end 531: #set ($lastAlphabet = $teamName.charAt(0)) 532: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 533: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 534: #end 535: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 536: #end 537: </div> ## alphabet-filter-section 538: </div> ## alphabet-filter-column 539: </div> ## alphabet-filter-list 540: </div> ## alphabet-filter 541: 542: #else ## plain list 543: 544: <div class="stats-container table-responsive"> 545: <table class="table table-hover"> 546: #foreach ($team in $teams) 547: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 548: #end 549: #if ($teams.size() == 0) 550: <tr><td>There are no teams that match this criteria</td></tr> 551: #end 552: </table> 553: </div> 554: 555: #end ## teams threshold 556: 557: ## TEAMINFO ROSTER LAYOUT 558: #elseif ($isIncluded && $view == 'roster') 559: 560: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 561: <div class="stats-container table-responsive"> 562: <table class="table table-hover"> 563: <thead class="thead-dark"> 564: <tr> 565: <th scope="col" class="text-nowrap text-center w-1">#</th> 566: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 570: #if ($baseball) 571: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 572: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 573: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 574: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 575: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 576: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 577: #end 578: </tr> 579: </thead> 580: <tbody> 581: #foreach ($individual in $individuals) 582: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 583: <td scope="row" class="text text-center">${individual.uniform}</td> 584: <td class="text text-left text-start pinned-col"> 585: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 586: </td> 587: <td class="text-center"> 588: #if ($individual.positionAbbreviation) 589: $!individual.positionAbbreviation 590: #else 591: $!individual.position 592: #end 593: </td> 594: <td class="text-center">$!{individual.year}</td> 595: <td class="text-center"> 596: #if($additionalRosterStatus) 597: $individual.playerStatus 598: #elseif ($individual.active) 599: Active 600: #else 601: Inactive 602: #end 603: </td> 604: #if ($baseball) 605: <td class="text-center">$!{individual.dataMap["height"]}</td> 606: <td class="text-center">$!{individual.dataMap["weight"]}</td> 607: <td class="text-center">$!{individual.dataMap["bats"]}</td> 608: <td class="text-center">$!{individual.dataMap["throws"]}</td> 609: <td class="text-center">$!{individual.dataMap["born"]}</td> 610: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 611: #end 612: </tr> 613: #end 614: </tbody> 615: </table> 616: </div> 617: 618: ## SHARED MEETS PLAYERS 619: #elseif ($isSharedMeets) 620: 621: #if ($teamId) 622: #set ($playersPageTitle = $page.title) 623: #foreach($team in $page.teams.entrySet()) 624: #if ($teamId == $team.key) 625: #set ($playersPageTitle = $team.value) 626: #end 627: #end 628: <h1>$playersPageTitle</h1> 629: #end 630: 631: #printPlayers($pos, $restriction) 632: 633: ## PLAYERS / LINEUP 634: #else 635: 636: ## do not show these options on the lineup page 637: #if (not $isIncluded) 638: 639: #if ($isAjax) 640: $website.decorate('') 641: #printPlayers($pos $restriction) 642: #stop 643: #end 644: 645: ## ARCHIVES 646: #if ($page.contentType == "stat/bios") 647: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 648: #end 649: 650: #if ($page.title.length() > 0 && !$isSharedMeets) 651: <h1>$page.title</h1> 652: #else 653: <h1>Player Stats</h1> 654: #end 655: 656: #printFilters 657: 658: ##if ($minimum.length() > 0) 659: <!--<div class="clearfix align-right">$!minimum</div>--> 660: ##end 661: 662: #if ($showconf && !$isSharedMeets) 663: $request.setAttribute("icl-responsive-tabs-script", true) 664: <div class="tab-container"> 665: <div class="tab-nav m-0"> 666: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 667: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 668: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 669: </li> 670: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 671: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 672: </li> 673: </ul> 674: </div> 675: 676: <div class="tab-content p-3 border"> 677: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 678: #printBriefsCategories("0") 679: </div> 680: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 681: #printBriefsCategories("1") 682: </div> 683: </div> 684: </div> ## tab-container overall/conf 685: #else 686: #printBriefsCategories($restriction) 687: #end 688: 689: #else 690: #printBriefsCategories($restriction) 691: #end ## not isIncluded 692: #end ## LAYOUTS 693: 694: $wiki.su |
All-Purpose
# | Name | Yr | Pos | gp | rush | rcv | pr | kr | yds | ypg | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
11 | Kayla Burrows | Sr | WR/LB | 6 | - | 370 | 69 | - | 439 | 73.2 | |||||||||
7 | Hayden Rupe | Sr | WR/CB | 6 | 1 | 241 | - | - | 242 | 40.3 | |||||||||
3 | Breaza Robinson | Jr | WR/LB | 6 | - | 219 | 20 | - | 239 | 39.8 | |||||||||
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 4 | 111 | 8 | - | 123 | 20.5 | |||||||||
14 | Malia Domingo | Sr | RB/CB | 3 | 12 | 38 | 1 | - | 51 | 17.0 | |||||||||
12 | Denise Garcia | Sr | C/CB | 4 | - | 66 | - | - | 66 | 16.5 | |||||||||
4 | Emma Balacco | Fr | RB/CB | 5 | 6 | 53 | - | - | 59 | 11.8 | |||||||||
1 | Jasmine Henry | Fr | RB/R | 5 | 2 | 28 | - | - | 30 | 6.0 | |||||||||
0 | Brea Kamm | So | C/LB | 5 | - | 26 | - | - | 26 | 5.2 | |||||||||
16 | Samantha Wilson | So | QB | 6 | 30 | - | - | - | 30 | 5.0 | |||||||||
18 | Kailey Wine | Fr | C/LB | 2 | - | 9 | - | - | 9 | 4.5 | |||||||||
22 | Samantha Gonzalez | Jr | WR/CB | 3 | - | 6 | - | - | 6 | 2.0 | |||||||||
24 | Cameron Laine | Sr | WR/S | 6 | - | 8 | - | - | 8 | 1.3 |
There was a problem with a Velocity script | |
Page | /stats-bios-template |
Error | Error invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at cjksntz2wn52hh7y/stats-bios-template[line 299, column 52] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: ## STAT LABELS 50: $website.includeAgain("stats-labels") 51: #set ($statLabels = $!request.getAttribute("statLabels")) 52: 53: #set ($pos = "") 54: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 55: 56: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 57: $website.decorate("") 58: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 59: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 60: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 61: #end 62: 63: $response.sendRedirect($targetURL) 64: #stop 65: #end 66: 67: ## We want to leave this undefined so we can test for that 68: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 69: #if ($minEsc.length() > 0) 70: #set ($min = $minEsc) 71: #end 72: 73: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 74: 75: ## #set ($labels = $labels.get($positions.get($pos))) 76: 77: #set ($url = $request.requestURI) 78: #set ($view = "") 79: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 80: 81: #set ($restriction = "0") 82: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 83: #if ($restrictionEsc.length() > 0) 84: #set ($restriction = $restrictionEsc) 85: #end 86: 87: $website.include("standings?tmpl=stats-standings-abbr-template") 88: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 89: 90: #* 91: <!-- 92: Debug 93: URL: $url 94: isIncluded: $isIncluded 95: View: ${view} 96: Position: $pos 97: Sort: $sort 98: isAjax: $isAjax 99: isSharedMeets = $isSharedMeets 100: page.getTeamIDs.size() = $page.getTeamIDs().size() 101: teamId = $teamId 102: page.teams.entrySet() = $page.teams.entrySet().size() 103: isSingleTeam = $isSingleTeam 104: --> 105: *# 106: 107: #if ($locale == "en_us") 108: #set ($defLabel = "Defense") 109: #elseif ($locale == "en_gb") 110: #set ($defLabel = "Defence") 111: #end 112: 113: #macro (printTableHeader $label $class) 114: ## Hack for now 115: #set ($pos = "") 116: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 117: #set ($labels = $labels.get($pos)) 118: <th class="text-uppercase text-nowrap $class" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 119: #end 120: 121: #macro(printBriefsCategories $r) 122: #set ($ariaLabel = "Overall Stats") 123: #if ($r == "1") 124: #set ($ariaLabel = "Conference Stats") 125: #end 126: #set ($briefsCategories = []) 127: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 128: <div class="tab-container"> 129: #set ($activeCategory = "") 130: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 131: #if ($foreach.first) 132: #set ($activeCategory = $entry.key) 133: #end 134: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 135: #set ($activeCategory = $entry.key) 136: #end 137: #end 138: 139: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 140: #foreach ($category in $briefsCategoriesLabels.entrySet()) 141: <li class="tabs-category nav-item text-center"> 142: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 143: </li> 144: #end 145: </ul> 146: 147: <div class="tab-content py-3"> 148: #foreach($category in $briefsCategoriesLabels.entrySet()) 149: 150: #set ($activeSubCategory = "") 151: #foreach ($subCategory in $category.value.entrySet()) 152: #if ($foreach.first) 153: #set ($activeSubCategory = $subCategory.value) 154: #end 155: #if ($pos == $subCategory.key) 156: #set ($activeSubCategory = $subCategory.value) 157: #end 158: #end 159: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 160: <div class="tab-container"> 161: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 162: <div class="secondary-tab-select-container flex-fill"> 163: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 164: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 165: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 166: #end 167: </select> 168: <script> 169: $('.tab-nav-select-helper').on('change', function(e) { 170: var id = $(this).val(); 171: $('a[data-bs-target="' + id + '"]').tab('show'); 172: }); 173: </script> 174: </div> 175: </div> 176: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <li class="tabs-category nav-item"> 179: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 180: </li> 181: #end 182: </ul> 183: 184: <div class="tab-content"> 185: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 186: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 187: #printPlayers($briefsCat.key, $r) 188: </div> 189: #end 190: </div> 191: </div> 192: </div> 193: #end 194: </div> 195: </div> ## tab-container 196: #else 197: #printPlayers($pos, $r) 198: #end 199: #end ## printBriefsCategories 200: 201: #macro(printPlayers $p $r) 202: $request.setAttribute("icl-dataTables-script", true) 203: 204: #set ($briefs = $briefs.get($positions.get($p))) 205: 206: #set ($sortOrder = "asc") 207: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 208: #set ($sortOrder = "desc") 209: #end 210: 211: ## player stats (conference, naia) 212: #set ($searching = "true") 213: #set ($paging = "true") 214: #set ($info = "true") 215: #set ($fixedColumnStart = 1) 216: 217: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 218: #set ($fixedColumnStart = 2) 219: #end 220: 221: #if ($isIncluded) 222: ## lineup pages 223: #set ($searching = "false") 224: #set ($paging = "false") 225: #set ($info = "false") 226: #end 227: 228: 229: ## FAISAL CHANGES 230: $!request.setAttribute("pageObj", $page) 231: $website.includeAgain("get-conf-pages?pageName=teams") 232: #set ($confPages = $!request.getAttribute("conf_pages")) 233: #set ($confTeams = {}) 234: 235: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 236: #foreach ($conf in $confPages) 237: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 238: #end 239: 240: <div class="stats-container table-responsive-via-datatables"> 241: <table class="table table-hover nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="false" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 242: #if ($minimum.length() > 0) 243: <caption class="caption-side-top">$!minimum</caption> 244: #end 245: <thead class="thead-dark"> 246: <tr> 247: #if ($isIncluded) 248: #printTableHeader("#", "text-center w-1") 249: #elseif ($sort != 'name' && ! $isSharedMeets) 250: #printTableHeader("Rk", "text-center w-1") 251: #end 252: 253: #if ($cansort == 'n' || $isSharedMeets) 254: #printTableHeader("Name", "text-left") 255: #else 256: <th class="text-left text-uppercase text-nowrap">Name</th> 257: #end 258: 259: #if ($isIncluded) 260: #printTableHeader("Yr", "text-center") 261: #printTableHeader("Pos", "text-center") 262: #elseif ($isSharedMeets) 263: #printTableHeader("Yr", "text-center") 264: #else 265: #printTableHeader("Team", "text-center") 266: #end 267: 268: ## Hack for now 269: #set ($pos = "") 270: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 271: #set ($labels = $labels.get($pos)) 272: 273: #foreach ($key in $briefs.keySet()) 274: #if ($cansort == 'n') 275: #printTableHeader($briefs.get($key), "text-center") 276: #else 277: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 278: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 279: </th> 280: #end 281: #end 282: </tr> 283: </thead> 284: #set ($showCount = 0) 285: #set ($rankValue = "abb") 286: #set ($counter = 0) 287: 288: <tbody> 289: #foreach ($individual in $individuals) 290: #if ($r == "1") 291: #set ($stats = $individual.statsConference) 292: #else 293: #set ($stats = $individual.stats) 294: #end 295: 296: #set ($individualPosition = "") 297: #set ($individualPosition = $individual.position) 298: #set ($posVec = $individualPosition.split("/")) 299: #set ($individualPosition = $posVec[0]) 300: 301: #set ($show = "") 302: 303: #set ($showAllPlayers = $options.get("stats_show_all_players")) 304: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 305: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 306: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 307: #if ($showPosition) 308: #set ($indPositionsList = $lineupShowPosition.get($p)) 309: #foreach ($indPos in $indPositionsList) 310: #if ($individualPosition.equalsIgnoreCase($indPos)) 311: #set ($show = "y") 312: #end 313: #end 314: #end 315: 316: #if ($showStat) 317: #set ($statsList = $lineupShowStat.get($p)) 318: #foreach ($statElem in $statsList) 319: #if ($stats.get($statElem) > 0) 320: #set ($show = "y") 321: #end 322: #end 323: #end 324: 325: #if ($min) 326: #set ($test = 0) 327: #set ($test = $stats.get($min)) 328: #if ($test > 0) 329: #set ($show = "y") 330: #end 331: #end 332: #else 333: #set ($show = "y") 334: #end 335: 336: #if ($show.length() > 0) 337: #set ($showCount = $showCount + 1) 338: #if ($showCount <= 125) 339: <tr> 340: #if ($isIncluded) 341: <td class="text-nowrap text-center">${individual.uniform}</td> 342: #elseif ($sort != 'name' && ! $isSharedMeets) 343: <td class="text-nowrap text-center"> 344: ## Need to figure out what value is 345: #set ($value = ${stats.get($sort)}) 346: #if (!($value == $rankValue)) 347: ##This is a new rank value... let's update our ranking 348: #set ($rank = $showCount) 349: #set ($rankValue = $value) 350: #end 351: ${rank} 352: </td> 353: #end 354: 355: <td class="text-nowrap text-left"> 356: #if ($isSharedMeets) 357: ${individual.firstName} ${individual.lastName} 358: #else 359: <a href="${page.url}/${individual.pageName}"> 360: #if ($isIncluded) 361: ${individual.firstName} 362: #elseif ($individual.firstName.length() > 0) 363: ${individual.firstName.substring(0, 1)} 364: #end 365: ${individual.lastName} 366: </a> 367: #end 368: </td> 369: 370: #if ($isIncluded) 371: <td class="text-nowrap text-center">$!{individual.year}</td> 372: <td class="text-nowrap text-center"> 373: #if ($individual.positionAbbreviation) 374: $!individual.positionAbbreviation 375: #else 376: $!individual.position 377: #end 378: </td> 379: #elseif ($isSharedMeets) 380: <td class="text-nowrap text-center">$!{individual.year}</td> 381: #else 382: #set ($teamname = "") 383: #set ($teamname = $individual.team) 384: 385: 386: #set ($teamURL = "teams?id=${individual.teamId}") 387: #foreach ($entry in $confTeams.entrySet()) 388: #if ($entry.value.teams.containsValue($teamname)) 389: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 390: #end 391: #end 392: 393: 394: #if($teamAbbr.size() > 0) 395: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 396: #* 397: #set ($teamname = $teamAbbr.get($individual.teamId)) 398: #set ($teamname = $teamAbbr.get($individual.team)) 399: *# 400: #end 401: 402: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 403: #if ($teamname.length() > 0) 404: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 405: <a href="$teamURL">${teamname}</a> 406: #end 407: </td> 408: #end 409: 410: ## Briefs 411: #foreach ($key in $briefs.keySet()) 412: #set ($value = "-") 413: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 414: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 415: #if ($value.length() > 0) 416: $value 417: #else 418: - 419: #end 420: </td> 421: #end 422: </tr> 423: #end ## page limit 424: #end ## showing 425: #end ## foreach individual 426: </tbody> 427: #if ($individuals.size() == 0) 428: <caption> 429: #if ($isSharedMeets) 430: This team's roster is empty 431: #elseif ($hasBiosBeforeFilter) 432: No players meet the minimum 433: #else 434: No stats are available at this time 435: #end 436: </caption> 437: #end 438: </table> 439: </div> 440: #if ($isIncluded || $showTotalRow) 441: <div class="table-totals mb-3 small text-start text-muted p-2"> 442: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 443: <div class="heading">Totals:</div> 444: #set ($teamStats = $request.getAttribute("teamStats")) 445: <div class="calculated-totals m-0"> 446: #foreach ($key in $briefs.keySet()) 447: #set ($value = "-") 448: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 449: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 450: #end 451: </div> 452: </div> 453: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 454: <div class="heading">Opponents:</div> 455: <div class="calculated-totals m-0"> 456: #foreach ($key in $briefs.keySet()) 457: #set ($keyopp = "${key}opp") 458: #set ($value = "-") 459: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 460: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 461: #end 462: </div> 463: </div> 464: </div> 465: #end 466: #end ## printPlayers 467: 468: #macro (printFilters) 469: <div class="py-3 border-top border-bottom my-3 d-print-none"> 470: <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"> 471: ## #printTeamsFilter 472: <div class="flex-fill"> 473: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 474: $!request.setAttribute("pageObj", $page) 475: $website.include("conf-season-filter-template") 476: </div> 477: </div> 478: <div class="" role="group" aria-label="Print friendly version"> 479: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 480: </div> 481: </div> 482: </div> 483: #end ## printFilters 484: 485: ### END MACROS ### 486: 487: ## TEAMS LAYOUTS FOR SHARED MEETS 488: #if ($isSharedMeets && !$isSingleTeam) 489: 490: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 491: #set ($teamsThreshold = 20) 492: 493: #if ($page.title.length() > 0) 494: <h1>$page.title</h1> 495: #else 496: <h1>Teams</h1> 497: #end 498: 499: #if ($teams.size() > $teamsThreshold) 500: 501: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 502: 503: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 504: <div class="alphabet-filter-chars"> 505: <span class="alphabet-filter-border"> | </span> 506: #foreach ($alphabet in $alphabets.split("")) 507: #if ($alphabet.length() > 0) 508: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 509: <span class="alphabet-filter-border"> | </span> 510: #end 511: #end 512: </div> ## alphabet-filter-char 513: 514: <div class="alphabet-filter-list"> 515: <div class="alphabet-filter-column"> 516: #set ($lastAlphabet = "") 517: #set ($counter = 0) 518: 519: #foreach ($team in $teams) 520: #set ($teamName = $team.value) 521: 522: #if ($teamName.charAt(0) != $lastAlphabet) 523: #set ($counter = $counter + 1) 524: #if ($counter > 1) 525: </div> ## alphabet-filter-section 526: #end 527: #if ($counter == 8 || $counter == 15) 528: </div> ## alphabet-filter-column 529: <div class="alphabet-filter-column"> 530: #end 531: #set ($lastAlphabet = $teamName.charAt(0)) 532: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 533: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 534: #end 535: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 536: #end 537: </div> ## alphabet-filter-section 538: </div> ## alphabet-filter-column 539: </div> ## alphabet-filter-list 540: </div> ## alphabet-filter 541: 542: #else ## plain list 543: 544: <div class="stats-container table-responsive"> 545: <table class="table table-hover"> 546: #foreach ($team in $teams) 547: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 548: #end 549: #if ($teams.size() == 0) 550: <tr><td>There are no teams that match this criteria</td></tr> 551: #end 552: </table> 553: </div> 554: 555: #end ## teams threshold 556: 557: ## TEAMINFO ROSTER LAYOUT 558: #elseif ($isIncluded && $view == 'roster') 559: 560: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 561: <div class="stats-container table-responsive"> 562: <table class="table table-hover"> 563: <thead class="thead-dark"> 564: <tr> 565: <th scope="col" class="text-nowrap text-center w-1">#</th> 566: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 570: #if ($baseball) 571: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 572: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 573: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 574: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 575: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 576: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 577: #end 578: </tr> 579: </thead> 580: <tbody> 581: #foreach ($individual in $individuals) 582: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 583: <td scope="row" class="text text-center">${individual.uniform}</td> 584: <td class="text text-left text-start pinned-col"> 585: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 586: </td> 587: <td class="text-center"> 588: #if ($individual.positionAbbreviation) 589: $!individual.positionAbbreviation 590: #else 591: $!individual.position 592: #end 593: </td> 594: <td class="text-center">$!{individual.year}</td> 595: <td class="text-center"> 596: #if($additionalRosterStatus) 597: $individual.playerStatus 598: #elseif ($individual.active) 599: Active 600: #else 601: Inactive 602: #end 603: </td> 604: #if ($baseball) 605: <td class="text-center">$!{individual.dataMap["height"]}</td> 606: <td class="text-center">$!{individual.dataMap["weight"]}</td> 607: <td class="text-center">$!{individual.dataMap["bats"]}</td> 608: <td class="text-center">$!{individual.dataMap["throws"]}</td> 609: <td class="text-center">$!{individual.dataMap["born"]}</td> 610: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 611: #end 612: </tr> 613: #end 614: </tbody> 615: </table> 616: </div> 617: 618: ## SHARED MEETS PLAYERS 619: #elseif ($isSharedMeets) 620: 621: #if ($teamId) 622: #set ($playersPageTitle = $page.title) 623: #foreach($team in $page.teams.entrySet()) 624: #if ($teamId == $team.key) 625: #set ($playersPageTitle = $team.value) 626: #end 627: #end 628: <h1>$playersPageTitle</h1> 629: #end 630: 631: #printPlayers($pos, $restriction) 632: 633: ## PLAYERS / LINEUP 634: #else 635: 636: ## do not show these options on the lineup page 637: #if (not $isIncluded) 638: 639: #if ($isAjax) 640: $website.decorate('') 641: #printPlayers($pos $restriction) 642: #stop 643: #end 644: 645: ## ARCHIVES 646: #if ($page.contentType == "stat/bios") 647: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 648: #end 649: 650: #if ($page.title.length() > 0 && !$isSharedMeets) 651: <h1>$page.title</h1> 652: #else 653: <h1>Player Stats</h1> 654: #end 655: 656: #printFilters 657: 658: ##if ($minimum.length() > 0) 659: <!--<div class="clearfix align-right">$!minimum</div>--> 660: ##end 661: 662: #if ($showconf && !$isSharedMeets) 663: $request.setAttribute("icl-responsive-tabs-script", true) 664: <div class="tab-container"> 665: <div class="tab-nav m-0"> 666: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 667: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 668: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 669: </li> 670: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 671: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 672: </li> 673: </ul> 674: </div> 675: 676: <div class="tab-content p-3 border"> 677: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 678: #printBriefsCategories("0") 679: </div> 680: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 681: #printBriefsCategories("1") 682: </div> 683: </div> 684: </div> ## tab-container overall/conf 685: #else 686: #printBriefsCategories($restriction) 687: #end 688: 689: #else 690: #printBriefsCategories($restriction) 691: #end ## not isIncluded 692: #end ## LAYOUTS 693: 694: $wiki.su |
Scoring
# | Name | Yr | Pos | pts | pts/g | rush | rec | kr | pr | int | fum | xpm | fgm | 2pt | misc | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
11 | Kayla Burrows | Sr | WR/LB | 44 | 7.3 | - | 6 | - | 1 | 0 | - | 0 | - | 1 | 0 | ||||
7 | Hayden Rupe | Sr | WR/CB | 30 | 5.0 | 1 | 3 | - | - | 1 | - | - | - | - | 0 | ||||
3 | Breaza Robinson | Jr | WR/LB | 12 | 2.0 | - | 2 | - | 0 | 0 | - | - | - | - | 0 | ||||
16 | Samantha Wilson | So | QB | 12 | 2.0 | 2 | - | - | - | - | - | 0 | - | 0 | 0 | ||||
4 | Emma Balacco | Fr | RB/CB | 6 | 1.2 | 0 | 1 | - | - | - | - | - | - | - | 0 | ||||
1 | Jasmine Henry | Fr | RB/R | 6 | 1.2 | 0 | 0 | - | - | 1 | - | - | - | - | 0 | ||||
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 1.0 | 0 | 1 | - | 0 | 0 | - | - | - | - | 0 | ||||
13 | Ciara Zino | Fr | QB/S | 6 | 1.2 | 1 | - | - | - | - | - | - | - | - | 0 |
There was a problem with a Velocity script | |
Page | /stats-bios-template |
Error | Error invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at cjksntz2wn52hh7y/stats-bios-template[line 299, column 52] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: ## STAT LABELS 50: $website.includeAgain("stats-labels") 51: #set ($statLabels = $!request.getAttribute("statLabels")) 52: 53: #set ($pos = "") 54: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 55: 56: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 57: $website.decorate("") 58: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 59: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 60: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 61: #end 62: 63: $response.sendRedirect($targetURL) 64: #stop 65: #end 66: 67: ## We want to leave this undefined so we can test for that 68: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 69: #if ($minEsc.length() > 0) 70: #set ($min = $minEsc) 71: #end 72: 73: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 74: 75: ## #set ($labels = $labels.get($positions.get($pos))) 76: 77: #set ($url = $request.requestURI) 78: #set ($view = "") 79: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 80: 81: #set ($restriction = "0") 82: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 83: #if ($restrictionEsc.length() > 0) 84: #set ($restriction = $restrictionEsc) 85: #end 86: 87: $website.include("standings?tmpl=stats-standings-abbr-template") 88: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 89: 90: #* 91: <!-- 92: Debug 93: URL: $url 94: isIncluded: $isIncluded 95: View: ${view} 96: Position: $pos 97: Sort: $sort 98: isAjax: $isAjax 99: isSharedMeets = $isSharedMeets 100: page.getTeamIDs.size() = $page.getTeamIDs().size() 101: teamId = $teamId 102: page.teams.entrySet() = $page.teams.entrySet().size() 103: isSingleTeam = $isSingleTeam 104: --> 105: *# 106: 107: #if ($locale == "en_us") 108: #set ($defLabel = "Defense") 109: #elseif ($locale == "en_gb") 110: #set ($defLabel = "Defence") 111: #end 112: 113: #macro (printTableHeader $label $class) 114: ## Hack for now 115: #set ($pos = "") 116: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 117: #set ($labels = $labels.get($pos)) 118: <th class="text-uppercase text-nowrap $class" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 119: #end 120: 121: #macro(printBriefsCategories $r) 122: #set ($ariaLabel = "Overall Stats") 123: #if ($r == "1") 124: #set ($ariaLabel = "Conference Stats") 125: #end 126: #set ($briefsCategories = []) 127: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 128: <div class="tab-container"> 129: #set ($activeCategory = "") 130: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 131: #if ($foreach.first) 132: #set ($activeCategory = $entry.key) 133: #end 134: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 135: #set ($activeCategory = $entry.key) 136: #end 137: #end 138: 139: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 140: #foreach ($category in $briefsCategoriesLabels.entrySet()) 141: <li class="tabs-category nav-item text-center"> 142: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 143: </li> 144: #end 145: </ul> 146: 147: <div class="tab-content py-3"> 148: #foreach($category in $briefsCategoriesLabels.entrySet()) 149: 150: #set ($activeSubCategory = "") 151: #foreach ($subCategory in $category.value.entrySet()) 152: #if ($foreach.first) 153: #set ($activeSubCategory = $subCategory.value) 154: #end 155: #if ($pos == $subCategory.key) 156: #set ($activeSubCategory = $subCategory.value) 157: #end 158: #end 159: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 160: <div class="tab-container"> 161: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 162: <div class="secondary-tab-select-container flex-fill"> 163: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 164: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 165: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 166: #end 167: </select> 168: <script> 169: $('.tab-nav-select-helper').on('change', function(e) { 170: var id = $(this).val(); 171: $('a[data-bs-target="' + id + '"]').tab('show'); 172: }); 173: </script> 174: </div> 175: </div> 176: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <li class="tabs-category nav-item"> 179: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 180: </li> 181: #end 182: </ul> 183: 184: <div class="tab-content"> 185: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 186: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 187: #printPlayers($briefsCat.key, $r) 188: </div> 189: #end 190: </div> 191: </div> 192: </div> 193: #end 194: </div> 195: </div> ## tab-container 196: #else 197: #printPlayers($pos, $r) 198: #end 199: #end ## printBriefsCategories 200: 201: #macro(printPlayers $p $r) 202: $request.setAttribute("icl-dataTables-script", true) 203: 204: #set ($briefs = $briefs.get($positions.get($p))) 205: 206: #set ($sortOrder = "asc") 207: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 208: #set ($sortOrder = "desc") 209: #end 210: 211: ## player stats (conference, naia) 212: #set ($searching = "true") 213: #set ($paging = "true") 214: #set ($info = "true") 215: #set ($fixedColumnStart = 1) 216: 217: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 218: #set ($fixedColumnStart = 2) 219: #end 220: 221: #if ($isIncluded) 222: ## lineup pages 223: #set ($searching = "false") 224: #set ($paging = "false") 225: #set ($info = "false") 226: #end 227: 228: 229: ## FAISAL CHANGES 230: $!request.setAttribute("pageObj", $page) 231: $website.includeAgain("get-conf-pages?pageName=teams") 232: #set ($confPages = $!request.getAttribute("conf_pages")) 233: #set ($confTeams = {}) 234: 235: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 236: #foreach ($conf in $confPages) 237: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 238: #end 239: 240: <div class="stats-container table-responsive-via-datatables"> 241: <table class="table table-hover nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="false" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 242: #if ($minimum.length() > 0) 243: <caption class="caption-side-top">$!minimum</caption> 244: #end 245: <thead class="thead-dark"> 246: <tr> 247: #if ($isIncluded) 248: #printTableHeader("#", "text-center w-1") 249: #elseif ($sort != 'name' && ! $isSharedMeets) 250: #printTableHeader("Rk", "text-center w-1") 251: #end 252: 253: #if ($cansort == 'n' || $isSharedMeets) 254: #printTableHeader("Name", "text-left") 255: #else 256: <th class="text-left text-uppercase text-nowrap">Name</th> 257: #end 258: 259: #if ($isIncluded) 260: #printTableHeader("Yr", "text-center") 261: #printTableHeader("Pos", "text-center") 262: #elseif ($isSharedMeets) 263: #printTableHeader("Yr", "text-center") 264: #else 265: #printTableHeader("Team", "text-center") 266: #end 267: 268: ## Hack for now 269: #set ($pos = "") 270: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 271: #set ($labels = $labels.get($pos)) 272: 273: #foreach ($key in $briefs.keySet()) 274: #if ($cansort == 'n') 275: #printTableHeader($briefs.get($key), "text-center") 276: #else 277: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 278: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 279: </th> 280: #end 281: #end 282: </tr> 283: </thead> 284: #set ($showCount = 0) 285: #set ($rankValue = "abb") 286: #set ($counter = 0) 287: 288: <tbody> 289: #foreach ($individual in $individuals) 290: #if ($r == "1") 291: #set ($stats = $individual.statsConference) 292: #else 293: #set ($stats = $individual.stats) 294: #end 295: 296: #set ($individualPosition = "") 297: #set ($individualPosition = $individual.position) 298: #set ($posVec = $individualPosition.split("/")) 299: #set ($individualPosition = $posVec[0]) 300: 301: #set ($show = "") 302: 303: #set ($showAllPlayers = $options.get("stats_show_all_players")) 304: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 305: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 306: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 307: #if ($showPosition) 308: #set ($indPositionsList = $lineupShowPosition.get($p)) 309: #foreach ($indPos in $indPositionsList) 310: #if ($individualPosition.equalsIgnoreCase($indPos)) 311: #set ($show = "y") 312: #end 313: #end 314: #end 315: 316: #if ($showStat) 317: #set ($statsList = $lineupShowStat.get($p)) 318: #foreach ($statElem in $statsList) 319: #if ($stats.get($statElem) > 0) 320: #set ($show = "y") 321: #end 322: #end 323: #end 324: 325: #if ($min) 326: #set ($test = 0) 327: #set ($test = $stats.get($min)) 328: #if ($test > 0) 329: #set ($show = "y") 330: #end 331: #end 332: #else 333: #set ($show = "y") 334: #end 335: 336: #if ($show.length() > 0) 337: #set ($showCount = $showCount + 1) 338: #if ($showCount <= 125) 339: <tr> 340: #if ($isIncluded) 341: <td class="text-nowrap text-center">${individual.uniform}</td> 342: #elseif ($sort != 'name' && ! $isSharedMeets) 343: <td class="text-nowrap text-center"> 344: ## Need to figure out what value is 345: #set ($value = ${stats.get($sort)}) 346: #if (!($value == $rankValue)) 347: ##This is a new rank value... let's update our ranking 348: #set ($rank = $showCount) 349: #set ($rankValue = $value) 350: #end 351: ${rank} 352: </td> 353: #end 354: 355: <td class="text-nowrap text-left"> 356: #if ($isSharedMeets) 357: ${individual.firstName} ${individual.lastName} 358: #else 359: <a href="${page.url}/${individual.pageName}"> 360: #if ($isIncluded) 361: ${individual.firstName} 362: #elseif ($individual.firstName.length() > 0) 363: ${individual.firstName.substring(0, 1)} 364: #end 365: ${individual.lastName} 366: </a> 367: #end 368: </td> 369: 370: #if ($isIncluded) 371: <td class="text-nowrap text-center">$!{individual.year}</td> 372: <td class="text-nowrap text-center"> 373: #if ($individual.positionAbbreviation) 374: $!individual.positionAbbreviation 375: #else 376: $!individual.position 377: #end 378: </td> 379: #elseif ($isSharedMeets) 380: <td class="text-nowrap text-center">$!{individual.year}</td> 381: #else 382: #set ($teamname = "") 383: #set ($teamname = $individual.team) 384: 385: 386: #set ($teamURL = "teams?id=${individual.teamId}") 387: #foreach ($entry in $confTeams.entrySet()) 388: #if ($entry.value.teams.containsValue($teamname)) 389: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 390: #end 391: #end 392: 393: 394: #if($teamAbbr.size() > 0) 395: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 396: #* 397: #set ($teamname = $teamAbbr.get($individual.teamId)) 398: #set ($teamname = $teamAbbr.get($individual.team)) 399: *# 400: #end 401: 402: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 403: #if ($teamname.length() > 0) 404: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 405: <a href="$teamURL">${teamname}</a> 406: #end 407: </td> 408: #end 409: 410: ## Briefs 411: #foreach ($key in $briefs.keySet()) 412: #set ($value = "-") 413: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 414: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 415: #if ($value.length() > 0) 416: $value 417: #else 418: - 419: #end 420: </td> 421: #end 422: </tr> 423: #end ## page limit 424: #end ## showing 425: #end ## foreach individual 426: </tbody> 427: #if ($individuals.size() == 0) 428: <caption> 429: #if ($isSharedMeets) 430: This team's roster is empty 431: #elseif ($hasBiosBeforeFilter) 432: No players meet the minimum 433: #else 434: No stats are available at this time 435: #end 436: </caption> 437: #end 438: </table> 439: </div> 440: #if ($isIncluded || $showTotalRow) 441: <div class="table-totals mb-3 small text-start text-muted p-2"> 442: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 443: <div class="heading">Totals:</div> 444: #set ($teamStats = $request.getAttribute("teamStats")) 445: <div class="calculated-totals m-0"> 446: #foreach ($key in $briefs.keySet()) 447: #set ($value = "-") 448: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 449: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 450: #end 451: </div> 452: </div> 453: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 454: <div class="heading">Opponents:</div> 455: <div class="calculated-totals m-0"> 456: #foreach ($key in $briefs.keySet()) 457: #set ($keyopp = "${key}opp") 458: #set ($value = "-") 459: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 460: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 461: #end 462: </div> 463: </div> 464: </div> 465: #end 466: #end ## printPlayers 467: 468: #macro (printFilters) 469: <div class="py-3 border-top border-bottom my-3 d-print-none"> 470: <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"> 471: ## #printTeamsFilter 472: <div class="flex-fill"> 473: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 474: $!request.setAttribute("pageObj", $page) 475: $website.include("conf-season-filter-template") 476: </div> 477: </div> 478: <div class="" role="group" aria-label="Print friendly version"> 479: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 480: </div> 481: </div> 482: </div> 483: #end ## printFilters 484: 485: ### END MACROS ### 486: 487: ## TEAMS LAYOUTS FOR SHARED MEETS 488: #if ($isSharedMeets && !$isSingleTeam) 489: 490: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 491: #set ($teamsThreshold = 20) 492: 493: #if ($page.title.length() > 0) 494: <h1>$page.title</h1> 495: #else 496: <h1>Teams</h1> 497: #end 498: 499: #if ($teams.size() > $teamsThreshold) 500: 501: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 502: 503: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 504: <div class="alphabet-filter-chars"> 505: <span class="alphabet-filter-border"> | </span> 506: #foreach ($alphabet in $alphabets.split("")) 507: #if ($alphabet.length() > 0) 508: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 509: <span class="alphabet-filter-border"> | </span> 510: #end 511: #end 512: </div> ## alphabet-filter-char 513: 514: <div class="alphabet-filter-list"> 515: <div class="alphabet-filter-column"> 516: #set ($lastAlphabet = "") 517: #set ($counter = 0) 518: 519: #foreach ($team in $teams) 520: #set ($teamName = $team.value) 521: 522: #if ($teamName.charAt(0) != $lastAlphabet) 523: #set ($counter = $counter + 1) 524: #if ($counter > 1) 525: </div> ## alphabet-filter-section 526: #end 527: #if ($counter == 8 || $counter == 15) 528: </div> ## alphabet-filter-column 529: <div class="alphabet-filter-column"> 530: #end 531: #set ($lastAlphabet = $teamName.charAt(0)) 532: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 533: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 534: #end 535: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 536: #end 537: </div> ## alphabet-filter-section 538: </div> ## alphabet-filter-column 539: </div> ## alphabet-filter-list 540: </div> ## alphabet-filter 541: 542: #else ## plain list 543: 544: <div class="stats-container table-responsive"> 545: <table class="table table-hover"> 546: #foreach ($team in $teams) 547: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 548: #end 549: #if ($teams.size() == 0) 550: <tr><td>There are no teams that match this criteria</td></tr> 551: #end 552: </table> 553: </div> 554: 555: #end ## teams threshold 556: 557: ## TEAMINFO ROSTER LAYOUT 558: #elseif ($isIncluded && $view == 'roster') 559: 560: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 561: <div class="stats-container table-responsive"> 562: <table class="table table-hover"> 563: <thead class="thead-dark"> 564: <tr> 565: <th scope="col" class="text-nowrap text-center w-1">#</th> 566: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 570: #if ($baseball) 571: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 572: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 573: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 574: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 575: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 576: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 577: #end 578: </tr> 579: </thead> 580: <tbody> 581: #foreach ($individual in $individuals) 582: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 583: <td scope="row" class="text text-center">${individual.uniform}</td> 584: <td class="text text-left text-start pinned-col"> 585: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 586: </td> 587: <td class="text-center"> 588: #if ($individual.positionAbbreviation) 589: $!individual.positionAbbreviation 590: #else 591: $!individual.position 592: #end 593: </td> 594: <td class="text-center">$!{individual.year}</td> 595: <td class="text-center"> 596: #if($additionalRosterStatus) 597: $individual.playerStatus 598: #elseif ($individual.active) 599: Active 600: #else 601: Inactive 602: #end 603: </td> 604: #if ($baseball) 605: <td class="text-center">$!{individual.dataMap["height"]}</td> 606: <td class="text-center">$!{individual.dataMap["weight"]}</td> 607: <td class="text-center">$!{individual.dataMap["bats"]}</td> 608: <td class="text-center">$!{individual.dataMap["throws"]}</td> 609: <td class="text-center">$!{individual.dataMap["born"]}</td> 610: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 611: #end 612: </tr> 613: #end 614: </tbody> 615: </table> 616: </div> 617: 618: ## SHARED MEETS PLAYERS 619: #elseif ($isSharedMeets) 620: 621: #if ($teamId) 622: #set ($playersPageTitle = $page.title) 623: #foreach($team in $page.teams.entrySet()) 624: #if ($teamId == $team.key) 625: #set ($playersPageTitle = $team.value) 626: #end 627: #end 628: <h1>$playersPageTitle</h1> 629: #end 630: 631: #printPlayers($pos, $restriction) 632: 633: ## PLAYERS / LINEUP 634: #else 635: 636: ## do not show these options on the lineup page 637: #if (not $isIncluded) 638: 639: #if ($isAjax) 640: $website.decorate('') 641: #printPlayers($pos $restriction) 642: #stop 643: #end 644: 645: ## ARCHIVES 646: #if ($page.contentType == "stat/bios") 647: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 648: #end 649: 650: #if ($page.title.length() > 0 && !$isSharedMeets) 651: <h1>$page.title</h1> 652: #else 653: <h1>Player Stats</h1> 654: #end 655: 656: #printFilters 657: 658: ##if ($minimum.length() > 0) 659: <!--<div class="clearfix align-right">$!minimum</div>--> 660: ##end 661: 662: #if ($showconf && !$isSharedMeets) 663: $request.setAttribute("icl-responsive-tabs-script", true) 664: <div class="tab-container"> 665: <div class="tab-nav m-0"> 666: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 667: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 668: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 669: </li> 670: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 671: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 672: </li> 673: </ul> 674: </div> 675: 676: <div class="tab-content p-3 border"> 677: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 678: #printBriefsCategories("0") 679: </div> 680: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 681: #printBriefsCategories("1") 682: </div> 683: </div> 684: </div> ## tab-container overall/conf 685: #else 686: #printBriefsCategories($restriction) 687: #end 688: 689: #else 690: #printBriefsCategories($restriction) 691: #end ## not isIncluded 692: #end ## LAYOUTS 693: 694: $wiki.su |
Defense
# | Name | Yr | Pos | gp | tkl | ast | tot | tkl/g | sck | yds | tfl | yds | ff | fr | yds | int | yds | brup | blk |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Breaza Robinson | Jr | WR/LB | 6 | 45 | 0 | 45.0 | 7.5 | - | - | 0.0 | - | - | - | - | 1 | 9 | 3 | - |
11 | Kayla Burrows | Sr | WR/LB | 6 | 38 | 0 | 38.0 | 6.3 | - | - | 1.0 | 2 | - | - | - | 2 | 22 | 3 | - |
4 | Emma Balacco | Fr | RB/CB | 5 | 16 | 0 | 16.0 | 3.2 | - | - | 0.0 | - | - | - | - | - | - | 1 | - |
1 | Jasmine Henry | Fr | RB/R | 5 | 15 | 0 | 15.0 | 3.0 | 2.0 | 7 | 0.0 | - | - | - | - | 1 | 2 | 2 | - |
14 | Malia Domingo | Sr | RB/CB | 3 | 9 | 0 | 9.0 | 3.0 | - | - | 0.0 | - | - | - | - | - | - | - | - |
15 | Jada Dillard | Fr | RB/R | 6 | 8 | 0 | 8.0 | 1.3 | 3.0 | 15 | 0.0 | - | - | - | - | - | - | - | - |
9 | Zoe Melo | Jr | WR/S | 3 | 6 | 0 | 6.0 | 2.0 | - | - | 0.0 | - | - | - | - | 1 | 19 | - | - |
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 6 | 0 | 6.0 | 1.0 | - | - | 0.0 | - | - | - | - | 2 | 21 | 3 | - |
22 | Samantha Gonzalez | Jr | WR/CB | 3 | 5 | 0 | 5.0 | 1.7 | - | - | 0.0 | - | - | - | - | - | - | - | - |
24 | Cameron Laine | Sr | WR/S | 6 | 5 | 0 | 5.0 | .8 | - | - | 0.0 | - | - | - | - | 1 | 2 | - | - |
7 | Hayden Rupe | Sr | WR/CB | 6 | 5 | 0 | 5.0 | .8 | - | - | 0.0 | - | - | - | - | 1 | 63 | 1 | - |
13 | Ciara Zino | Fr | QB/S | 5 | 5 | 0 | 5.0 | 1.0 | - | - | 0.0 | - | - | - | - | - | - | 1 | - |
2 | Nadia Arroyo | Sr | RB/R | 3 | 4 | 0 | 4.0 | 1.3 | - | - | 0.0 | - | - | - | - | - | - | - | - |
10 | Gabby Franzose | Fr | WR/LB | 4 | 4 | 0 | 4.0 | 1.0 | - | - | 0.0 | - | - | - | - | - | - | 1 | - |
18 | Kailey Wine | Fr | C/LB | 2 | 1 | 0 | 1.0 | .5 | - | - | 0.0 | - | - | - | - | - | - | - | - |
There was a problem with a Velocity script | |
Page | /stats-bios-template |
Error | Error invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at cjksntz2wn52hh7y/stats-bios-template[line 299, column 52] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: ## STAT LABELS 50: $website.includeAgain("stats-labels") 51: #set ($statLabels = $!request.getAttribute("statLabels")) 52: 53: #set ($pos = "") 54: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 55: 56: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 57: $website.decorate("") 58: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 59: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 60: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 61: #end 62: 63: $response.sendRedirect($targetURL) 64: #stop 65: #end 66: 67: ## We want to leave this undefined so we can test for that 68: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 69: #if ($minEsc.length() > 0) 70: #set ($min = $minEsc) 71: #end 72: 73: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 74: 75: ## #set ($labels = $labels.get($positions.get($pos))) 76: 77: #set ($url = $request.requestURI) 78: #set ($view = "") 79: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 80: 81: #set ($restriction = "0") 82: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 83: #if ($restrictionEsc.length() > 0) 84: #set ($restriction = $restrictionEsc) 85: #end 86: 87: $website.include("standings?tmpl=stats-standings-abbr-template") 88: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 89: 90: #* 91: <!-- 92: Debug 93: URL: $url 94: isIncluded: $isIncluded 95: View: ${view} 96: Position: $pos 97: Sort: $sort 98: isAjax: $isAjax 99: isSharedMeets = $isSharedMeets 100: page.getTeamIDs.size() = $page.getTeamIDs().size() 101: teamId = $teamId 102: page.teams.entrySet() = $page.teams.entrySet().size() 103: isSingleTeam = $isSingleTeam 104: --> 105: *# 106: 107: #if ($locale == "en_us") 108: #set ($defLabel = "Defense") 109: #elseif ($locale == "en_gb") 110: #set ($defLabel = "Defence") 111: #end 112: 113: #macro (printTableHeader $label $class) 114: ## Hack for now 115: #set ($pos = "") 116: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 117: #set ($labels = $labels.get($pos)) 118: <th class="text-uppercase text-nowrap $class" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 119: #end 120: 121: #macro(printBriefsCategories $r) 122: #set ($ariaLabel = "Overall Stats") 123: #if ($r == "1") 124: #set ($ariaLabel = "Conference Stats") 125: #end 126: #set ($briefsCategories = []) 127: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 128: <div class="tab-container"> 129: #set ($activeCategory = "") 130: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 131: #if ($foreach.first) 132: #set ($activeCategory = $entry.key) 133: #end 134: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 135: #set ($activeCategory = $entry.key) 136: #end 137: #end 138: 139: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 140: #foreach ($category in $briefsCategoriesLabels.entrySet()) 141: <li class="tabs-category nav-item text-center"> 142: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 143: </li> 144: #end 145: </ul> 146: 147: <div class="tab-content py-3"> 148: #foreach($category in $briefsCategoriesLabels.entrySet()) 149: 150: #set ($activeSubCategory = "") 151: #foreach ($subCategory in $category.value.entrySet()) 152: #if ($foreach.first) 153: #set ($activeSubCategory = $subCategory.value) 154: #end 155: #if ($pos == $subCategory.key) 156: #set ($activeSubCategory = $subCategory.value) 157: #end 158: #end 159: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 160: <div class="tab-container"> 161: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 162: <div class="secondary-tab-select-container flex-fill"> 163: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 164: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 165: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 166: #end 167: </select> 168: <script> 169: $('.tab-nav-select-helper').on('change', function(e) { 170: var id = $(this).val(); 171: $('a[data-bs-target="' + id + '"]').tab('show'); 172: }); 173: </script> 174: </div> 175: </div> 176: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <li class="tabs-category nav-item"> 179: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 180: </li> 181: #end 182: </ul> 183: 184: <div class="tab-content"> 185: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 186: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 187: #printPlayers($briefsCat.key, $r) 188: </div> 189: #end 190: </div> 191: </div> 192: </div> 193: #end 194: </div> 195: </div> ## tab-container 196: #else 197: #printPlayers($pos, $r) 198: #end 199: #end ## printBriefsCategories 200: 201: #macro(printPlayers $p $r) 202: $request.setAttribute("icl-dataTables-script", true) 203: 204: #set ($briefs = $briefs.get($positions.get($p))) 205: 206: #set ($sortOrder = "asc") 207: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 208: #set ($sortOrder = "desc") 209: #end 210: 211: ## player stats (conference, naia) 212: #set ($searching = "true") 213: #set ($paging = "true") 214: #set ($info = "true") 215: #set ($fixedColumnStart = 1) 216: 217: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 218: #set ($fixedColumnStart = 2) 219: #end 220: 221: #if ($isIncluded) 222: ## lineup pages 223: #set ($searching = "false") 224: #set ($paging = "false") 225: #set ($info = "false") 226: #end 227: 228: 229: ## FAISAL CHANGES 230: $!request.setAttribute("pageObj", $page) 231: $website.includeAgain("get-conf-pages?pageName=teams") 232: #set ($confPages = $!request.getAttribute("conf_pages")) 233: #set ($confTeams = {}) 234: 235: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 236: #foreach ($conf in $confPages) 237: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 238: #end 239: 240: <div class="stats-container table-responsive-via-datatables"> 241: <table class="table table-hover nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="false" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 242: #if ($minimum.length() > 0) 243: <caption class="caption-side-top">$!minimum</caption> 244: #end 245: <thead class="thead-dark"> 246: <tr> 247: #if ($isIncluded) 248: #printTableHeader("#", "text-center w-1") 249: #elseif ($sort != 'name' && ! $isSharedMeets) 250: #printTableHeader("Rk", "text-center w-1") 251: #end 252: 253: #if ($cansort == 'n' || $isSharedMeets) 254: #printTableHeader("Name", "text-left") 255: #else 256: <th class="text-left text-uppercase text-nowrap">Name</th> 257: #end 258: 259: #if ($isIncluded) 260: #printTableHeader("Yr", "text-center") 261: #printTableHeader("Pos", "text-center") 262: #elseif ($isSharedMeets) 263: #printTableHeader("Yr", "text-center") 264: #else 265: #printTableHeader("Team", "text-center") 266: #end 267: 268: ## Hack for now 269: #set ($pos = "") 270: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 271: #set ($labels = $labels.get($pos)) 272: 273: #foreach ($key in $briefs.keySet()) 274: #if ($cansort == 'n') 275: #printTableHeader($briefs.get($key), "text-center") 276: #else 277: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 278: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 279: </th> 280: #end 281: #end 282: </tr> 283: </thead> 284: #set ($showCount = 0) 285: #set ($rankValue = "abb") 286: #set ($counter = 0) 287: 288: <tbody> 289: #foreach ($individual in $individuals) 290: #if ($r == "1") 291: #set ($stats = $individual.statsConference) 292: #else 293: #set ($stats = $individual.stats) 294: #end 295: 296: #set ($individualPosition = "") 297: #set ($individualPosition = $individual.position) 298: #set ($posVec = $individualPosition.split("/")) 299: #set ($individualPosition = $posVec[0]) 300: 301: #set ($show = "") 302: 303: #set ($showAllPlayers = $options.get("stats_show_all_players")) 304: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 305: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 306: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 307: #if ($showPosition) 308: #set ($indPositionsList = $lineupShowPosition.get($p)) 309: #foreach ($indPos in $indPositionsList) 310: #if ($individualPosition.equalsIgnoreCase($indPos)) 311: #set ($show = "y") 312: #end 313: #end 314: #end 315: 316: #if ($showStat) 317: #set ($statsList = $lineupShowStat.get($p)) 318: #foreach ($statElem in $statsList) 319: #if ($stats.get($statElem) > 0) 320: #set ($show = "y") 321: #end 322: #end 323: #end 324: 325: #if ($min) 326: #set ($test = 0) 327: #set ($test = $stats.get($min)) 328: #if ($test > 0) 329: #set ($show = "y") 330: #end 331: #end 332: #else 333: #set ($show = "y") 334: #end 335: 336: #if ($show.length() > 0) 337: #set ($showCount = $showCount + 1) 338: #if ($showCount <= 125) 339: <tr> 340: #if ($isIncluded) 341: <td class="text-nowrap text-center">${individual.uniform}</td> 342: #elseif ($sort != 'name' && ! $isSharedMeets) 343: <td class="text-nowrap text-center"> 344: ## Need to figure out what value is 345: #set ($value = ${stats.get($sort)}) 346: #if (!($value == $rankValue)) 347: ##This is a new rank value... let's update our ranking 348: #set ($rank = $showCount) 349: #set ($rankValue = $value) 350: #end 351: ${rank} 352: </td> 353: #end 354: 355: <td class="text-nowrap text-left"> 356: #if ($isSharedMeets) 357: ${individual.firstName} ${individual.lastName} 358: #else 359: <a href="${page.url}/${individual.pageName}"> 360: #if ($isIncluded) 361: ${individual.firstName} 362: #elseif ($individual.firstName.length() > 0) 363: ${individual.firstName.substring(0, 1)} 364: #end 365: ${individual.lastName} 366: </a> 367: #end 368: </td> 369: 370: #if ($isIncluded) 371: <td class="text-nowrap text-center">$!{individual.year}</td> 372: <td class="text-nowrap text-center"> 373: #if ($individual.positionAbbreviation) 374: $!individual.positionAbbreviation 375: #else 376: $!individual.position 377: #end 378: </td> 379: #elseif ($isSharedMeets) 380: <td class="text-nowrap text-center">$!{individual.year}</td> 381: #else 382: #set ($teamname = "") 383: #set ($teamname = $individual.team) 384: 385: 386: #set ($teamURL = "teams?id=${individual.teamId}") 387: #foreach ($entry in $confTeams.entrySet()) 388: #if ($entry.value.teams.containsValue($teamname)) 389: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 390: #end 391: #end 392: 393: 394: #if($teamAbbr.size() > 0) 395: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 396: #* 397: #set ($teamname = $teamAbbr.get($individual.teamId)) 398: #set ($teamname = $teamAbbr.get($individual.team)) 399: *# 400: #end 401: 402: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 403: #if ($teamname.length() > 0) 404: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 405: <a href="$teamURL">${teamname}</a> 406: #end 407: </td> 408: #end 409: 410: ## Briefs 411: #foreach ($key in $briefs.keySet()) 412: #set ($value = "-") 413: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 414: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 415: #if ($value.length() > 0) 416: $value 417: #else 418: - 419: #end 420: </td> 421: #end 422: </tr> 423: #end ## page limit 424: #end ## showing 425: #end ## foreach individual 426: </tbody> 427: #if ($individuals.size() == 0) 428: <caption> 429: #if ($isSharedMeets) 430: This team's roster is empty 431: #elseif ($hasBiosBeforeFilter) 432: No players meet the minimum 433: #else 434: No stats are available at this time 435: #end 436: </caption> 437: #end 438: </table> 439: </div> 440: #if ($isIncluded || $showTotalRow) 441: <div class="table-totals mb-3 small text-start text-muted p-2"> 442: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 443: <div class="heading">Totals:</div> 444: #set ($teamStats = $request.getAttribute("teamStats")) 445: <div class="calculated-totals m-0"> 446: #foreach ($key in $briefs.keySet()) 447: #set ($value = "-") 448: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 449: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 450: #end 451: </div> 452: </div> 453: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 454: <div class="heading">Opponents:</div> 455: <div class="calculated-totals m-0"> 456: #foreach ($key in $briefs.keySet()) 457: #set ($keyopp = "${key}opp") 458: #set ($value = "-") 459: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 460: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 461: #end 462: </div> 463: </div> 464: </div> 465: #end 466: #end ## printPlayers 467: 468: #macro (printFilters) 469: <div class="py-3 border-top border-bottom my-3 d-print-none"> 470: <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"> 471: ## #printTeamsFilter 472: <div class="flex-fill"> 473: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 474: $!request.setAttribute("pageObj", $page) 475: $website.include("conf-season-filter-template") 476: </div> 477: </div> 478: <div class="" role="group" aria-label="Print friendly version"> 479: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 480: </div> 481: </div> 482: </div> 483: #end ## printFilters 484: 485: ### END MACROS ### 486: 487: ## TEAMS LAYOUTS FOR SHARED MEETS 488: #if ($isSharedMeets && !$isSingleTeam) 489: 490: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 491: #set ($teamsThreshold = 20) 492: 493: #if ($page.title.length() > 0) 494: <h1>$page.title</h1> 495: #else 496: <h1>Teams</h1> 497: #end 498: 499: #if ($teams.size() > $teamsThreshold) 500: 501: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 502: 503: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 504: <div class="alphabet-filter-chars"> 505: <span class="alphabet-filter-border"> | </span> 506: #foreach ($alphabet in $alphabets.split("")) 507: #if ($alphabet.length() > 0) 508: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 509: <span class="alphabet-filter-border"> | </span> 510: #end 511: #end 512: </div> ## alphabet-filter-char 513: 514: <div class="alphabet-filter-list"> 515: <div class="alphabet-filter-column"> 516: #set ($lastAlphabet = "") 517: #set ($counter = 0) 518: 519: #foreach ($team in $teams) 520: #set ($teamName = $team.value) 521: 522: #if ($teamName.charAt(0) != $lastAlphabet) 523: #set ($counter = $counter + 1) 524: #if ($counter > 1) 525: </div> ## alphabet-filter-section 526: #end 527: #if ($counter == 8 || $counter == 15) 528: </div> ## alphabet-filter-column 529: <div class="alphabet-filter-column"> 530: #end 531: #set ($lastAlphabet = $teamName.charAt(0)) 532: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 533: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 534: #end 535: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 536: #end 537: </div> ## alphabet-filter-section 538: </div> ## alphabet-filter-column 539: </div> ## alphabet-filter-list 540: </div> ## alphabet-filter 541: 542: #else ## plain list 543: 544: <div class="stats-container table-responsive"> 545: <table class="table table-hover"> 546: #foreach ($team in $teams) 547: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 548: #end 549: #if ($teams.size() == 0) 550: <tr><td>There are no teams that match this criteria</td></tr> 551: #end 552: </table> 553: </div> 554: 555: #end ## teams threshold 556: 557: ## TEAMINFO ROSTER LAYOUT 558: #elseif ($isIncluded && $view == 'roster') 559: 560: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 561: <div class="stats-container table-responsive"> 562: <table class="table table-hover"> 563: <thead class="thead-dark"> 564: <tr> 565: <th scope="col" class="text-nowrap text-center w-1">#</th> 566: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 570: #if ($baseball) 571: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 572: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 573: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 574: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 575: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 576: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 577: #end 578: </tr> 579: </thead> 580: <tbody> 581: #foreach ($individual in $individuals) 582: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 583: <td scope="row" class="text text-center">${individual.uniform}</td> 584: <td class="text text-left text-start pinned-col"> 585: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 586: </td> 587: <td class="text-center"> 588: #if ($individual.positionAbbreviation) 589: $!individual.positionAbbreviation 590: #else 591: $!individual.position 592: #end 593: </td> 594: <td class="text-center">$!{individual.year}</td> 595: <td class="text-center"> 596: #if($additionalRosterStatus) 597: $individual.playerStatus 598: #elseif ($individual.active) 599: Active 600: #else 601: Inactive 602: #end 603: </td> 604: #if ($baseball) 605: <td class="text-center">$!{individual.dataMap["height"]}</td> 606: <td class="text-center">$!{individual.dataMap["weight"]}</td> 607: <td class="text-center">$!{individual.dataMap["bats"]}</td> 608: <td class="text-center">$!{individual.dataMap["throws"]}</td> 609: <td class="text-center">$!{individual.dataMap["born"]}</td> 610: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 611: #end 612: </tr> 613: #end 614: </tbody> 615: </table> 616: </div> 617: 618: ## SHARED MEETS PLAYERS 619: #elseif ($isSharedMeets) 620: 621: #if ($teamId) 622: #set ($playersPageTitle = $page.title) 623: #foreach($team in $page.teams.entrySet()) 624: #if ($teamId == $team.key) 625: #set ($playersPageTitle = $team.value) 626: #end 627: #end 628: <h1>$playersPageTitle</h1> 629: #end 630: 631: #printPlayers($pos, $restriction) 632: 633: ## PLAYERS / LINEUP 634: #else 635: 636: ## do not show these options on the lineup page 637: #if (not $isIncluded) 638: 639: #if ($isAjax) 640: $website.decorate('') 641: #printPlayers($pos $restriction) 642: #stop 643: #end 644: 645: ## ARCHIVES 646: #if ($page.contentType == "stat/bios") 647: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 648: #end 649: 650: #if ($page.title.length() > 0 && !$isSharedMeets) 651: <h1>$page.title</h1> 652: #else 653: <h1>Player Stats</h1> 654: #end 655: 656: #printFilters 657: 658: ##if ($minimum.length() > 0) 659: <!--<div class="clearfix align-right">$!minimum</div>--> 660: ##end 661: 662: #if ($showconf && !$isSharedMeets) 663: $request.setAttribute("icl-responsive-tabs-script", true) 664: <div class="tab-container"> 665: <div class="tab-nav m-0"> 666: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 667: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 668: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 669: </li> 670: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 671: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 672: </li> 673: </ul> 674: </div> 675: 676: <div class="tab-content p-3 border"> 677: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 678: #printBriefsCategories("0") 679: </div> 680: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 681: #printBriefsCategories("1") 682: </div> 683: </div> 684: </div> ## tab-container overall/conf 685: #else 686: #printBriefsCategories($restriction) 687: #end 688: 689: #else 690: #printBriefsCategories($restriction) 691: #end ## not isIncluded 692: #end ## LAYOUTS 693: 694: $wiki.su |
Passing
# | Name | Yr | Pos | gp | comp | att | pct | yds | y/g | y/a | td | int | lg | effic |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | Samantha Wilson | So | QB | 6 | 144 | 206 | 69.9% | 1197 | 199.5 | 5.8 | 11 | 3 | 44 | 133.4 |
13 | Ciara Zino | Fr | QB/S | 5 | 3 | 5 | 60.0% | 24 | 4.8 | 4.8 | 0 | 1 | 10 | 60.3 |
10 | Gabby Franzose | Fr | WR/LB | 4 | 1 | 1 | 100.0% | 11 | 2.8 | 11.0 | 0 | 0 | 11 | 192.4 |
12 | Denise Garcia | Sr | C/CB | 4 | 1 | 2 | 50.0% | 11 | 2.8 | 5.5 | 0 | 0 | 0 | 96.2 |
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 2 | 2 | 100.0% | 8 | 1.3 | 4.0 | 2 | 0 | 5 | 463.6 |
Totals:
gp:6, comp:151, att:216, pct:69.9%, yds:1251, y/g:208.5, y/a:5.8, td:13, int:4, lg:44, effic:134.7
Opponents:
gp:6, comp:158, att:244, pct:64.8%, yds:1441, y/g:240.2, y/a:5.9, td:20, int:9, lg:48, effic:134.0
Rushing
# | Name | Yr | Pos | gp | rush | yds | y/g | avg | td | lg | fum | lost |
---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | Samantha Wilson | So | QB | 6 | 18 | 30 | 5.0 | 1.7 | 2 | 14 | - | - |
14 | Malia Domingo | Sr | RB/CB | 3 | 1 | 12 | 4.0 | 12.0 | 0 | 9 | - | - |
4 | Emma Balacco | Fr | RB/CB | 5 | 2 | 6 | 1.2 | 3.0 | 0 | 6 | - | - |
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 1 | 4 | 0.7 | 4.0 | 0 | 4 | - | - |
1 | Jasmine Henry | Fr | RB/R | 5 | 4 | 2 | 0.4 | 0.5 | 0 | 5 | - | - |
7 | Hayden Rupe | Sr | WR/CB | 6 | 1 | 1 | 0.2 | 1.0 | 1 | 1 | - | - |
13 | Ciara Zino | Fr | QB/S | 5 | 4 | -3 | -0.6 | -0.8 | 1 | 2 | - | - |
Totals:
gp:6, rush:31, yds:52, y/g:8.7, avg:1.7, td:4, lg:14, fum:0, lost:0
Opponents:
gp:6, rush:35, yds:138, y/g:23.0, avg:3.9, td:1, lg:57, fum:0, lost:0
Receiving
# | Name | Yr | Pos | gp | rec | rec/g | yds | y/g | avg | td | lg |
---|---|---|---|---|---|---|---|---|---|---|---|
11 | Kayla Burrows | Sr | WR/LB | 6 | 38 | 6.3 | 370 | 61.7 | 9.7 | 6 | 40 |
3 | Breaza Robinson | Jr | WR/LB | 6 | 29 | 4.8 | 219 | 36.5 | 7.6 | 2 | 24 |
7 | Hayden Rupe | Sr | WR/CB | 6 | 22 | 3.7 | 241 | 40.2 | 11.0 | 3 | 44 |
5 | Kaitlyn Sigmundi | Fr | WR/S | 6 | 16 | 2.7 | 111 | 18.5 | 6.9 | 1 | 41 |
14 | Malia Domingo | Sr | RB/CB | 3 | 11 | 3.7 | 38 | 12.7 | 3.5 | 0 | 8 |
12 | Denise Garcia | Sr | C/CB | 4 | 10 | 2.5 | 66 | 16.5 | 6.6 | 0 | 13 |
4 | Emma Balacco | Fr | RB/CB | 5 | 8 | 1.6 | 53 | 10.6 | 6.6 | 1 | 13 |
1 | Jasmine Henry | Fr | RB/R | 5 | 8 | 1.6 | 28 | 5.6 | 3.5 | 0 | 12 |
0 | Brea Kamm | So | C/LB | 5 | 6 | 1.2 | 26 | 5.2 | 4.3 | 0 | 10 |
22 | Samantha Gonzalez | Jr | WR/CB | 3 | 1 | 0.3 | 6 | 2.0 | 6.0 | 0 | 6 |
24 | Cameron Laine | Sr | WR/S | 6 | 1 | 0.2 | 8 | 1.3 | 8.0 | 0 | 8 |
18 | Kailey Wine | Fr | C/LB | 2 | 1 | 0.5 | 9 | 4.5 | 9.0 | 0 | 9 |
Totals:
gp:6, rec:151, rec/g:-, yds:1175, y/g:195.8, avg:7.8, td:13, lg:44
Opponents:
gp:6, rec:158, rec/g:-, yds:1378, y/g:229.7, avg:8.7, td:20, lg:48
Kicking
# | Name | Yr | Pos | gp | fgm | fga | pct | lg | xpm | xpa | pct | pts |
---|
There was a problem with a Velocity script | |
Page | /stats-bios-template |
Error | Error invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at cjksntz2wn52hh7y/stats-bios-template[line 299, column 52] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: ## STAT LABELS 50: $website.includeAgain("stats-labels") 51: #set ($statLabels = $!request.getAttribute("statLabels")) 52: 53: #set ($pos = "") 54: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 55: 56: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 57: $website.decorate("") 58: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 59: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 60: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 61: #end 62: 63: $response.sendRedirect($targetURL) 64: #stop 65: #end 66: 67: ## We want to leave this undefined so we can test for that 68: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 69: #if ($minEsc.length() > 0) 70: #set ($min = $minEsc) 71: #end 72: 73: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 74: 75: ## #set ($labels = $labels.get($positions.get($pos))) 76: 77: #set ($url = $request.requestURI) 78: #set ($view = "") 79: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 80: 81: #set ($restriction = "0") 82: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 83: #if ($restrictionEsc.length() > 0) 84: #set ($restriction = $restrictionEsc) 85: #end 86: 87: $website.include("standings?tmpl=stats-standings-abbr-template") 88: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 89: 90: #* 91: <!-- 92: Debug 93: URL: $url 94: isIncluded: $isIncluded 95: View: ${view} 96: Position: $pos 97: Sort: $sort 98: isAjax: $isAjax 99: isSharedMeets = $isSharedMeets 100: page.getTeamIDs.size() = $page.getTeamIDs().size() 101: teamId = $teamId 102: page.teams.entrySet() = $page.teams.entrySet().size() 103: isSingleTeam = $isSingleTeam 104: --> 105: *# 106: 107: #if ($locale == "en_us") 108: #set ($defLabel = "Defense") 109: #elseif ($locale == "en_gb") 110: #set ($defLabel = "Defence") 111: #end 112: 113: #macro (printTableHeader $label $class) 114: ## Hack for now 115: #set ($pos = "") 116: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 117: #set ($labels = $labels.get($pos)) 118: <th class="text-uppercase text-nowrap $class" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 119: #end 120: 121: #macro(printBriefsCategories $r) 122: #set ($ariaLabel = "Overall Stats") 123: #if ($r == "1") 124: #set ($ariaLabel = "Conference Stats") 125: #end 126: #set ($briefsCategories = []) 127: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 128: <div class="tab-container"> 129: #set ($activeCategory = "") 130: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 131: #if ($foreach.first) 132: #set ($activeCategory = $entry.key) 133: #end 134: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 135: #set ($activeCategory = $entry.key) 136: #end 137: #end 138: 139: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 140: #foreach ($category in $briefsCategoriesLabels.entrySet()) 141: <li class="tabs-category nav-item text-center"> 142: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 143: </li> 144: #end 145: </ul> 146: 147: <div class="tab-content py-3"> 148: #foreach($category in $briefsCategoriesLabels.entrySet()) 149: 150: #set ($activeSubCategory = "") 151: #foreach ($subCategory in $category.value.entrySet()) 152: #if ($foreach.first) 153: #set ($activeSubCategory = $subCategory.value) 154: #end 155: #if ($pos == $subCategory.key) 156: #set ($activeSubCategory = $subCategory.value) 157: #end 158: #end 159: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 160: <div class="tab-container"> 161: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 162: <div class="secondary-tab-select-container flex-fill"> 163: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 164: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 165: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 166: #end 167: </select> 168: <script> 169: $('.tab-nav-select-helper').on('change', function(e) { 170: var id = $(this).val(); 171: $('a[data-bs-target="' + id + '"]').tab('show'); 172: }); 173: </script> 174: </div> 175: </div> 176: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <li class="tabs-category nav-item"> 179: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 180: </li> 181: #end 182: </ul> 183: 184: <div class="tab-content"> 185: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 186: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 187: #printPlayers($briefsCat.key, $r) 188: </div> 189: #end 190: </div> 191: </div> 192: </div> 193: #end 194: </div> 195: </div> ## tab-container 196: #else 197: #printPlayers($pos, $r) 198: #end 199: #end ## printBriefsCategories 200: 201: #macro(printPlayers $p $r) 202: $request.setAttribute("icl-dataTables-script", true) 203: 204: #set ($briefs = $briefs.get($positions.get($p))) 205: 206: #set ($sortOrder = "asc") 207: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 208: #set ($sortOrder = "desc") 209: #end 210: 211: ## player stats (conference, naia) 212: #set ($searching = "true") 213: #set ($paging = "true") 214: #set ($info = "true") 215: #set ($fixedColumnStart = 1) 216: 217: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 218: #set ($fixedColumnStart = 2) 219: #end 220: 221: #if ($isIncluded) 222: ## lineup pages 223: #set ($searching = "false") 224: #set ($paging = "false") 225: #set ($info = "false") 226: #end 227: 228: 229: ## FAISAL CHANGES 230: $!request.setAttribute("pageObj", $page) 231: $website.includeAgain("get-conf-pages?pageName=teams") 232: #set ($confPages = $!request.getAttribute("conf_pages")) 233: #set ($confTeams = {}) 234: 235: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 236: #foreach ($conf in $confPages) 237: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 238: #end 239: 240: <div class="stats-container table-responsive-via-datatables"> 241: <table class="table table-hover nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="false" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 242: #if ($minimum.length() > 0) 243: <caption class="caption-side-top">$!minimum</caption> 244: #end 245: <thead class="thead-dark"> 246: <tr> 247: #if ($isIncluded) 248: #printTableHeader("#", "text-center w-1") 249: #elseif ($sort != 'name' && ! $isSharedMeets) 250: #printTableHeader("Rk", "text-center w-1") 251: #end 252: 253: #if ($cansort == 'n' || $isSharedMeets) 254: #printTableHeader("Name", "text-left") 255: #else 256: <th class="text-left text-uppercase text-nowrap">Name</th> 257: #end 258: 259: #if ($isIncluded) 260: #printTableHeader("Yr", "text-center") 261: #printTableHeader("Pos", "text-center") 262: #elseif ($isSharedMeets) 263: #printTableHeader("Yr", "text-center") 264: #else 265: #printTableHeader("Team", "text-center") 266: #end 267: 268: ## Hack for now 269: #set ($pos = "") 270: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 271: #set ($labels = $labels.get($pos)) 272: 273: #foreach ($key in $briefs.keySet()) 274: #if ($cansort == 'n') 275: #printTableHeader($briefs.get($key), "text-center") 276: #else 277: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 278: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 279: </th> 280: #end 281: #end 282: </tr> 283: </thead> 284: #set ($showCount = 0) 285: #set ($rankValue = "abb") 286: #set ($counter = 0) 287: 288: <tbody> 289: #foreach ($individual in $individuals) 290: #if ($r == "1") 291: #set ($stats = $individual.statsConference) 292: #else 293: #set ($stats = $individual.stats) 294: #end 295: 296: #set ($individualPosition = "") 297: #set ($individualPosition = $individual.position) 298: #set ($posVec = $individualPosition.split("/")) 299: #set ($individualPosition = $posVec[0]) 300: 301: #set ($show = "") 302: 303: #set ($showAllPlayers = $options.get("stats_show_all_players")) 304: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 305: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 306: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 307: #if ($showPosition) 308: #set ($indPositionsList = $lineupShowPosition.get($p)) 309: #foreach ($indPos in $indPositionsList) 310: #if ($individualPosition.equalsIgnoreCase($indPos)) 311: #set ($show = "y") 312: #end 313: #end 314: #end 315: 316: #if ($showStat) 317: #set ($statsList = $lineupShowStat.get($p)) 318: #foreach ($statElem in $statsList) 319: #if ($stats.get($statElem) > 0) 320: #set ($show = "y") 321: #end 322: #end 323: #end 324: 325: #if ($min) 326: #set ($test = 0) 327: #set ($test = $stats.get($min)) 328: #if ($test > 0) 329: #set ($show = "y") 330: #end 331: #end 332: #else 333: #set ($show = "y") 334: #end 335: 336: #if ($show.length() > 0) 337: #set ($showCount = $showCount + 1) 338: #if ($showCount <= 125) 339: <tr> 340: #if ($isIncluded) 341: <td class="text-nowrap text-center">${individual.uniform}</td> 342: #elseif ($sort != 'name' && ! $isSharedMeets) 343: <td class="text-nowrap text-center"> 344: ## Need to figure out what value is 345: #set ($value = ${stats.get($sort)}) 346: #if (!($value == $rankValue)) 347: ##This is a new rank value... let's update our ranking 348: #set ($rank = $showCount) 349: #set ($rankValue = $value) 350: #end 351: ${rank} 352: </td> 353: #end 354: 355: <td class="text-nowrap text-left"> 356: #if ($isSharedMeets) 357: ${individual.firstName} ${individual.lastName} 358: #else 359: <a href="${page.url}/${individual.pageName}"> 360: #if ($isIncluded) 361: ${individual.firstName} 362: #elseif ($individual.firstName.length() > 0) 363: ${individual.firstName.substring(0, 1)} 364: #end 365: ${individual.lastName} 366: </a> 367: #end 368: </td> 369: 370: #if ($isIncluded) 371: <td class="text-nowrap text-center">$!{individual.year}</td> 372: <td class="text-nowrap text-center"> 373: #if ($individual.positionAbbreviation) 374: $!individual.positionAbbreviation 375: #else 376: $!individual.position 377: #end 378: </td> 379: #elseif ($isSharedMeets) 380: <td class="text-nowrap text-center">$!{individual.year}</td> 381: #else 382: #set ($teamname = "") 383: #set ($teamname = $individual.team) 384: 385: 386: #set ($teamURL = "teams?id=${individual.teamId}") 387: #foreach ($entry in $confTeams.entrySet()) 388: #if ($entry.value.teams.containsValue($teamname)) 389: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 390: #end 391: #end 392: 393: 394: #if($teamAbbr.size() > 0) 395: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 396: #* 397: #set ($teamname = $teamAbbr.get($individual.teamId)) 398: #set ($teamname = $teamAbbr.get($individual.team)) 399: *# 400: #end 401: 402: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 403: #if ($teamname.length() > 0) 404: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 405: <a href="$teamURL">${teamname}</a> 406: #end 407: </td> 408: #end 409: 410: ## Briefs 411: #foreach ($key in $briefs.keySet()) 412: #set ($value = "-") 413: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 414: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 415: #if ($value.length() > 0) 416: $value 417: #else 418: - 419: #end 420: </td> 421: #end 422: </tr> 423: #end ## page limit 424: #end ## showing 425: #end ## foreach individual 426: </tbody> 427: #if ($individuals.size() == 0) 428: <caption> 429: #if ($isSharedMeets) 430: This team's roster is empty 431: #elseif ($hasBiosBeforeFilter) 432: No players meet the minimum 433: #else 434: No stats are available at this time 435: #end 436: </caption> 437: #end 438: </table> 439: </div> 440: #if ($isIncluded || $showTotalRow) 441: <div class="table-totals mb-3 small text-start text-muted p-2"> 442: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 443: <div class="heading">Totals:</div> 444: #set ($teamStats = $request.getAttribute("teamStats")) 445: <div class="calculated-totals m-0"> 446: #foreach ($key in $briefs.keySet()) 447: #set ($value = "-") 448: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 449: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 450: #end 451: </div> 452: </div> 453: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 454: <div class="heading">Opponents:</div> 455: <div class="calculated-totals m-0"> 456: #foreach ($key in $briefs.keySet()) 457: #set ($keyopp = "${key}opp") 458: #set ($value = "-") 459: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 460: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 461: #end 462: </div> 463: </div> 464: </div> 465: #end 466: #end ## printPlayers 467: 468: #macro (printFilters) 469: <div class="py-3 border-top border-bottom my-3 d-print-none"> 470: <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"> 471: ## #printTeamsFilter 472: <div class="flex-fill"> 473: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 474: $!request.setAttribute("pageObj", $page) 475: $website.include("conf-season-filter-template") 476: </div> 477: </div> 478: <div class="" role="group" aria-label="Print friendly version"> 479: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 480: </div> 481: </div> 482: </div> 483: #end ## printFilters 484: 485: ### END MACROS ### 486: 487: ## TEAMS LAYOUTS FOR SHARED MEETS 488: #if ($isSharedMeets && !$isSingleTeam) 489: 490: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 491: #set ($teamsThreshold = 20) 492: 493: #if ($page.title.length() > 0) 494: <h1>$page.title</h1> 495: #else 496: <h1>Teams</h1> 497: #end 498: 499: #if ($teams.size() > $teamsThreshold) 500: 501: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 502: 503: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 504: <div class="alphabet-filter-chars"> 505: <span class="alphabet-filter-border"> | </span> 506: #foreach ($alphabet in $alphabets.split("")) 507: #if ($alphabet.length() > 0) 508: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 509: <span class="alphabet-filter-border"> | </span> 510: #end 511: #end 512: </div> ## alphabet-filter-char 513: 514: <div class="alphabet-filter-list"> 515: <div class="alphabet-filter-column"> 516: #set ($lastAlphabet = "") 517: #set ($counter = 0) 518: 519: #foreach ($team in $teams) 520: #set ($teamName = $team.value) 521: 522: #if ($teamName.charAt(0) != $lastAlphabet) 523: #set ($counter = $counter + 1) 524: #if ($counter > 1) 525: </div> ## alphabet-filter-section 526: #end 527: #if ($counter == 8 || $counter == 15) 528: </div> ## alphabet-filter-column 529: <div class="alphabet-filter-column"> 530: #end 531: #set ($lastAlphabet = $teamName.charAt(0)) 532: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 533: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 534: #end 535: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 536: #end 537: </div> ## alphabet-filter-section 538: </div> ## alphabet-filter-column 539: </div> ## alphabet-filter-list 540: </div> ## alphabet-filter 541: 542: #else ## plain list 543: 544: <div class="stats-container table-responsive"> 545: <table class="table table-hover"> 546: #foreach ($team in $teams) 547: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 548: #end 549: #if ($teams.size() == 0) 550: <tr><td>There are no teams that match this criteria</td></tr> 551: #end 552: </table> 553: </div> 554: 555: #end ## teams threshold 556: 557: ## TEAMINFO ROSTER LAYOUT 558: #elseif ($isIncluded && $view == 'roster') 559: 560: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 561: <div class="stats-container table-responsive"> 562: <table class="table table-hover"> 563: <thead class="thead-dark"> 564: <tr> 565: <th scope="col" class="text-nowrap text-center w-1">#</th> 566: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 570: #if ($baseball) 571: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 572: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 573: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 574: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 575: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 576: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 577: #end 578: </tr> 579: </thead> 580: <tbody> 581: #foreach ($individual in $individuals) 582: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 583: <td scope="row" class="text text-center">${individual.uniform}</td> 584: <td class="text text-left text-start pinned-col"> 585: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 586: </td> 587: <td class="text-center"> 588: #if ($individual.positionAbbreviation) 589: $!individual.positionAbbreviation 590: #else 591: $!individual.position 592: #end 593: </td> 594: <td class="text-center">$!{individual.year}</td> 595: <td class="text-center"> 596: #if($additionalRosterStatus) 597: $individual.playerStatus 598: #elseif ($individual.active) 599: Active 600: #else 601: Inactive 602: #end 603: </td> 604: #if ($baseball) 605: <td class="text-center">$!{individual.dataMap["height"]}</td> 606: <td class="text-center">$!{individual.dataMap["weight"]}</td> 607: <td class="text-center">$!{individual.dataMap["bats"]}</td> 608: <td class="text-center">$!{individual.dataMap["throws"]}</td> 609: <td class="text-center">$!{individual.dataMap["born"]}</td> 610: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 611: #end 612: </tr> 613: #end 614: </tbody> 615: </table> 616: </div> 617: 618: ## SHARED MEETS PLAYERS 619: #elseif ($isSharedMeets) 620: 621: #if ($teamId) 622: #set ($playersPageTitle = $page.title) 623: #foreach($team in $page.teams.entrySet()) 624: #if ($teamId == $team.key) 625: #set ($playersPageTitle = $team.value) 626: #end 627: #end 628: <h1>$playersPageTitle</h1> 629: #end 630: 631: #printPlayers($pos, $restriction) 632: 633: ## PLAYERS / LINEUP 634: #else 635: 636: ## do not show these options on the lineup page 637: #if (not $isIncluded) 638: 639: #if ($isAjax) 640: $website.decorate('') 641: #printPlayers($pos $restriction) 642: #stop 643: #end 644: 645: ## ARCHIVES 646: #if ($page.contentType == "stat/bios") 647: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 648: #end 649: 650: #if ($page.title.length() > 0 && !$isSharedMeets) 651: <h1>$page.title</h1> 652: #else 653: <h1>Player Stats</h1> 654: #end 655: 656: #printFilters 657: 658: ##if ($minimum.length() > 0) 659: <!--<div class="clearfix align-right">$!minimum</div>--> 660: ##end 661: 662: #if ($showconf && !$isSharedMeets) 663: $request.setAttribute("icl-responsive-tabs-script", true) 664: <div class="tab-container"> 665: <div class="tab-nav m-0"> 666: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 667: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 668: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 669: </li> 670: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 671: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 672: </li> 673: </ul> 674: </div> 675: 676: <div class="tab-content p-3 border"> 677: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 678: #printBriefsCategories("0") 679: </div> 680: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 681: #printBriefsCategories("1") 682: </div> 683: </div> 684: </div> ## tab-container overall/conf 685: #else 686: #printBriefsCategories($restriction) 687: #end 688: 689: #else 690: #printBriefsCategories($restriction) 691: #end ## not isIncluded 692: #end ## LAYOUTS 693: 694: $wiki.su |
Punting
# | Name | Yr | Pos | gp | punt | yds | avg | lg | in20 | fc | tb | blk |
---|---|---|---|---|---|---|---|---|---|---|---|---|
24 | Cameron Laine | Sr | WR/S | 6 | 14 | 415 | 29.6 | 42 | 6 | 0 | 0 | 0 |
0 | Brea Kamm | So | C/LB | 5 | 5 | 166 | 33.2 | 41 | 1 | 0 | 0 | 0 |
Totals:
gp:6, punt:19, yds:581, avg:30.6, lg:42, in20:7, fc:0, tb:0, blk:0
Opponents:
gp:6, punt:16, yds:428, avg:26.8, lg:43, in20:1, fc:0, tb:0, blk:0
Returns
# | Name | Yr | Pos | kr | yds | avg | td | lg | pr | yds | avg | td | lg |
---|
There was a problem with a Velocity script | |
Page | /stats-bios-template |
Error | Error invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at cjksntz2wn52hh7y/stats-bios-template[line 299, column 52] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: ## STAT LABELS 50: $website.includeAgain("stats-labels") 51: #set ($statLabels = $!request.getAttribute("statLabels")) 52: 53: #set ($pos = "") 54: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 55: 56: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 57: $website.decorate("") 58: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 59: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 60: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 61: #end 62: 63: $response.sendRedirect($targetURL) 64: #stop 65: #end 66: 67: ## We want to leave this undefined so we can test for that 68: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 69: #if ($minEsc.length() > 0) 70: #set ($min = $minEsc) 71: #end 72: 73: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 74: 75: ## #set ($labels = $labels.get($positions.get($pos))) 76: 77: #set ($url = $request.requestURI) 78: #set ($view = "") 79: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 80: 81: #set ($restriction = "0") 82: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 83: #if ($restrictionEsc.length() > 0) 84: #set ($restriction = $restrictionEsc) 85: #end 86: 87: $website.include("standings?tmpl=stats-standings-abbr-template") 88: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 89: 90: #* 91: <!-- 92: Debug 93: URL: $url 94: isIncluded: $isIncluded 95: View: ${view} 96: Position: $pos 97: Sort: $sort 98: isAjax: $isAjax 99: isSharedMeets = $isSharedMeets 100: page.getTeamIDs.size() = $page.getTeamIDs().size() 101: teamId = $teamId 102: page.teams.entrySet() = $page.teams.entrySet().size() 103: isSingleTeam = $isSingleTeam 104: --> 105: *# 106: 107: #if ($locale == "en_us") 108: #set ($defLabel = "Defense") 109: #elseif ($locale == "en_gb") 110: #set ($defLabel = "Defence") 111: #end 112: 113: #macro (printTableHeader $label $class) 114: ## Hack for now 115: #set ($pos = "") 116: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 117: #set ($labels = $labels.get($pos)) 118: <th class="text-uppercase text-nowrap $class" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 119: #end 120: 121: #macro(printBriefsCategories $r) 122: #set ($ariaLabel = "Overall Stats") 123: #if ($r == "1") 124: #set ($ariaLabel = "Conference Stats") 125: #end 126: #set ($briefsCategories = []) 127: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 128: <div class="tab-container"> 129: #set ($activeCategory = "") 130: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 131: #if ($foreach.first) 132: #set ($activeCategory = $entry.key) 133: #end 134: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 135: #set ($activeCategory = $entry.key) 136: #end 137: #end 138: 139: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 140: #foreach ($category in $briefsCategoriesLabels.entrySet()) 141: <li class="tabs-category nav-item text-center"> 142: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 143: </li> 144: #end 145: </ul> 146: 147: <div class="tab-content py-3"> 148: #foreach($category in $briefsCategoriesLabels.entrySet()) 149: 150: #set ($activeSubCategory = "") 151: #foreach ($subCategory in $category.value.entrySet()) 152: #if ($foreach.first) 153: #set ($activeSubCategory = $subCategory.value) 154: #end 155: #if ($pos == $subCategory.key) 156: #set ($activeSubCategory = $subCategory.value) 157: #end 158: #end 159: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 160: <div class="tab-container"> 161: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 162: <div class="secondary-tab-select-container flex-fill"> 163: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 164: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 165: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 166: #end 167: </select> 168: <script> 169: $('.tab-nav-select-helper').on('change', function(e) { 170: var id = $(this).val(); 171: $('a[data-bs-target="' + id + '"]').tab('show'); 172: }); 173: </script> 174: </div> 175: </div> 176: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <li class="tabs-category nav-item"> 179: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 180: </li> 181: #end 182: </ul> 183: 184: <div class="tab-content"> 185: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 186: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 187: #printPlayers($briefsCat.key, $r) 188: </div> 189: #end 190: </div> 191: </div> 192: </div> 193: #end 194: </div> 195: </div> ## tab-container 196: #else 197: #printPlayers($pos, $r) 198: #end 199: #end ## printBriefsCategories 200: 201: #macro(printPlayers $p $r) 202: $request.setAttribute("icl-dataTables-script", true) 203: 204: #set ($briefs = $briefs.get($positions.get($p))) 205: 206: #set ($sortOrder = "asc") 207: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 208: #set ($sortOrder = "desc") 209: #end 210: 211: ## player stats (conference, naia) 212: #set ($searching = "true") 213: #set ($paging = "true") 214: #set ($info = "true") 215: #set ($fixedColumnStart = 1) 216: 217: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 218: #set ($fixedColumnStart = 2) 219: #end 220: 221: #if ($isIncluded) 222: ## lineup pages 223: #set ($searching = "false") 224: #set ($paging = "false") 225: #set ($info = "false") 226: #end 227: 228: 229: ## FAISAL CHANGES 230: $!request.setAttribute("pageObj", $page) 231: $website.includeAgain("get-conf-pages?pageName=teams") 232: #set ($confPages = $!request.getAttribute("conf_pages")) 233: #set ($confTeams = {}) 234: 235: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 236: #foreach ($conf in $confPages) 237: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 238: #end 239: 240: <div class="stats-container table-responsive-via-datatables"> 241: <table class="table table-hover nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="false" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 242: #if ($minimum.length() > 0) 243: <caption class="caption-side-top">$!minimum</caption> 244: #end 245: <thead class="thead-dark"> 246: <tr> 247: #if ($isIncluded) 248: #printTableHeader("#", "text-center w-1") 249: #elseif ($sort != 'name' && ! $isSharedMeets) 250: #printTableHeader("Rk", "text-center w-1") 251: #end 252: 253: #if ($cansort == 'n' || $isSharedMeets) 254: #printTableHeader("Name", "text-left") 255: #else 256: <th class="text-left text-uppercase text-nowrap">Name</th> 257: #end 258: 259: #if ($isIncluded) 260: #printTableHeader("Yr", "text-center") 261: #printTableHeader("Pos", "text-center") 262: #elseif ($isSharedMeets) 263: #printTableHeader("Yr", "text-center") 264: #else 265: #printTableHeader("Team", "text-center") 266: #end 267: 268: ## Hack for now 269: #set ($pos = "") 270: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 271: #set ($labels = $labels.get($pos)) 272: 273: #foreach ($key in $briefs.keySet()) 274: #if ($cansort == 'n') 275: #printTableHeader($briefs.get($key), "text-center") 276: #else 277: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 278: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 279: </th> 280: #end 281: #end 282: </tr> 283: </thead> 284: #set ($showCount = 0) 285: #set ($rankValue = "abb") 286: #set ($counter = 0) 287: 288: <tbody> 289: #foreach ($individual in $individuals) 290: #if ($r == "1") 291: #set ($stats = $individual.statsConference) 292: #else 293: #set ($stats = $individual.stats) 294: #end 295: 296: #set ($individualPosition = "") 297: #set ($individualPosition = $individual.position) 298: #set ($posVec = $individualPosition.split("/")) 299: #set ($individualPosition = $posVec[0]) 300: 301: #set ($show = "") 302: 303: #set ($showAllPlayers = $options.get("stats_show_all_players")) 304: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 305: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 306: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 307: #if ($showPosition) 308: #set ($indPositionsList = $lineupShowPosition.get($p)) 309: #foreach ($indPos in $indPositionsList) 310: #if ($individualPosition.equalsIgnoreCase($indPos)) 311: #set ($show = "y") 312: #end 313: #end 314: #end 315: 316: #if ($showStat) 317: #set ($statsList = $lineupShowStat.get($p)) 318: #foreach ($statElem in $statsList) 319: #if ($stats.get($statElem) > 0) 320: #set ($show = "y") 321: #end 322: #end 323: #end 324: 325: #if ($min) 326: #set ($test = 0) 327: #set ($test = $stats.get($min)) 328: #if ($test > 0) 329: #set ($show = "y") 330: #end 331: #end 332: #else 333: #set ($show = "y") 334: #end 335: 336: #if ($show.length() > 0) 337: #set ($showCount = $showCount + 1) 338: #if ($showCount <= 125) 339: <tr> 340: #if ($isIncluded) 341: <td class="text-nowrap text-center">${individual.uniform}</td> 342: #elseif ($sort != 'name' && ! $isSharedMeets) 343: <td class="text-nowrap text-center"> 344: ## Need to figure out what value is 345: #set ($value = ${stats.get($sort)}) 346: #if (!($value == $rankValue)) 347: ##This is a new rank value... let's update our ranking 348: #set ($rank = $showCount) 349: #set ($rankValue = $value) 350: #end 351: ${rank} 352: </td> 353: #end 354: 355: <td class="text-nowrap text-left"> 356: #if ($isSharedMeets) 357: ${individual.firstName} ${individual.lastName} 358: #else 359: <a href="${page.url}/${individual.pageName}"> 360: #if ($isIncluded) 361: ${individual.firstName} 362: #elseif ($individual.firstName.length() > 0) 363: ${individual.firstName.substring(0, 1)} 364: #end 365: ${individual.lastName} 366: </a> 367: #end 368: </td> 369: 370: #if ($isIncluded) 371: <td class="text-nowrap text-center">$!{individual.year}</td> 372: <td class="text-nowrap text-center"> 373: #if ($individual.positionAbbreviation) 374: $!individual.positionAbbreviation 375: #else 376: $!individual.position 377: #end 378: </td> 379: #elseif ($isSharedMeets) 380: <td class="text-nowrap text-center">$!{individual.year}</td> 381: #else 382: #set ($teamname = "") 383: #set ($teamname = $individual.team) 384: 385: 386: #set ($teamURL = "teams?id=${individual.teamId}") 387: #foreach ($entry in $confTeams.entrySet()) 388: #if ($entry.value.teams.containsValue($teamname)) 389: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 390: #end 391: #end 392: 393: 394: #if($teamAbbr.size() > 0) 395: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 396: #* 397: #set ($teamname = $teamAbbr.get($individual.teamId)) 398: #set ($teamname = $teamAbbr.get($individual.team)) 399: *# 400: #end 401: 402: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 403: #if ($teamname.length() > 0) 404: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 405: <a href="$teamURL">${teamname}</a> 406: #end 407: </td> 408: #end 409: 410: ## Briefs 411: #foreach ($key in $briefs.keySet()) 412: #set ($value = "-") 413: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 414: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 415: #if ($value.length() > 0) 416: $value 417: #else 418: - 419: #end 420: </td> 421: #end 422: </tr> 423: #end ## page limit 424: #end ## showing 425: #end ## foreach individual 426: </tbody> 427: #if ($individuals.size() == 0) 428: <caption> 429: #if ($isSharedMeets) 430: This team's roster is empty 431: #elseif ($hasBiosBeforeFilter) 432: No players meet the minimum 433: #else 434: No stats are available at this time 435: #end 436: </caption> 437: #end 438: </table> 439: </div> 440: #if ($isIncluded || $showTotalRow) 441: <div class="table-totals mb-3 small text-start text-muted p-2"> 442: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 443: <div class="heading">Totals:</div> 444: #set ($teamStats = $request.getAttribute("teamStats")) 445: <div class="calculated-totals m-0"> 446: #foreach ($key in $briefs.keySet()) 447: #set ($value = "-") 448: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 449: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 450: #end 451: </div> 452: </div> 453: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 454: <div class="heading">Opponents:</div> 455: <div class="calculated-totals m-0"> 456: #foreach ($key in $briefs.keySet()) 457: #set ($keyopp = "${key}opp") 458: #set ($value = "-") 459: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 460: <span class="uppercase key initialism">$briefs.get($key):</span><span class="value fw-bold m-0">#if ($value.length() > 0)${value}#else-#end</span>#if(!$foreach.last), #end 461: #end 462: </div> 463: </div> 464: </div> 465: #end 466: #end ## printPlayers 467: 468: #macro (printFilters) 469: <div class="py-3 border-top border-bottom my-3 d-print-none"> 470: <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"> 471: ## #printTeamsFilter 472: <div class="flex-fill"> 473: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 474: $!request.setAttribute("pageObj", $page) 475: $website.include("conf-season-filter-template") 476: </div> 477: </div> 478: <div class="" role="group" aria-label="Print friendly version"> 479: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 480: </div> 481: </div> 482: </div> 483: #end ## printFilters 484: 485: ### END MACROS ### 486: 487: ## TEAMS LAYOUTS FOR SHARED MEETS 488: #if ($isSharedMeets && !$isSingleTeam) 489: 490: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 491: #set ($teamsThreshold = 20) 492: 493: #if ($page.title.length() > 0) 494: <h1>$page.title</h1> 495: #else 496: <h1>Teams</h1> 497: #end 498: 499: #if ($teams.size() > $teamsThreshold) 500: 501: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 502: 503: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 504: <div class="alphabet-filter-chars"> 505: <span class="alphabet-filter-border"> | </span> 506: #foreach ($alphabet in $alphabets.split("")) 507: #if ($alphabet.length() > 0) 508: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 509: <span class="alphabet-filter-border"> | </span> 510: #end 511: #end 512: </div> ## alphabet-filter-char 513: 514: <div class="alphabet-filter-list"> 515: <div class="alphabet-filter-column"> 516: #set ($lastAlphabet = "") 517: #set ($counter = 0) 518: 519: #foreach ($team in $teams) 520: #set ($teamName = $team.value) 521: 522: #if ($teamName.charAt(0) != $lastAlphabet) 523: #set ($counter = $counter + 1) 524: #if ($counter > 1) 525: </div> ## alphabet-filter-section 526: #end 527: #if ($counter == 8 || $counter == 15) 528: </div> ## alphabet-filter-column 529: <div class="alphabet-filter-column"> 530: #end 531: #set ($lastAlphabet = $teamName.charAt(0)) 532: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 533: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 534: #end 535: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 536: #end 537: </div> ## alphabet-filter-section 538: </div> ## alphabet-filter-column 539: </div> ## alphabet-filter-list 540: </div> ## alphabet-filter 541: 542: #else ## plain list 543: 544: <div class="stats-container table-responsive"> 545: <table class="table table-hover"> 546: #foreach ($team in $teams) 547: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 548: #end 549: #if ($teams.size() == 0) 550: <tr><td>There are no teams that match this criteria</td></tr> 551: #end 552: </table> 553: </div> 554: 555: #end ## teams threshold 556: 557: ## TEAMINFO ROSTER LAYOUT 558: #elseif ($isIncluded && $view == 'roster') 559: 560: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 561: <div class="stats-container table-responsive"> 562: <table class="table table-hover"> 563: <thead class="thead-dark"> 564: <tr> 565: <th scope="col" class="text-nowrap text-center w-1">#</th> 566: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 570: #if ($baseball) 571: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 572: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 573: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 574: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 575: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 576: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 577: #end 578: </tr> 579: </thead> 580: <tbody> 581: #foreach ($individual in $individuals) 582: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 583: <td scope="row" class="text text-center">${individual.uniform}</td> 584: <td class="text text-left text-start pinned-col"> 585: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 586: </td> 587: <td class="text-center"> 588: #if ($individual.positionAbbreviation) 589: $!individual.positionAbbreviation 590: #else 591: $!individual.position 592: #end 593: </td> 594: <td class="text-center">$!{individual.year}</td> 595: <td class="text-center"> 596: #if($additionalRosterStatus) 597: $individual.playerStatus 598: #elseif ($individual.active) 599: Active 600: #else 601: Inactive 602: #end 603: </td> 604: #if ($baseball) 605: <td class="text-center">$!{individual.dataMap["height"]}</td> 606: <td class="text-center">$!{individual.dataMap["weight"]}</td> 607: <td class="text-center">$!{individual.dataMap["bats"]}</td> 608: <td class="text-center">$!{individual.dataMap["throws"]}</td> 609: <td class="text-center">$!{individual.dataMap["born"]}</td> 610: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 611: #end 612: </tr> 613: #end 614: </tbody> 615: </table> 616: </div> 617: 618: ## SHARED MEETS PLAYERS 619: #elseif ($isSharedMeets) 620: 621: #if ($teamId) 622: #set ($playersPageTitle = $page.title) 623: #foreach($team in $page.teams.entrySet()) 624: #if ($teamId == $team.key) 625: #set ($playersPageTitle = $team.value) 626: #end 627: #end 628: <h1>$playersPageTitle</h1> 629: #end 630: 631: #printPlayers($pos, $restriction) 632: 633: ## PLAYERS / LINEUP 634: #else 635: 636: ## do not show these options on the lineup page 637: #if (not $isIncluded) 638: 639: #if ($isAjax) 640: $website.decorate('') 641: #printPlayers($pos $restriction) 642: #stop 643: #end 644: 645: ## ARCHIVES 646: #if ($page.contentType == "stat/bios") 647: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 648: #end 649: 650: #if ($page.title.length() > 0 && !$isSharedMeets) 651: <h1>$page.title</h1> 652: #else 653: <h1>Player Stats</h1> 654: #end 655: 656: #printFilters 657: 658: ##if ($minimum.length() > 0) 659: <!--<div class="clearfix align-right">$!minimum</div>--> 660: ##end 661: 662: #if ($showconf && !$isSharedMeets) 663: $request.setAttribute("icl-responsive-tabs-script", true) 664: <div class="tab-container"> 665: <div class="tab-nav m-0"> 666: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 667: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 668: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 669: </li> 670: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 671: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 672: </li> 673: </ul> 674: </div> 675: 676: <div class="tab-content p-3 border"> 677: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 678: #printBriefsCategories("0") 679: </div> 680: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 681: #printBriefsCategories("1") 682: </div> 683: </div> 684: </div> ## tab-container overall/conf 685: #else 686: #printBriefsCategories($restriction) 687: #end 688: 689: #else 690: #printBriefsCategories($restriction) 691: #end ## not isIncluded 692: #end ## LAYOUTS 693: 694: $wiki.su |
All-Purpose
Scoring
Defense
Date | Opponent | Score | yds | pass | c-a | comp % | rush | r | y/r | int | fum | tack | sac | pen yds | top |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Feb 18 | at Florida Memorial | W, 20-7 | 204 | 201 | 22-33 | 67% | 3 | 5 | 0.6 | 2 | - | 30.0 | 2 | 0 | 0:00 |
Feb 23 | Keiser | L, 20-18 | 215 | 201 | 25-35 | 71% | 14 | 2 | 7.0 | 1 | - | 30.0 | 1 | 0 | 0:00 |
Feb 25 | St. Thomas | W, 37-14 | 261 | 250 | 32-40 | 80% | 11 | 9 | 1.2 | 3 | - | 25.0 | 1 | 0 | 0:00 |
Mar 4 | at Warner | L, 31-18 | 258 | 240 | 23-34 | 68% | 18 | 6 | 3.0 | - | - | 32.0 | 1 | 0 | 0:00 |
Mar 14 | at Campbellsville | W, 27-0 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Mar 14 | vs. Cottey (MO) | W, 41-0 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Mar 15 | Reinhardt | W, 34-7 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Mar 18 | Fort Lauderdale | W, 38-6 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Mar 24 | Thomas | L, 33-6 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Mar 29 | Florida Memorial | W, 12-7 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Mar 30 | at St. Thomas | L, 25-14 | 217 | 216 | 30-42 | 71% | 1 | 7 | 0.1 | 2 | - | 27.0 | - | 0 | 0:00 |
Mar 30 | at St. Thomas | L, 25-14 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Apr 4 | Campbellsville | W, 33-0 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Apr 6 | at Thomas | L, 19-6 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Apr 19 | at Keiser | L, 39-19 | 148 | 143 | 19-32 | 59% | 5 | 2 | 2.5 | 1 | - | 28.0 | - | 34 | 24:10 |
Apr 22 | Warner | W, 27-13 | - | - | - | - | - | - | - | - | - | - | - | - | - |
Apr 28 | at Thomas | L, 33-14 | - | - | - | - | - | - | - | - | - | - | - | - | - |
May 19 | vs. Midland | W, 20-14 | - | - | - | - | - | - | - | - | - | - | - | - | - |
gp | td | fg | xpt | 2pc | dxp | saf | pts | ppg | |
---|---|---|---|---|---|---|---|---|---|
Total | 6 | 20 | - | - | 1 | - | - | 126 | 21.0 |
Conference | 6 | 20 | - | - | 1 | - | - | 126 | 21.0 |
Exhibition | - | - | - | - | - | - | - | - | - |
Home | 2 | 9 | - | - | - | - | - | 55 | 27.5 |
Away | 4 | 11 | - | - | 1 | - | - | 71 | 17.8 |
Neutral | - | - | - | - | - | - | - | - | - |
Wins | 2 | 9 | - | - | - | - | - | 57 | 28.5 |
Losses | 4 | 11 | - | - | 1 | - | - | 69 | 17.3 |
February | 3 | 12 | - | - | - | - | - | 75 | 25.0 |
March | 2 | 5 | - | - | - | - | - | 32 | 16.0 |
April | 1 | 3 | - | - | 1 | - | - | 19 | 19.0 |
gp | ppg | pts | yd/g | pass y/g | rush y/g | tkl/g | int | fum rec | sack | td | |
---|---|---|---|---|---|---|---|---|---|---|---|
Total | 6 | 22.7 | 136 | 263.2 | 240.2 | 23.0 | 28.7 | 9 | 0 | 5 | 2 |
Conference | 6 | 22.7 | 136 | 263.2 | 240.2 | 23.0 | 28.7 | 9 | 0 | 5 | 2 |
Exhibition | - | - | - | - | - | - | - | - | - | - | - |
Home | 2 | 17.0 | 34 | 273.5 | 255.5 | 18.0 | 27.5 | 4 | 0 | 2 | 1 |
Away | 4 | 25.5 | 102 | 258.0 | 232.5 | 25.5 | 29.3 | 5 | 0 | 3 | 1 |
Neutral | - | - | - | - | - | - | - | - | - | - | - |
Wins | 2 | 10.5 | 21 | 205.0 | 191.0 | 14.0 | 27.5 | 5 | 0 | 3 | 0 |
Losses | 4 | 28.8 | 115 | 292.3 | 264.8 | 27.5 | 29.3 | 4 | 0 | 2 | 2 |
February | 3 | 13.7 | 41 | 233.3 | 218.7 | 14.7 | 28.3 | 6 | 0 | 4 | 1 |
March | 2 | 28.0 | 56 | 289.5 | 246.5 | 43.0 | 29.5 | 2 | 0 | 1 | 0 |
April | 1 | 39.0 | 39 | 300.0 | 292.0 | 8.0 | 28.0 | 1 | 0 | - | 1 |
Date | Opponent | Score | Attend |
---|---|---|---|
Feb 18 | at Florida Memorial | W, 20-7 | 65 |
Feb 23 | Keiser | L, 20-18 | 85 |
Feb 25 | St. Thomas | W, 37-14 | 55 |
Mar 4 | at Warner | L, 31-18 | 85 |
Mar 14 | at Campbellsville | 27-0 Win | - |
Mar 14 | vs. Cottey (MO) | 41-0 Win | - |
Mar 15 | Reinhardt | 34-7 Win | - |
Mar 18 | Fort Lauderdale | 38-6 Win | - |
Mar 24 | Thomas | 6-33 Loss | - |
Mar 29 | Florida Memorial | 12-7 Win | - |
Mar 30 | at St. Thomas | L, 25-14 | 45 |
Mar 30 | at St. Thomas | 14-25 Loss | - |
Apr 4 | Campbellsville | 33-0 Win | - |
Apr 6 | at Thomas | 6-19 Loss | - |
Apr 19 | at Keiser | L, 39-19 | 57 |
Apr 22 | Warner | 27-13 Win | - |
Apr 28 | at Thomas | 14-33 Loss | - |
May 19 | vs. Midland | 20-14 Win | - |