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 294, 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: #if ($isIncluded) 212: ## lineup pages 213: #set ($searching = "false") 214: #set ($paging = "false") 215: #set ($info = "false") 216: #else 217: ## player stats (conference, naia) 218: #set ($searching = "true") 219: #set ($paging = "true") 220: #set ($info = "true") 221: #end 222: 223: 224: ## FAISAL CHANGES 225: $!request.setAttribute("pageObj", $page) 226: $website.includeAgain("get-conf-pages?pageName=teams") 227: #set ($confPages = $!request.getAttribute("conf_pages")) 228: #set ($confTeams = {}) 229: 230: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 231: #foreach ($conf in $confPages) 232: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 233: #end 234: 235: <div class="stats-container table-responsive-via-datatables"> 236: <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-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 237: #if ($minimum.length() > 0) 238: <caption class="caption-side-top">$!minimum</caption> 239: #end 240: <thead class="thead-dark"> 241: <tr> 242: #if ($isIncluded) 243: #printTableHeader("#", "text-center w-1") 244: #elseif ($sort != 'name' && ! $isSharedMeets) 245: #printTableHeader("Rk", "text-center w-1") 246: #end 247: 248: #if ($cansort == 'n' || $isSharedMeets) 249: #printTableHeader("Name", "text-left") 250: #else 251: <th class="text-left text-uppercase text-nowrap">Name</th> 252: #end 253: 254: #if ($isIncluded) 255: #printTableHeader("Yr", "text-center") 256: #printTableHeader("Pos", "text-center") 257: #elseif ($isSharedMeets) 258: #printTableHeader("Yr", "text-center") 259: #else 260: #printTableHeader("Team", "text-center") 261: #end 262: 263: ## Hack for now 264: #set ($pos = "") 265: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 266: #set ($labels = $labels.get($pos)) 267: 268: #foreach ($key in $briefs.keySet()) 269: #if ($cansort == 'n') 270: #printTableHeader($briefs.get($key), "text-center") 271: #else 272: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 273: <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> 274: </th> 275: #end 276: #end 277: </tr> 278: </thead> 279: #set ($showCount = 0) 280: #set ($rankValue = "abb") 281: #set ($counter = 0) 282: 283: <tbody> 284: #foreach ($individual in $individuals) 285: #if ($r == "1") 286: #set ($stats = $individual.statsConference) 287: #else 288: #set ($stats = $individual.stats) 289: #end 290: 291: #set ($individualPosition = "") 292: #set ($individualPosition = $individual.position) 293: #set ($posVec = $individualPosition.split("/")) 294: #set ($individualPosition = $posVec[0]) 295: 296: #set ($show = "") 297: 298: #set ($showAllPlayers = $options.get("stats_show_all_players")) 299: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 300: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 301: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 302: #if ($showPosition) 303: #set ($indPositionsList = $lineupShowPosition.get($p)) 304: #foreach ($indPos in $indPositionsList) 305: #if ($individualPosition.equalsIgnoreCase($indPos)) 306: #set ($show = "y") 307: #end 308: #end 309: #end 310: 311: #if ($showStat) 312: #set ($statsList = $lineupShowStat.get($p)) 313: #foreach ($statElem in $statsList) 314: #if ($stats.get($statElem) > 0) 315: #set ($show = "y") 316: #end 317: #end 318: #end 319: 320: #if ($min) 321: #set ($test = 0) 322: #set ($test = $stats.get($min)) 323: #if ($test > 0) 324: #set ($show = "y") 325: #end 326: #end 327: #else 328: #set ($show = "y") 329: #end 330: 331: #if ($show.length() > 0) 332: #set ($showCount = $showCount + 1) 333: #if ($showCount <= 200) 334: <tr> 335: #if ($isIncluded) 336: <td class="text-nowrap text-center">${individual.uniform}</td> 337: #elseif ($sort != 'name' && ! $isSharedMeets) 338: <td class="text-nowrap text-center"> 339: ## Need to figure out what value is 340: #set ($value = ${stats.get($sort)}) 341: #if (!($value == $rankValue)) 342: ##This is a new rank value... let's update our ranking 343: #set ($rank = $showCount) 344: #set ($rankValue = $value) 345: #end 346: ${rank} 347: </td> 348: #end 349: 350: <td class="text-nowrap text-left"> 351: #if ($isSharedMeets) 352: ${individual.firstName} ${individual.lastName} 353: #else 354: <a href="${page.url}/${individual.pageName}"> 355: #if ($isIncluded) 356: ${individual.firstName} 357: #elseif ($individual.firstName.length() > 0) 358: ${individual.firstName.substring(0, 1)} 359: #end 360: ${individual.lastName} 361: </a> 362: #end 363: </td> 364: 365: #if ($isIncluded) 366: <td class="text-nowrap text-center">$!{individual.year}</td> 367: <td class="text-nowrap text-center"> 368: #if ($individual.positionAbbreviation) 369: $!individual.positionAbbreviation 370: #else 371: $!individual.position 372: #end 373: </td> 374: #elseif ($isSharedMeets) 375: <td class="text-nowrap text-center">$!{individual.year}</td> 376: #else 377: #set ($teamname = "") 378: #set ($teamname = $individual.team) 379: 380: 381: #set ($teamURL = "teams?id=${individual.teamId}") 382: #foreach ($entry in $confTeams.entrySet()) 383: #if ($entry.value.teams.containsValue($teamname)) 384: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 385: #end 386: #end 387: 388: 389: #if($teamAbbr.size() > 0) 390: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 391: #* 392: #set ($teamname = $teamAbbr.get($individual.teamId)) 393: #set ($teamname = $teamAbbr.get($individual.team)) 394: *# 395: #end 396: 397: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 398: #if ($teamname.length() > 0) 399: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 400: <a href="$teamURL">${teamname}</a> 401: #end 402: </td> 403: #end 404: 405: ## Briefs 406: #foreach ($key in $briefs.keySet()) 407: #set ($value = "-") 408: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 409: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 410: #if ($value.length() > 0) 411: $value 412: #else 413: - 414: #end 415: </td> 416: #end 417: </tr> 418: #end ## page limit 419: #end ## showing 420: #end ## foreach individual 421: </tbody> 422: #if ($individuals.size() == 0) 423: <caption> 424: #if ($isSharedMeets) 425: This team's roster is empty 426: #elseif ($hasBiosBeforeFilter) 427: No players meet the minimum 428: #else 429: No stats are available at this time 430: #end 431: </caption> 432: #end 433: </table> 434: </div> 435: #if ($isIncluded || $showTotalRow) 436: <div class="table-totals mb-3 small text-start text-muted p-2"> 437: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 438: <div class="heading">Totals:</div> 439: #set ($teamStats = $request.getAttribute("teamStats")) 440: <div class="calculated-totals m-0"> 441: #foreach ($key in $briefs.keySet()) 442: #set ($value = "-") 443: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 444: <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 445: #end 446: </div> 447: </div> 448: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 449: <div class="heading">Opponents:</div> 450: <div class="calculated-totals m-0"> 451: #foreach ($key in $briefs.keySet()) 452: #set ($keyopp = "${key}opp") 453: #set ($value = "-") 454: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 455: <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 456: #end 457: </div> 458: </div> 459: </div> 460: #end 461: #end ## printPlayers 462: 463: #macro (printFilters) 464: <div class="py-3 border-top border-bottom my-3 d-print-none"> 465: <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"> 466: ## #printTeamsFilter 467: <div class="flex-fill"> 468: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 469: $!request.setAttribute("pageObj", $page) 470: $website.include("conf-season-filter-template") 471: </div> 472: </div> 473: <div class="" role="group" aria-label="Print friendly version"> 474: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 475: </div> 476: </div> 477: </div> 478: #end ## printFilters 479: 480: ### END MACROS ### 481: 482: ## TEAMS LAYOUTS FOR SHARED MEETS 483: #if ($isSharedMeets && !$isSingleTeam) 484: 485: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 486: #set ($teamsThreshold = 20) 487: 488: #if ($page.title.length() > 0) 489: <h1>$page.title</h1> 490: #else 491: <h1>Teams</h1> 492: #end 493: 494: #if ($teams.size() > $teamsThreshold) 495: 496: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 497: 498: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 499: <div class="alphabet-filter-chars"> 500: <span class="alphabet-filter-border"> | </span> 501: #foreach ($alphabet in $alphabets.split("")) 502: #if ($alphabet.length() > 0) 503: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 504: <span class="alphabet-filter-border"> | </span> 505: #end 506: #end 507: </div> ## alphabet-filter-char 508: 509: <div class="alphabet-filter-list"> 510: <div class="alphabet-filter-column"> 511: #set ($lastAlphabet = "") 512: #set ($counter = 0) 513: 514: #foreach ($team in $teams) 515: #set ($teamName = $team.value) 516: 517: #if ($teamName.charAt(0) != $lastAlphabet) 518: #set ($counter = $counter + 1) 519: #if ($counter > 1) 520: </div> ## alphabet-filter-section 521: #end 522: #if ($counter == 8 || $counter == 15) 523: </div> ## alphabet-filter-column 524: <div class="alphabet-filter-column"> 525: #end 526: #set ($lastAlphabet = $teamName.charAt(0)) 527: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 528: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 529: #end 530: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 531: #end 532: </div> ## alphabet-filter-section 533: </div> ## alphabet-filter-column 534: </div> ## alphabet-filter-list 535: </div> ## alphabet-filter 536: 537: #else ## plain list 538: 539: <div class="stats-container table-responsive"> 540: <table class="table table-hover"> 541: #foreach ($team in $teams) 542: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 543: #end 544: #if ($teams.size() == 0) 545: <tr><td>There are no teams that match this criteria</td></tr> 546: #end 547: </table> 548: </div> 549: 550: #end ## teams threshold 551: 552: ## TEAMINFO ROSTER LAYOUT 553: #elseif ($isIncluded && $view == 'roster') 554: 555: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 556: <div class="stats-container table-responsive"> 557: <table class="table table-hover"> 558: <thead class="thead-dark"> 559: <tr> 560: <th scope="col" class="text-nowrap text-center w-1">#</th> 561: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 562: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 563: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 564: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 565: #if ($baseball) 566: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 570: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 571: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 572: #end 573: </tr> 574: </thead> 575: <tbody> 576: #foreach ($individual in $individuals) 577: <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> 578: <td scope="row" class="text text-center">${individual.uniform}</td> 579: <td class="text text-left text-start pinned-col"> 580: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 581: </td> 582: <td class="text-center"> 583: #if ($individual.positionAbbreviation) 584: $!individual.positionAbbreviation 585: #else 586: $!individual.position 587: #end 588: </td> 589: <td class="text-center">$!{individual.year}</td> 590: <td class="text-center"> 591: #if($additionalRosterStatus) 592: $individual.playerStatus 593: #elseif ($individual.active) 594: Active 595: #else 596: Inactive 597: #end 598: </td> 599: #if ($baseball) 600: <td class="text-center">$!{individual.dataMap["height"]}</td> 601: <td class="text-center">$!{individual.dataMap["weight"]}</td> 602: <td class="text-center">$!{individual.dataMap["bats"]}</td> 603: <td class="text-center">$!{individual.dataMap["throws"]}</td> 604: <td class="text-center">$!{individual.dataMap["born"]}</td> 605: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 606: #end 607: </tr> 608: #end 609: </tbody> 610: </table> 611: </div> 612: 613: ## SHARED MEETS PLAYERS 614: #elseif ($isSharedMeets) 615: 616: #if ($teamId) 617: #set ($playersPageTitle = $page.title) 618: #foreach($team in $page.teams.entrySet()) 619: #if ($teamId == $team.key) 620: #set ($playersPageTitle = $team.value) 621: #end 622: #end 623: <h1>$playersPageTitle</h1> 624: #end 625: 626: #printPlayers($pos, $restriction) 627: 628: ## PLAYERS / LINEUP 629: #else 630: 631: ## do not show these options on the lineup page 632: #if (not $isIncluded) 633: 634: #if ($isAjax) 635: $website.decorate('') 636: #printPlayers($pos $restriction) 637: #stop 638: #end 639: 640: ## ARCHIVES 641: #if ($page.contentType == "stat/bios") 642: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 643: #end 644: 645: #if ($page.title.length() > 0 && !$isSharedMeets) 646: <h1>$page.title</h1> 647: #else 648: <h1>Player Stats</h1> 649: #end 650: 651: #printFilters 652: 653: ##if ($minimum.length() > 0) 654: <!--<div class="clearfix align-right">$!minimum</div>--> 655: ##end 656: 657: #if ($showconf && !$isSharedMeets) 658: $request.setAttribute("icl-responsive-tabs-script", true) 659: <div class="tab-container"> 660: <div class="tab-nav m-0"> 661: <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"> 662: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 663: <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> 664: </li> 665: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 666: <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> 667: </li> 668: </ul> 669: </div> 670: 671: <div class="tab-content p-3 border"> 672: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 673: #printBriefsCategories("0") 674: </div> 675: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 676: #printBriefsCategories("1") 677: </div> 678: </div> 679: </div> ## tab-container overall/conf 680: #else 681: #printBriefsCategories($restriction) 682: #end 683: 684: #else 685: #printBriefsCategories($restriction) 686: #end ## not isIncluded 687: #end ## LAYOUTS 688: 689: $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 294, 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: #if ($isIncluded) 212: ## lineup pages 213: #set ($searching = "false") 214: #set ($paging = "false") 215: #set ($info = "false") 216: #else 217: ## player stats (conference, naia) 218: #set ($searching = "true") 219: #set ($paging = "true") 220: #set ($info = "true") 221: #end 222: 223: 224: ## FAISAL CHANGES 225: $!request.setAttribute("pageObj", $page) 226: $website.includeAgain("get-conf-pages?pageName=teams") 227: #set ($confPages = $!request.getAttribute("conf_pages")) 228: #set ($confTeams = {}) 229: 230: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 231: #foreach ($conf in $confPages) 232: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 233: #end 234: 235: <div class="stats-container table-responsive-via-datatables"> 236: <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-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 237: #if ($minimum.length() > 0) 238: <caption class="caption-side-top">$!minimum</caption> 239: #end 240: <thead class="thead-dark"> 241: <tr> 242: #if ($isIncluded) 243: #printTableHeader("#", "text-center w-1") 244: #elseif ($sort != 'name' && ! $isSharedMeets) 245: #printTableHeader("Rk", "text-center w-1") 246: #end 247: 248: #if ($cansort == 'n' || $isSharedMeets) 249: #printTableHeader("Name", "text-left") 250: #else 251: <th class="text-left text-uppercase text-nowrap">Name</th> 252: #end 253: 254: #if ($isIncluded) 255: #printTableHeader("Yr", "text-center") 256: #printTableHeader("Pos", "text-center") 257: #elseif ($isSharedMeets) 258: #printTableHeader("Yr", "text-center") 259: #else 260: #printTableHeader("Team", "text-center") 261: #end 262: 263: ## Hack for now 264: #set ($pos = "") 265: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 266: #set ($labels = $labels.get($pos)) 267: 268: #foreach ($key in $briefs.keySet()) 269: #if ($cansort == 'n') 270: #printTableHeader($briefs.get($key), "text-center") 271: #else 272: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 273: <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> 274: </th> 275: #end 276: #end 277: </tr> 278: </thead> 279: #set ($showCount = 0) 280: #set ($rankValue = "abb") 281: #set ($counter = 0) 282: 283: <tbody> 284: #foreach ($individual in $individuals) 285: #if ($r == "1") 286: #set ($stats = $individual.statsConference) 287: #else 288: #set ($stats = $individual.stats) 289: #end 290: 291: #set ($individualPosition = "") 292: #set ($individualPosition = $individual.position) 293: #set ($posVec = $individualPosition.split("/")) 294: #set ($individualPosition = $posVec[0]) 295: 296: #set ($show = "") 297: 298: #set ($showAllPlayers = $options.get("stats_show_all_players")) 299: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 300: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 301: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 302: #if ($showPosition) 303: #set ($indPositionsList = $lineupShowPosition.get($p)) 304: #foreach ($indPos in $indPositionsList) 305: #if ($individualPosition.equalsIgnoreCase($indPos)) 306: #set ($show = "y") 307: #end 308: #end 309: #end 310: 311: #if ($showStat) 312: #set ($statsList = $lineupShowStat.get($p)) 313: #foreach ($statElem in $statsList) 314: #if ($stats.get($statElem) > 0) 315: #set ($show = "y") 316: #end 317: #end 318: #end 319: 320: #if ($min) 321: #set ($test = 0) 322: #set ($test = $stats.get($min)) 323: #if ($test > 0) 324: #set ($show = "y") 325: #end 326: #end 327: #else 328: #set ($show = "y") 329: #end 330: 331: #if ($show.length() > 0) 332: #set ($showCount = $showCount + 1) 333: #if ($showCount <= 200) 334: <tr> 335: #if ($isIncluded) 336: <td class="text-nowrap text-center">${individual.uniform}</td> 337: #elseif ($sort != 'name' && ! $isSharedMeets) 338: <td class="text-nowrap text-center"> 339: ## Need to figure out what value is 340: #set ($value = ${stats.get($sort)}) 341: #if (!($value == $rankValue)) 342: ##This is a new rank value... let's update our ranking 343: #set ($rank = $showCount) 344: #set ($rankValue = $value) 345: #end 346: ${rank} 347: </td> 348: #end 349: 350: <td class="text-nowrap text-left"> 351: #if ($isSharedMeets) 352: ${individual.firstName} ${individual.lastName} 353: #else 354: <a href="${page.url}/${individual.pageName}"> 355: #if ($isIncluded) 356: ${individual.firstName} 357: #elseif ($individual.firstName.length() > 0) 358: ${individual.firstName.substring(0, 1)} 359: #end 360: ${individual.lastName} 361: </a> 362: #end 363: </td> 364: 365: #if ($isIncluded) 366: <td class="text-nowrap text-center">$!{individual.year}</td> 367: <td class="text-nowrap text-center"> 368: #if ($individual.positionAbbreviation) 369: $!individual.positionAbbreviation 370: #else 371: $!individual.position 372: #end 373: </td> 374: #elseif ($isSharedMeets) 375: <td class="text-nowrap text-center">$!{individual.year}</td> 376: #else 377: #set ($teamname = "") 378: #set ($teamname = $individual.team) 379: 380: 381: #set ($teamURL = "teams?id=${individual.teamId}") 382: #foreach ($entry in $confTeams.entrySet()) 383: #if ($entry.value.teams.containsValue($teamname)) 384: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 385: #end 386: #end 387: 388: 389: #if($teamAbbr.size() > 0) 390: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 391: #* 392: #set ($teamname = $teamAbbr.get($individual.teamId)) 393: #set ($teamname = $teamAbbr.get($individual.team)) 394: *# 395: #end 396: 397: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 398: #if ($teamname.length() > 0) 399: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 400: <a href="$teamURL">${teamname}</a> 401: #end 402: </td> 403: #end 404: 405: ## Briefs 406: #foreach ($key in $briefs.keySet()) 407: #set ($value = "-") 408: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 409: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 410: #if ($value.length() > 0) 411: $value 412: #else 413: - 414: #end 415: </td> 416: #end 417: </tr> 418: #end ## page limit 419: #end ## showing 420: #end ## foreach individual 421: </tbody> 422: #if ($individuals.size() == 0) 423: <caption> 424: #if ($isSharedMeets) 425: This team's roster is empty 426: #elseif ($hasBiosBeforeFilter) 427: No players meet the minimum 428: #else 429: No stats are available at this time 430: #end 431: </caption> 432: #end 433: </table> 434: </div> 435: #if ($isIncluded || $showTotalRow) 436: <div class="table-totals mb-3 small text-start text-muted p-2"> 437: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 438: <div class="heading">Totals:</div> 439: #set ($teamStats = $request.getAttribute("teamStats")) 440: <div class="calculated-totals m-0"> 441: #foreach ($key in $briefs.keySet()) 442: #set ($value = "-") 443: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 444: <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 445: #end 446: </div> 447: </div> 448: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 449: <div class="heading">Opponents:</div> 450: <div class="calculated-totals m-0"> 451: #foreach ($key in $briefs.keySet()) 452: #set ($keyopp = "${key}opp") 453: #set ($value = "-") 454: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 455: <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 456: #end 457: </div> 458: </div> 459: </div> 460: #end 461: #end ## printPlayers 462: 463: #macro (printFilters) 464: <div class="py-3 border-top border-bottom my-3 d-print-none"> 465: <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"> 466: ## #printTeamsFilter 467: <div class="flex-fill"> 468: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 469: $!request.setAttribute("pageObj", $page) 470: $website.include("conf-season-filter-template") 471: </div> 472: </div> 473: <div class="" role="group" aria-label="Print friendly version"> 474: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 475: </div> 476: </div> 477: </div> 478: #end ## printFilters 479: 480: ### END MACROS ### 481: 482: ## TEAMS LAYOUTS FOR SHARED MEETS 483: #if ($isSharedMeets && !$isSingleTeam) 484: 485: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 486: #set ($teamsThreshold = 20) 487: 488: #if ($page.title.length() > 0) 489: <h1>$page.title</h1> 490: #else 491: <h1>Teams</h1> 492: #end 493: 494: #if ($teams.size() > $teamsThreshold) 495: 496: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 497: 498: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 499: <div class="alphabet-filter-chars"> 500: <span class="alphabet-filter-border"> | </span> 501: #foreach ($alphabet in $alphabets.split("")) 502: #if ($alphabet.length() > 0) 503: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 504: <span class="alphabet-filter-border"> | </span> 505: #end 506: #end 507: </div> ## alphabet-filter-char 508: 509: <div class="alphabet-filter-list"> 510: <div class="alphabet-filter-column"> 511: #set ($lastAlphabet = "") 512: #set ($counter = 0) 513: 514: #foreach ($team in $teams) 515: #set ($teamName = $team.value) 516: 517: #if ($teamName.charAt(0) != $lastAlphabet) 518: #set ($counter = $counter + 1) 519: #if ($counter > 1) 520: </div> ## alphabet-filter-section 521: #end 522: #if ($counter == 8 || $counter == 15) 523: </div> ## alphabet-filter-column 524: <div class="alphabet-filter-column"> 525: #end 526: #set ($lastAlphabet = $teamName.charAt(0)) 527: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 528: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 529: #end 530: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 531: #end 532: </div> ## alphabet-filter-section 533: </div> ## alphabet-filter-column 534: </div> ## alphabet-filter-list 535: </div> ## alphabet-filter 536: 537: #else ## plain list 538: 539: <div class="stats-container table-responsive"> 540: <table class="table table-hover"> 541: #foreach ($team in $teams) 542: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 543: #end 544: #if ($teams.size() == 0) 545: <tr><td>There are no teams that match this criteria</td></tr> 546: #end 547: </table> 548: </div> 549: 550: #end ## teams threshold 551: 552: ## TEAMINFO ROSTER LAYOUT 553: #elseif ($isIncluded && $view == 'roster') 554: 555: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 556: <div class="stats-container table-responsive"> 557: <table class="table table-hover"> 558: <thead class="thead-dark"> 559: <tr> 560: <th scope="col" class="text-nowrap text-center w-1">#</th> 561: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 562: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 563: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 564: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 565: #if ($baseball) 566: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 570: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 571: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 572: #end 573: </tr> 574: </thead> 575: <tbody> 576: #foreach ($individual in $individuals) 577: <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> 578: <td scope="row" class="text text-center">${individual.uniform}</td> 579: <td class="text text-left text-start pinned-col"> 580: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 581: </td> 582: <td class="text-center"> 583: #if ($individual.positionAbbreviation) 584: $!individual.positionAbbreviation 585: #else 586: $!individual.position 587: #end 588: </td> 589: <td class="text-center">$!{individual.year}</td> 590: <td class="text-center"> 591: #if($additionalRosterStatus) 592: $individual.playerStatus 593: #elseif ($individual.active) 594: Active 595: #else 596: Inactive 597: #end 598: </td> 599: #if ($baseball) 600: <td class="text-center">$!{individual.dataMap["height"]}</td> 601: <td class="text-center">$!{individual.dataMap["weight"]}</td> 602: <td class="text-center">$!{individual.dataMap["bats"]}</td> 603: <td class="text-center">$!{individual.dataMap["throws"]}</td> 604: <td class="text-center">$!{individual.dataMap["born"]}</td> 605: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 606: #end 607: </tr> 608: #end 609: </tbody> 610: </table> 611: </div> 612: 613: ## SHARED MEETS PLAYERS 614: #elseif ($isSharedMeets) 615: 616: #if ($teamId) 617: #set ($playersPageTitle = $page.title) 618: #foreach($team in $page.teams.entrySet()) 619: #if ($teamId == $team.key) 620: #set ($playersPageTitle = $team.value) 621: #end 622: #end 623: <h1>$playersPageTitle</h1> 624: #end 625: 626: #printPlayers($pos, $restriction) 627: 628: ## PLAYERS / LINEUP 629: #else 630: 631: ## do not show these options on the lineup page 632: #if (not $isIncluded) 633: 634: #if ($isAjax) 635: $website.decorate('') 636: #printPlayers($pos $restriction) 637: #stop 638: #end 639: 640: ## ARCHIVES 641: #if ($page.contentType == "stat/bios") 642: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 643: #end 644: 645: #if ($page.title.length() > 0 && !$isSharedMeets) 646: <h1>$page.title</h1> 647: #else 648: <h1>Player Stats</h1> 649: #end 650: 651: #printFilters 652: 653: ##if ($minimum.length() > 0) 654: <!--<div class="clearfix align-right">$!minimum</div>--> 655: ##end 656: 657: #if ($showconf && !$isSharedMeets) 658: $request.setAttribute("icl-responsive-tabs-script", true) 659: <div class="tab-container"> 660: <div class="tab-nav m-0"> 661: <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"> 662: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 663: <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> 664: </li> 665: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 666: <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> 667: </li> 668: </ul> 669: </div> 670: 671: <div class="tab-content p-3 border"> 672: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 673: #printBriefsCategories("0") 674: </div> 675: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 676: #printBriefsCategories("1") 677: </div> 678: </div> 679: </div> ## tab-container overall/conf 680: #else 681: #printBriefsCategories($restriction) 682: #end 683: 684: #else 685: #printBriefsCategories($restriction) 686: #end ## not isIncluded 687: #end ## LAYOUTS 688: 689: $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 294, 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: #if ($isIncluded) 212: ## lineup pages 213: #set ($searching = "false") 214: #set ($paging = "false") 215: #set ($info = "false") 216: #else 217: ## player stats (conference, naia) 218: #set ($searching = "true") 219: #set ($paging = "true") 220: #set ($info = "true") 221: #end 222: 223: 224: ## FAISAL CHANGES 225: $!request.setAttribute("pageObj", $page) 226: $website.includeAgain("get-conf-pages?pageName=teams") 227: #set ($confPages = $!request.getAttribute("conf_pages")) 228: #set ($confTeams = {}) 229: 230: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 231: #foreach ($conf in $confPages) 232: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 233: #end 234: 235: <div class="stats-container table-responsive-via-datatables"> 236: <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-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 237: #if ($minimum.length() > 0) 238: <caption class="caption-side-top">$!minimum</caption> 239: #end 240: <thead class="thead-dark"> 241: <tr> 242: #if ($isIncluded) 243: #printTableHeader("#", "text-center w-1") 244: #elseif ($sort != 'name' && ! $isSharedMeets) 245: #printTableHeader("Rk", "text-center w-1") 246: #end 247: 248: #if ($cansort == 'n' || $isSharedMeets) 249: #printTableHeader("Name", "text-left") 250: #else 251: <th class="text-left text-uppercase text-nowrap">Name</th> 252: #end 253: 254: #if ($isIncluded) 255: #printTableHeader("Yr", "text-center") 256: #printTableHeader("Pos", "text-center") 257: #elseif ($isSharedMeets) 258: #printTableHeader("Yr", "text-center") 259: #else 260: #printTableHeader("Team", "text-center") 261: #end 262: 263: ## Hack for now 264: #set ($pos = "") 265: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 266: #set ($labels = $labels.get($pos)) 267: 268: #foreach ($key in $briefs.keySet()) 269: #if ($cansort == 'n') 270: #printTableHeader($briefs.get($key), "text-center") 271: #else 272: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 273: <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> 274: </th> 275: #end 276: #end 277: </tr> 278: </thead> 279: #set ($showCount = 0) 280: #set ($rankValue = "abb") 281: #set ($counter = 0) 282: 283: <tbody> 284: #foreach ($individual in $individuals) 285: #if ($r == "1") 286: #set ($stats = $individual.statsConference) 287: #else 288: #set ($stats = $individual.stats) 289: #end 290: 291: #set ($individualPosition = "") 292: #set ($individualPosition = $individual.position) 293: #set ($posVec = $individualPosition.split("/")) 294: #set ($individualPosition = $posVec[0]) 295: 296: #set ($show = "") 297: 298: #set ($showAllPlayers = $options.get("stats_show_all_players")) 299: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 300: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 301: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 302: #if ($showPosition) 303: #set ($indPositionsList = $lineupShowPosition.get($p)) 304: #foreach ($indPos in $indPositionsList) 305: #if ($individualPosition.equalsIgnoreCase($indPos)) 306: #set ($show = "y") 307: #end 308: #end 309: #end 310: 311: #if ($showStat) 312: #set ($statsList = $lineupShowStat.get($p)) 313: #foreach ($statElem in $statsList) 314: #if ($stats.get($statElem) > 0) 315: #set ($show = "y") 316: #end 317: #end 318: #end 319: 320: #if ($min) 321: #set ($test = 0) 322: #set ($test = $stats.get($min)) 323: #if ($test > 0) 324: #set ($show = "y") 325: #end 326: #end 327: #else 328: #set ($show = "y") 329: #end 330: 331: #if ($show.length() > 0) 332: #set ($showCount = $showCount + 1) 333: #if ($showCount <= 200) 334: <tr> 335: #if ($isIncluded) 336: <td class="text-nowrap text-center">${individual.uniform}</td> 337: #elseif ($sort != 'name' && ! $isSharedMeets) 338: <td class="text-nowrap text-center"> 339: ## Need to figure out what value is 340: #set ($value = ${stats.get($sort)}) 341: #if (!($value == $rankValue)) 342: ##This is a new rank value... let's update our ranking 343: #set ($rank = $showCount) 344: #set ($rankValue = $value) 345: #end 346: ${rank} 347: </td> 348: #end 349: 350: <td class="text-nowrap text-left"> 351: #if ($isSharedMeets) 352: ${individual.firstName} ${individual.lastName} 353: #else 354: <a href="${page.url}/${individual.pageName}"> 355: #if ($isIncluded) 356: ${individual.firstName} 357: #elseif ($individual.firstName.length() > 0) 358: ${individual.firstName.substring(0, 1)} 359: #end 360: ${individual.lastName} 361: </a> 362: #end 363: </td> 364: 365: #if ($isIncluded) 366: <td class="text-nowrap text-center">$!{individual.year}</td> 367: <td class="text-nowrap text-center"> 368: #if ($individual.positionAbbreviation) 369: $!individual.positionAbbreviation 370: #else 371: $!individual.position 372: #end 373: </td> 374: #elseif ($isSharedMeets) 375: <td class="text-nowrap text-center">$!{individual.year}</td> 376: #else 377: #set ($teamname = "") 378: #set ($teamname = $individual.team) 379: 380: 381: #set ($teamURL = "teams?id=${individual.teamId}") 382: #foreach ($entry in $confTeams.entrySet()) 383: #if ($entry.value.teams.containsValue($teamname)) 384: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 385: #end 386: #end 387: 388: 389: #if($teamAbbr.size() > 0) 390: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 391: #* 392: #set ($teamname = $teamAbbr.get($individual.teamId)) 393: #set ($teamname = $teamAbbr.get($individual.team)) 394: *# 395: #end 396: 397: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 398: #if ($teamname.length() > 0) 399: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 400: <a href="$teamURL">${teamname}</a> 401: #end 402: </td> 403: #end 404: 405: ## Briefs 406: #foreach ($key in $briefs.keySet()) 407: #set ($value = "-") 408: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 409: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 410: #if ($value.length() > 0) 411: $value 412: #else 413: - 414: #end 415: </td> 416: #end 417: </tr> 418: #end ## page limit 419: #end ## showing 420: #end ## foreach individual 421: </tbody> 422: #if ($individuals.size() == 0) 423: <caption> 424: #if ($isSharedMeets) 425: This team's roster is empty 426: #elseif ($hasBiosBeforeFilter) 427: No players meet the minimum 428: #else 429: No stats are available at this time 430: #end 431: </caption> 432: #end 433: </table> 434: </div> 435: #if ($isIncluded || $showTotalRow) 436: <div class="table-totals mb-3 small text-start text-muted p-2"> 437: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 438: <div class="heading">Totals:</div> 439: #set ($teamStats = $request.getAttribute("teamStats")) 440: <div class="calculated-totals m-0"> 441: #foreach ($key in $briefs.keySet()) 442: #set ($value = "-") 443: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 444: <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 445: #end 446: </div> 447: </div> 448: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 449: <div class="heading">Opponents:</div> 450: <div class="calculated-totals m-0"> 451: #foreach ($key in $briefs.keySet()) 452: #set ($keyopp = "${key}opp") 453: #set ($value = "-") 454: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 455: <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 456: #end 457: </div> 458: </div> 459: </div> 460: #end 461: #end ## printPlayers 462: 463: #macro (printFilters) 464: <div class="py-3 border-top border-bottom my-3 d-print-none"> 465: <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"> 466: ## #printTeamsFilter 467: <div class="flex-fill"> 468: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 469: $!request.setAttribute("pageObj", $page) 470: $website.include("conf-season-filter-template") 471: </div> 472: </div> 473: <div class="" role="group" aria-label="Print friendly version"> 474: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 475: </div> 476: </div> 477: </div> 478: #end ## printFilters 479: 480: ### END MACROS ### 481: 482: ## TEAMS LAYOUTS FOR SHARED MEETS 483: #if ($isSharedMeets && !$isSingleTeam) 484: 485: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 486: #set ($teamsThreshold = 20) 487: 488: #if ($page.title.length() > 0) 489: <h1>$page.title</h1> 490: #else 491: <h1>Teams</h1> 492: #end 493: 494: #if ($teams.size() > $teamsThreshold) 495: 496: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 497: 498: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 499: <div class="alphabet-filter-chars"> 500: <span class="alphabet-filter-border"> | </span> 501: #foreach ($alphabet in $alphabets.split("")) 502: #if ($alphabet.length() > 0) 503: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 504: <span class="alphabet-filter-border"> | </span> 505: #end 506: #end 507: </div> ## alphabet-filter-char 508: 509: <div class="alphabet-filter-list"> 510: <div class="alphabet-filter-column"> 511: #set ($lastAlphabet = "") 512: #set ($counter = 0) 513: 514: #foreach ($team in $teams) 515: #set ($teamName = $team.value) 516: 517: #if ($teamName.charAt(0) != $lastAlphabet) 518: #set ($counter = $counter + 1) 519: #if ($counter > 1) 520: </div> ## alphabet-filter-section 521: #end 522: #if ($counter == 8 || $counter == 15) 523: </div> ## alphabet-filter-column 524: <div class="alphabet-filter-column"> 525: #end 526: #set ($lastAlphabet = $teamName.charAt(0)) 527: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 528: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 529: #end 530: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 531: #end 532: </div> ## alphabet-filter-section 533: </div> ## alphabet-filter-column 534: </div> ## alphabet-filter-list 535: </div> ## alphabet-filter 536: 537: #else ## plain list 538: 539: <div class="stats-container table-responsive"> 540: <table class="table table-hover"> 541: #foreach ($team in $teams) 542: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 543: #end 544: #if ($teams.size() == 0) 545: <tr><td>There are no teams that match this criteria</td></tr> 546: #end 547: </table> 548: </div> 549: 550: #end ## teams threshold 551: 552: ## TEAMINFO ROSTER LAYOUT 553: #elseif ($isIncluded && $view == 'roster') 554: 555: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 556: <div class="stats-container table-responsive"> 557: <table class="table table-hover"> 558: <thead class="thead-dark"> 559: <tr> 560: <th scope="col" class="text-nowrap text-center w-1">#</th> 561: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 562: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 563: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 564: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 565: #if ($baseball) 566: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 570: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 571: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 572: #end 573: </tr> 574: </thead> 575: <tbody> 576: #foreach ($individual in $individuals) 577: <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> 578: <td scope="row" class="text text-center">${individual.uniform}</td> 579: <td class="text text-left text-start pinned-col"> 580: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 581: </td> 582: <td class="text-center"> 583: #if ($individual.positionAbbreviation) 584: $!individual.positionAbbreviation 585: #else 586: $!individual.position 587: #end 588: </td> 589: <td class="text-center">$!{individual.year}</td> 590: <td class="text-center"> 591: #if($additionalRosterStatus) 592: $individual.playerStatus 593: #elseif ($individual.active) 594: Active 595: #else 596: Inactive 597: #end 598: </td> 599: #if ($baseball) 600: <td class="text-center">$!{individual.dataMap["height"]}</td> 601: <td class="text-center">$!{individual.dataMap["weight"]}</td> 602: <td class="text-center">$!{individual.dataMap["bats"]}</td> 603: <td class="text-center">$!{individual.dataMap["throws"]}</td> 604: <td class="text-center">$!{individual.dataMap["born"]}</td> 605: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 606: #end 607: </tr> 608: #end 609: </tbody> 610: </table> 611: </div> 612: 613: ## SHARED MEETS PLAYERS 614: #elseif ($isSharedMeets) 615: 616: #if ($teamId) 617: #set ($playersPageTitle = $page.title) 618: #foreach($team in $page.teams.entrySet()) 619: #if ($teamId == $team.key) 620: #set ($playersPageTitle = $team.value) 621: #end 622: #end 623: <h1>$playersPageTitle</h1> 624: #end 625: 626: #printPlayers($pos, $restriction) 627: 628: ## PLAYERS / LINEUP 629: #else 630: 631: ## do not show these options on the lineup page 632: #if (not $isIncluded) 633: 634: #if ($isAjax) 635: $website.decorate('') 636: #printPlayers($pos $restriction) 637: #stop 638: #end 639: 640: ## ARCHIVES 641: #if ($page.contentType == "stat/bios") 642: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 643: #end 644: 645: #if ($page.title.length() > 0 && !$isSharedMeets) 646: <h1>$page.title</h1> 647: #else 648: <h1>Player Stats</h1> 649: #end 650: 651: #printFilters 652: 653: ##if ($minimum.length() > 0) 654: <!--<div class="clearfix align-right">$!minimum</div>--> 655: ##end 656: 657: #if ($showconf && !$isSharedMeets) 658: $request.setAttribute("icl-responsive-tabs-script", true) 659: <div class="tab-container"> 660: <div class="tab-nav m-0"> 661: <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"> 662: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 663: <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> 664: </li> 665: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 666: <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> 667: </li> 668: </ul> 669: </div> 670: 671: <div class="tab-content p-3 border"> 672: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 673: #printBriefsCategories("0") 674: </div> 675: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 676: #printBriefsCategories("1") 677: </div> 678: </div> 679: </div> ## tab-container overall/conf 680: #else 681: #printBriefsCategories($restriction) 682: #end 683: 684: #else 685: #printBriefsCategories($restriction) 686: #end ## not isIncluded 687: #end ## LAYOUTS 688: 689: $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 294, 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: #if ($isIncluded) 212: ## lineup pages 213: #set ($searching = "false") 214: #set ($paging = "false") 215: #set ($info = "false") 216: #else 217: ## player stats (conference, naia) 218: #set ($searching = "true") 219: #set ($paging = "true") 220: #set ($info = "true") 221: #end 222: 223: 224: ## FAISAL CHANGES 225: $!request.setAttribute("pageObj", $page) 226: $website.includeAgain("get-conf-pages?pageName=teams") 227: #set ($confPages = $!request.getAttribute("conf_pages")) 228: #set ($confTeams = {}) 229: 230: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 231: #foreach ($conf in $confPages) 232: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 233: #end 234: 235: <div class="stats-container table-responsive-via-datatables"> 236: <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-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 237: #if ($minimum.length() > 0) 238: <caption class="caption-side-top">$!minimum</caption> 239: #end 240: <thead class="thead-dark"> 241: <tr> 242: #if ($isIncluded) 243: #printTableHeader("#", "text-center w-1") 244: #elseif ($sort != 'name' && ! $isSharedMeets) 245: #printTableHeader("Rk", "text-center w-1") 246: #end 247: 248: #if ($cansort == 'n' || $isSharedMeets) 249: #printTableHeader("Name", "text-left") 250: #else 251: <th class="text-left text-uppercase text-nowrap">Name</th> 252: #end 253: 254: #if ($isIncluded) 255: #printTableHeader("Yr", "text-center") 256: #printTableHeader("Pos", "text-center") 257: #elseif ($isSharedMeets) 258: #printTableHeader("Yr", "text-center") 259: #else 260: #printTableHeader("Team", "text-center") 261: #end 262: 263: ## Hack for now 264: #set ($pos = "") 265: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 266: #set ($labels = $labels.get($pos)) 267: 268: #foreach ($key in $briefs.keySet()) 269: #if ($cansort == 'n') 270: #printTableHeader($briefs.get($key), "text-center") 271: #else 272: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 273: <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> 274: </th> 275: #end 276: #end 277: </tr> 278: </thead> 279: #set ($showCount = 0) 280: #set ($rankValue = "abb") 281: #set ($counter = 0) 282: 283: <tbody> 284: #foreach ($individual in $individuals) 285: #if ($r == "1") 286: #set ($stats = $individual.statsConference) 287: #else 288: #set ($stats = $individual.stats) 289: #end 290: 291: #set ($individualPosition = "") 292: #set ($individualPosition = $individual.position) 293: #set ($posVec = $individualPosition.split("/")) 294: #set ($individualPosition = $posVec[0]) 295: 296: #set ($show = "") 297: 298: #set ($showAllPlayers = $options.get("stats_show_all_players")) 299: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 300: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 301: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 302: #if ($showPosition) 303: #set ($indPositionsList = $lineupShowPosition.get($p)) 304: #foreach ($indPos in $indPositionsList) 305: #if ($individualPosition.equalsIgnoreCase($indPos)) 306: #set ($show = "y") 307: #end 308: #end 309: #end 310: 311: #if ($showStat) 312: #set ($statsList = $lineupShowStat.get($p)) 313: #foreach ($statElem in $statsList) 314: #if ($stats.get($statElem) > 0) 315: #set ($show = "y") 316: #end 317: #end 318: #end 319: 320: #if ($min) 321: #set ($test = 0) 322: #set ($test = $stats.get($min)) 323: #if ($test > 0) 324: #set ($show = "y") 325: #end 326: #end 327: #else 328: #set ($show = "y") 329: #end 330: 331: #if ($show.length() > 0) 332: #set ($showCount = $showCount + 1) 333: #if ($showCount <= 200) 334: <tr> 335: #if ($isIncluded) 336: <td class="text-nowrap text-center">${individual.uniform}</td> 337: #elseif ($sort != 'name' && ! $isSharedMeets) 338: <td class="text-nowrap text-center"> 339: ## Need to figure out what value is 340: #set ($value = ${stats.get($sort)}) 341: #if (!($value == $rankValue)) 342: ##This is a new rank value... let's update our ranking 343: #set ($rank = $showCount) 344: #set ($rankValue = $value) 345: #end 346: ${rank} 347: </td> 348: #end 349: 350: <td class="text-nowrap text-left"> 351: #if ($isSharedMeets) 352: ${individual.firstName} ${individual.lastName} 353: #else 354: <a href="${page.url}/${individual.pageName}"> 355: #if ($isIncluded) 356: ${individual.firstName} 357: #elseif ($individual.firstName.length() > 0) 358: ${individual.firstName.substring(0, 1)} 359: #end 360: ${individual.lastName} 361: </a> 362: #end 363: </td> 364: 365: #if ($isIncluded) 366: <td class="text-nowrap text-center">$!{individual.year}</td> 367: <td class="text-nowrap text-center"> 368: #if ($individual.positionAbbreviation) 369: $!individual.positionAbbreviation 370: #else 371: $!individual.position 372: #end 373: </td> 374: #elseif ($isSharedMeets) 375: <td class="text-nowrap text-center">$!{individual.year}</td> 376: #else 377: #set ($teamname = "") 378: #set ($teamname = $individual.team) 379: 380: 381: #set ($teamURL = "teams?id=${individual.teamId}") 382: #foreach ($entry in $confTeams.entrySet()) 383: #if ($entry.value.teams.containsValue($teamname)) 384: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 385: #end 386: #end 387: 388: 389: #if($teamAbbr.size() > 0) 390: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 391: #* 392: #set ($teamname = $teamAbbr.get($individual.teamId)) 393: #set ($teamname = $teamAbbr.get($individual.team)) 394: *# 395: #end 396: 397: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 398: #if ($teamname.length() > 0) 399: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 400: <a href="$teamURL">${teamname}</a> 401: #end 402: </td> 403: #end 404: 405: ## Briefs 406: #foreach ($key in $briefs.keySet()) 407: #set ($value = "-") 408: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 409: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 410: #if ($value.length() > 0) 411: $value 412: #else 413: - 414: #end 415: </td> 416: #end 417: </tr> 418: #end ## page limit 419: #end ## showing 420: #end ## foreach individual 421: </tbody> 422: #if ($individuals.size() == 0) 423: <caption> 424: #if ($isSharedMeets) 425: This team's roster is empty 426: #elseif ($hasBiosBeforeFilter) 427: No players meet the minimum 428: #else 429: No stats are available at this time 430: #end 431: </caption> 432: #end 433: </table> 434: </div> 435: #if ($isIncluded || $showTotalRow) 436: <div class="table-totals mb-3 small text-start text-muted p-2"> 437: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 438: <div class="heading">Totals:</div> 439: #set ($teamStats = $request.getAttribute("teamStats")) 440: <div class="calculated-totals m-0"> 441: #foreach ($key in $briefs.keySet()) 442: #set ($value = "-") 443: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 444: <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 445: #end 446: </div> 447: </div> 448: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 449: <div class="heading">Opponents:</div> 450: <div class="calculated-totals m-0"> 451: #foreach ($key in $briefs.keySet()) 452: #set ($keyopp = "${key}opp") 453: #set ($value = "-") 454: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 455: <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 456: #end 457: </div> 458: </div> 459: </div> 460: #end 461: #end ## printPlayers 462: 463: #macro (printFilters) 464: <div class="py-3 border-top border-bottom my-3 d-print-none"> 465: <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"> 466: ## #printTeamsFilter 467: <div class="flex-fill"> 468: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 469: $!request.setAttribute("pageObj", $page) 470: $website.include("conf-season-filter-template") 471: </div> 472: </div> 473: <div class="" role="group" aria-label="Print friendly version"> 474: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 475: </div> 476: </div> 477: </div> 478: #end ## printFilters 479: 480: ### END MACROS ### 481: 482: ## TEAMS LAYOUTS FOR SHARED MEETS 483: #if ($isSharedMeets && !$isSingleTeam) 484: 485: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 486: #set ($teamsThreshold = 20) 487: 488: #if ($page.title.length() > 0) 489: <h1>$page.title</h1> 490: #else 491: <h1>Teams</h1> 492: #end 493: 494: #if ($teams.size() > $teamsThreshold) 495: 496: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 497: 498: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 499: <div class="alphabet-filter-chars"> 500: <span class="alphabet-filter-border"> | </span> 501: #foreach ($alphabet in $alphabets.split("")) 502: #if ($alphabet.length() > 0) 503: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 504: <span class="alphabet-filter-border"> | </span> 505: #end 506: #end 507: </div> ## alphabet-filter-char 508: 509: <div class="alphabet-filter-list"> 510: <div class="alphabet-filter-column"> 511: #set ($lastAlphabet = "") 512: #set ($counter = 0) 513: 514: #foreach ($team in $teams) 515: #set ($teamName = $team.value) 516: 517: #if ($teamName.charAt(0) != $lastAlphabet) 518: #set ($counter = $counter + 1) 519: #if ($counter > 1) 520: </div> ## alphabet-filter-section 521: #end 522: #if ($counter == 8 || $counter == 15) 523: </div> ## alphabet-filter-column 524: <div class="alphabet-filter-column"> 525: #end 526: #set ($lastAlphabet = $teamName.charAt(0)) 527: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 528: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 529: #end 530: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 531: #end 532: </div> ## alphabet-filter-section 533: </div> ## alphabet-filter-column 534: </div> ## alphabet-filter-list 535: </div> ## alphabet-filter 536: 537: #else ## plain list 538: 539: <div class="stats-container table-responsive"> 540: <table class="table table-hover"> 541: #foreach ($team in $teams) 542: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 543: #end 544: #if ($teams.size() == 0) 545: <tr><td>There are no teams that match this criteria</td></tr> 546: #end 547: </table> 548: </div> 549: 550: #end ## teams threshold 551: 552: ## TEAMINFO ROSTER LAYOUT 553: #elseif ($isIncluded && $view == 'roster') 554: 555: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 556: <div class="stats-container table-responsive"> 557: <table class="table table-hover"> 558: <thead class="thead-dark"> 559: <tr> 560: <th scope="col" class="text-nowrap text-center w-1">#</th> 561: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 562: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 563: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 564: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 565: #if ($baseball) 566: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 570: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 571: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 572: #end 573: </tr> 574: </thead> 575: <tbody> 576: #foreach ($individual in $individuals) 577: <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> 578: <td scope="row" class="text text-center">${individual.uniform}</td> 579: <td class="text text-left text-start pinned-col"> 580: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 581: </td> 582: <td class="text-center"> 583: #if ($individual.positionAbbreviation) 584: $!individual.positionAbbreviation 585: #else 586: $!individual.position 587: #end 588: </td> 589: <td class="text-center">$!{individual.year}</td> 590: <td class="text-center"> 591: #if($additionalRosterStatus) 592: $individual.playerStatus 593: #elseif ($individual.active) 594: Active 595: #else 596: Inactive 597: #end 598: </td> 599: #if ($baseball) 600: <td class="text-center">$!{individual.dataMap["height"]}</td> 601: <td class="text-center">$!{individual.dataMap["weight"]}</td> 602: <td class="text-center">$!{individual.dataMap["bats"]}</td> 603: <td class="text-center">$!{individual.dataMap["throws"]}</td> 604: <td class="text-center">$!{individual.dataMap["born"]}</td> 605: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 606: #end 607: </tr> 608: #end 609: </tbody> 610: </table> 611: </div> 612: 613: ## SHARED MEETS PLAYERS 614: #elseif ($isSharedMeets) 615: 616: #if ($teamId) 617: #set ($playersPageTitle = $page.title) 618: #foreach($team in $page.teams.entrySet()) 619: #if ($teamId == $team.key) 620: #set ($playersPageTitle = $team.value) 621: #end 622: #end 623: <h1>$playersPageTitle</h1> 624: #end 625: 626: #printPlayers($pos, $restriction) 627: 628: ## PLAYERS / LINEUP 629: #else 630: 631: ## do not show these options on the lineup page 632: #if (not $isIncluded) 633: 634: #if ($isAjax) 635: $website.decorate('') 636: #printPlayers($pos $restriction) 637: #stop 638: #end 639: 640: ## ARCHIVES 641: #if ($page.contentType == "stat/bios") 642: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 643: #end 644: 645: #if ($page.title.length() > 0 && !$isSharedMeets) 646: <h1>$page.title</h1> 647: #else 648: <h1>Player Stats</h1> 649: #end 650: 651: #printFilters 652: 653: ##if ($minimum.length() > 0) 654: <!--<div class="clearfix align-right">$!minimum</div>--> 655: ##end 656: 657: #if ($showconf && !$isSharedMeets) 658: $request.setAttribute("icl-responsive-tabs-script", true) 659: <div class="tab-container"> 660: <div class="tab-nav m-0"> 661: <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"> 662: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 663: <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> 664: </li> 665: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 666: <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> 667: </li> 668: </ul> 669: </div> 670: 671: <div class="tab-content p-3 border"> 672: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 673: #printBriefsCategories("0") 674: </div> 675: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 676: #printBriefsCategories("1") 677: </div> 678: </div> 679: </div> ## tab-container overall/conf 680: #else 681: #printBriefsCategories($restriction) 682: #end 683: 684: #else 685: #printBriefsCategories($restriction) 686: #end ## not isIncluded 687: #end ## LAYOUTS 688: 689: $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 294, 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: #if ($isIncluded) 212: ## lineup pages 213: #set ($searching = "false") 214: #set ($paging = "false") 215: #set ($info = "false") 216: #else 217: ## player stats (conference, naia) 218: #set ($searching = "true") 219: #set ($paging = "true") 220: #set ($info = "true") 221: #end 222: 223: 224: ## FAISAL CHANGES 225: $!request.setAttribute("pageObj", $page) 226: $website.includeAgain("get-conf-pages?pageName=teams") 227: #set ($confPages = $!request.getAttribute("conf_pages")) 228: #set ($confTeams = {}) 229: 230: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 231: #foreach ($conf in $confPages) 232: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 233: #end 234: 235: <div class="stats-container table-responsive-via-datatables"> 236: <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-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 237: #if ($minimum.length() > 0) 238: <caption class="caption-side-top">$!minimum</caption> 239: #end 240: <thead class="thead-dark"> 241: <tr> 242: #if ($isIncluded) 243: #printTableHeader("#", "text-center w-1") 244: #elseif ($sort != 'name' && ! $isSharedMeets) 245: #printTableHeader("Rk", "text-center w-1") 246: #end 247: 248: #if ($cansort == 'n' || $isSharedMeets) 249: #printTableHeader("Name", "text-left") 250: #else 251: <th class="text-left text-uppercase text-nowrap">Name</th> 252: #end 253: 254: #if ($isIncluded) 255: #printTableHeader("Yr", "text-center") 256: #printTableHeader("Pos", "text-center") 257: #elseif ($isSharedMeets) 258: #printTableHeader("Yr", "text-center") 259: #else 260: #printTableHeader("Team", "text-center") 261: #end 262: 263: ## Hack for now 264: #set ($pos = "") 265: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 266: #set ($labels = $labels.get($pos)) 267: 268: #foreach ($key in $briefs.keySet()) 269: #if ($cansort == 'n') 270: #printTableHeader($briefs.get($key), "text-center") 271: #else 272: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 273: <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> 274: </th> 275: #end 276: #end 277: </tr> 278: </thead> 279: #set ($showCount = 0) 280: #set ($rankValue = "abb") 281: #set ($counter = 0) 282: 283: <tbody> 284: #foreach ($individual in $individuals) 285: #if ($r == "1") 286: #set ($stats = $individual.statsConference) 287: #else 288: #set ($stats = $individual.stats) 289: #end 290: 291: #set ($individualPosition = "") 292: #set ($individualPosition = $individual.position) 293: #set ($posVec = $individualPosition.split("/")) 294: #set ($individualPosition = $posVec[0]) 295: 296: #set ($show = "") 297: 298: #set ($showAllPlayers = $options.get("stats_show_all_players")) 299: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 300: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 301: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 302: #if ($showPosition) 303: #set ($indPositionsList = $lineupShowPosition.get($p)) 304: #foreach ($indPos in $indPositionsList) 305: #if ($individualPosition.equalsIgnoreCase($indPos)) 306: #set ($show = "y") 307: #end 308: #end 309: #end 310: 311: #if ($showStat) 312: #set ($statsList = $lineupShowStat.get($p)) 313: #foreach ($statElem in $statsList) 314: #if ($stats.get($statElem) > 0) 315: #set ($show = "y") 316: #end 317: #end 318: #end 319: 320: #if ($min) 321: #set ($test = 0) 322: #set ($test = $stats.get($min)) 323: #if ($test > 0) 324: #set ($show = "y") 325: #end 326: #end 327: #else 328: #set ($show = "y") 329: #end 330: 331: #if ($show.length() > 0) 332: #set ($showCount = $showCount + 1) 333: #if ($showCount <= 200) 334: <tr> 335: #if ($isIncluded) 336: <td class="text-nowrap text-center">${individual.uniform}</td> 337: #elseif ($sort != 'name' && ! $isSharedMeets) 338: <td class="text-nowrap text-center"> 339: ## Need to figure out what value is 340: #set ($value = ${stats.get($sort)}) 341: #if (!($value == $rankValue)) 342: ##This is a new rank value... let's update our ranking 343: #set ($rank = $showCount) 344: #set ($rankValue = $value) 345: #end 346: ${rank} 347: </td> 348: #end 349: 350: <td class="text-nowrap text-left"> 351: #if ($isSharedMeets) 352: ${individual.firstName} ${individual.lastName} 353: #else 354: <a href="${page.url}/${individual.pageName}"> 355: #if ($isIncluded) 356: ${individual.firstName} 357: #elseif ($individual.firstName.length() > 0) 358: ${individual.firstName.substring(0, 1)} 359: #end 360: ${individual.lastName} 361: </a> 362: #end 363: </td> 364: 365: #if ($isIncluded) 366: <td class="text-nowrap text-center">$!{individual.year}</td> 367: <td class="text-nowrap text-center"> 368: #if ($individual.positionAbbreviation) 369: $!individual.positionAbbreviation 370: #else 371: $!individual.position 372: #end 373: </td> 374: #elseif ($isSharedMeets) 375: <td class="text-nowrap text-center">$!{individual.year}</td> 376: #else 377: #set ($teamname = "") 378: #set ($teamname = $individual.team) 379: 380: 381: #set ($teamURL = "teams?id=${individual.teamId}") 382: #foreach ($entry in $confTeams.entrySet()) 383: #if ($entry.value.teams.containsValue($teamname)) 384: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 385: #end 386: #end 387: 388: 389: #if($teamAbbr.size() > 0) 390: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 391: #* 392: #set ($teamname = $teamAbbr.get($individual.teamId)) 393: #set ($teamname = $teamAbbr.get($individual.team)) 394: *# 395: #end 396: 397: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 398: #if ($teamname.length() > 0) 399: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 400: <a href="$teamURL">${teamname}</a> 401: #end 402: </td> 403: #end 404: 405: ## Briefs 406: #foreach ($key in $briefs.keySet()) 407: #set ($value = "-") 408: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 409: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 410: #if ($value.length() > 0) 411: $value 412: #else 413: - 414: #end 415: </td> 416: #end 417: </tr> 418: #end ## page limit 419: #end ## showing 420: #end ## foreach individual 421: </tbody> 422: #if ($individuals.size() == 0) 423: <caption> 424: #if ($isSharedMeets) 425: This team's roster is empty 426: #elseif ($hasBiosBeforeFilter) 427: No players meet the minimum 428: #else 429: No stats are available at this time 430: #end 431: </caption> 432: #end 433: </table> 434: </div> 435: #if ($isIncluded || $showTotalRow) 436: <div class="table-totals mb-3 small text-start text-muted p-2"> 437: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 438: <div class="heading">Totals:</div> 439: #set ($teamStats = $request.getAttribute("teamStats")) 440: <div class="calculated-totals m-0"> 441: #foreach ($key in $briefs.keySet()) 442: #set ($value = "-") 443: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 444: <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 445: #end 446: </div> 447: </div> 448: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 449: <div class="heading">Opponents:</div> 450: <div class="calculated-totals m-0"> 451: #foreach ($key in $briefs.keySet()) 452: #set ($keyopp = "${key}opp") 453: #set ($value = "-") 454: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 455: <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 456: #end 457: </div> 458: </div> 459: </div> 460: #end 461: #end ## printPlayers 462: 463: #macro (printFilters) 464: <div class="py-3 border-top border-bottom my-3 d-print-none"> 465: <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"> 466: ## #printTeamsFilter 467: <div class="flex-fill"> 468: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 469: $!request.setAttribute("pageObj", $page) 470: $website.include("conf-season-filter-template") 471: </div> 472: </div> 473: <div class="" role="group" aria-label="Print friendly version"> 474: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 475: </div> 476: </div> 477: </div> 478: #end ## printFilters 479: 480: ### END MACROS ### 481: 482: ## TEAMS LAYOUTS FOR SHARED MEETS 483: #if ($isSharedMeets && !$isSingleTeam) 484: 485: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 486: #set ($teamsThreshold = 20) 487: 488: #if ($page.title.length() > 0) 489: <h1>$page.title</h1> 490: #else 491: <h1>Teams</h1> 492: #end 493: 494: #if ($teams.size() > $teamsThreshold) 495: 496: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 497: 498: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 499: <div class="alphabet-filter-chars"> 500: <span class="alphabet-filter-border"> | </span> 501: #foreach ($alphabet in $alphabets.split("")) 502: #if ($alphabet.length() > 0) 503: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 504: <span class="alphabet-filter-border"> | </span> 505: #end 506: #end 507: </div> ## alphabet-filter-char 508: 509: <div class="alphabet-filter-list"> 510: <div class="alphabet-filter-column"> 511: #set ($lastAlphabet = "") 512: #set ($counter = 0) 513: 514: #foreach ($team in $teams) 515: #set ($teamName = $team.value) 516: 517: #if ($teamName.charAt(0) != $lastAlphabet) 518: #set ($counter = $counter + 1) 519: #if ($counter > 1) 520: </div> ## alphabet-filter-section 521: #end 522: #if ($counter == 8 || $counter == 15) 523: </div> ## alphabet-filter-column 524: <div class="alphabet-filter-column"> 525: #end 526: #set ($lastAlphabet = $teamName.charAt(0)) 527: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 528: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 529: #end 530: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 531: #end 532: </div> ## alphabet-filter-section 533: </div> ## alphabet-filter-column 534: </div> ## alphabet-filter-list 535: </div> ## alphabet-filter 536: 537: #else ## plain list 538: 539: <div class="stats-container table-responsive"> 540: <table class="table table-hover"> 541: #foreach ($team in $teams) 542: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 543: #end 544: #if ($teams.size() == 0) 545: <tr><td>There are no teams that match this criteria</td></tr> 546: #end 547: </table> 548: </div> 549: 550: #end ## teams threshold 551: 552: ## TEAMINFO ROSTER LAYOUT 553: #elseif ($isIncluded && $view == 'roster') 554: 555: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 556: <div class="stats-container table-responsive"> 557: <table class="table table-hover"> 558: <thead class="thead-dark"> 559: <tr> 560: <th scope="col" class="text-nowrap text-center w-1">#</th> 561: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 562: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 563: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 564: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 565: #if ($baseball) 566: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 570: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 571: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 572: #end 573: </tr> 574: </thead> 575: <tbody> 576: #foreach ($individual in $individuals) 577: <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> 578: <td scope="row" class="text text-center">${individual.uniform}</td> 579: <td class="text text-left text-start pinned-col"> 580: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 581: </td> 582: <td class="text-center"> 583: #if ($individual.positionAbbreviation) 584: $!individual.positionAbbreviation 585: #else 586: $!individual.position 587: #end 588: </td> 589: <td class="text-center">$!{individual.year}</td> 590: <td class="text-center"> 591: #if($additionalRosterStatus) 592: $individual.playerStatus 593: #elseif ($individual.active) 594: Active 595: #else 596: Inactive 597: #end 598: </td> 599: #if ($baseball) 600: <td class="text-center">$!{individual.dataMap["height"]}</td> 601: <td class="text-center">$!{individual.dataMap["weight"]}</td> 602: <td class="text-center">$!{individual.dataMap["bats"]}</td> 603: <td class="text-center">$!{individual.dataMap["throws"]}</td> 604: <td class="text-center">$!{individual.dataMap["born"]}</td> 605: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 606: #end 607: </tr> 608: #end 609: </tbody> 610: </table> 611: </div> 612: 613: ## SHARED MEETS PLAYERS 614: #elseif ($isSharedMeets) 615: 616: #if ($teamId) 617: #set ($playersPageTitle = $page.title) 618: #foreach($team in $page.teams.entrySet()) 619: #if ($teamId == $team.key) 620: #set ($playersPageTitle = $team.value) 621: #end 622: #end 623: <h1>$playersPageTitle</h1> 624: #end 625: 626: #printPlayers($pos, $restriction) 627: 628: ## PLAYERS / LINEUP 629: #else 630: 631: ## do not show these options on the lineup page 632: #if (not $isIncluded) 633: 634: #if ($isAjax) 635: $website.decorate('') 636: #printPlayers($pos $restriction) 637: #stop 638: #end 639: 640: ## ARCHIVES 641: #if ($page.contentType == "stat/bios") 642: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 643: #end 644: 645: #if ($page.title.length() > 0 && !$isSharedMeets) 646: <h1>$page.title</h1> 647: #else 648: <h1>Player Stats</h1> 649: #end 650: 651: #printFilters 652: 653: ##if ($minimum.length() > 0) 654: <!--<div class="clearfix align-right">$!minimum</div>--> 655: ##end 656: 657: #if ($showconf && !$isSharedMeets) 658: $request.setAttribute("icl-responsive-tabs-script", true) 659: <div class="tab-container"> 660: <div class="tab-nav m-0"> 661: <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"> 662: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 663: <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> 664: </li> 665: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 666: <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> 667: </li> 668: </ul> 669: </div> 670: 671: <div class="tab-content p-3 border"> 672: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 673: #printBriefsCategories("0") 674: </div> 675: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 676: #printBriefsCategories("1") 677: </div> 678: </div> 679: </div> ## tab-container overall/conf 680: #else 681: #printBriefsCategories($restriction) 682: #end 683: 684: #else 685: #printBriefsCategories($restriction) 686: #end ## not isIncluded 687: #end ## LAYOUTS 688: 689: $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 294, 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: #if ($isIncluded) 212: ## lineup pages 213: #set ($searching = "false") 214: #set ($paging = "false") 215: #set ($info = "false") 216: #else 217: ## player stats (conference, naia) 218: #set ($searching = "true") 219: #set ($paging = "true") 220: #set ($info = "true") 221: #end 222: 223: 224: ## FAISAL CHANGES 225: $!request.setAttribute("pageObj", $page) 226: $website.includeAgain("get-conf-pages?pageName=teams") 227: #set ($confPages = $!request.getAttribute("conf_pages")) 228: #set ($confTeams = {}) 229: 230: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 231: #foreach ($conf in $confPages) 232: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 233: #end 234: 235: <div class="stats-container table-responsive-via-datatables"> 236: <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-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 237: #if ($minimum.length() > 0) 238: <caption class="caption-side-top">$!minimum</caption> 239: #end 240: <thead class="thead-dark"> 241: <tr> 242: #if ($isIncluded) 243: #printTableHeader("#", "text-center w-1") 244: #elseif ($sort != 'name' && ! $isSharedMeets) 245: #printTableHeader("Rk", "text-center w-1") 246: #end 247: 248: #if ($cansort == 'n' || $isSharedMeets) 249: #printTableHeader("Name", "text-left") 250: #else 251: <th class="text-left text-uppercase text-nowrap">Name</th> 252: #end 253: 254: #if ($isIncluded) 255: #printTableHeader("Yr", "text-center") 256: #printTableHeader("Pos", "text-center") 257: #elseif ($isSharedMeets) 258: #printTableHeader("Yr", "text-center") 259: #else 260: #printTableHeader("Team", "text-center") 261: #end 262: 263: ## Hack for now 264: #set ($pos = "") 265: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 266: #set ($labels = $labels.get($pos)) 267: 268: #foreach ($key in $briefs.keySet()) 269: #if ($cansort == 'n') 270: #printTableHeader($briefs.get($key), "text-center") 271: #else 272: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 273: <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> 274: </th> 275: #end 276: #end 277: </tr> 278: </thead> 279: #set ($showCount = 0) 280: #set ($rankValue = "abb") 281: #set ($counter = 0) 282: 283: <tbody> 284: #foreach ($individual in $individuals) 285: #if ($r == "1") 286: #set ($stats = $individual.statsConference) 287: #else 288: #set ($stats = $individual.stats) 289: #end 290: 291: #set ($individualPosition = "") 292: #set ($individualPosition = $individual.position) 293: #set ($posVec = $individualPosition.split("/")) 294: #set ($individualPosition = $posVec[0]) 295: 296: #set ($show = "") 297: 298: #set ($showAllPlayers = $options.get("stats_show_all_players")) 299: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 300: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 301: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 302: #if ($showPosition) 303: #set ($indPositionsList = $lineupShowPosition.get($p)) 304: #foreach ($indPos in $indPositionsList) 305: #if ($individualPosition.equalsIgnoreCase($indPos)) 306: #set ($show = "y") 307: #end 308: #end 309: #end 310: 311: #if ($showStat) 312: #set ($statsList = $lineupShowStat.get($p)) 313: #foreach ($statElem in $statsList) 314: #if ($stats.get($statElem) > 0) 315: #set ($show = "y") 316: #end 317: #end 318: #end 319: 320: #if ($min) 321: #set ($test = 0) 322: #set ($test = $stats.get($min)) 323: #if ($test > 0) 324: #set ($show = "y") 325: #end 326: #end 327: #else 328: #set ($show = "y") 329: #end 330: 331: #if ($show.length() > 0) 332: #set ($showCount = $showCount + 1) 333: #if ($showCount <= 200) 334: <tr> 335: #if ($isIncluded) 336: <td class="text-nowrap text-center">${individual.uniform}</td> 337: #elseif ($sort != 'name' && ! $isSharedMeets) 338: <td class="text-nowrap text-center"> 339: ## Need to figure out what value is 340: #set ($value = ${stats.get($sort)}) 341: #if (!($value == $rankValue)) 342: ##This is a new rank value... let's update our ranking 343: #set ($rank = $showCount) 344: #set ($rankValue = $value) 345: #end 346: ${rank} 347: </td> 348: #end 349: 350: <td class="text-nowrap text-left"> 351: #if ($isSharedMeets) 352: ${individual.firstName} ${individual.lastName} 353: #else 354: <a href="${page.url}/${individual.pageName}"> 355: #if ($isIncluded) 356: ${individual.firstName} 357: #elseif ($individual.firstName.length() > 0) 358: ${individual.firstName.substring(0, 1)} 359: #end 360: ${individual.lastName} 361: </a> 362: #end 363: </td> 364: 365: #if ($isIncluded) 366: <td class="text-nowrap text-center">$!{individual.year}</td> 367: <td class="text-nowrap text-center"> 368: #if ($individual.positionAbbreviation) 369: $!individual.positionAbbreviation 370: #else 371: $!individual.position 372: #end 373: </td> 374: #elseif ($isSharedMeets) 375: <td class="text-nowrap text-center">$!{individual.year}</td> 376: #else 377: #set ($teamname = "") 378: #set ($teamname = $individual.team) 379: 380: 381: #set ($teamURL = "teams?id=${individual.teamId}") 382: #foreach ($entry in $confTeams.entrySet()) 383: #if ($entry.value.teams.containsValue($teamname)) 384: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 385: #end 386: #end 387: 388: 389: #if($teamAbbr.size() > 0) 390: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 391: #* 392: #set ($teamname = $teamAbbr.get($individual.teamId)) 393: #set ($teamname = $teamAbbr.get($individual.team)) 394: *# 395: #end 396: 397: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 398: #if ($teamname.length() > 0) 399: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 400: <a href="$teamURL">${teamname}</a> 401: #end 402: </td> 403: #end 404: 405: ## Briefs 406: #foreach ($key in $briefs.keySet()) 407: #set ($value = "-") 408: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 409: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 410: #if ($value.length() > 0) 411: $value 412: #else 413: - 414: #end 415: </td> 416: #end 417: </tr> 418: #end ## page limit 419: #end ## showing 420: #end ## foreach individual 421: </tbody> 422: #if ($individuals.size() == 0) 423: <caption> 424: #if ($isSharedMeets) 425: This team's roster is empty 426: #elseif ($hasBiosBeforeFilter) 427: No players meet the minimum 428: #else 429: No stats are available at this time 430: #end 431: </caption> 432: #end 433: </table> 434: </div> 435: #if ($isIncluded || $showTotalRow) 436: <div class="table-totals mb-3 small text-start text-muted p-2"> 437: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 438: <div class="heading">Totals:</div> 439: #set ($teamStats = $request.getAttribute("teamStats")) 440: <div class="calculated-totals m-0"> 441: #foreach ($key in $briefs.keySet()) 442: #set ($value = "-") 443: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 444: <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 445: #end 446: </div> 447: </div> 448: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 449: <div class="heading">Opponents:</div> 450: <div class="calculated-totals m-0"> 451: #foreach ($key in $briefs.keySet()) 452: #set ($keyopp = "${key}opp") 453: #set ($value = "-") 454: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 455: <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 456: #end 457: </div> 458: </div> 459: </div> 460: #end 461: #end ## printPlayers 462: 463: #macro (printFilters) 464: <div class="py-3 border-top border-bottom my-3 d-print-none"> 465: <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"> 466: ## #printTeamsFilter 467: <div class="flex-fill"> 468: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 469: $!request.setAttribute("pageObj", $page) 470: $website.include("conf-season-filter-template") 471: </div> 472: </div> 473: <div class="" role="group" aria-label="Print friendly version"> 474: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 475: </div> 476: </div> 477: </div> 478: #end ## printFilters 479: 480: ### END MACROS ### 481: 482: ## TEAMS LAYOUTS FOR SHARED MEETS 483: #if ($isSharedMeets && !$isSingleTeam) 484: 485: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 486: #set ($teamsThreshold = 20) 487: 488: #if ($page.title.length() > 0) 489: <h1>$page.title</h1> 490: #else 491: <h1>Teams</h1> 492: #end 493: 494: #if ($teams.size() > $teamsThreshold) 495: 496: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 497: 498: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 499: <div class="alphabet-filter-chars"> 500: <span class="alphabet-filter-border"> | </span> 501: #foreach ($alphabet in $alphabets.split("")) 502: #if ($alphabet.length() > 0) 503: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 504: <span class="alphabet-filter-border"> | </span> 505: #end 506: #end 507: </div> ## alphabet-filter-char 508: 509: <div class="alphabet-filter-list"> 510: <div class="alphabet-filter-column"> 511: #set ($lastAlphabet = "") 512: #set ($counter = 0) 513: 514: #foreach ($team in $teams) 515: #set ($teamName = $team.value) 516: 517: #if ($teamName.charAt(0) != $lastAlphabet) 518: #set ($counter = $counter + 1) 519: #if ($counter > 1) 520: </div> ## alphabet-filter-section 521: #end 522: #if ($counter == 8 || $counter == 15) 523: </div> ## alphabet-filter-column 524: <div class="alphabet-filter-column"> 525: #end 526: #set ($lastAlphabet = $teamName.charAt(0)) 527: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 528: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 529: #end 530: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 531: #end 532: </div> ## alphabet-filter-section 533: </div> ## alphabet-filter-column 534: </div> ## alphabet-filter-list 535: </div> ## alphabet-filter 536: 537: #else ## plain list 538: 539: <div class="stats-container table-responsive"> 540: <table class="table table-hover"> 541: #foreach ($team in $teams) 542: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 543: #end 544: #if ($teams.size() == 0) 545: <tr><td>There are no teams that match this criteria</td></tr> 546: #end 547: </table> 548: </div> 549: 550: #end ## teams threshold 551: 552: ## TEAMINFO ROSTER LAYOUT 553: #elseif ($isIncluded && $view == 'roster') 554: 555: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 556: <div class="stats-container table-responsive"> 557: <table class="table table-hover"> 558: <thead class="thead-dark"> 559: <tr> 560: <th scope="col" class="text-nowrap text-center w-1">#</th> 561: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 562: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 563: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 564: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 565: #if ($baseball) 566: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 570: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 571: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 572: #end 573: </tr> 574: </thead> 575: <tbody> 576: #foreach ($individual in $individuals) 577: <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> 578: <td scope="row" class="text text-center">${individual.uniform}</td> 579: <td class="text text-left text-start pinned-col"> 580: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 581: </td> 582: <td class="text-center"> 583: #if ($individual.positionAbbreviation) 584: $!individual.positionAbbreviation 585: #else 586: $!individual.position 587: #end 588: </td> 589: <td class="text-center">$!{individual.year}</td> 590: <td class="text-center"> 591: #if($additionalRosterStatus) 592: $individual.playerStatus 593: #elseif ($individual.active) 594: Active 595: #else 596: Inactive 597: #end 598: </td> 599: #if ($baseball) 600: <td class="text-center">$!{individual.dataMap["height"]}</td> 601: <td class="text-center">$!{individual.dataMap["weight"]}</td> 602: <td class="text-center">$!{individual.dataMap["bats"]}</td> 603: <td class="text-center">$!{individual.dataMap["throws"]}</td> 604: <td class="text-center">$!{individual.dataMap["born"]}</td> 605: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 606: #end 607: </tr> 608: #end 609: </tbody> 610: </table> 611: </div> 612: 613: ## SHARED MEETS PLAYERS 614: #elseif ($isSharedMeets) 615: 616: #if ($teamId) 617: #set ($playersPageTitle = $page.title) 618: #foreach($team in $page.teams.entrySet()) 619: #if ($teamId == $team.key) 620: #set ($playersPageTitle = $team.value) 621: #end 622: #end 623: <h1>$playersPageTitle</h1> 624: #end 625: 626: #printPlayers($pos, $restriction) 627: 628: ## PLAYERS / LINEUP 629: #else 630: 631: ## do not show these options on the lineup page 632: #if (not $isIncluded) 633: 634: #if ($isAjax) 635: $website.decorate('') 636: #printPlayers($pos $restriction) 637: #stop 638: #end 639: 640: ## ARCHIVES 641: #if ($page.contentType == "stat/bios") 642: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 643: #end 644: 645: #if ($page.title.length() > 0 && !$isSharedMeets) 646: <h1>$page.title</h1> 647: #else 648: <h1>Player Stats</h1> 649: #end 650: 651: #printFilters 652: 653: ##if ($minimum.length() > 0) 654: <!--<div class="clearfix align-right">$!minimum</div>--> 655: ##end 656: 657: #if ($showconf && !$isSharedMeets) 658: $request.setAttribute("icl-responsive-tabs-script", true) 659: <div class="tab-container"> 660: <div class="tab-nav m-0"> 661: <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"> 662: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 663: <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> 664: </li> 665: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 666: <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> 667: </li> 668: </ul> 669: </div> 670: 671: <div class="tab-content p-3 border"> 672: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 673: #printBriefsCategories("0") 674: </div> 675: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 676: #printBriefsCategories("1") 677: </div> 678: </div> 679: </div> ## tab-container overall/conf 680: #else 681: #printBriefsCategories($restriction) 682: #end 683: 684: #else 685: #printBriefsCategories($restriction) 686: #end ## not isIncluded 687: #end ## LAYOUTS 688: 689: $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 294, 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: #if ($isIncluded) 212: ## lineup pages 213: #set ($searching = "false") 214: #set ($paging = "false") 215: #set ($info = "false") 216: #else 217: ## player stats (conference, naia) 218: #set ($searching = "true") 219: #set ($paging = "true") 220: #set ($info = "true") 221: #end 222: 223: 224: ## FAISAL CHANGES 225: $!request.setAttribute("pageObj", $page) 226: $website.includeAgain("get-conf-pages?pageName=teams") 227: #set ($confPages = $!request.getAttribute("conf_pages")) 228: #set ($confTeams = {}) 229: 230: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 231: #foreach ($conf in $confPages) 232: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 233: #end 234: 235: <div class="stats-container table-responsive-via-datatables"> 236: <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-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 237: #if ($minimum.length() > 0) 238: <caption class="caption-side-top">$!minimum</caption> 239: #end 240: <thead class="thead-dark"> 241: <tr> 242: #if ($isIncluded) 243: #printTableHeader("#", "text-center w-1") 244: #elseif ($sort != 'name' && ! $isSharedMeets) 245: #printTableHeader("Rk", "text-center w-1") 246: #end 247: 248: #if ($cansort == 'n' || $isSharedMeets) 249: #printTableHeader("Name", "text-left") 250: #else 251: <th class="text-left text-uppercase text-nowrap">Name</th> 252: #end 253: 254: #if ($isIncluded) 255: #printTableHeader("Yr", "text-center") 256: #printTableHeader("Pos", "text-center") 257: #elseif ($isSharedMeets) 258: #printTableHeader("Yr", "text-center") 259: #else 260: #printTableHeader("Team", "text-center") 261: #end 262: 263: ## Hack for now 264: #set ($pos = "") 265: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 266: #set ($labels = $labels.get($pos)) 267: 268: #foreach ($key in $briefs.keySet()) 269: #if ($cansort == 'n') 270: #printTableHeader($briefs.get($key), "text-center") 271: #else 272: <th class="text-center text-uppercase text-nowrap" #if($sort == $key) data-sort="1" #end data-key="$key"> 273: <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> 274: </th> 275: #end 276: #end 277: </tr> 278: </thead> 279: #set ($showCount = 0) 280: #set ($rankValue = "abb") 281: #set ($counter = 0) 282: 283: <tbody> 284: #foreach ($individual in $individuals) 285: #if ($r == "1") 286: #set ($stats = $individual.statsConference) 287: #else 288: #set ($stats = $individual.stats) 289: #end 290: 291: #set ($individualPosition = "") 292: #set ($individualPosition = $individual.position) 293: #set ($posVec = $individualPosition.split("/")) 294: #set ($individualPosition = $posVec[0]) 295: 296: #set ($show = "") 297: 298: #set ($showAllPlayers = $options.get("stats_show_all_players")) 299: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 300: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 301: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 302: #if ($showPosition) 303: #set ($indPositionsList = $lineupShowPosition.get($p)) 304: #foreach ($indPos in $indPositionsList) 305: #if ($individualPosition.equalsIgnoreCase($indPos)) 306: #set ($show = "y") 307: #end 308: #end 309: #end 310: 311: #if ($showStat) 312: #set ($statsList = $lineupShowStat.get($p)) 313: #foreach ($statElem in $statsList) 314: #if ($stats.get($statElem) > 0) 315: #set ($show = "y") 316: #end 317: #end 318: #end 319: 320: #if ($min) 321: #set ($test = 0) 322: #set ($test = $stats.get($min)) 323: #if ($test > 0) 324: #set ($show = "y") 325: #end 326: #end 327: #else 328: #set ($show = "y") 329: #end 330: 331: #if ($show.length() > 0) 332: #set ($showCount = $showCount + 1) 333: #if ($showCount <= 200) 334: <tr> 335: #if ($isIncluded) 336: <td class="text-nowrap text-center">${individual.uniform}</td> 337: #elseif ($sort != 'name' && ! $isSharedMeets) 338: <td class="text-nowrap text-center"> 339: ## Need to figure out what value is 340: #set ($value = ${stats.get($sort)}) 341: #if (!($value == $rankValue)) 342: ##This is a new rank value... let's update our ranking 343: #set ($rank = $showCount) 344: #set ($rankValue = $value) 345: #end 346: ${rank} 347: </td> 348: #end 349: 350: <td class="text-nowrap text-left"> 351: #if ($isSharedMeets) 352: ${individual.firstName} ${individual.lastName} 353: #else 354: <a href="${page.url}/${individual.pageName}"> 355: #if ($isIncluded) 356: ${individual.firstName} 357: #elseif ($individual.firstName.length() > 0) 358: ${individual.firstName.substring(0, 1)} 359: #end 360: ${individual.lastName} 361: </a> 362: #end 363: </td> 364: 365: #if ($isIncluded) 366: <td class="text-nowrap text-center">$!{individual.year}</td> 367: <td class="text-nowrap text-center"> 368: #if ($individual.positionAbbreviation) 369: $!individual.positionAbbreviation 370: #else 371: $!individual.position 372: #end 373: </td> 374: #elseif ($isSharedMeets) 375: <td class="text-nowrap text-center">$!{individual.year}</td> 376: #else 377: #set ($teamname = "") 378: #set ($teamname = $individual.team) 379: 380: 381: #set ($teamURL = "teams?id=${individual.teamId}") 382: #foreach ($entry in $confTeams.entrySet()) 383: #if ($entry.value.teams.containsValue($teamname)) 384: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 385: #end 386: #end 387: 388: 389: #if($teamAbbr.size() > 0) 390: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 391: #* 392: #set ($teamname = $teamAbbr.get($individual.teamId)) 393: #set ($teamname = $teamAbbr.get($individual.team)) 394: *# 395: #end 396: 397: <td class="text-nowrap text-center" data-team-conf="$teamsPage.url"> 398: #if ($teamname.length() > 0) 399: ##<a href="teams?id=$!{individual.teamId}">${teamname}</a> 400: <a href="$teamURL">${teamname}</a> 401: #end 402: </td> 403: #end 404: 405: ## Briefs 406: #foreach ($key in $briefs.keySet()) 407: #set ($value = "-") 408: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 409: <td class="text-center text-nowrap #if($sort == $key) table-active #end" data-sort="$sort" data-key="$key"> 410: #if ($value.length() > 0) 411: $value 412: #else 413: - 414: #end 415: </td> 416: #end 417: </tr> 418: #end ## page limit 419: #end ## showing 420: #end ## foreach individual 421: </tbody> 422: #if ($individuals.size() == 0) 423: <caption> 424: #if ($isSharedMeets) 425: This team's roster is empty 426: #elseif ($hasBiosBeforeFilter) 427: No players meet the minimum 428: #else 429: No stats are available at this time 430: #end 431: </caption> 432: #end 433: </table> 434: </div> 435: #if ($isIncluded || $showTotalRow) 436: <div class="table-totals mb-3 small text-start text-muted p-2"> 437: <div class="d-flex align-items-start justify-content-start totals gap-2 mb-2"> 438: <div class="heading">Totals:</div> 439: #set ($teamStats = $request.getAttribute("teamStats")) 440: <div class="calculated-totals m-0"> 441: #foreach ($key in $briefs.keySet()) 442: #set ($value = "-") 443: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 444: <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 445: #end 446: </div> 447: </div> 448: <div class="d-flex align-items-start justify-content-start opponent-totals gap-2 mb-2"> 449: <div class="heading">Opponents:</div> 450: <div class="calculated-totals m-0"> 451: #foreach ($key in $briefs.keySet()) 452: #set ($keyopp = "${key}opp") 453: #set ($value = "-") 454: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 455: <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 456: #end 457: </div> 458: </div> 459: </div> 460: #end 461: #end ## printPlayers 462: 463: #macro (printFilters) 464: <div class="py-3 border-top border-bottom my-3 d-print-none"> 465: <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"> 466: ## #printTeamsFilter 467: <div class="flex-fill"> 468: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 469: $!request.setAttribute("pageObj", $page) 470: $website.include("conf-season-filter-template") 471: </div> 472: </div> 473: <div class="" role="group" aria-label="Print friendly version"> 474: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 475: </div> 476: </div> 477: </div> 478: #end ## printFilters 479: 480: ### END MACROS ### 481: 482: ## TEAMS LAYOUTS FOR SHARED MEETS 483: #if ($isSharedMeets && !$isSingleTeam) 484: 485: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 486: #set ($teamsThreshold = 20) 487: 488: #if ($page.title.length() > 0) 489: <h1>$page.title</h1> 490: #else 491: <h1>Teams</h1> 492: #end 493: 494: #if ($teams.size() > $teamsThreshold) 495: 496: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 497: 498: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 499: <div class="alphabet-filter-chars"> 500: <span class="alphabet-filter-border"> | </span> 501: #foreach ($alphabet in $alphabets.split("")) 502: #if ($alphabet.length() > 0) 503: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 504: <span class="alphabet-filter-border"> | </span> 505: #end 506: #end 507: </div> ## alphabet-filter-char 508: 509: <div class="alphabet-filter-list"> 510: <div class="alphabet-filter-column"> 511: #set ($lastAlphabet = "") 512: #set ($counter = 0) 513: 514: #foreach ($team in $teams) 515: #set ($teamName = $team.value) 516: 517: #if ($teamName.charAt(0) != $lastAlphabet) 518: #set ($counter = $counter + 1) 519: #if ($counter > 1) 520: </div> ## alphabet-filter-section 521: #end 522: #if ($counter == 8 || $counter == 15) 523: </div> ## alphabet-filter-column 524: <div class="alphabet-filter-column"> 525: #end 526: #set ($lastAlphabet = $teamName.charAt(0)) 527: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 528: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 529: #end 530: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 531: #end 532: </div> ## alphabet-filter-section 533: </div> ## alphabet-filter-column 534: </div> ## alphabet-filter-list 535: </div> ## alphabet-filter 536: 537: #else ## plain list 538: 539: <div class="stats-container table-responsive"> 540: <table class="table table-hover"> 541: #foreach ($team in $teams) 542: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 543: #end 544: #if ($teams.size() == 0) 545: <tr><td>There are no teams that match this criteria</td></tr> 546: #end 547: </table> 548: </div> 549: 550: #end ## teams threshold 551: 552: ## TEAMINFO ROSTER LAYOUT 553: #elseif ($isIncluded && $view == 'roster') 554: 555: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 556: <div class="stats-container table-responsive"> 557: <table class="table table-hover"> 558: <thead class="thead-dark"> 559: <tr> 560: <th scope="col" class="text-nowrap text-center w-1">#</th> 561: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 562: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 563: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 564: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 565: #if ($baseball) 566: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 567: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 568: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 569: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 570: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 571: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 572: #end 573: </tr> 574: </thead> 575: <tbody> 576: #foreach ($individual in $individuals) 577: <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> 578: <td scope="row" class="text text-center">${individual.uniform}</td> 579: <td class="text text-left text-start pinned-col"> 580: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 581: </td> 582: <td class="text-center"> 583: #if ($individual.positionAbbreviation) 584: $!individual.positionAbbreviation 585: #else 586: $!individual.position 587: #end 588: </td> 589: <td class="text-center">$!{individual.year}</td> 590: <td class="text-center"> 591: #if($additionalRosterStatus) 592: $individual.playerStatus 593: #elseif ($individual.active) 594: Active 595: #else 596: Inactive 597: #end 598: </td> 599: #if ($baseball) 600: <td class="text-center">$!{individual.dataMap["height"]}</td> 601: <td class="text-center">$!{individual.dataMap["weight"]}</td> 602: <td class="text-center">$!{individual.dataMap["bats"]}</td> 603: <td class="text-center">$!{individual.dataMap["throws"]}</td> 604: <td class="text-center">$!{individual.dataMap["born"]}</td> 605: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 606: #end 607: </tr> 608: #end 609: </tbody> 610: </table> 611: </div> 612: 613: ## SHARED MEETS PLAYERS 614: #elseif ($isSharedMeets) 615: 616: #if ($teamId) 617: #set ($playersPageTitle = $page.title) 618: #foreach($team in $page.teams.entrySet()) 619: #if ($teamId == $team.key) 620: #set ($playersPageTitle = $team.value) 621: #end 622: #end 623: <h1>$playersPageTitle</h1> 624: #end 625: 626: #printPlayers($pos, $restriction) 627: 628: ## PLAYERS / LINEUP 629: #else 630: 631: ## do not show these options on the lineup page 632: #if (not $isIncluded) 633: 634: #if ($isAjax) 635: $website.decorate('') 636: #printPlayers($pos $restriction) 637: #stop 638: #end 639: 640: ## ARCHIVES 641: #if ($page.contentType == "stat/bios") 642: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 643: #end 644: 645: #if ($page.title.length() > 0 && !$isSharedMeets) 646: <h1>$page.title</h1> 647: #else 648: <h1>Player Stats</h1> 649: #end 650: 651: #printFilters 652: 653: ##if ($minimum.length() > 0) 654: <!--<div class="clearfix align-right">$!minimum</div>--> 655: ##end 656: 657: #if ($showconf && !$isSharedMeets) 658: $request.setAttribute("icl-responsive-tabs-script", true) 659: <div class="tab-container"> 660: <div class="tab-nav m-0"> 661: <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"> 662: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 663: <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> 664: </li> 665: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 666: <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> 667: </li> 668: </ul> 669: </div> 670: 671: <div class="tab-content p-3 border"> 672: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 673: #printBriefsCategories("0") 674: </div> 675: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 676: #printBriefsCategories("1") 677: </div> 678: </div> 679: </div> ## tab-container overall/conf 680: #else 681: #printBriefsCategories($restriction) 682: #end 683: 684: #else 685: #printBriefsCategories($restriction) 686: #end ## not isIncluded 687: #end ## LAYOUTS 688: 689: $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 | - |