Football Statistics - Harvard

Yds/Game -
Rush/Game -
Pass/Game -
Pts/Game -
Yds allowed/Game -
Rush allowed/Game -
Pass allowed/Game -
Pts allowed/Game -
Schedule Summary
Overall (Pct.)0-0-1 (.500)
Conference (Pct.) 0-0 (.000)
StreakTied 1
Home0-0
Away0-0-1
Neutral0-0
Full Scores and Schedule ยป
Recent Games
Aug 24 Cornell
Aug 25 Cornell
Aug 26 at Cornell
Aug 27 at Cornell
Oct 24 at Utah
Feb 16 at Utah T, 0-0
Statistics category Overall Conf
Comp-Att-Int 0-0-0 7th 0-0-0 7th
3rd-down conversions 0-0 7th 0-0 7th
4th-down conversions 0-0 7th 0-0 7th
Kick returns (No.-Yards) 0-0 7th 0-0 7th
Punt returns (No.-Yards) 0-0 7th 0-0 7th
Field goals 0-0 7th 0-0 7th
PATs 0-0 7th 0-0 7th
Punts (No.-Yards) 0-0 7th 0-0 7th
Red zone scores 0-0 7th 0-0 7th
Red zone touchdowns 0-0 7th 0-0 7th
Fumbles-lost 0-0 7th 0-0 7th
Interception returns (No.-Yds) 0-0 7th 0-0 7th
Tackles 0 1st 0 1st
Time of possession per game 0:00 7th 0:00 7th
No. Name Position Year Player Status
6 Rick Rons QB/FB Active
31 Jake Taute TE Active
32 Matt Strecker TE Active
33 Jack Sievert TE So Active
34 Brody Nelson LB Fr Active
35 Sione Tuifua TE Sr Active
37 Isaac Bower LB Jr Active
39 Isaac Pingel LB So Active
41 Carter Anderson DL Sr Active
43 Colton Dreith LB So Active
45 Jack West DB So Active
46 Colton Irlbeck P/P Sr Active
50 Jacob Murphy LS Jr Active
52 Hayden Thilges OL Fr Active
55 Tyler Anderson Active
56 Colby Roos OL Active
57 Haden Mendel LB So Active
58 Christian Riha Active
60 Hunter Behrens OL Sr Active
64 Riley Lindberg TE So Active
66 Mason Williams OL Active
67 Jason Hahlbeck OL Sr Active
70 Dylan Miller Active
74 T. Johnston OL Active
81 R. Jurgensmeier WR Active
86 Aidan Queen TE Fr Active
88 Laken Harnly WR So Active
90 Gage Haake DL Jr Active
92 Brady Schlaeger DL Fr Active
93 Owen Osbahr Active
95 Carson Wadle DL So Active
96 Zack Keller DL Sr Active
97 D. Barrett DT Sr Active
98 Jonah Kollbaum DL Jr Active
B1 Jalen Portis LB/ Active
B2 C. Ochsendorf DB/ Active
B3 Logan Macumber DB/ Active
B4 Ben Chelsvig DB/ Active
B5 Anthony Sims RB/ Active
D Zach Norton WR/ Active
D1 Bryson Freeberg RB/ Active
D3 Braden Drehle QB/ Active
D4 Ben Steffens K/ Active
D5 Weston Schultz DE/ Active
FB Joshua Miller DB/ Active
FG C. Von seggern LB/ Active
K Michael Minor RB/ Active
L1 Kaden Ladwig QB/ Active
L2 Jon Andreasen DB/ Active
L3 Chase Carter K/ Active
O1 Joe Dolincheck QB/ Active
O2 Cajon Green DB/ Active
O3 Michael Payne WR/ Active
O4 Tyler Wingert LB/ Active
P Drew Bessey / Active
QB Austin Johnson WR/ Active
RB C. Schweigart WR/ Active
TE Zach McKee DL/ Active
W2 Jr. L. boyd DB/ Active
WR Jamal Jones DB/ Active
Passing
No. Name Yr Pos gp comp att pct yds y/g y/a td int lg effic
  Totals     - - - - - - - - - - 0.0
  Opponent     - - - - - - - - - - 0.0
No players meet the minimum
Rushing
No. Name Yr Pos gp rush yds y/g avg td lg fum lost
  Totals     - - - - - - - - -
  Opponent     - - - - - - - - -
No players meet the minimum
Receiving
No. Name Yr Pos gp rec rec/g yds y/g avg td lg
  Totals     - - - - - - - -
  Opponent     - - - - - - - -
No players meet the minimum
Kicking
No. Name Yr Pos gp fgm fga pct lg xpm xpa pct pts
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template
ErrorError invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template[line 355, column 50]
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: #set ($paginate = false)
11: #if ($options.get("stats_individual_pagination") and $options.get("stats_individual_pagination").equalsIgnoreCase("yes"))
12:   #set ($paginate = true)
13: #end
14: #set ($limit = $options.get("stats_individual_limit"))
15: 
16: #set ($isSharedMeets = true)
17: #if ($sport and $sport.statistics == true)
18:   #set ($isSharedMeets = false)
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: #set ($pos = "")
50: #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
51: 
52: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets)
53:   $website.decorate("")
54:   #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition)
55:   #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition))
56:       #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition))
57:   #end
58:   #if($paginate)
59:     #set ($targetURL = $targetURL + "&page=1")
60:   #end
61:   #if($limit)
62:     #set ($targetURL = $targetURL + "&limit=" + $limit)
63:   #end
64:   $response.sendRedirect($targetURL)
65:   #stop
66: #end
67: 
68: ## We want to leave this undefined so we can test for that
69: #set ($minEsc = $formatter.escapeXml($request.getParameter("min")))
70: #if ($minEsc.length() > 0)
71:   #set ($min = $minEsc)
72: #end
73: 
74: #set ($cansort = $formatter.escapeXml($request.getParameter("cs")))
75: 
76: ## #set ($labels = $labels.get($positions.get($pos)))
77: 
78: #set ($url = $request.requestURI)
79: #set ($paginationParameters = "")
80: #if($paginate and $!request.getParameter("page"))
81:   #set ($paginationParameters = $paginationParameters + "&page=1")
82: #end
83: #if($limit and $!request.getParameter("limit"))
84:   #set ($paginationParameters = $paginationParameters + "&limit=" + $limit)
85: #end
86: 
87: #set ($view = "")
88: #set ($view = $formatter.escapeXml($!request.getParameter("view")))
89: 
90: #set ($restriction = "0")
91: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
92: #if ($restrictionEsc.length() > 0)
93:   #set ($restriction = $restrictionEsc)
94: #end
95: 
96: $website.include("standings?tmpl=stats-standings-abbr-template")
97: #set ($teamAbbr = $request.getAttribute("teamAbbr"))
98: 
99: #*
100: <!--
101: Debug
102: URL: $url
103: isIncluded: $isIncluded
104: View: ${view}
105: Position: $pos
106: Sort: $sort
107: isAjax: $isAjax
108: isSharedMeets = $isSharedMeets
109: page.getTeamIDs.size() = $page.getTeamIDs().size()
110: teamId = $teamId
111: page.teams.entrySet() = $page.teams.entrySet().size()
112: isSingleTeam = $isSingleTeam
113: -->
114: *#
115: 
116: #if ($locale == "en_us")
117:   #set ($defLabel = "Defense")
118: #elseif ($locale == "en_gb")
119:   #set ($defLabel = "Defence")
120: #end
121: 
122: #macro(printBriefsCategories $r)
123: #set ($ariaLabel = "Overall Stats")
124: #if ($r == "1")
125: 	#set ($ariaLabel = "Conference Stats")
126: #end
127: #set ($briefsCategories = [])
128:   #if ($teamId.length() == 0 && $briefsCategoriesLabels)
129:   <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
130:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
131:   <div>
132:   <ul class="clearfix">
133: 
134:     #if($briefsCategoriesLabels.containsKey("Game"))
135: 
136:       ## So we need to print Season, Games and Minutes (for some sports)  tabs
137: 
138:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
139:       #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
140:       #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
141:       ## Iterate over the brief categories labels
142: 
143:       #set ($isFirstCategory = true)
144:       #foreach($briefsCat in $briefsCategoriesSeason.entrySet())
145:         #set($briefsCatKey = $briefsCat.key)
146:         #set($briefsCatLabel = $briefsCat.value)
147: 
148:       <li class="tabs-category" data-skip="true"><span>$briefsCatLabel:</span></li>
149:         #foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
150:           #if($briefsCatGame.value == $briefsCatLabel)
151:             #set($gamePos = $briefsCatGame.key)
152:           #end
153:         #end
154: 
155:         ## Print the Game stuff
156:         #set($gameDefaultSorting = $briefsDefaultSorting.get($gamePos))
157:         <li #if ($pos == $gamePos) class="active" #end>
158:           <a href="${url}?sort=$gameDefaultSorting&view=${view}&pos=${gamePos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: game">Game</a>
159:         </li>
160: 
161:         ## Print the Season stuff
162:         #set($seasonDefaultSorting = $briefsDefaultSorting.get($briefsCatKey))
163:         #if ($pos.length() == 0 || $pos == $briefsCatKey)<li class="active">#else <li> #end
164:           <a href="${url}?sort=$seasonDefaultSorting&view=${view}&pos=${briefsCatKey}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: season">Season</a>
165:         </li>
166: 
167:         #if ($briefsCategories.add({ "pos" : $gamePos}))#end
168:         #if ($briefsCategories.add({ "pos" : $briefsCatKey, "isFirstCategory" : $isFirstCategory}))#end
169: 
170:         #if ($isFirstCategory)
171:           #set ($isFirstCategory = false)
172:         #end
173: 
174:         #if ($briefsCategoriesMinutes)
175:           #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
176:             #if($briefsCatMinutes.value == $briefsCatLabel)
177:               #set($minutesPos = $briefsCatMinutes.key)
178:             #end
179:           #end
180: 
181:           ## Print the minutes stuff
182:           #set($minutesDefaultSorting = $briefsDefaultSorting.get($minutesPos))
183:           <li #if ($pos == $minutesPos) class="active" #end>
184:             <a href="${url}?sort=$minutesDefaultSorting&view=${view}&pos=${minutesPos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: minutes">Minutes</a>
185:           </li>
186: 
187:           #if ($briefsCategories.add({ "pos" : $minutesPos}))#end
188: 
189:         #end
190:       #end
191:     #else
192: 
193:       ## So there are no Games or minutes subgroup for this sport so just print the categories
194:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
195:       #foreach($briefCat in $briefsCategoriesSeason.entrySet())
196:         #set($categoryLabel = $briefCat.value)
197:         #set($briefCatKey = $briefCat.key)
198: 
199:         #if($locale == "en_gb")
200:           #if($categoryLabel == "Defense")
201:             #set($categoryLabel = "Defence")
202:           #end
203: 
204:           #if($categoryLabel == "Defensemen")
205:             #set($categoryLabel = "Defencemen")
206:           #end
207:         #end
208: 
209:         #set($categorySort = $briefsDefaultSorting.get($briefCatKey))
210: 
211:         ## Check if the current position category can set a sorting that comes
212:         ## from antoher tabs category or maybe from a stat alphabet-filter-column
213: 
214:         #if($briefKeepPreviousSorting)
215:           #if($briefKeepPreviousSorting.contains($pos) && $briefKeepPreviousSorting.contains($briefCatKey))
216:             #set($categorySort = $sort)
217:           #end
218:         #end
219: 
220:         <li #if ($pos == ${briefCatKey}) class="active" #end>
221:           <a href="${url}?sort=$!categorySort&view=$!view&pos=$!briefCatKey&r=$!r${paginationParameters}" role="button" aria-label="${ariaLabel}: ${categoryLabel}">$categoryLabel</a>
222:         </li>
223: 
224:         #if ($briefsCategories.add({ "pos" : $briefCatKey }))#end
225: 
226:       #end
227:     #end
228: 
229:   </ul>
230:   </div>
231:   </div> ## tab-nav
232: 
233:   <div class="tab-panels clearfix">
234:   #foreach ($category in $briefsCategories)
235:     #set ($isActive = false)
236: 
237: #*
238: <br><br><br>
239: 	$briefsCategories <br >
240:     DEBUG <br>
241:     r = $r <br>
242:     restriction = $restriction <br>
243:     pos = $pos <br>
244:     category.pos = $category.pos <br>
245: 	isFirstCategory = $isFirstCategory
246: <br><br><br>
247: *#
248: 
249: 	#if ($r == $restriction && ($pos == $category.pos || (!$pos && $isFirstCategory) || $briefsCategories.size() == 1))
250:       #set ($isActive = true)
251:     #end
252: 
253:     #if ($isActive)
254:       <div class="tab-panel active">
255:           #printPlayers($category.pos, $r)
256:       </div>
257:     #else
258:       <div class="tab-panel tab-panel-ondemand"></div>
259:     #end
260:   #end
261:   </div>
262: 
263:   </div> ## tab-container
264: 
265:   #else
266:     #printPlayers($pos, $r)
267:   #end
268: #end  ## printBriefsCategories
269: 
270: #macro(printPlayerName $isIncluded $individual)
271:   #if ($isIncluded)
272:     ${individual.firstName}
273:   #elseif ($individual.firstName.length() > 0)
274:     ${individual.firstName.substring(0, 1)}
275:   #end
276:   ${individual.lastName}
277: #end
278: 
279: #macro(printPlayers $p $r)
280:   #set ($briefs = $briefs.get($positions.get($p)))
281: 
282:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
283: 
284:   <div class="stats-wrap clearfix">
285:     <div class="stats-box stats-box-alternate full clearfix">
286:       <div class="scrollable">
287:         <div>
288:           <table>
289:             <tr class="thead accent-bg">
290:               #if ($isIncluded)
291:                 #if(!$tennis)
292:                   <th class="text">No.</th>
293:                 #end
294:               #elseif ($sort != 'name' && ! $isSharedMeets)
295:                 <th class="text">Rk</th>
296:               #end
297: 
298:               <th class="text pinned-col" title="Name">
299:                 #if ($cansort == 'n' || $isSharedMeets)
300:                   Name
301:                 #else
302:                   <button value="${url}?sort=name&view=${view}&pos=${p}&r=${r}${paginationParameters}"
303:                           class="sortable"
304:                           aria-label="sort table using name">
305:                     Name
306:                   </button>
307:                 #end
308:               </th>
309: 
310:               #if ($isIncluded)
311:                 <th>Yr</th>
312:                 <th>Pos</th>
313:               #elseif ($isSharedMeets)
314:                 <th>Yr</th>
315:               #else
316:                 <th>&nbsp;</th>
317:               #end
318: 
319:               ## Hack for now
320:               #set ($pos = "")
321:               #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
322:               #set ($labels = $labels.get($pos))
323: 
324:               #foreach ($key in $briefs.keySet())
325:                 #if ($cansort == 'n')
326:                   <th>${briefs.get($key)}</th>
327:                 #else
328:                   <th>
329:                     <button value="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}${paginationParameters}"
330:                             title="$!{labels.get($key)}"
331:                             class="sortable"
332:                             aria-label="sort table using ${briefs.get($key)}"
333:                     >
334:                       ${briefs.get($key)}
335:                     </button>
336:                   </th>
337:                 #end
338:               #end
339:             </tr>
340: 
341:             #set ($showCount = 0)
342:             #set ($rankValue = "abb")
343:             #set ($counter = 0)
344: 
345:             #foreach ($individual in $individuals)
346:               #if ($restriction == "1")
347:                 #set ($stats = $individual.statsConference)
348:               #else
349:                 #set ($stats = $individual.stats)
350:               #end
351: 
352:               #set ($individualPosition = "")
353:               #set ($individualPosition = $individual.position)
354:               #set ($posVec = $individualPosition.split("/"))
355:               #set ($individualPosition = $posVec[0])
356: 
357:               #set ($show = "")
358: 
359:               #set ($showAllPlayers = $options.get("stats_show_all_players"))
360:               #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p))
361:               #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p))
362:               #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min))
363:                 #if ($showPosition)
364:                   #set ($indPositionsList = $lineupShowPosition.get($p))
365:                   #foreach ($indPos in $indPositionsList)
366:                     #if ($individualPosition.equalsIgnoreCase($indPos))
367:                       #set ($show = "y")
368:                     #end
369:                   #end
370:                 #end
371: 
372:                 #if ($showStat)
373:                   #set ($statsList = $lineupShowStat.get($p))
374:                   #foreach ($statElem in $statsList)
375:                     #if ($stats.get($statElem) > 0)
376:                       #set ($show = "y")
377:                     #end
378:                   #end
379:                 #end
380: 
381:                 #if ($min)
382:                   #set ($test = 0)
383:                   #set ($test = $stats.get($min))
384:                   #if ($test > 0)
385:                     #set ($show = "y")
386:                   #end
387:                 #end
388:               #else
389:                 #set ($show = "y")
390:               #end
391: 
392:               #if ($show.length() > 0)
393:                 #set ($showCount = $showCount + 1)
394:                 <tr>
395:                     #if ($isIncluded)
396:                       #if(!$tennis)
397:                         <td class="text">${individual.uniform}</td>
398:                       #end
399:                     #elseif ($sort != 'name' && ! $isSharedMeets)
400:                       <td class="text">
401:                         ## Need to figure out what value is
402:                         #set ($value = ${stats.get($sort)})
403:                         #if (!($value == $rankValue))
404:                         ##This is a new rank value... let's update our ranking
405:                           #set ($rank = $showCount)
406:                           #set ($rankValue = $value)
407:                         #end
408:                         #if($request.getParameter("page"))
409:                           ${individual.getRank()}
410:                         #else
411:                           ${rank}
412:                         #end
413:                       </td>
414:                     #end
415: 
416:                     <td class="text pinned-col">
417:                       #if ($isSharedMeets)
418:                         ${individual.firstName} ${individual.lastName}
419:                       #else
420:                         #if ($page.contentType == "tournament/bios")
421:                           <a href="players/${individual.pageName}">
422:                             #printPlayerName($isIncluded, $individual)
423:                           </a>
424:                         #else
425:                           <a href="${page.url}/${individual.pageName}">
426:                             #printPlayerName($isIncluded, $individual)
427:                           </a>
428:                         #end
429:                       #end
430:                     </td>
431: 
432:                     #if ($isIncluded)
433:                       <td>$!{individual.year}</td>
434:                       <td>
435:                         #if($individual.positionAbbreviation)
436:                           $!individual.positionAbbreviation
437:                         #else
438:                           $!individual.position
439:                         #end
440:                       </td>
441:                     #elseif ($isSharedMeets)
442:                       <td>$!{individual.year}</td>
443:                     #else
444:                       #set ($teamname = "")
445:                       #set ($teamname = $individual.team)
446: 
447:                       ##############################################################
448:                       ## This creates an abbr. team name for each athlete.
449:                       ## Comment out if client would prefer the full team name to show.
450: 
451:                       #set ($teamname = $teamAbbr.get($individual.teamId))
452:                       #set ($teamname = $teamAbbr.get($individual.team))
453: 
454:                       ## end of team abbr swap for team name
455:                       ##############################################################
456: 
457:                       <td class="text">
458:                         #if ($teamname.length() > 0)
459:                           <a href="teams?id=$!{individual.teamId}">${teamname}</a>
460:                         #end
461:                       </td>
462:                     #end
463: 
464:                     #foreach ($key in $briefs.keySet())
465:                       #set ($value = "-")
466:                       #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key)))
467:                       <td #if ($key == $sort) class="sort" #end>
468:                         #if ($value.length() > 0)
469:                           $value
470:                         #else
471:                           -
472:                         #end
473:                       </td>
474:                     #end
475:                   </tr>
476:               #end ## showing
477:             #end ## foreach individual
478: 
479:             #if ($isIncluded)
480:               #set ($teamStats = $request.getAttribute("teamStats"))
481:               <tr class="totals">
482:                 <td>&nbsp;</td>
483:                 <td class="text pinned-col">Totals</td>
484:                 <td>&nbsp;</td> ## YR
485:                 <td>&nbsp;</td> ## POS
486:                 #foreach ($key in $briefs.keySet())
487:                   #set ($value = "-")
488:                   #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key)))
489:                   <td #if ($key == $sort) class="sort" #end>
490:                     #if ($value.length() > 0)
491:                       $value
492:                     #else
493:                       -
494:                     #end
495:                   </td>
496:                 #end
497:               </tr>
498: 
499:               <tr class="totals">
500:                 <td>&nbsp;</td>
501:                 <td class="text pinned-col">Opponent</td>
502:                 <td>&nbsp;</td> ## YR
503:                 <td>&nbsp;</td> ## POS
504:                 #foreach ($key in $briefs.keySet())
505:                   #set ($keyopp = "${key}opp")
506:                   #set ($value = "-")
507:                   #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key)))
508:                   <td #if ($key == $sort) class="sort" #end>
509:                     #if ($value.length() > 0)
510:                       $value
511:                     #else
512:                       -
513:                     #end
514:                   </td>
515:                 #end
516:               </tr>
517:             #end
518: 
519:             #if ($individuals.size() == 0)
520:               <tr class="totals">
521:                 <td colspan="5">
522:                   #if ($isSharedMeets)
523:                     This team's roster is empty
524:                   #elseif ($hasBiosBeforeFilter)
525:                     No players meet the minimum
526:                   #else
527:                     No stats are available at this time
528:                   #end
529:                 </td>
530:               </tr>
531:             #end
532:             #if($totals)
533:               <tfoot>
534:                   <tr class="font-weight-bold">
535:                       <td colspan="3" class="text-center">TOTALS</td>
536:                        #foreach ($key in $briefs.keySet())
537:                           #set ($value = "-")
538:                           #set ($value = $formatter.formatNumber(${totals.get($key)}, $!formats.get($key)))
539:                           <td class="text-right text-nowrap" #if($key == $sort) #end>
540:                               #if ($value.length() > 0)
541:                                   $value
542:                               #else
543:                                   -
544:                               #end
545:                           </td>
546:                       #end
547:                   </tr>
548:               </tfoot>
549:             #end
550:           </table>
551:           #if($request.getParameter("page"))
552:             Page ${request.getParameter("page")}/${totalPages} - Showing: ${showCount}, Total: ${individualsTotalLength} Players
553:           #end
554:         </div>
555:       </div> ## scrollable
556:     </div> ## stats-box
557:   </div> ## stats-wrap
558: #end ## printPlayers
559: 
560: ### END MACROS ###
561: 
562: ## TEAMS LAYOUTS FOR SHARED MEETS
563: #if ($isSharedMeets && !$isSingleTeam)
564: 
565: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value"))
566: #set ($teamsThreshold = 20)
567: 
568: #if ($page.title.length() > 0)
569:   <h1>$page.title</h1>
570: #else
571:   <h1>Teams</h1>
572: #end
573: 
574: #if ($teams.size() > $teamsThreshold)
575: 
576: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
577: 
578: <div class="alphabet-filter" data-module="stats/alphabet-filter">
579: <div class="alphabet-filter-chars">
580:   <span class="alphabet-filter-border"> | </span>
581:   #foreach ($alphabet in $alphabets.split(""))
582:     #if ($alphabet.length() > 0)
583:       <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a>
584:       <span class="alphabet-filter-border"> | </span>
585:     #end
586:   #end
587: </div> ## alphabet-filter-char
588: 
589: <div class="alphabet-filter-list">
590:   <div class="alphabet-filter-column">
591:       #set ($lastAlphabet = "")
592:       #set ($counter = 0)
593: 
594:       #foreach ($team in $teams)
595:         #set ($teamName = $team.value)
596: 
597:         #if ($teamName.charAt(0) != $lastAlphabet)
598:           #set ($counter = $counter + 1)
599:           #if ($counter > 1)
600:             </div> ## alphabet-filter-section
601:           #end
602:           #if ($counter == 8 || $counter == 15)
603:             </div> ## alphabet-filter-column
604:             <div class="alphabet-filter-column">
605:           #end
606:           #set ($lastAlphabet = $teamName.charAt(0))
607:           <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}">
608:             <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4>
609:         #end
610:         <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a>
611:       #end
612:       </div> ## alphabet-filter-section
613:       </div> ## alphabet-filter-column
614: </div> ## alphabet-filter-list
615: </div> ## alphabet-filter
616: 
617: #else ## plain list
618: 
619: <div class="stats-wrap clearfix">
620:   <div class="stats-box full clearfix">
621:     <table>
622:       #foreach ($team in $teams)
623:         <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr>
624:       #end
625:       #if ($teams.size() == 0)
626:         <tr><td>There are no teams that match this criteria</td></tr>
627:       #end
628:     </table>
629:   </div>
630: </div>
631: 
632: #end ## teams threshold
633: 
634: ## TEAMINFO ROSTER LAYOUT
635: #elseif ($isIncluded && $view == 'roster')
636:   #set ($baseball = $sport && $sport.XMLCode == "bsgame")
637:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
638: 
639:   <div class="stats-wrap clearfix">
640:     <div class="stats-box stats-box-alternate full clearfix">
641:       <div class="scrollable">
642:         <div>
643:           <table>
644:             <tr class="thead accent-bg">
645:               #if (!$tennis)
646:               <th class="text">No.</th>
647:               #end
648:               <th class="text pinned-col">Name</th>
649:               <th>Position</th>
650:               <th>Year</th>
651:               <th>Player Status</th>
652:               #if ($baseball)
653:                 <th>Height</th>
654:                 <th>Weight</th>
655:                 <th>Bats</th>
656:                 <th>Throws</th>
657:                 <th>DOB</th>
658:                 <th>Hometown</th>
659:               #end
660:             </tr>
661:             #foreach ($individual in $individuals)
662:               <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>
663:                 #if (!$tennis)
664:                   <td class="text">
665:                     ${individual.uniform}
666:                   </td>
667:                 #end
668:                 <td class="text pinned-col">
669:                   <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a>
670:                 </td>
671:                 <td>
672:                   #if ($individual.positionAbbreviation)
673:                     $!individual.positionAbbreviation
674:                   #else
675:                     $!individual.position
676:                   #end
677:                 </td>
678:                 <td>$!{individual.year}</td>
679:                 <td>
680:                   #if($additionalRosterStatus)
681:                      $individual.playerStatus
682:                  #elseif ($individual.active)
683:                      Active
684:                    #else
685:                      Inactive
686:                    #end
687:                 </td>
688:                 #if ($baseball)
689:                   <td>$!{individual.dataMap["height"]}</td>
690:                   <td>$!{individual.dataMap["weight"]}</td>
691:                   <td>$!{individual.dataMap["bats"]}</td>
692:                   <td>$!{individual.dataMap["throws"]}</td>
693:                   <td>$!{individual.dataMap["born"]}</td>
694:                   <td>$!{individual.dataMap["hometown"]}</td>
695:                 #end
696:               </tr>
697:             #end
698:           </table>
699:         </div>
700:       </div>
701:     </div>
702:   </div>
703: 
704: ## SHARED MEETS PLAYERS
705: #elseif ($isSharedMeets)
706: 
707: #if ($teamId)
708:   #set ($playersPageTitle = $page.title)
709:   #foreach($team in $page.teams.entrySet())
710:     #if ($teamId == $team.key)
711:       #set ($playersPageTitle = $team.value)
712:     #end
713:   #end
714:   <h1>$playersPageTitle</h1>
715: #end
716: 
717: #printPlayers($pos, $restriction)
718: 
719: ## PLAYERS / LINEUP
720: #else
721: 
722: ## do not show these options on the lineup page
723: #if (not $isIncluded)
724: 
725:   #if ($isAjax)
726:     $website.decorate('')
727:       #printPlayers($pos $restriction)
728:     #stop
729:   #end
730: 
731:   #if ($page.contentType == "stat/bios")
732:     ## ARCHIVES
733:     <div class="align-right">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div>
734:   #end
735: 
736:   #if ($page.title.length() > 0 && !$isSharedMeets)
737:     <h1>$page.title</h1>
738:   #end
739: 
740:   #if ($minimum.length() > 0)
741:     <div class="clearfix align-right">$!minimum</div>
742:   #end
743: 
744:   #if ($showconf && !$isSharedMeets)
745:     <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
746:       <div class="tab-nav" data-module="jscroll" data-momentum="false">
747:         <div>
748:           <ul class="clearfix">
749:             <li #if ($restriction == "0")class="active"#end>
750:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0${paginationParameters}">Overall</a>
751:             </li>
752:             <li #if ($restriction == "1")class="active"#end>
753:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1${paginationParameters}">Conference</a>
754:             </li>
755:           </ul>
756:         </div>
757:       </div>
758: 
759:       <div class="tab-panels clearfix">
760:         <div class="tab-panel
761: 			#if ($restriction.equals("0"))
762: 				active
763: 			#else
764: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
765: 			#end">
766:           #printBriefsCategories(0)
767:         </div>
768:         <div class="tab-panel
769: 			#if ($restriction.equals("1"))
770: 				active
771: 			#else
772: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
773: 			#end">
774:           #printBriefsCategories(1)
775:         </div>
776:       </div>
777:     </div> ## tab-container overall/conf
778:   #else
779:     #printBriefsCategories($restriction)
780:   #end
781: 
782: #else
783:   #printBriefsCategories($restriction)
784: #end ## not isIncluded
785: #end ## LAYOUTS
786: 
787: $wiki.su

Punting
No. Name Yr Pos gp punt yds avg lg in20 fc tb blk
  Totals     - - - - - - - - -
  Opponent     - - - - - - - - -
No players meet the minimum
Returns
No. Name Yr Pos kr yds avg td lg pr yds avg td lg
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template
ErrorError invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template[line 355, column 50]
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: #set ($paginate = false)
11: #if ($options.get("stats_individual_pagination") and $options.get("stats_individual_pagination").equalsIgnoreCase("yes"))
12:   #set ($paginate = true)
13: #end
14: #set ($limit = $options.get("stats_individual_limit"))
15: 
16: #set ($isSharedMeets = true)
17: #if ($sport and $sport.statistics == true)
18:   #set ($isSharedMeets = false)
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: #set ($pos = "")
50: #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
51: 
52: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets)
53:   $website.decorate("")
54:   #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition)
55:   #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition))
56:       #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition))
57:   #end
58:   #if($paginate)
59:     #set ($targetURL = $targetURL + "&page=1")
60:   #end
61:   #if($limit)
62:     #set ($targetURL = $targetURL + "&limit=" + $limit)
63:   #end
64:   $response.sendRedirect($targetURL)
65:   #stop
66: #end
67: 
68: ## We want to leave this undefined so we can test for that
69: #set ($minEsc = $formatter.escapeXml($request.getParameter("min")))
70: #if ($minEsc.length() > 0)
71:   #set ($min = $minEsc)
72: #end
73: 
74: #set ($cansort = $formatter.escapeXml($request.getParameter("cs")))
75: 
76: ## #set ($labels = $labels.get($positions.get($pos)))
77: 
78: #set ($url = $request.requestURI)
79: #set ($paginationParameters = "")
80: #if($paginate and $!request.getParameter("page"))
81:   #set ($paginationParameters = $paginationParameters + "&page=1")
82: #end
83: #if($limit and $!request.getParameter("limit"))
84:   #set ($paginationParameters = $paginationParameters + "&limit=" + $limit)
85: #end
86: 
87: #set ($view = "")
88: #set ($view = $formatter.escapeXml($!request.getParameter("view")))
89: 
90: #set ($restriction = "0")
91: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
92: #if ($restrictionEsc.length() > 0)
93:   #set ($restriction = $restrictionEsc)
94: #end
95: 
96: $website.include("standings?tmpl=stats-standings-abbr-template")
97: #set ($teamAbbr = $request.getAttribute("teamAbbr"))
98: 
99: #*
100: <!--
101: Debug
102: URL: $url
103: isIncluded: $isIncluded
104: View: ${view}
105: Position: $pos
106: Sort: $sort
107: isAjax: $isAjax
108: isSharedMeets = $isSharedMeets
109: page.getTeamIDs.size() = $page.getTeamIDs().size()
110: teamId = $teamId
111: page.teams.entrySet() = $page.teams.entrySet().size()
112: isSingleTeam = $isSingleTeam
113: -->
114: *#
115: 
116: #if ($locale == "en_us")
117:   #set ($defLabel = "Defense")
118: #elseif ($locale == "en_gb")
119:   #set ($defLabel = "Defence")
120: #end
121: 
122: #macro(printBriefsCategories $r)
123: #set ($ariaLabel = "Overall Stats")
124: #if ($r == "1")
125: 	#set ($ariaLabel = "Conference Stats")
126: #end
127: #set ($briefsCategories = [])
128:   #if ($teamId.length() == 0 && $briefsCategoriesLabels)
129:   <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
130:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
131:   <div>
132:   <ul class="clearfix">
133: 
134:     #if($briefsCategoriesLabels.containsKey("Game"))
135: 
136:       ## So we need to print Season, Games and Minutes (for some sports)  tabs
137: 
138:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
139:       #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
140:       #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
141:       ## Iterate over the brief categories labels
142: 
143:       #set ($isFirstCategory = true)
144:       #foreach($briefsCat in $briefsCategoriesSeason.entrySet())
145:         #set($briefsCatKey = $briefsCat.key)
146:         #set($briefsCatLabel = $briefsCat.value)
147: 
148:       <li class="tabs-category" data-skip="true"><span>$briefsCatLabel:</span></li>
149:         #foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
150:           #if($briefsCatGame.value == $briefsCatLabel)
151:             #set($gamePos = $briefsCatGame.key)
152:           #end
153:         #end
154: 
155:         ## Print the Game stuff
156:         #set($gameDefaultSorting = $briefsDefaultSorting.get($gamePos))
157:         <li #if ($pos == $gamePos) class="active" #end>
158:           <a href="${url}?sort=$gameDefaultSorting&view=${view}&pos=${gamePos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: game">Game</a>
159:         </li>
160: 
161:         ## Print the Season stuff
162:         #set($seasonDefaultSorting = $briefsDefaultSorting.get($briefsCatKey))
163:         #if ($pos.length() == 0 || $pos == $briefsCatKey)<li class="active">#else <li> #end
164:           <a href="${url}?sort=$seasonDefaultSorting&view=${view}&pos=${briefsCatKey}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: season">Season</a>
165:         </li>
166: 
167:         #if ($briefsCategories.add({ "pos" : $gamePos}))#end
168:         #if ($briefsCategories.add({ "pos" : $briefsCatKey, "isFirstCategory" : $isFirstCategory}))#end
169: 
170:         #if ($isFirstCategory)
171:           #set ($isFirstCategory = false)
172:         #end
173: 
174:         #if ($briefsCategoriesMinutes)
175:           #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
176:             #if($briefsCatMinutes.value == $briefsCatLabel)
177:               #set($minutesPos = $briefsCatMinutes.key)
178:             #end
179:           #end
180: 
181:           ## Print the minutes stuff
182:           #set($minutesDefaultSorting = $briefsDefaultSorting.get($minutesPos))
183:           <li #if ($pos == $minutesPos) class="active" #end>
184:             <a href="${url}?sort=$minutesDefaultSorting&view=${view}&pos=${minutesPos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: minutes">Minutes</a>
185:           </li>
186: 
187:           #if ($briefsCategories.add({ "pos" : $minutesPos}))#end
188: 
189:         #end
190:       #end
191:     #else
192: 
193:       ## So there are no Games or minutes subgroup for this sport so just print the categories
194:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
195:       #foreach($briefCat in $briefsCategoriesSeason.entrySet())
196:         #set($categoryLabel = $briefCat.value)
197:         #set($briefCatKey = $briefCat.key)
198: 
199:         #if($locale == "en_gb")
200:           #if($categoryLabel == "Defense")
201:             #set($categoryLabel = "Defence")
202:           #end
203: 
204:           #if($categoryLabel == "Defensemen")
205:             #set($categoryLabel = "Defencemen")
206:           #end
207:         #end
208: 
209:         #set($categorySort = $briefsDefaultSorting.get($briefCatKey))
210: 
211:         ## Check if the current position category can set a sorting that comes
212:         ## from antoher tabs category or maybe from a stat alphabet-filter-column
213: 
214:         #if($briefKeepPreviousSorting)
215:           #if($briefKeepPreviousSorting.contains($pos) && $briefKeepPreviousSorting.contains($briefCatKey))
216:             #set($categorySort = $sort)
217:           #end
218:         #end
219: 
220:         <li #if ($pos == ${briefCatKey}) class="active" #end>
221:           <a href="${url}?sort=$!categorySort&view=$!view&pos=$!briefCatKey&r=$!r${paginationParameters}" role="button" aria-label="${ariaLabel}: ${categoryLabel}">$categoryLabel</a>
222:         </li>
223: 
224:         #if ($briefsCategories.add({ "pos" : $briefCatKey }))#end
225: 
226:       #end
227:     #end
228: 
229:   </ul>
230:   </div>
231:   </div> ## tab-nav
232: 
233:   <div class="tab-panels clearfix">
234:   #foreach ($category in $briefsCategories)
235:     #set ($isActive = false)
236: 
237: #*
238: <br><br><br>
239: 	$briefsCategories <br >
240:     DEBUG <br>
241:     r = $r <br>
242:     restriction = $restriction <br>
243:     pos = $pos <br>
244:     category.pos = $category.pos <br>
245: 	isFirstCategory = $isFirstCategory
246: <br><br><br>
247: *#
248: 
249: 	#if ($r == $restriction && ($pos == $category.pos || (!$pos && $isFirstCategory) || $briefsCategories.size() == 1))
250:       #set ($isActive = true)
251:     #end
252: 
253:     #if ($isActive)
254:       <div class="tab-panel active">
255:           #printPlayers($category.pos, $r)
256:       </div>
257:     #else
258:       <div class="tab-panel tab-panel-ondemand"></div>
259:     #end
260:   #end
261:   </div>
262: 
263:   </div> ## tab-container
264: 
265:   #else
266:     #printPlayers($pos, $r)
267:   #end
268: #end  ## printBriefsCategories
269: 
270: #macro(printPlayerName $isIncluded $individual)
271:   #if ($isIncluded)
272:     ${individual.firstName}
273:   #elseif ($individual.firstName.length() > 0)
274:     ${individual.firstName.substring(0, 1)}
275:   #end
276:   ${individual.lastName}
277: #end
278: 
279: #macro(printPlayers $p $r)
280:   #set ($briefs = $briefs.get($positions.get($p)))
281: 
282:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
283: 
284:   <div class="stats-wrap clearfix">
285:     <div class="stats-box stats-box-alternate full clearfix">
286:       <div class="scrollable">
287:         <div>
288:           <table>
289:             <tr class="thead accent-bg">
290:               #if ($isIncluded)
291:                 #if(!$tennis)
292:                   <th class="text">No.</th>
293:                 #end
294:               #elseif ($sort != 'name' && ! $isSharedMeets)
295:                 <th class="text">Rk</th>
296:               #end
297: 
298:               <th class="text pinned-col" title="Name">
299:                 #if ($cansort == 'n' || $isSharedMeets)
300:                   Name
301:                 #else
302:                   <button value="${url}?sort=name&view=${view}&pos=${p}&r=${r}${paginationParameters}"
303:                           class="sortable"
304:                           aria-label="sort table using name">
305:                     Name
306:                   </button>
307:                 #end
308:               </th>
309: 
310:               #if ($isIncluded)
311:                 <th>Yr</th>
312:                 <th>Pos</th>
313:               #elseif ($isSharedMeets)
314:                 <th>Yr</th>
315:               #else
316:                 <th>&nbsp;</th>
317:               #end
318: 
319:               ## Hack for now
320:               #set ($pos = "")
321:               #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
322:               #set ($labels = $labels.get($pos))
323: 
324:               #foreach ($key in $briefs.keySet())
325:                 #if ($cansort == 'n')
326:                   <th>${briefs.get($key)}</th>
327:                 #else
328:                   <th>
329:                     <button value="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}${paginationParameters}"
330:                             title="$!{labels.get($key)}"
331:                             class="sortable"
332:                             aria-label="sort table using ${briefs.get($key)}"
333:                     >
334:                       ${briefs.get($key)}
335:                     </button>
336:                   </th>
337:                 #end
338:               #end
339:             </tr>
340: 
341:             #set ($showCount = 0)
342:             #set ($rankValue = "abb")
343:             #set ($counter = 0)
344: 
345:             #foreach ($individual in $individuals)
346:               #if ($restriction == "1")
347:                 #set ($stats = $individual.statsConference)
348:               #else
349:                 #set ($stats = $individual.stats)
350:               #end
351: 
352:               #set ($individualPosition = "")
353:               #set ($individualPosition = $individual.position)
354:               #set ($posVec = $individualPosition.split("/"))
355:               #set ($individualPosition = $posVec[0])
356: 
357:               #set ($show = "")
358: 
359:               #set ($showAllPlayers = $options.get("stats_show_all_players"))
360:               #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p))
361:               #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p))
362:               #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min))
363:                 #if ($showPosition)
364:                   #set ($indPositionsList = $lineupShowPosition.get($p))
365:                   #foreach ($indPos in $indPositionsList)
366:                     #if ($individualPosition.equalsIgnoreCase($indPos))
367:                       #set ($show = "y")
368:                     #end
369:                   #end
370:                 #end
371: 
372:                 #if ($showStat)
373:                   #set ($statsList = $lineupShowStat.get($p))
374:                   #foreach ($statElem in $statsList)
375:                     #if ($stats.get($statElem) > 0)
376:                       #set ($show = "y")
377:                     #end
378:                   #end
379:                 #end
380: 
381:                 #if ($min)
382:                   #set ($test = 0)
383:                   #set ($test = $stats.get($min))
384:                   #if ($test > 0)
385:                     #set ($show = "y")
386:                   #end
387:                 #end
388:               #else
389:                 #set ($show = "y")
390:               #end
391: 
392:               #if ($show.length() > 0)
393:                 #set ($showCount = $showCount + 1)
394:                 <tr>
395:                     #if ($isIncluded)
396:                       #if(!$tennis)
397:                         <td class="text">${individual.uniform}</td>
398:                       #end
399:                     #elseif ($sort != 'name' && ! $isSharedMeets)
400:                       <td class="text">
401:                         ## Need to figure out what value is
402:                         #set ($value = ${stats.get($sort)})
403:                         #if (!($value == $rankValue))
404:                         ##This is a new rank value... let's update our ranking
405:                           #set ($rank = $showCount)
406:                           #set ($rankValue = $value)
407:                         #end
408:                         #if($request.getParameter("page"))
409:                           ${individual.getRank()}
410:                         #else
411:                           ${rank}
412:                         #end
413:                       </td>
414:                     #end
415: 
416:                     <td class="text pinned-col">
417:                       #if ($isSharedMeets)
418:                         ${individual.firstName} ${individual.lastName}
419:                       #else
420:                         #if ($page.contentType == "tournament/bios")
421:                           <a href="players/${individual.pageName}">
422:                             #printPlayerName($isIncluded, $individual)
423:                           </a>
424:                         #else
425:                           <a href="${page.url}/${individual.pageName}">
426:                             #printPlayerName($isIncluded, $individual)
427:                           </a>
428:                         #end
429:                       #end
430:                     </td>
431: 
432:                     #if ($isIncluded)
433:                       <td>$!{individual.year}</td>
434:                       <td>
435:                         #if($individual.positionAbbreviation)
436:                           $!individual.positionAbbreviation
437:                         #else
438:                           $!individual.position
439:                         #end
440:                       </td>
441:                     #elseif ($isSharedMeets)
442:                       <td>$!{individual.year}</td>
443:                     #else
444:                       #set ($teamname = "")
445:                       #set ($teamname = $individual.team)
446: 
447:                       ##############################################################
448:                       ## This creates an abbr. team name for each athlete.
449:                       ## Comment out if client would prefer the full team name to show.
450: 
451:                       #set ($teamname = $teamAbbr.get($individual.teamId))
452:                       #set ($teamname = $teamAbbr.get($individual.team))
453: 
454:                       ## end of team abbr swap for team name
455:                       ##############################################################
456: 
457:                       <td class="text">
458:                         #if ($teamname.length() > 0)
459:                           <a href="teams?id=$!{individual.teamId}">${teamname}</a>
460:                         #end
461:                       </td>
462:                     #end
463: 
464:                     #foreach ($key in $briefs.keySet())
465:                       #set ($value = "-")
466:                       #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key)))
467:                       <td #if ($key == $sort) class="sort" #end>
468:                         #if ($value.length() > 0)
469:                           $value
470:                         #else
471:                           -
472:                         #end
473:                       </td>
474:                     #end
475:                   </tr>
476:               #end ## showing
477:             #end ## foreach individual
478: 
479:             #if ($isIncluded)
480:               #set ($teamStats = $request.getAttribute("teamStats"))
481:               <tr class="totals">
482:                 <td>&nbsp;</td>
483:                 <td class="text pinned-col">Totals</td>
484:                 <td>&nbsp;</td> ## YR
485:                 <td>&nbsp;</td> ## POS
486:                 #foreach ($key in $briefs.keySet())
487:                   #set ($value = "-")
488:                   #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key)))
489:                   <td #if ($key == $sort) class="sort" #end>
490:                     #if ($value.length() > 0)
491:                       $value
492:                     #else
493:                       -
494:                     #end
495:                   </td>
496:                 #end
497:               </tr>
498: 
499:               <tr class="totals">
500:                 <td>&nbsp;</td>
501:                 <td class="text pinned-col">Opponent</td>
502:                 <td>&nbsp;</td> ## YR
503:                 <td>&nbsp;</td> ## POS
504:                 #foreach ($key in $briefs.keySet())
505:                   #set ($keyopp = "${key}opp")
506:                   #set ($value = "-")
507:                   #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key)))
508:                   <td #if ($key == $sort) class="sort" #end>
509:                     #if ($value.length() > 0)
510:                       $value
511:                     #else
512:                       -
513:                     #end
514:                   </td>
515:                 #end
516:               </tr>
517:             #end
518: 
519:             #if ($individuals.size() == 0)
520:               <tr class="totals">
521:                 <td colspan="5">
522:                   #if ($isSharedMeets)
523:                     This team's roster is empty
524:                   #elseif ($hasBiosBeforeFilter)
525:                     No players meet the minimum
526:                   #else
527:                     No stats are available at this time
528:                   #end
529:                 </td>
530:               </tr>
531:             #end
532:             #if($totals)
533:               <tfoot>
534:                   <tr class="font-weight-bold">
535:                       <td colspan="3" class="text-center">TOTALS</td>
536:                        #foreach ($key in $briefs.keySet())
537:                           #set ($value = "-")
538:                           #set ($value = $formatter.formatNumber(${totals.get($key)}, $!formats.get($key)))
539:                           <td class="text-right text-nowrap" #if($key == $sort) #end>
540:                               #if ($value.length() > 0)
541:                                   $value
542:                               #else
543:                                   -
544:                               #end
545:                           </td>
546:                       #end
547:                   </tr>
548:               </tfoot>
549:             #end
550:           </table>
551:           #if($request.getParameter("page"))
552:             Page ${request.getParameter("page")}/${totalPages} - Showing: ${showCount}, Total: ${individualsTotalLength} Players
553:           #end
554:         </div>
555:       </div> ## scrollable
556:     </div> ## stats-box
557:   </div> ## stats-wrap
558: #end ## printPlayers
559: 
560: ### END MACROS ###
561: 
562: ## TEAMS LAYOUTS FOR SHARED MEETS
563: #if ($isSharedMeets && !$isSingleTeam)
564: 
565: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value"))
566: #set ($teamsThreshold = 20)
567: 
568: #if ($page.title.length() > 0)
569:   <h1>$page.title</h1>
570: #else
571:   <h1>Teams</h1>
572: #end
573: 
574: #if ($teams.size() > $teamsThreshold)
575: 
576: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
577: 
578: <div class="alphabet-filter" data-module="stats/alphabet-filter">
579: <div class="alphabet-filter-chars">
580:   <span class="alphabet-filter-border"> | </span>
581:   #foreach ($alphabet in $alphabets.split(""))
582:     #if ($alphabet.length() > 0)
583:       <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a>
584:       <span class="alphabet-filter-border"> | </span>
585:     #end
586:   #end
587: </div> ## alphabet-filter-char
588: 
589: <div class="alphabet-filter-list">
590:   <div class="alphabet-filter-column">
591:       #set ($lastAlphabet = "")
592:       #set ($counter = 0)
593: 
594:       #foreach ($team in $teams)
595:         #set ($teamName = $team.value)
596: 
597:         #if ($teamName.charAt(0) != $lastAlphabet)
598:           #set ($counter = $counter + 1)
599:           #if ($counter > 1)
600:             </div> ## alphabet-filter-section
601:           #end
602:           #if ($counter == 8 || $counter == 15)
603:             </div> ## alphabet-filter-column
604:             <div class="alphabet-filter-column">
605:           #end
606:           #set ($lastAlphabet = $teamName.charAt(0))
607:           <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}">
608:             <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4>
609:         #end
610:         <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a>
611:       #end
612:       </div> ## alphabet-filter-section
613:       </div> ## alphabet-filter-column
614: </div> ## alphabet-filter-list
615: </div> ## alphabet-filter
616: 
617: #else ## plain list
618: 
619: <div class="stats-wrap clearfix">
620:   <div class="stats-box full clearfix">
621:     <table>
622:       #foreach ($team in $teams)
623:         <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr>
624:       #end
625:       #if ($teams.size() == 0)
626:         <tr><td>There are no teams that match this criteria</td></tr>
627:       #end
628:     </table>
629:   </div>
630: </div>
631: 
632: #end ## teams threshold
633: 
634: ## TEAMINFO ROSTER LAYOUT
635: #elseif ($isIncluded && $view == 'roster')
636:   #set ($baseball = $sport && $sport.XMLCode == "bsgame")
637:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
638: 
639:   <div class="stats-wrap clearfix">
640:     <div class="stats-box stats-box-alternate full clearfix">
641:       <div class="scrollable">
642:         <div>
643:           <table>
644:             <tr class="thead accent-bg">
645:               #if (!$tennis)
646:               <th class="text">No.</th>
647:               #end
648:               <th class="text pinned-col">Name</th>
649:               <th>Position</th>
650:               <th>Year</th>
651:               <th>Player Status</th>
652:               #if ($baseball)
653:                 <th>Height</th>
654:                 <th>Weight</th>
655:                 <th>Bats</th>
656:                 <th>Throws</th>
657:                 <th>DOB</th>
658:                 <th>Hometown</th>
659:               #end
660:             </tr>
661:             #foreach ($individual in $individuals)
662:               <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>
663:                 #if (!$tennis)
664:                   <td class="text">
665:                     ${individual.uniform}
666:                   </td>
667:                 #end
668:                 <td class="text pinned-col">
669:                   <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a>
670:                 </td>
671:                 <td>
672:                   #if ($individual.positionAbbreviation)
673:                     $!individual.positionAbbreviation
674:                   #else
675:                     $!individual.position
676:                   #end
677:                 </td>
678:                 <td>$!{individual.year}</td>
679:                 <td>
680:                   #if($additionalRosterStatus)
681:                      $individual.playerStatus
682:                  #elseif ($individual.active)
683:                      Active
684:                    #else
685:                      Inactive
686:                    #end
687:                 </td>
688:                 #if ($baseball)
689:                   <td>$!{individual.dataMap["height"]}</td>
690:                   <td>$!{individual.dataMap["weight"]}</td>
691:                   <td>$!{individual.dataMap["bats"]}</td>
692:                   <td>$!{individual.dataMap["throws"]}</td>
693:                   <td>$!{individual.dataMap["born"]}</td>
694:                   <td>$!{individual.dataMap["hometown"]}</td>
695:                 #end
696:               </tr>
697:             #end
698:           </table>
699:         </div>
700:       </div>
701:     </div>
702:   </div>
703: 
704: ## SHARED MEETS PLAYERS
705: #elseif ($isSharedMeets)
706: 
707: #if ($teamId)
708:   #set ($playersPageTitle = $page.title)
709:   #foreach($team in $page.teams.entrySet())
710:     #if ($teamId == $team.key)
711:       #set ($playersPageTitle = $team.value)
712:     #end
713:   #end
714:   <h1>$playersPageTitle</h1>
715: #end
716: 
717: #printPlayers($pos, $restriction)
718: 
719: ## PLAYERS / LINEUP
720: #else
721: 
722: ## do not show these options on the lineup page
723: #if (not $isIncluded)
724: 
725:   #if ($isAjax)
726:     $website.decorate('')
727:       #printPlayers($pos $restriction)
728:     #stop
729:   #end
730: 
731:   #if ($page.contentType == "stat/bios")
732:     ## ARCHIVES
733:     <div class="align-right">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div>
734:   #end
735: 
736:   #if ($page.title.length() > 0 && !$isSharedMeets)
737:     <h1>$page.title</h1>
738:   #end
739: 
740:   #if ($minimum.length() > 0)
741:     <div class="clearfix align-right">$!minimum</div>
742:   #end
743: 
744:   #if ($showconf && !$isSharedMeets)
745:     <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
746:       <div class="tab-nav" data-module="jscroll" data-momentum="false">
747:         <div>
748:           <ul class="clearfix">
749:             <li #if ($restriction == "0")class="active"#end>
750:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0${paginationParameters}">Overall</a>
751:             </li>
752:             <li #if ($restriction == "1")class="active"#end>
753:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1${paginationParameters}">Conference</a>
754:             </li>
755:           </ul>
756:         </div>
757:       </div>
758: 
759:       <div class="tab-panels clearfix">
760:         <div class="tab-panel
761: 			#if ($restriction.equals("0"))
762: 				active
763: 			#else
764: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
765: 			#end">
766:           #printBriefsCategories(0)
767:         </div>
768:         <div class="tab-panel
769: 			#if ($restriction.equals("1"))
770: 				active
771: 			#else
772: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
773: 			#end">
774:           #printBriefsCategories(1)
775:         </div>
776:       </div>
777:     </div> ## tab-container overall/conf
778:   #else
779:     #printBriefsCategories($restriction)
780:   #end
781: 
782: #else
783:   #printBriefsCategories($restriction)
784: #end ## not isIncluded
785: #end ## LAYOUTS
786: 
787: $wiki.su

All-Purpose
No. Name Yr Pos gp rush rcv pr kr yds ypg
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template
ErrorError invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template[line 355, column 50]
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: #set ($paginate = false)
11: #if ($options.get("stats_individual_pagination") and $options.get("stats_individual_pagination").equalsIgnoreCase("yes"))
12:   #set ($paginate = true)
13: #end
14: #set ($limit = $options.get("stats_individual_limit"))
15: 
16: #set ($isSharedMeets = true)
17: #if ($sport and $sport.statistics == true)
18:   #set ($isSharedMeets = false)
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: #set ($pos = "")
50: #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
51: 
52: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets)
53:   $website.decorate("")
54:   #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition)
55:   #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition))
56:       #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition))
57:   #end
58:   #if($paginate)
59:     #set ($targetURL = $targetURL + "&page=1")
60:   #end
61:   #if($limit)
62:     #set ($targetURL = $targetURL + "&limit=" + $limit)
63:   #end
64:   $response.sendRedirect($targetURL)
65:   #stop
66: #end
67: 
68: ## We want to leave this undefined so we can test for that
69: #set ($minEsc = $formatter.escapeXml($request.getParameter("min")))
70: #if ($minEsc.length() > 0)
71:   #set ($min = $minEsc)
72: #end
73: 
74: #set ($cansort = $formatter.escapeXml($request.getParameter("cs")))
75: 
76: ## #set ($labels = $labels.get($positions.get($pos)))
77: 
78: #set ($url = $request.requestURI)
79: #set ($paginationParameters = "")
80: #if($paginate and $!request.getParameter("page"))
81:   #set ($paginationParameters = $paginationParameters + "&page=1")
82: #end
83: #if($limit and $!request.getParameter("limit"))
84:   #set ($paginationParameters = $paginationParameters + "&limit=" + $limit)
85: #end
86: 
87: #set ($view = "")
88: #set ($view = $formatter.escapeXml($!request.getParameter("view")))
89: 
90: #set ($restriction = "0")
91: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
92: #if ($restrictionEsc.length() > 0)
93:   #set ($restriction = $restrictionEsc)
94: #end
95: 
96: $website.include("standings?tmpl=stats-standings-abbr-template")
97: #set ($teamAbbr = $request.getAttribute("teamAbbr"))
98: 
99: #*
100: <!--
101: Debug
102: URL: $url
103: isIncluded: $isIncluded
104: View: ${view}
105: Position: $pos
106: Sort: $sort
107: isAjax: $isAjax
108: isSharedMeets = $isSharedMeets
109: page.getTeamIDs.size() = $page.getTeamIDs().size()
110: teamId = $teamId
111: page.teams.entrySet() = $page.teams.entrySet().size()
112: isSingleTeam = $isSingleTeam
113: -->
114: *#
115: 
116: #if ($locale == "en_us")
117:   #set ($defLabel = "Defense")
118: #elseif ($locale == "en_gb")
119:   #set ($defLabel = "Defence")
120: #end
121: 
122: #macro(printBriefsCategories $r)
123: #set ($ariaLabel = "Overall Stats")
124: #if ($r == "1")
125: 	#set ($ariaLabel = "Conference Stats")
126: #end
127: #set ($briefsCategories = [])
128:   #if ($teamId.length() == 0 && $briefsCategoriesLabels)
129:   <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
130:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
131:   <div>
132:   <ul class="clearfix">
133: 
134:     #if($briefsCategoriesLabels.containsKey("Game"))
135: 
136:       ## So we need to print Season, Games and Minutes (for some sports)  tabs
137: 
138:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
139:       #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
140:       #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
141:       ## Iterate over the brief categories labels
142: 
143:       #set ($isFirstCategory = true)
144:       #foreach($briefsCat in $briefsCategoriesSeason.entrySet())
145:         #set($briefsCatKey = $briefsCat.key)
146:         #set($briefsCatLabel = $briefsCat.value)
147: 
148:       <li class="tabs-category" data-skip="true"><span>$briefsCatLabel:</span></li>
149:         #foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
150:           #if($briefsCatGame.value == $briefsCatLabel)
151:             #set($gamePos = $briefsCatGame.key)
152:           #end
153:         #end
154: 
155:         ## Print the Game stuff
156:         #set($gameDefaultSorting = $briefsDefaultSorting.get($gamePos))
157:         <li #if ($pos == $gamePos) class="active" #end>
158:           <a href="${url}?sort=$gameDefaultSorting&view=${view}&pos=${gamePos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: game">Game</a>
159:         </li>
160: 
161:         ## Print the Season stuff
162:         #set($seasonDefaultSorting = $briefsDefaultSorting.get($briefsCatKey))
163:         #if ($pos.length() == 0 || $pos == $briefsCatKey)<li class="active">#else <li> #end
164:           <a href="${url}?sort=$seasonDefaultSorting&view=${view}&pos=${briefsCatKey}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: season">Season</a>
165:         </li>
166: 
167:         #if ($briefsCategories.add({ "pos" : $gamePos}))#end
168:         #if ($briefsCategories.add({ "pos" : $briefsCatKey, "isFirstCategory" : $isFirstCategory}))#end
169: 
170:         #if ($isFirstCategory)
171:           #set ($isFirstCategory = false)
172:         #end
173: 
174:         #if ($briefsCategoriesMinutes)
175:           #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
176:             #if($briefsCatMinutes.value == $briefsCatLabel)
177:               #set($minutesPos = $briefsCatMinutes.key)
178:             #end
179:           #end
180: 
181:           ## Print the minutes stuff
182:           #set($minutesDefaultSorting = $briefsDefaultSorting.get($minutesPos))
183:           <li #if ($pos == $minutesPos) class="active" #end>
184:             <a href="${url}?sort=$minutesDefaultSorting&view=${view}&pos=${minutesPos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: minutes">Minutes</a>
185:           </li>
186: 
187:           #if ($briefsCategories.add({ "pos" : $minutesPos}))#end
188: 
189:         #end
190:       #end
191:     #else
192: 
193:       ## So there are no Games or minutes subgroup for this sport so just print the categories
194:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
195:       #foreach($briefCat in $briefsCategoriesSeason.entrySet())
196:         #set($categoryLabel = $briefCat.value)
197:         #set($briefCatKey = $briefCat.key)
198: 
199:         #if($locale == "en_gb")
200:           #if($categoryLabel == "Defense")
201:             #set($categoryLabel = "Defence")
202:           #end
203: 
204:           #if($categoryLabel == "Defensemen")
205:             #set($categoryLabel = "Defencemen")
206:           #end
207:         #end
208: 
209:         #set($categorySort = $briefsDefaultSorting.get($briefCatKey))
210: 
211:         ## Check if the current position category can set a sorting that comes
212:         ## from antoher tabs category or maybe from a stat alphabet-filter-column
213: 
214:         #if($briefKeepPreviousSorting)
215:           #if($briefKeepPreviousSorting.contains($pos) && $briefKeepPreviousSorting.contains($briefCatKey))
216:             #set($categorySort = $sort)
217:           #end
218:         #end
219: 
220:         <li #if ($pos == ${briefCatKey}) class="active" #end>
221:           <a href="${url}?sort=$!categorySort&view=$!view&pos=$!briefCatKey&r=$!r${paginationParameters}" role="button" aria-label="${ariaLabel}: ${categoryLabel}">$categoryLabel</a>
222:         </li>
223: 
224:         #if ($briefsCategories.add({ "pos" : $briefCatKey }))#end
225: 
226:       #end
227:     #end
228: 
229:   </ul>
230:   </div>
231:   </div> ## tab-nav
232: 
233:   <div class="tab-panels clearfix">
234:   #foreach ($category in $briefsCategories)
235:     #set ($isActive = false)
236: 
237: #*
238: <br><br><br>
239: 	$briefsCategories <br >
240:     DEBUG <br>
241:     r = $r <br>
242:     restriction = $restriction <br>
243:     pos = $pos <br>
244:     category.pos = $category.pos <br>
245: 	isFirstCategory = $isFirstCategory
246: <br><br><br>
247: *#
248: 
249: 	#if ($r == $restriction && ($pos == $category.pos || (!$pos && $isFirstCategory) || $briefsCategories.size() == 1))
250:       #set ($isActive = true)
251:     #end
252: 
253:     #if ($isActive)
254:       <div class="tab-panel active">
255:           #printPlayers($category.pos, $r)
256:       </div>
257:     #else
258:       <div class="tab-panel tab-panel-ondemand"></div>
259:     #end
260:   #end
261:   </div>
262: 
263:   </div> ## tab-container
264: 
265:   #else
266:     #printPlayers($pos, $r)
267:   #end
268: #end  ## printBriefsCategories
269: 
270: #macro(printPlayerName $isIncluded $individual)
271:   #if ($isIncluded)
272:     ${individual.firstName}
273:   #elseif ($individual.firstName.length() > 0)
274:     ${individual.firstName.substring(0, 1)}
275:   #end
276:   ${individual.lastName}
277: #end
278: 
279: #macro(printPlayers $p $r)
280:   #set ($briefs = $briefs.get($positions.get($p)))
281: 
282:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
283: 
284:   <div class="stats-wrap clearfix">
285:     <div class="stats-box stats-box-alternate full clearfix">
286:       <div class="scrollable">
287:         <div>
288:           <table>
289:             <tr class="thead accent-bg">
290:               #if ($isIncluded)
291:                 #if(!$tennis)
292:                   <th class="text">No.</th>
293:                 #end
294:               #elseif ($sort != 'name' && ! $isSharedMeets)
295:                 <th class="text">Rk</th>
296:               #end
297: 
298:               <th class="text pinned-col" title="Name">
299:                 #if ($cansort == 'n' || $isSharedMeets)
300:                   Name
301:                 #else
302:                   <button value="${url}?sort=name&view=${view}&pos=${p}&r=${r}${paginationParameters}"
303:                           class="sortable"
304:                           aria-label="sort table using name">
305:                     Name
306:                   </button>
307:                 #end
308:               </th>
309: 
310:               #if ($isIncluded)
311:                 <th>Yr</th>
312:                 <th>Pos</th>
313:               #elseif ($isSharedMeets)
314:                 <th>Yr</th>
315:               #else
316:                 <th>&nbsp;</th>
317:               #end
318: 
319:               ## Hack for now
320:               #set ($pos = "")
321:               #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
322:               #set ($labels = $labels.get($pos))
323: 
324:               #foreach ($key in $briefs.keySet())
325:                 #if ($cansort == 'n')
326:                   <th>${briefs.get($key)}</th>
327:                 #else
328:                   <th>
329:                     <button value="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}${paginationParameters}"
330:                             title="$!{labels.get($key)}"
331:                             class="sortable"
332:                             aria-label="sort table using ${briefs.get($key)}"
333:                     >
334:                       ${briefs.get($key)}
335:                     </button>
336:                   </th>
337:                 #end
338:               #end
339:             </tr>
340: 
341:             #set ($showCount = 0)
342:             #set ($rankValue = "abb")
343:             #set ($counter = 0)
344: 
345:             #foreach ($individual in $individuals)
346:               #if ($restriction == "1")
347:                 #set ($stats = $individual.statsConference)
348:               #else
349:                 #set ($stats = $individual.stats)
350:               #end
351: 
352:               #set ($individualPosition = "")
353:               #set ($individualPosition = $individual.position)
354:               #set ($posVec = $individualPosition.split("/"))
355:               #set ($individualPosition = $posVec[0])
356: 
357:               #set ($show = "")
358: 
359:               #set ($showAllPlayers = $options.get("stats_show_all_players"))
360:               #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p))
361:               #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p))
362:               #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min))
363:                 #if ($showPosition)
364:                   #set ($indPositionsList = $lineupShowPosition.get($p))
365:                   #foreach ($indPos in $indPositionsList)
366:                     #if ($individualPosition.equalsIgnoreCase($indPos))
367:                       #set ($show = "y")
368:                     #end
369:                   #end
370:                 #end
371: 
372:                 #if ($showStat)
373:                   #set ($statsList = $lineupShowStat.get($p))
374:                   #foreach ($statElem in $statsList)
375:                     #if ($stats.get($statElem) > 0)
376:                       #set ($show = "y")
377:                     #end
378:                   #end
379:                 #end
380: 
381:                 #if ($min)
382:                   #set ($test = 0)
383:                   #set ($test = $stats.get($min))
384:                   #if ($test > 0)
385:                     #set ($show = "y")
386:                   #end
387:                 #end
388:               #else
389:                 #set ($show = "y")
390:               #end
391: 
392:               #if ($show.length() > 0)
393:                 #set ($showCount = $showCount + 1)
394:                 <tr>
395:                     #if ($isIncluded)
396:                       #if(!$tennis)
397:                         <td class="text">${individual.uniform}</td>
398:                       #end
399:                     #elseif ($sort != 'name' && ! $isSharedMeets)
400:                       <td class="text">
401:                         ## Need to figure out what value is
402:                         #set ($value = ${stats.get($sort)})
403:                         #if (!($value == $rankValue))
404:                         ##This is a new rank value... let's update our ranking
405:                           #set ($rank = $showCount)
406:                           #set ($rankValue = $value)
407:                         #end
408:                         #if($request.getParameter("page"))
409:                           ${individual.getRank()}
410:                         #else
411:                           ${rank}
412:                         #end
413:                       </td>
414:                     #end
415: 
416:                     <td class="text pinned-col">
417:                       #if ($isSharedMeets)
418:                         ${individual.firstName} ${individual.lastName}
419:                       #else
420:                         #if ($page.contentType == "tournament/bios")
421:                           <a href="players/${individual.pageName}">
422:                             #printPlayerName($isIncluded, $individual)
423:                           </a>
424:                         #else
425:                           <a href="${page.url}/${individual.pageName}">
426:                             #printPlayerName($isIncluded, $individual)
427:                           </a>
428:                         #end
429:                       #end
430:                     </td>
431: 
432:                     #if ($isIncluded)
433:                       <td>$!{individual.year}</td>
434:                       <td>
435:                         #if($individual.positionAbbreviation)
436:                           $!individual.positionAbbreviation
437:                         #else
438:                           $!individual.position
439:                         #end
440:                       </td>
441:                     #elseif ($isSharedMeets)
442:                       <td>$!{individual.year}</td>
443:                     #else
444:                       #set ($teamname = "")
445:                       #set ($teamname = $individual.team)
446: 
447:                       ##############################################################
448:                       ## This creates an abbr. team name for each athlete.
449:                       ## Comment out if client would prefer the full team name to show.
450: 
451:                       #set ($teamname = $teamAbbr.get($individual.teamId))
452:                       #set ($teamname = $teamAbbr.get($individual.team))
453: 
454:                       ## end of team abbr swap for team name
455:                       ##############################################################
456: 
457:                       <td class="text">
458:                         #if ($teamname.length() > 0)
459:                           <a href="teams?id=$!{individual.teamId}">${teamname}</a>
460:                         #end
461:                       </td>
462:                     #end
463: 
464:                     #foreach ($key in $briefs.keySet())
465:                       #set ($value = "-")
466:                       #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key)))
467:                       <td #if ($key == $sort) class="sort" #end>
468:                         #if ($value.length() > 0)
469:                           $value
470:                         #else
471:                           -
472:                         #end
473:                       </td>
474:                     #end
475:                   </tr>
476:               #end ## showing
477:             #end ## foreach individual
478: 
479:             #if ($isIncluded)
480:               #set ($teamStats = $request.getAttribute("teamStats"))
481:               <tr class="totals">
482:                 <td>&nbsp;</td>
483:                 <td class="text pinned-col">Totals</td>
484:                 <td>&nbsp;</td> ## YR
485:                 <td>&nbsp;</td> ## POS
486:                 #foreach ($key in $briefs.keySet())
487:                   #set ($value = "-")
488:                   #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key)))
489:                   <td #if ($key == $sort) class="sort" #end>
490:                     #if ($value.length() > 0)
491:                       $value
492:                     #else
493:                       -
494:                     #end
495:                   </td>
496:                 #end
497:               </tr>
498: 
499:               <tr class="totals">
500:                 <td>&nbsp;</td>
501:                 <td class="text pinned-col">Opponent</td>
502:                 <td>&nbsp;</td> ## YR
503:                 <td>&nbsp;</td> ## POS
504:                 #foreach ($key in $briefs.keySet())
505:                   #set ($keyopp = "${key}opp")
506:                   #set ($value = "-")
507:                   #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key)))
508:                   <td #if ($key == $sort) class="sort" #end>
509:                     #if ($value.length() > 0)
510:                       $value
511:                     #else
512:                       -
513:                     #end
514:                   </td>
515:                 #end
516:               </tr>
517:             #end
518: 
519:             #if ($individuals.size() == 0)
520:               <tr class="totals">
521:                 <td colspan="5">
522:                   #if ($isSharedMeets)
523:                     This team's roster is empty
524:                   #elseif ($hasBiosBeforeFilter)
525:                     No players meet the minimum
526:                   #else
527:                     No stats are available at this time
528:                   #end
529:                 </td>
530:               </tr>
531:             #end
532:             #if($totals)
533:               <tfoot>
534:                   <tr class="font-weight-bold">
535:                       <td colspan="3" class="text-center">TOTALS</td>
536:                        #foreach ($key in $briefs.keySet())
537:                           #set ($value = "-")
538:                           #set ($value = $formatter.formatNumber(${totals.get($key)}, $!formats.get($key)))
539:                           <td class="text-right text-nowrap" #if($key == $sort) #end>
540:                               #if ($value.length() > 0)
541:                                   $value
542:                               #else
543:                                   -
544:                               #end
545:                           </td>
546:                       #end
547:                   </tr>
548:               </tfoot>
549:             #end
550:           </table>
551:           #if($request.getParameter("page"))
552:             Page ${request.getParameter("page")}/${totalPages} - Showing: ${showCount}, Total: ${individualsTotalLength} Players
553:           #end
554:         </div>
555:       </div> ## scrollable
556:     </div> ## stats-box
557:   </div> ## stats-wrap
558: #end ## printPlayers
559: 
560: ### END MACROS ###
561: 
562: ## TEAMS LAYOUTS FOR SHARED MEETS
563: #if ($isSharedMeets && !$isSingleTeam)
564: 
565: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value"))
566: #set ($teamsThreshold = 20)
567: 
568: #if ($page.title.length() > 0)
569:   <h1>$page.title</h1>
570: #else
571:   <h1>Teams</h1>
572: #end
573: 
574: #if ($teams.size() > $teamsThreshold)
575: 
576: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
577: 
578: <div class="alphabet-filter" data-module="stats/alphabet-filter">
579: <div class="alphabet-filter-chars">
580:   <span class="alphabet-filter-border"> | </span>
581:   #foreach ($alphabet in $alphabets.split(""))
582:     #if ($alphabet.length() > 0)
583:       <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a>
584:       <span class="alphabet-filter-border"> | </span>
585:     #end
586:   #end
587: </div> ## alphabet-filter-char
588: 
589: <div class="alphabet-filter-list">
590:   <div class="alphabet-filter-column">
591:       #set ($lastAlphabet = "")
592:       #set ($counter = 0)
593: 
594:       #foreach ($team in $teams)
595:         #set ($teamName = $team.value)
596: 
597:         #if ($teamName.charAt(0) != $lastAlphabet)
598:           #set ($counter = $counter + 1)
599:           #if ($counter > 1)
600:             </div> ## alphabet-filter-section
601:           #end
602:           #if ($counter == 8 || $counter == 15)
603:             </div> ## alphabet-filter-column
604:             <div class="alphabet-filter-column">
605:           #end
606:           #set ($lastAlphabet = $teamName.charAt(0))
607:           <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}">
608:             <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4>
609:         #end
610:         <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a>
611:       #end
612:       </div> ## alphabet-filter-section
613:       </div> ## alphabet-filter-column
614: </div> ## alphabet-filter-list
615: </div> ## alphabet-filter
616: 
617: #else ## plain list
618: 
619: <div class="stats-wrap clearfix">
620:   <div class="stats-box full clearfix">
621:     <table>
622:       #foreach ($team in $teams)
623:         <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr>
624:       #end
625:       #if ($teams.size() == 0)
626:         <tr><td>There are no teams that match this criteria</td></tr>
627:       #end
628:     </table>
629:   </div>
630: </div>
631: 
632: #end ## teams threshold
633: 
634: ## TEAMINFO ROSTER LAYOUT
635: #elseif ($isIncluded && $view == 'roster')
636:   #set ($baseball = $sport && $sport.XMLCode == "bsgame")
637:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
638: 
639:   <div class="stats-wrap clearfix">
640:     <div class="stats-box stats-box-alternate full clearfix">
641:       <div class="scrollable">
642:         <div>
643:           <table>
644:             <tr class="thead accent-bg">
645:               #if (!$tennis)
646:               <th class="text">No.</th>
647:               #end
648:               <th class="text pinned-col">Name</th>
649:               <th>Position</th>
650:               <th>Year</th>
651:               <th>Player Status</th>
652:               #if ($baseball)
653:                 <th>Height</th>
654:                 <th>Weight</th>
655:                 <th>Bats</th>
656:                 <th>Throws</th>
657:                 <th>DOB</th>
658:                 <th>Hometown</th>
659:               #end
660:             </tr>
661:             #foreach ($individual in $individuals)
662:               <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>
663:                 #if (!$tennis)
664:                   <td class="text">
665:                     ${individual.uniform}
666:                   </td>
667:                 #end
668:                 <td class="text pinned-col">
669:                   <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a>
670:                 </td>
671:                 <td>
672:                   #if ($individual.positionAbbreviation)
673:                     $!individual.positionAbbreviation
674:                   #else
675:                     $!individual.position
676:                   #end
677:                 </td>
678:                 <td>$!{individual.year}</td>
679:                 <td>
680:                   #if($additionalRosterStatus)
681:                      $individual.playerStatus
682:                  #elseif ($individual.active)
683:                      Active
684:                    #else
685:                      Inactive
686:                    #end
687:                 </td>
688:                 #if ($baseball)
689:                   <td>$!{individual.dataMap["height"]}</td>
690:                   <td>$!{individual.dataMap["weight"]}</td>
691:                   <td>$!{individual.dataMap["bats"]}</td>
692:                   <td>$!{individual.dataMap["throws"]}</td>
693:                   <td>$!{individual.dataMap["born"]}</td>
694:                   <td>$!{individual.dataMap["hometown"]}</td>
695:                 #end
696:               </tr>
697:             #end
698:           </table>
699:         </div>
700:       </div>
701:     </div>
702:   </div>
703: 
704: ## SHARED MEETS PLAYERS
705: #elseif ($isSharedMeets)
706: 
707: #if ($teamId)
708:   #set ($playersPageTitle = $page.title)
709:   #foreach($team in $page.teams.entrySet())
710:     #if ($teamId == $team.key)
711:       #set ($playersPageTitle = $team.value)
712:     #end
713:   #end
714:   <h1>$playersPageTitle</h1>
715: #end
716: 
717: #printPlayers($pos, $restriction)
718: 
719: ## PLAYERS / LINEUP
720: #else
721: 
722: ## do not show these options on the lineup page
723: #if (not $isIncluded)
724: 
725:   #if ($isAjax)
726:     $website.decorate('')
727:       #printPlayers($pos $restriction)
728:     #stop
729:   #end
730: 
731:   #if ($page.contentType == "stat/bios")
732:     ## ARCHIVES
733:     <div class="align-right">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div>
734:   #end
735: 
736:   #if ($page.title.length() > 0 && !$isSharedMeets)
737:     <h1>$page.title</h1>
738:   #end
739: 
740:   #if ($minimum.length() > 0)
741:     <div class="clearfix align-right">$!minimum</div>
742:   #end
743: 
744:   #if ($showconf && !$isSharedMeets)
745:     <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
746:       <div class="tab-nav" data-module="jscroll" data-momentum="false">
747:         <div>
748:           <ul class="clearfix">
749:             <li #if ($restriction == "0")class="active"#end>
750:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0${paginationParameters}">Overall</a>
751:             </li>
752:             <li #if ($restriction == "1")class="active"#end>
753:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1${paginationParameters}">Conference</a>
754:             </li>
755:           </ul>
756:         </div>
757:       </div>
758: 
759:       <div class="tab-panels clearfix">
760:         <div class="tab-panel
761: 			#if ($restriction.equals("0"))
762: 				active
763: 			#else
764: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
765: 			#end">
766:           #printBriefsCategories(0)
767:         </div>
768:         <div class="tab-panel
769: 			#if ($restriction.equals("1"))
770: 				active
771: 			#else
772: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
773: 			#end">
774:           #printBriefsCategories(1)
775:         </div>
776:       </div>
777:     </div> ## tab-container overall/conf
778:   #else
779:     #printBriefsCategories($restriction)
780:   #end
781: 
782: #else
783:   #printBriefsCategories($restriction)
784: #end ## not isIncluded
785: #end ## LAYOUTS
786: 
787: $wiki.su

Scoring
No. Name Yr Pos pts pts/g rush rec kr pr int fum xpm fgm 2pt misc
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template
ErrorError invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template[line 355, column 50]
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: #set ($paginate = false)
11: #if ($options.get("stats_individual_pagination") and $options.get("stats_individual_pagination").equalsIgnoreCase("yes"))
12:   #set ($paginate = true)
13: #end
14: #set ($limit = $options.get("stats_individual_limit"))
15: 
16: #set ($isSharedMeets = true)
17: #if ($sport and $sport.statistics == true)
18:   #set ($isSharedMeets = false)
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: #set ($pos = "")
50: #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
51: 
52: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets)
53:   $website.decorate("")
54:   #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition)
55:   #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition))
56:       #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition))
57:   #end
58:   #if($paginate)
59:     #set ($targetURL = $targetURL + "&page=1")
60:   #end
61:   #if($limit)
62:     #set ($targetURL = $targetURL + "&limit=" + $limit)
63:   #end
64:   $response.sendRedirect($targetURL)
65:   #stop
66: #end
67: 
68: ## We want to leave this undefined so we can test for that
69: #set ($minEsc = $formatter.escapeXml($request.getParameter("min")))
70: #if ($minEsc.length() > 0)
71:   #set ($min = $minEsc)
72: #end
73: 
74: #set ($cansort = $formatter.escapeXml($request.getParameter("cs")))
75: 
76: ## #set ($labels = $labels.get($positions.get($pos)))
77: 
78: #set ($url = $request.requestURI)
79: #set ($paginationParameters = "")
80: #if($paginate and $!request.getParameter("page"))
81:   #set ($paginationParameters = $paginationParameters + "&page=1")
82: #end
83: #if($limit and $!request.getParameter("limit"))
84:   #set ($paginationParameters = $paginationParameters + "&limit=" + $limit)
85: #end
86: 
87: #set ($view = "")
88: #set ($view = $formatter.escapeXml($!request.getParameter("view")))
89: 
90: #set ($restriction = "0")
91: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
92: #if ($restrictionEsc.length() > 0)
93:   #set ($restriction = $restrictionEsc)
94: #end
95: 
96: $website.include("standings?tmpl=stats-standings-abbr-template")
97: #set ($teamAbbr = $request.getAttribute("teamAbbr"))
98: 
99: #*
100: <!--
101: Debug
102: URL: $url
103: isIncluded: $isIncluded
104: View: ${view}
105: Position: $pos
106: Sort: $sort
107: isAjax: $isAjax
108: isSharedMeets = $isSharedMeets
109: page.getTeamIDs.size() = $page.getTeamIDs().size()
110: teamId = $teamId
111: page.teams.entrySet() = $page.teams.entrySet().size()
112: isSingleTeam = $isSingleTeam
113: -->
114: *#
115: 
116: #if ($locale == "en_us")
117:   #set ($defLabel = "Defense")
118: #elseif ($locale == "en_gb")
119:   #set ($defLabel = "Defence")
120: #end
121: 
122: #macro(printBriefsCategories $r)
123: #set ($ariaLabel = "Overall Stats")
124: #if ($r == "1")
125: 	#set ($ariaLabel = "Conference Stats")
126: #end
127: #set ($briefsCategories = [])
128:   #if ($teamId.length() == 0 && $briefsCategoriesLabels)
129:   <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
130:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
131:   <div>
132:   <ul class="clearfix">
133: 
134:     #if($briefsCategoriesLabels.containsKey("Game"))
135: 
136:       ## So we need to print Season, Games and Minutes (for some sports)  tabs
137: 
138:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
139:       #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
140:       #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
141:       ## Iterate over the brief categories labels
142: 
143:       #set ($isFirstCategory = true)
144:       #foreach($briefsCat in $briefsCategoriesSeason.entrySet())
145:         #set($briefsCatKey = $briefsCat.key)
146:         #set($briefsCatLabel = $briefsCat.value)
147: 
148:       <li class="tabs-category" data-skip="true"><span>$briefsCatLabel:</span></li>
149:         #foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
150:           #if($briefsCatGame.value == $briefsCatLabel)
151:             #set($gamePos = $briefsCatGame.key)
152:           #end
153:         #end
154: 
155:         ## Print the Game stuff
156:         #set($gameDefaultSorting = $briefsDefaultSorting.get($gamePos))
157:         <li #if ($pos == $gamePos) class="active" #end>
158:           <a href="${url}?sort=$gameDefaultSorting&view=${view}&pos=${gamePos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: game">Game</a>
159:         </li>
160: 
161:         ## Print the Season stuff
162:         #set($seasonDefaultSorting = $briefsDefaultSorting.get($briefsCatKey))
163:         #if ($pos.length() == 0 || $pos == $briefsCatKey)<li class="active">#else <li> #end
164:           <a href="${url}?sort=$seasonDefaultSorting&view=${view}&pos=${briefsCatKey}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: season">Season</a>
165:         </li>
166: 
167:         #if ($briefsCategories.add({ "pos" : $gamePos}))#end
168:         #if ($briefsCategories.add({ "pos" : $briefsCatKey, "isFirstCategory" : $isFirstCategory}))#end
169: 
170:         #if ($isFirstCategory)
171:           #set ($isFirstCategory = false)
172:         #end
173: 
174:         #if ($briefsCategoriesMinutes)
175:           #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
176:             #if($briefsCatMinutes.value == $briefsCatLabel)
177:               #set($minutesPos = $briefsCatMinutes.key)
178:             #end
179:           #end
180: 
181:           ## Print the minutes stuff
182:           #set($minutesDefaultSorting = $briefsDefaultSorting.get($minutesPos))
183:           <li #if ($pos == $minutesPos) class="active" #end>
184:             <a href="${url}?sort=$minutesDefaultSorting&view=${view}&pos=${minutesPos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: minutes">Minutes</a>
185:           </li>
186: 
187:           #if ($briefsCategories.add({ "pos" : $minutesPos}))#end
188: 
189:         #end
190:       #end
191:     #else
192: 
193:       ## So there are no Games or minutes subgroup for this sport so just print the categories
194:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
195:       #foreach($briefCat in $briefsCategoriesSeason.entrySet())
196:         #set($categoryLabel = $briefCat.value)
197:         #set($briefCatKey = $briefCat.key)
198: 
199:         #if($locale == "en_gb")
200:           #if($categoryLabel == "Defense")
201:             #set($categoryLabel = "Defence")
202:           #end
203: 
204:           #if($categoryLabel == "Defensemen")
205:             #set($categoryLabel = "Defencemen")
206:           #end
207:         #end
208: 
209:         #set($categorySort = $briefsDefaultSorting.get($briefCatKey))
210: 
211:         ## Check if the current position category can set a sorting that comes
212:         ## from antoher tabs category or maybe from a stat alphabet-filter-column
213: 
214:         #if($briefKeepPreviousSorting)
215:           #if($briefKeepPreviousSorting.contains($pos) && $briefKeepPreviousSorting.contains($briefCatKey))
216:             #set($categorySort = $sort)
217:           #end
218:         #end
219: 
220:         <li #if ($pos == ${briefCatKey}) class="active" #end>
221:           <a href="${url}?sort=$!categorySort&view=$!view&pos=$!briefCatKey&r=$!r${paginationParameters}" role="button" aria-label="${ariaLabel}: ${categoryLabel}">$categoryLabel</a>
222:         </li>
223: 
224:         #if ($briefsCategories.add({ "pos" : $briefCatKey }))#end
225: 
226:       #end
227:     #end
228: 
229:   </ul>
230:   </div>
231:   </div> ## tab-nav
232: 
233:   <div class="tab-panels clearfix">
234:   #foreach ($category in $briefsCategories)
235:     #set ($isActive = false)
236: 
237: #*
238: <br><br><br>
239: 	$briefsCategories <br >
240:     DEBUG <br>
241:     r = $r <br>
242:     restriction = $restriction <br>
243:     pos = $pos <br>
244:     category.pos = $category.pos <br>
245: 	isFirstCategory = $isFirstCategory
246: <br><br><br>
247: *#
248: 
249: 	#if ($r == $restriction && ($pos == $category.pos || (!$pos && $isFirstCategory) || $briefsCategories.size() == 1))
250:       #set ($isActive = true)
251:     #end
252: 
253:     #if ($isActive)
254:       <div class="tab-panel active">
255:           #printPlayers($category.pos, $r)
256:       </div>
257:     #else
258:       <div class="tab-panel tab-panel-ondemand"></div>
259:     #end
260:   #end
261:   </div>
262: 
263:   </div> ## tab-container
264: 
265:   #else
266:     #printPlayers($pos, $r)
267:   #end
268: #end  ## printBriefsCategories
269: 
270: #macro(printPlayerName $isIncluded $individual)
271:   #if ($isIncluded)
272:     ${individual.firstName}
273:   #elseif ($individual.firstName.length() > 0)
274:     ${individual.firstName.substring(0, 1)}
275:   #end
276:   ${individual.lastName}
277: #end
278: 
279: #macro(printPlayers $p $r)
280:   #set ($briefs = $briefs.get($positions.get($p)))
281: 
282:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
283: 
284:   <div class="stats-wrap clearfix">
285:     <div class="stats-box stats-box-alternate full clearfix">
286:       <div class="scrollable">
287:         <div>
288:           <table>
289:             <tr class="thead accent-bg">
290:               #if ($isIncluded)
291:                 #if(!$tennis)
292:                   <th class="text">No.</th>
293:                 #end
294:               #elseif ($sort != 'name' && ! $isSharedMeets)
295:                 <th class="text">Rk</th>
296:               #end
297: 
298:               <th class="text pinned-col" title="Name">
299:                 #if ($cansort == 'n' || $isSharedMeets)
300:                   Name
301:                 #else
302:                   <button value="${url}?sort=name&view=${view}&pos=${p}&r=${r}${paginationParameters}"
303:                           class="sortable"
304:                           aria-label="sort table using name">
305:                     Name
306:                   </button>
307:                 #end
308:               </th>
309: 
310:               #if ($isIncluded)
311:                 <th>Yr</th>
312:                 <th>Pos</th>
313:               #elseif ($isSharedMeets)
314:                 <th>Yr</th>
315:               #else
316:                 <th>&nbsp;</th>
317:               #end
318: 
319:               ## Hack for now
320:               #set ($pos = "")
321:               #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
322:               #set ($labels = $labels.get($pos))
323: 
324:               #foreach ($key in $briefs.keySet())
325:                 #if ($cansort == 'n')
326:                   <th>${briefs.get($key)}</th>
327:                 #else
328:                   <th>
329:                     <button value="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}${paginationParameters}"
330:                             title="$!{labels.get($key)}"
331:                             class="sortable"
332:                             aria-label="sort table using ${briefs.get($key)}"
333:                     >
334:                       ${briefs.get($key)}
335:                     </button>
336:                   </th>
337:                 #end
338:               #end
339:             </tr>
340: 
341:             #set ($showCount = 0)
342:             #set ($rankValue = "abb")
343:             #set ($counter = 0)
344: 
345:             #foreach ($individual in $individuals)
346:               #if ($restriction == "1")
347:                 #set ($stats = $individual.statsConference)
348:               #else
349:                 #set ($stats = $individual.stats)
350:               #end
351: 
352:               #set ($individualPosition = "")
353:               #set ($individualPosition = $individual.position)
354:               #set ($posVec = $individualPosition.split("/"))
355:               #set ($individualPosition = $posVec[0])
356: 
357:               #set ($show = "")
358: 
359:               #set ($showAllPlayers = $options.get("stats_show_all_players"))
360:               #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p))
361:               #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p))
362:               #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min))
363:                 #if ($showPosition)
364:                   #set ($indPositionsList = $lineupShowPosition.get($p))
365:                   #foreach ($indPos in $indPositionsList)
366:                     #if ($individualPosition.equalsIgnoreCase($indPos))
367:                       #set ($show = "y")
368:                     #end
369:                   #end
370:                 #end
371: 
372:                 #if ($showStat)
373:                   #set ($statsList = $lineupShowStat.get($p))
374:                   #foreach ($statElem in $statsList)
375:                     #if ($stats.get($statElem) > 0)
376:                       #set ($show = "y")
377:                     #end
378:                   #end
379:                 #end
380: 
381:                 #if ($min)
382:                   #set ($test = 0)
383:                   #set ($test = $stats.get($min))
384:                   #if ($test > 0)
385:                     #set ($show = "y")
386:                   #end
387:                 #end
388:               #else
389:                 #set ($show = "y")
390:               #end
391: 
392:               #if ($show.length() > 0)
393:                 #set ($showCount = $showCount + 1)
394:                 <tr>
395:                     #if ($isIncluded)
396:                       #if(!$tennis)
397:                         <td class="text">${individual.uniform}</td>
398:                       #end
399:                     #elseif ($sort != 'name' && ! $isSharedMeets)
400:                       <td class="text">
401:                         ## Need to figure out what value is
402:                         #set ($value = ${stats.get($sort)})
403:                         #if (!($value == $rankValue))
404:                         ##This is a new rank value... let's update our ranking
405:                           #set ($rank = $showCount)
406:                           #set ($rankValue = $value)
407:                         #end
408:                         #if($request.getParameter("page"))
409:                           ${individual.getRank()}
410:                         #else
411:                           ${rank}
412:                         #end
413:                       </td>
414:                     #end
415: 
416:                     <td class="text pinned-col">
417:                       #if ($isSharedMeets)
418:                         ${individual.firstName} ${individual.lastName}
419:                       #else
420:                         #if ($page.contentType == "tournament/bios")
421:                           <a href="players/${individual.pageName}">
422:                             #printPlayerName($isIncluded, $individual)
423:                           </a>
424:                         #else
425:                           <a href="${page.url}/${individual.pageName}">
426:                             #printPlayerName($isIncluded, $individual)
427:                           </a>
428:                         #end
429:                       #end
430:                     </td>
431: 
432:                     #if ($isIncluded)
433:                       <td>$!{individual.year}</td>
434:                       <td>
435:                         #if($individual.positionAbbreviation)
436:                           $!individual.positionAbbreviation
437:                         #else
438:                           $!individual.position
439:                         #end
440:                       </td>
441:                     #elseif ($isSharedMeets)
442:                       <td>$!{individual.year}</td>
443:                     #else
444:                       #set ($teamname = "")
445:                       #set ($teamname = $individual.team)
446: 
447:                       ##############################################################
448:                       ## This creates an abbr. team name for each athlete.
449:                       ## Comment out if client would prefer the full team name to show.
450: 
451:                       #set ($teamname = $teamAbbr.get($individual.teamId))
452:                       #set ($teamname = $teamAbbr.get($individual.team))
453: 
454:                       ## end of team abbr swap for team name
455:                       ##############################################################
456: 
457:                       <td class="text">
458:                         #if ($teamname.length() > 0)
459:                           <a href="teams?id=$!{individual.teamId}">${teamname}</a>
460:                         #end
461:                       </td>
462:                     #end
463: 
464:                     #foreach ($key in $briefs.keySet())
465:                       #set ($value = "-")
466:                       #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key)))
467:                       <td #if ($key == $sort) class="sort" #end>
468:                         #if ($value.length() > 0)
469:                           $value
470:                         #else
471:                           -
472:                         #end
473:                       </td>
474:                     #end
475:                   </tr>
476:               #end ## showing
477:             #end ## foreach individual
478: 
479:             #if ($isIncluded)
480:               #set ($teamStats = $request.getAttribute("teamStats"))
481:               <tr class="totals">
482:                 <td>&nbsp;</td>
483:                 <td class="text pinned-col">Totals</td>
484:                 <td>&nbsp;</td> ## YR
485:                 <td>&nbsp;</td> ## POS
486:                 #foreach ($key in $briefs.keySet())
487:                   #set ($value = "-")
488:                   #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key)))
489:                   <td #if ($key == $sort) class="sort" #end>
490:                     #if ($value.length() > 0)
491:                       $value
492:                     #else
493:                       -
494:                     #end
495:                   </td>
496:                 #end
497:               </tr>
498: 
499:               <tr class="totals">
500:                 <td>&nbsp;</td>
501:                 <td class="text pinned-col">Opponent</td>
502:                 <td>&nbsp;</td> ## YR
503:                 <td>&nbsp;</td> ## POS
504:                 #foreach ($key in $briefs.keySet())
505:                   #set ($keyopp = "${key}opp")
506:                   #set ($value = "-")
507:                   #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key)))
508:                   <td #if ($key == $sort) class="sort" #end>
509:                     #if ($value.length() > 0)
510:                       $value
511:                     #else
512:                       -
513:                     #end
514:                   </td>
515:                 #end
516:               </tr>
517:             #end
518: 
519:             #if ($individuals.size() == 0)
520:               <tr class="totals">
521:                 <td colspan="5">
522:                   #if ($isSharedMeets)
523:                     This team's roster is empty
524:                   #elseif ($hasBiosBeforeFilter)
525:                     No players meet the minimum
526:                   #else
527:                     No stats are available at this time
528:                   #end
529:                 </td>
530:               </tr>
531:             #end
532:             #if($totals)
533:               <tfoot>
534:                   <tr class="font-weight-bold">
535:                       <td colspan="3" class="text-center">TOTALS</td>
536:                        #foreach ($key in $briefs.keySet())
537:                           #set ($value = "-")
538:                           #set ($value = $formatter.formatNumber(${totals.get($key)}, $!formats.get($key)))
539:                           <td class="text-right text-nowrap" #if($key == $sort) #end>
540:                               #if ($value.length() > 0)
541:                                   $value
542:                               #else
543:                                   -
544:                               #end
545:                           </td>
546:                       #end
547:                   </tr>
548:               </tfoot>
549:             #end
550:           </table>
551:           #if($request.getParameter("page"))
552:             Page ${request.getParameter("page")}/${totalPages} - Showing: ${showCount}, Total: ${individualsTotalLength} Players
553:           #end
554:         </div>
555:       </div> ## scrollable
556:     </div> ## stats-box
557:   </div> ## stats-wrap
558: #end ## printPlayers
559: 
560: ### END MACROS ###
561: 
562: ## TEAMS LAYOUTS FOR SHARED MEETS
563: #if ($isSharedMeets && !$isSingleTeam)
564: 
565: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value"))
566: #set ($teamsThreshold = 20)
567: 
568: #if ($page.title.length() > 0)
569:   <h1>$page.title</h1>
570: #else
571:   <h1>Teams</h1>
572: #end
573: 
574: #if ($teams.size() > $teamsThreshold)
575: 
576: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
577: 
578: <div class="alphabet-filter" data-module="stats/alphabet-filter">
579: <div class="alphabet-filter-chars">
580:   <span class="alphabet-filter-border"> | </span>
581:   #foreach ($alphabet in $alphabets.split(""))
582:     #if ($alphabet.length() > 0)
583:       <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a>
584:       <span class="alphabet-filter-border"> | </span>
585:     #end
586:   #end
587: </div> ## alphabet-filter-char
588: 
589: <div class="alphabet-filter-list">
590:   <div class="alphabet-filter-column">
591:       #set ($lastAlphabet = "")
592:       #set ($counter = 0)
593: 
594:       #foreach ($team in $teams)
595:         #set ($teamName = $team.value)
596: 
597:         #if ($teamName.charAt(0) != $lastAlphabet)
598:           #set ($counter = $counter + 1)
599:           #if ($counter > 1)
600:             </div> ## alphabet-filter-section
601:           #end
602:           #if ($counter == 8 || $counter == 15)
603:             </div> ## alphabet-filter-column
604:             <div class="alphabet-filter-column">
605:           #end
606:           #set ($lastAlphabet = $teamName.charAt(0))
607:           <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}">
608:             <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4>
609:         #end
610:         <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a>
611:       #end
612:       </div> ## alphabet-filter-section
613:       </div> ## alphabet-filter-column
614: </div> ## alphabet-filter-list
615: </div> ## alphabet-filter
616: 
617: #else ## plain list
618: 
619: <div class="stats-wrap clearfix">
620:   <div class="stats-box full clearfix">
621:     <table>
622:       #foreach ($team in $teams)
623:         <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr>
624:       #end
625:       #if ($teams.size() == 0)
626:         <tr><td>There are no teams that match this criteria</td></tr>
627:       #end
628:     </table>
629:   </div>
630: </div>
631: 
632: #end ## teams threshold
633: 
634: ## TEAMINFO ROSTER LAYOUT
635: #elseif ($isIncluded && $view == 'roster')
636:   #set ($baseball = $sport && $sport.XMLCode == "bsgame")
637:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
638: 
639:   <div class="stats-wrap clearfix">
640:     <div class="stats-box stats-box-alternate full clearfix">
641:       <div class="scrollable">
642:         <div>
643:           <table>
644:             <tr class="thead accent-bg">
645:               #if (!$tennis)
646:               <th class="text">No.</th>
647:               #end
648:               <th class="text pinned-col">Name</th>
649:               <th>Position</th>
650:               <th>Year</th>
651:               <th>Player Status</th>
652:               #if ($baseball)
653:                 <th>Height</th>
654:                 <th>Weight</th>
655:                 <th>Bats</th>
656:                 <th>Throws</th>
657:                 <th>DOB</th>
658:                 <th>Hometown</th>
659:               #end
660:             </tr>
661:             #foreach ($individual in $individuals)
662:               <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>
663:                 #if (!$tennis)
664:                   <td class="text">
665:                     ${individual.uniform}
666:                   </td>
667:                 #end
668:                 <td class="text pinned-col">
669:                   <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a>
670:                 </td>
671:                 <td>
672:                   #if ($individual.positionAbbreviation)
673:                     $!individual.positionAbbreviation
674:                   #else
675:                     $!individual.position
676:                   #end
677:                 </td>
678:                 <td>$!{individual.year}</td>
679:                 <td>
680:                   #if($additionalRosterStatus)
681:                      $individual.playerStatus
682:                  #elseif ($individual.active)
683:                      Active
684:                    #else
685:                      Inactive
686:                    #end
687:                 </td>
688:                 #if ($baseball)
689:                   <td>$!{individual.dataMap["height"]}</td>
690:                   <td>$!{individual.dataMap["weight"]}</td>
691:                   <td>$!{individual.dataMap["bats"]}</td>
692:                   <td>$!{individual.dataMap["throws"]}</td>
693:                   <td>$!{individual.dataMap["born"]}</td>
694:                   <td>$!{individual.dataMap["hometown"]}</td>
695:                 #end
696:               </tr>
697:             #end
698:           </table>
699:         </div>
700:       </div>
701:     </div>
702:   </div>
703: 
704: ## SHARED MEETS PLAYERS
705: #elseif ($isSharedMeets)
706: 
707: #if ($teamId)
708:   #set ($playersPageTitle = $page.title)
709:   #foreach($team in $page.teams.entrySet())
710:     #if ($teamId == $team.key)
711:       #set ($playersPageTitle = $team.value)
712:     #end
713:   #end
714:   <h1>$playersPageTitle</h1>
715: #end
716: 
717: #printPlayers($pos, $restriction)
718: 
719: ## PLAYERS / LINEUP
720: #else
721: 
722: ## do not show these options on the lineup page
723: #if (not $isIncluded)
724: 
725:   #if ($isAjax)
726:     $website.decorate('')
727:       #printPlayers($pos $restriction)
728:     #stop
729:   #end
730: 
731:   #if ($page.contentType == "stat/bios")
732:     ## ARCHIVES
733:     <div class="align-right">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div>
734:   #end
735: 
736:   #if ($page.title.length() > 0 && !$isSharedMeets)
737:     <h1>$page.title</h1>
738:   #end
739: 
740:   #if ($minimum.length() > 0)
741:     <div class="clearfix align-right">$!minimum</div>
742:   #end
743: 
744:   #if ($showconf && !$isSharedMeets)
745:     <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
746:       <div class="tab-nav" data-module="jscroll" data-momentum="false">
747:         <div>
748:           <ul class="clearfix">
749:             <li #if ($restriction == "0")class="active"#end>
750:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0${paginationParameters}">Overall</a>
751:             </li>
752:             <li #if ($restriction == "1")class="active"#end>
753:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1${paginationParameters}">Conference</a>
754:             </li>
755:           </ul>
756:         </div>
757:       </div>
758: 
759:       <div class="tab-panels clearfix">
760:         <div class="tab-panel
761: 			#if ($restriction.equals("0"))
762: 				active
763: 			#else
764: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
765: 			#end">
766:           #printBriefsCategories(0)
767:         </div>
768:         <div class="tab-panel
769: 			#if ($restriction.equals("1"))
770: 				active
771: 			#else
772: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
773: 			#end">
774:           #printBriefsCategories(1)
775:         </div>
776:       </div>
777:     </div> ## tab-container overall/conf
778:   #else
779:     #printBriefsCategories($restriction)
780:   #end
781: 
782: #else
783:   #printBriefsCategories($restriction)
784: #end ## not isIncluded
785: #end ## LAYOUTS
786: 
787: $wiki.su

Defense
No. Name Yr Pos gp tkl ast tot tkl/g sck yds tfl yds ff fr yds int yds brup blk
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template
ErrorError invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template[line 355, column 50]
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: #set ($paginate = false)
11: #if ($options.get("stats_individual_pagination") and $options.get("stats_individual_pagination").equalsIgnoreCase("yes"))
12:   #set ($paginate = true)
13: #end
14: #set ($limit = $options.get("stats_individual_limit"))
15: 
16: #set ($isSharedMeets = true)
17: #if ($sport and $sport.statistics == true)
18:   #set ($isSharedMeets = false)
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: #set ($pos = "")
50: #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
51: 
52: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets)
53:   $website.decorate("")
54:   #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition)
55:   #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition))
56:       #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition))
57:   #end
58:   #if($paginate)
59:     #set ($targetURL = $targetURL + "&page=1")
60:   #end
61:   #if($limit)
62:     #set ($targetURL = $targetURL + "&limit=" + $limit)
63:   #end
64:   $response.sendRedirect($targetURL)
65:   #stop
66: #end
67: 
68: ## We want to leave this undefined so we can test for that
69: #set ($minEsc = $formatter.escapeXml($request.getParameter("min")))
70: #if ($minEsc.length() > 0)
71:   #set ($min = $minEsc)
72: #end
73: 
74: #set ($cansort = $formatter.escapeXml($request.getParameter("cs")))
75: 
76: ## #set ($labels = $labels.get($positions.get($pos)))
77: 
78: #set ($url = $request.requestURI)
79: #set ($paginationParameters = "")
80: #if($paginate and $!request.getParameter("page"))
81:   #set ($paginationParameters = $paginationParameters + "&page=1")
82: #end
83: #if($limit and $!request.getParameter("limit"))
84:   #set ($paginationParameters = $paginationParameters + "&limit=" + $limit)
85: #end
86: 
87: #set ($view = "")
88: #set ($view = $formatter.escapeXml($!request.getParameter("view")))
89: 
90: #set ($restriction = "0")
91: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
92: #if ($restrictionEsc.length() > 0)
93:   #set ($restriction = $restrictionEsc)
94: #end
95: 
96: $website.include("standings?tmpl=stats-standings-abbr-template")
97: #set ($teamAbbr = $request.getAttribute("teamAbbr"))
98: 
99: #*
100: <!--
101: Debug
102: URL: $url
103: isIncluded: $isIncluded
104: View: ${view}
105: Position: $pos
106: Sort: $sort
107: isAjax: $isAjax
108: isSharedMeets = $isSharedMeets
109: page.getTeamIDs.size() = $page.getTeamIDs().size()
110: teamId = $teamId
111: page.teams.entrySet() = $page.teams.entrySet().size()
112: isSingleTeam = $isSingleTeam
113: -->
114: *#
115: 
116: #if ($locale == "en_us")
117:   #set ($defLabel = "Defense")
118: #elseif ($locale == "en_gb")
119:   #set ($defLabel = "Defence")
120: #end
121: 
122: #macro(printBriefsCategories $r)
123: #set ($ariaLabel = "Overall Stats")
124: #if ($r == "1")
125: 	#set ($ariaLabel = "Conference Stats")
126: #end
127: #set ($briefsCategories = [])
128:   #if ($teamId.length() == 0 && $briefsCategoriesLabels)
129:   <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
130:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
131:   <div>
132:   <ul class="clearfix">
133: 
134:     #if($briefsCategoriesLabels.containsKey("Game"))
135: 
136:       ## So we need to print Season, Games and Minutes (for some sports)  tabs
137: 
138:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
139:       #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
140:       #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
141:       ## Iterate over the brief categories labels
142: 
143:       #set ($isFirstCategory = true)
144:       #foreach($briefsCat in $briefsCategoriesSeason.entrySet())
145:         #set($briefsCatKey = $briefsCat.key)
146:         #set($briefsCatLabel = $briefsCat.value)
147: 
148:       <li class="tabs-category" data-skip="true"><span>$briefsCatLabel:</span></li>
149:         #foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
150:           #if($briefsCatGame.value == $briefsCatLabel)
151:             #set($gamePos = $briefsCatGame.key)
152:           #end
153:         #end
154: 
155:         ## Print the Game stuff
156:         #set($gameDefaultSorting = $briefsDefaultSorting.get($gamePos))
157:         <li #if ($pos == $gamePos) class="active" #end>
158:           <a href="${url}?sort=$gameDefaultSorting&view=${view}&pos=${gamePos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: game">Game</a>
159:         </li>
160: 
161:         ## Print the Season stuff
162:         #set($seasonDefaultSorting = $briefsDefaultSorting.get($briefsCatKey))
163:         #if ($pos.length() == 0 || $pos == $briefsCatKey)<li class="active">#else <li> #end
164:           <a href="${url}?sort=$seasonDefaultSorting&view=${view}&pos=${briefsCatKey}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: season">Season</a>
165:         </li>
166: 
167:         #if ($briefsCategories.add({ "pos" : $gamePos}))#end
168:         #if ($briefsCategories.add({ "pos" : $briefsCatKey, "isFirstCategory" : $isFirstCategory}))#end
169: 
170:         #if ($isFirstCategory)
171:           #set ($isFirstCategory = false)
172:         #end
173: 
174:         #if ($briefsCategoriesMinutes)
175:           #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
176:             #if($briefsCatMinutes.value == $briefsCatLabel)
177:               #set($minutesPos = $briefsCatMinutes.key)
178:             #end
179:           #end
180: 
181:           ## Print the minutes stuff
182:           #set($minutesDefaultSorting = $briefsDefaultSorting.get($minutesPos))
183:           <li #if ($pos == $minutesPos) class="active" #end>
184:             <a href="${url}?sort=$minutesDefaultSorting&view=${view}&pos=${minutesPos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: minutes">Minutes</a>
185:           </li>
186: 
187:           #if ($briefsCategories.add({ "pos" : $minutesPos}))#end
188: 
189:         #end
190:       #end
191:     #else
192: 
193:       ## So there are no Games or minutes subgroup for this sport so just print the categories
194:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
195:       #foreach($briefCat in $briefsCategoriesSeason.entrySet())
196:         #set($categoryLabel = $briefCat.value)
197:         #set($briefCatKey = $briefCat.key)
198: 
199:         #if($locale == "en_gb")
200:           #if($categoryLabel == "Defense")
201:             #set($categoryLabel = "Defence")
202:           #end
203: 
204:           #if($categoryLabel == "Defensemen")
205:             #set($categoryLabel = "Defencemen")
206:           #end
207:         #end
208: 
209:         #set($categorySort = $briefsDefaultSorting.get($briefCatKey))
210: 
211:         ## Check if the current position category can set a sorting that comes
212:         ## from antoher tabs category or maybe from a stat alphabet-filter-column
213: 
214:         #if($briefKeepPreviousSorting)
215:           #if($briefKeepPreviousSorting.contains($pos) && $briefKeepPreviousSorting.contains($briefCatKey))
216:             #set($categorySort = $sort)
217:           #end
218:         #end
219: 
220:         <li #if ($pos == ${briefCatKey}) class="active" #end>
221:           <a href="${url}?sort=$!categorySort&view=$!view&pos=$!briefCatKey&r=$!r${paginationParameters}" role="button" aria-label="${ariaLabel}: ${categoryLabel}">$categoryLabel</a>
222:         </li>
223: 
224:         #if ($briefsCategories.add({ "pos" : $briefCatKey }))#end
225: 
226:       #end
227:     #end
228: 
229:   </ul>
230:   </div>
231:   </div> ## tab-nav
232: 
233:   <div class="tab-panels clearfix">
234:   #foreach ($category in $briefsCategories)
235:     #set ($isActive = false)
236: 
237: #*
238: <br><br><br>
239: 	$briefsCategories <br >
240:     DEBUG <br>
241:     r = $r <br>
242:     restriction = $restriction <br>
243:     pos = $pos <br>
244:     category.pos = $category.pos <br>
245: 	isFirstCategory = $isFirstCategory
246: <br><br><br>
247: *#
248: 
249: 	#if ($r == $restriction && ($pos == $category.pos || (!$pos && $isFirstCategory) || $briefsCategories.size() == 1))
250:       #set ($isActive = true)
251:     #end
252: 
253:     #if ($isActive)
254:       <div class="tab-panel active">
255:           #printPlayers($category.pos, $r)
256:       </div>
257:     #else
258:       <div class="tab-panel tab-panel-ondemand"></div>
259:     #end
260:   #end
261:   </div>
262: 
263:   </div> ## tab-container
264: 
265:   #else
266:     #printPlayers($pos, $r)
267:   #end
268: #end  ## printBriefsCategories
269: 
270: #macro(printPlayerName $isIncluded $individual)
271:   #if ($isIncluded)
272:     ${individual.firstName}
273:   #elseif ($individual.firstName.length() > 0)
274:     ${individual.firstName.substring(0, 1)}
275:   #end
276:   ${individual.lastName}
277: #end
278: 
279: #macro(printPlayers $p $r)
280:   #set ($briefs = $briefs.get($positions.get($p)))
281: 
282:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
283: 
284:   <div class="stats-wrap clearfix">
285:     <div class="stats-box stats-box-alternate full clearfix">
286:       <div class="scrollable">
287:         <div>
288:           <table>
289:             <tr class="thead accent-bg">
290:               #if ($isIncluded)
291:                 #if(!$tennis)
292:                   <th class="text">No.</th>
293:                 #end
294:               #elseif ($sort != 'name' && ! $isSharedMeets)
295:                 <th class="text">Rk</th>
296:               #end
297: 
298:               <th class="text pinned-col" title="Name">
299:                 #if ($cansort == 'n' || $isSharedMeets)
300:                   Name
301:                 #else
302:                   <button value="${url}?sort=name&view=${view}&pos=${p}&r=${r}${paginationParameters}"
303:                           class="sortable"
304:                           aria-label="sort table using name">
305:                     Name
306:                   </button>
307:                 #end
308:               </th>
309: 
310:               #if ($isIncluded)
311:                 <th>Yr</th>
312:                 <th>Pos</th>
313:               #elseif ($isSharedMeets)
314:                 <th>Yr</th>
315:               #else
316:                 <th>&nbsp;</th>
317:               #end
318: 
319:               ## Hack for now
320:               #set ($pos = "")
321:               #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
322:               #set ($labels = $labels.get($pos))
323: 
324:               #foreach ($key in $briefs.keySet())
325:                 #if ($cansort == 'n')
326:                   <th>${briefs.get($key)}</th>
327:                 #else
328:                   <th>
329:                     <button value="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}${paginationParameters}"
330:                             title="$!{labels.get($key)}"
331:                             class="sortable"
332:                             aria-label="sort table using ${briefs.get($key)}"
333:                     >
334:                       ${briefs.get($key)}
335:                     </button>
336:                   </th>
337:                 #end
338:               #end
339:             </tr>
340: 
341:             #set ($showCount = 0)
342:             #set ($rankValue = "abb")
343:             #set ($counter = 0)
344: 
345:             #foreach ($individual in $individuals)
346:               #if ($restriction == "1")
347:                 #set ($stats = $individual.statsConference)
348:               #else
349:                 #set ($stats = $individual.stats)
350:               #end
351: 
352:               #set ($individualPosition = "")
353:               #set ($individualPosition = $individual.position)
354:               #set ($posVec = $individualPosition.split("/"))
355:               #set ($individualPosition = $posVec[0])
356: 
357:               #set ($show = "")
358: 
359:               #set ($showAllPlayers = $options.get("stats_show_all_players"))
360:               #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p))
361:               #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p))
362:               #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min))
363:                 #if ($showPosition)
364:                   #set ($indPositionsList = $lineupShowPosition.get($p))
365:                   #foreach ($indPos in $indPositionsList)
366:                     #if ($individualPosition.equalsIgnoreCase($indPos))
367:                       #set ($show = "y")
368:                     #end
369:                   #end
370:                 #end
371: 
372:                 #if ($showStat)
373:                   #set ($statsList = $lineupShowStat.get($p))
374:                   #foreach ($statElem in $statsList)
375:                     #if ($stats.get($statElem) > 0)
376:                       #set ($show = "y")
377:                     #end
378:                   #end
379:                 #end
380: 
381:                 #if ($min)
382:                   #set ($test = 0)
383:                   #set ($test = $stats.get($min))
384:                   #if ($test > 0)
385:                     #set ($show = "y")
386:                   #end
387:                 #end
388:               #else
389:                 #set ($show = "y")
390:               #end
391: 
392:               #if ($show.length() > 0)
393:                 #set ($showCount = $showCount + 1)
394:                 <tr>
395:                     #if ($isIncluded)
396:                       #if(!$tennis)
397:                         <td class="text">${individual.uniform}</td>
398:                       #end
399:                     #elseif ($sort != 'name' && ! $isSharedMeets)
400:                       <td class="text">
401:                         ## Need to figure out what value is
402:                         #set ($value = ${stats.get($sort)})
403:                         #if (!($value == $rankValue))
404:                         ##This is a new rank value... let's update our ranking
405:                           #set ($rank = $showCount)
406:                           #set ($rankValue = $value)
407:                         #end
408:                         #if($request.getParameter("page"))
409:                           ${individual.getRank()}
410:                         #else
411:                           ${rank}
412:                         #end
413:                       </td>
414:                     #end
415: 
416:                     <td class="text pinned-col">
417:                       #if ($isSharedMeets)
418:                         ${individual.firstName} ${individual.lastName}
419:                       #else
420:                         #if ($page.contentType == "tournament/bios")
421:                           <a href="players/${individual.pageName}">
422:                             #printPlayerName($isIncluded, $individual)
423:                           </a>
424:                         #else
425:                           <a href="${page.url}/${individual.pageName}">
426:                             #printPlayerName($isIncluded, $individual)
427:                           </a>
428:                         #end
429:                       #end
430:                     </td>
431: 
432:                     #if ($isIncluded)
433:                       <td>$!{individual.year}</td>
434:                       <td>
435:                         #if($individual.positionAbbreviation)
436:                           $!individual.positionAbbreviation
437:                         #else
438:                           $!individual.position
439:                         #end
440:                       </td>
441:                     #elseif ($isSharedMeets)
442:                       <td>$!{individual.year}</td>
443:                     #else
444:                       #set ($teamname = "")
445:                       #set ($teamname = $individual.team)
446: 
447:                       ##############################################################
448:                       ## This creates an abbr. team name for each athlete.
449:                       ## Comment out if client would prefer the full team name to show.
450: 
451:                       #set ($teamname = $teamAbbr.get($individual.teamId))
452:                       #set ($teamname = $teamAbbr.get($individual.team))
453: 
454:                       ## end of team abbr swap for team name
455:                       ##############################################################
456: 
457:                       <td class="text">
458:                         #if ($teamname.length() > 0)
459:                           <a href="teams?id=$!{individual.teamId}">${teamname}</a>
460:                         #end
461:                       </td>
462:                     #end
463: 
464:                     #foreach ($key in $briefs.keySet())
465:                       #set ($value = "-")
466:                       #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key)))
467:                       <td #if ($key == $sort) class="sort" #end>
468:                         #if ($value.length() > 0)
469:                           $value
470:                         #else
471:                           -
472:                         #end
473:                       </td>
474:                     #end
475:                   </tr>
476:               #end ## showing
477:             #end ## foreach individual
478: 
479:             #if ($isIncluded)
480:               #set ($teamStats = $request.getAttribute("teamStats"))
481:               <tr class="totals">
482:                 <td>&nbsp;</td>
483:                 <td class="text pinned-col">Totals</td>
484:                 <td>&nbsp;</td> ## YR
485:                 <td>&nbsp;</td> ## POS
486:                 #foreach ($key in $briefs.keySet())
487:                   #set ($value = "-")
488:                   #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key)))
489:                   <td #if ($key == $sort) class="sort" #end>
490:                     #if ($value.length() > 0)
491:                       $value
492:                     #else
493:                       -
494:                     #end
495:                   </td>
496:                 #end
497:               </tr>
498: 
499:               <tr class="totals">
500:                 <td>&nbsp;</td>
501:                 <td class="text pinned-col">Opponent</td>
502:                 <td>&nbsp;</td> ## YR
503:                 <td>&nbsp;</td> ## POS
504:                 #foreach ($key in $briefs.keySet())
505:                   #set ($keyopp = "${key}opp")
506:                   #set ($value = "-")
507:                   #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key)))
508:                   <td #if ($key == $sort) class="sort" #end>
509:                     #if ($value.length() > 0)
510:                       $value
511:                     #else
512:                       -
513:                     #end
514:                   </td>
515:                 #end
516:               </tr>
517:             #end
518: 
519:             #if ($individuals.size() == 0)
520:               <tr class="totals">
521:                 <td colspan="5">
522:                   #if ($isSharedMeets)
523:                     This team's roster is empty
524:                   #elseif ($hasBiosBeforeFilter)
525:                     No players meet the minimum
526:                   #else
527:                     No stats are available at this time
528:                   #end
529:                 </td>
530:               </tr>
531:             #end
532:             #if($totals)
533:               <tfoot>
534:                   <tr class="font-weight-bold">
535:                       <td colspan="3" class="text-center">TOTALS</td>
536:                        #foreach ($key in $briefs.keySet())
537:                           #set ($value = "-")
538:                           #set ($value = $formatter.formatNumber(${totals.get($key)}, $!formats.get($key)))
539:                           <td class="text-right text-nowrap" #if($key == $sort) #end>
540:                               #if ($value.length() > 0)
541:                                   $value
542:                               #else
543:                                   -
544:                               #end
545:                           </td>
546:                       #end
547:                   </tr>
548:               </tfoot>
549:             #end
550:           </table>
551:           #if($request.getParameter("page"))
552:             Page ${request.getParameter("page")}/${totalPages} - Showing: ${showCount}, Total: ${individualsTotalLength} Players
553:           #end
554:         </div>
555:       </div> ## scrollable
556:     </div> ## stats-box
557:   </div> ## stats-wrap
558: #end ## printPlayers
559: 
560: ### END MACROS ###
561: 
562: ## TEAMS LAYOUTS FOR SHARED MEETS
563: #if ($isSharedMeets && !$isSingleTeam)
564: 
565: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value"))
566: #set ($teamsThreshold = 20)
567: 
568: #if ($page.title.length() > 0)
569:   <h1>$page.title</h1>
570: #else
571:   <h1>Teams</h1>
572: #end
573: 
574: #if ($teams.size() > $teamsThreshold)
575: 
576: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
577: 
578: <div class="alphabet-filter" data-module="stats/alphabet-filter">
579: <div class="alphabet-filter-chars">
580:   <span class="alphabet-filter-border"> | </span>
581:   #foreach ($alphabet in $alphabets.split(""))
582:     #if ($alphabet.length() > 0)
583:       <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a>
584:       <span class="alphabet-filter-border"> | </span>
585:     #end
586:   #end
587: </div> ## alphabet-filter-char
588: 
589: <div class="alphabet-filter-list">
590:   <div class="alphabet-filter-column">
591:       #set ($lastAlphabet = "")
592:       #set ($counter = 0)
593: 
594:       #foreach ($team in $teams)
595:         #set ($teamName = $team.value)
596: 
597:         #if ($teamName.charAt(0) != $lastAlphabet)
598:           #set ($counter = $counter + 1)
599:           #if ($counter > 1)
600:             </div> ## alphabet-filter-section
601:           #end
602:           #if ($counter == 8 || $counter == 15)
603:             </div> ## alphabet-filter-column
604:             <div class="alphabet-filter-column">
605:           #end
606:           #set ($lastAlphabet = $teamName.charAt(0))
607:           <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}">
608:             <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4>
609:         #end
610:         <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a>
611:       #end
612:       </div> ## alphabet-filter-section
613:       </div> ## alphabet-filter-column
614: </div> ## alphabet-filter-list
615: </div> ## alphabet-filter
616: 
617: #else ## plain list
618: 
619: <div class="stats-wrap clearfix">
620:   <div class="stats-box full clearfix">
621:     <table>
622:       #foreach ($team in $teams)
623:         <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr>
624:       #end
625:       #if ($teams.size() == 0)
626:         <tr><td>There are no teams that match this criteria</td></tr>
627:       #end
628:     </table>
629:   </div>
630: </div>
631: 
632: #end ## teams threshold
633: 
634: ## TEAMINFO ROSTER LAYOUT
635: #elseif ($isIncluded && $view == 'roster')
636:   #set ($baseball = $sport && $sport.XMLCode == "bsgame")
637:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
638: 
639:   <div class="stats-wrap clearfix">
640:     <div class="stats-box stats-box-alternate full clearfix">
641:       <div class="scrollable">
642:         <div>
643:           <table>
644:             <tr class="thead accent-bg">
645:               #if (!$tennis)
646:               <th class="text">No.</th>
647:               #end
648:               <th class="text pinned-col">Name</th>
649:               <th>Position</th>
650:               <th>Year</th>
651:               <th>Player Status</th>
652:               #if ($baseball)
653:                 <th>Height</th>
654:                 <th>Weight</th>
655:                 <th>Bats</th>
656:                 <th>Throws</th>
657:                 <th>DOB</th>
658:                 <th>Hometown</th>
659:               #end
660:             </tr>
661:             #foreach ($individual in $individuals)
662:               <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>
663:                 #if (!$tennis)
664:                   <td class="text">
665:                     ${individual.uniform}
666:                   </td>
667:                 #end
668:                 <td class="text pinned-col">
669:                   <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a>
670:                 </td>
671:                 <td>
672:                   #if ($individual.positionAbbreviation)
673:                     $!individual.positionAbbreviation
674:                   #else
675:                     $!individual.position
676:                   #end
677:                 </td>
678:                 <td>$!{individual.year}</td>
679:                 <td>
680:                   #if($additionalRosterStatus)
681:                      $individual.playerStatus
682:                  #elseif ($individual.active)
683:                      Active
684:                    #else
685:                      Inactive
686:                    #end
687:                 </td>
688:                 #if ($baseball)
689:                   <td>$!{individual.dataMap["height"]}</td>
690:                   <td>$!{individual.dataMap["weight"]}</td>
691:                   <td>$!{individual.dataMap["bats"]}</td>
692:                   <td>$!{individual.dataMap["throws"]}</td>
693:                   <td>$!{individual.dataMap["born"]}</td>
694:                   <td>$!{individual.dataMap["hometown"]}</td>
695:                 #end
696:               </tr>
697:             #end
698:           </table>
699:         </div>
700:       </div>
701:     </div>
702:   </div>
703: 
704: ## SHARED MEETS PLAYERS
705: #elseif ($isSharedMeets)
706: 
707: #if ($teamId)
708:   #set ($playersPageTitle = $page.title)
709:   #foreach($team in $page.teams.entrySet())
710:     #if ($teamId == $team.key)
711:       #set ($playersPageTitle = $team.value)
712:     #end
713:   #end
714:   <h1>$playersPageTitle</h1>
715: #end
716: 
717: #printPlayers($pos, $restriction)
718: 
719: ## PLAYERS / LINEUP
720: #else
721: 
722: ## do not show these options on the lineup page
723: #if (not $isIncluded)
724: 
725:   #if ($isAjax)
726:     $website.decorate('')
727:       #printPlayers($pos $restriction)
728:     #stop
729:   #end
730: 
731:   #if ($page.contentType == "stat/bios")
732:     ## ARCHIVES
733:     <div class="align-right">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div>
734:   #end
735: 
736:   #if ($page.title.length() > 0 && !$isSharedMeets)
737:     <h1>$page.title</h1>
738:   #end
739: 
740:   #if ($minimum.length() > 0)
741:     <div class="clearfix align-right">$!minimum</div>
742:   #end
743: 
744:   #if ($showconf && !$isSharedMeets)
745:     <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
746:       <div class="tab-nav" data-module="jscroll" data-momentum="false">
747:         <div>
748:           <ul class="clearfix">
749:             <li #if ($restriction == "0")class="active"#end>
750:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0${paginationParameters}">Overall</a>
751:             </li>
752:             <li #if ($restriction == "1")class="active"#end>
753:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1${paginationParameters}">Conference</a>
754:             </li>
755:           </ul>
756:         </div>
757:       </div>
758: 
759:       <div class="tab-panels clearfix">
760:         <div class="tab-panel
761: 			#if ($restriction.equals("0"))
762: 				active
763: 			#else
764: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
765: 			#end">
766:           #printBriefsCategories(0)
767:         </div>
768:         <div class="tab-panel
769: 			#if ($restriction.equals("1"))
770: 				active
771: 			#else
772: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
773: 			#end">
774:           #printBriefsCategories(1)
775:         </div>
776:       </div>
777:     </div> ## tab-container overall/conf
778:   #else
779:     #printBriefsCategories($restriction)
780:   #end
781: 
782: #else
783:   #printBriefsCategories($restriction)
784: #end ## not isIncluded
785: #end ## LAYOUTS
786: 
787: $wiki.su

Passing
No. Name Yr Pos gp comp att pct yds y/g y/a td int lg effic
  Totals     - - - - - - - - - - 0.0
  Opponent     - - - - - - - - - - 0.0
No players meet the minimum
Rushing
No. Name Yr Pos gp rush yds y/g avg td lg fum lost
  Totals     - - - - - - - - -
  Opponent     - - - - - - - - -
No players meet the minimum
Receiving
No. Name Yr Pos gp rec rec/g yds y/g avg td lg
  Totals     - - - - - - - -
  Opponent     - - - - - - - -
No players meet the minimum
Kicking
No. Name Yr Pos gp fgm fga pct lg xpm xpa pct pts
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template
ErrorError invoking method 'get(java.lang.Integer)' in [Ljava.lang.String; at /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template[line 355, column 50]
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: #set ($paginate = false)
11: #if ($options.get("stats_individual_pagination") and $options.get("stats_individual_pagination").equalsIgnoreCase("yes"))
12:   #set ($paginate = true)
13: #end
14: #set ($limit = $options.get("stats_individual_limit"))
15: 
16: #set ($isSharedMeets = true)
17: #if ($sport and $sport.statistics == true)
18:   #set ($isSharedMeets = false)
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: #set ($pos = "")
50: #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
51: 
52: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets)
53:   $website.decorate("")
54:   #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition)
55:   #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition))
56:       #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition))
57:   #end
58:   #if($paginate)
59:     #set ($targetURL = $targetURL + "&page=1")
60:   #end
61:   #if($limit)
62:     #set ($targetURL = $targetURL + "&limit=" + $limit)
63:   #end
64:   $response.sendRedirect($targetURL)
65:   #stop
66: #end
67: 
68: ## We want to leave this undefined so we can test for that
69: #set ($minEsc = $formatter.escapeXml($request.getParameter("min")))
70: #if ($minEsc.length() > 0)
71:   #set ($min = $minEsc)
72: #end
73: 
74: #set ($cansort = $formatter.escapeXml($request.getParameter("cs")))
75: 
76: ## #set ($labels = $labels.get($positions.get($pos)))
77: 
78: #set ($url = $request.requestURI)
79: #set ($paginationParameters = "")
80: #if($paginate and $!request.getParameter("page"))
81:   #set ($paginationParameters = $paginationParameters + "&page=1")
82: #end
83: #if($limit and $!request.getParameter("limit"))
84:   #set ($paginationParameters = $paginationParameters + "&limit=" + $limit)
85: #end
86: 
87: #set ($view = "")
88: #set ($view = $formatter.escapeXml($!request.getParameter("view")))
89: 
90: #set ($restriction = "0")
91: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
92: #if ($restrictionEsc.length() > 0)
93:   #set ($restriction = $restrictionEsc)
94: #end
95: 
96: $website.include("standings?tmpl=stats-standings-abbr-template")
97: #set ($teamAbbr = $request.getAttribute("teamAbbr"))
98: 
99: #*
100: <!--
101: Debug
102: URL: $url
103: isIncluded: $isIncluded
104: View: ${view}
105: Position: $pos
106: Sort: $sort
107: isAjax: $isAjax
108: isSharedMeets = $isSharedMeets
109: page.getTeamIDs.size() = $page.getTeamIDs().size()
110: teamId = $teamId
111: page.teams.entrySet() = $page.teams.entrySet().size()
112: isSingleTeam = $isSingleTeam
113: -->
114: *#
115: 
116: #if ($locale == "en_us")
117:   #set ($defLabel = "Defense")
118: #elseif ($locale == "en_gb")
119:   #set ($defLabel = "Defence")
120: #end
121: 
122: #macro(printBriefsCategories $r)
123: #set ($ariaLabel = "Overall Stats")
124: #if ($r == "1")
125: 	#set ($ariaLabel = "Conference Stats")
126: #end
127: #set ($briefsCategories = [])
128:   #if ($teamId.length() == 0 && $briefsCategoriesLabels)
129:   <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
130:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
131:   <div>
132:   <ul class="clearfix">
133: 
134:     #if($briefsCategoriesLabels.containsKey("Game"))
135: 
136:       ## So we need to print Season, Games and Minutes (for some sports)  tabs
137: 
138:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
139:       #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
140:       #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
141:       ## Iterate over the brief categories labels
142: 
143:       #set ($isFirstCategory = true)
144:       #foreach($briefsCat in $briefsCategoriesSeason.entrySet())
145:         #set($briefsCatKey = $briefsCat.key)
146:         #set($briefsCatLabel = $briefsCat.value)
147: 
148:       <li class="tabs-category" data-skip="true"><span>$briefsCatLabel:</span></li>
149:         #foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
150:           #if($briefsCatGame.value == $briefsCatLabel)
151:             #set($gamePos = $briefsCatGame.key)
152:           #end
153:         #end
154: 
155:         ## Print the Game stuff
156:         #set($gameDefaultSorting = $briefsDefaultSorting.get($gamePos))
157:         <li #if ($pos == $gamePos) class="active" #end>
158:           <a href="${url}?sort=$gameDefaultSorting&view=${view}&pos=${gamePos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: game">Game</a>
159:         </li>
160: 
161:         ## Print the Season stuff
162:         #set($seasonDefaultSorting = $briefsDefaultSorting.get($briefsCatKey))
163:         #if ($pos.length() == 0 || $pos == $briefsCatKey)<li class="active">#else <li> #end
164:           <a href="${url}?sort=$seasonDefaultSorting&view=${view}&pos=${briefsCatKey}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: season">Season</a>
165:         </li>
166: 
167:         #if ($briefsCategories.add({ "pos" : $gamePos}))#end
168:         #if ($briefsCategories.add({ "pos" : $briefsCatKey, "isFirstCategory" : $isFirstCategory}))#end
169: 
170:         #if ($isFirstCategory)
171:           #set ($isFirstCategory = false)
172:         #end
173: 
174:         #if ($briefsCategoriesMinutes)
175:           #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
176:             #if($briefsCatMinutes.value == $briefsCatLabel)
177:               #set($minutesPos = $briefsCatMinutes.key)
178:             #end
179:           #end
180: 
181:           ## Print the minutes stuff
182:           #set($minutesDefaultSorting = $briefsDefaultSorting.get($minutesPos))
183:           <li #if ($pos == $minutesPos) class="active" #end>
184:             <a href="${url}?sort=$minutesDefaultSorting&view=${view}&pos=${minutesPos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: minutes">Minutes</a>
185:           </li>
186: 
187:           #if ($briefsCategories.add({ "pos" : $minutesPos}))#end
188: 
189:         #end
190:       #end
191:     #else
192: 
193:       ## So there are no Games or minutes subgroup for this sport so just print the categories
194:       #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
195:       #foreach($briefCat in $briefsCategoriesSeason.entrySet())
196:         #set($categoryLabel = $briefCat.value)
197:         #set($briefCatKey = $briefCat.key)
198: 
199:         #if($locale == "en_gb")
200:           #if($categoryLabel == "Defense")
201:             #set($categoryLabel = "Defence")
202:           #end
203: 
204:           #if($categoryLabel == "Defensemen")
205:             #set($categoryLabel = "Defencemen")
206:           #end
207:         #end
208: 
209:         #set($categorySort = $briefsDefaultSorting.get($briefCatKey))
210: 
211:         ## Check if the current position category can set a sorting that comes
212:         ## from antoher tabs category or maybe from a stat alphabet-filter-column
213: 
214:         #if($briefKeepPreviousSorting)
215:           #if($briefKeepPreviousSorting.contains($pos) && $briefKeepPreviousSorting.contains($briefCatKey))
216:             #set($categorySort = $sort)
217:           #end
218:         #end
219: 
220:         <li #if ($pos == ${briefCatKey}) class="active" #end>
221:           <a href="${url}?sort=$!categorySort&view=$!view&pos=$!briefCatKey&r=$!r${paginationParameters}" role="button" aria-label="${ariaLabel}: ${categoryLabel}">$categoryLabel</a>
222:         </li>
223: 
224:         #if ($briefsCategories.add({ "pos" : $briefCatKey }))#end
225: 
226:       #end
227:     #end
228: 
229:   </ul>
230:   </div>
231:   </div> ## tab-nav
232: 
233:   <div class="tab-panels clearfix">
234:   #foreach ($category in $briefsCategories)
235:     #set ($isActive = false)
236: 
237: #*
238: <br><br><br>
239: 	$briefsCategories <br >
240:     DEBUG <br>
241:     r = $r <br>
242:     restriction = $restriction <br>
243:     pos = $pos <br>
244:     category.pos = $category.pos <br>
245: 	isFirstCategory = $isFirstCategory
246: <br><br><br>
247: *#
248: 
249: 	#if ($r == $restriction && ($pos == $category.pos || (!$pos && $isFirstCategory) || $briefsCategories.size() == 1))
250:       #set ($isActive = true)
251:     #end
252: 
253:     #if ($isActive)
254:       <div class="tab-panel active">
255:           #printPlayers($category.pos, $r)
256:       </div>
257:     #else
258:       <div class="tab-panel tab-panel-ondemand"></div>
259:     #end
260:   #end
261:   </div>
262: 
263:   </div> ## tab-container
264: 
265:   #else
266:     #printPlayers($pos, $r)
267:   #end
268: #end  ## printBriefsCategories
269: 
270: #macro(printPlayerName $isIncluded $individual)
271:   #if ($isIncluded)
272:     ${individual.firstName}
273:   #elseif ($individual.firstName.length() > 0)
274:     ${individual.firstName.substring(0, 1)}
275:   #end
276:   ${individual.lastName}
277: #end
278: 
279: #macro(printPlayers $p $r)
280:   #set ($briefs = $briefs.get($positions.get($p)))
281: 
282:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
283: 
284:   <div class="stats-wrap clearfix">
285:     <div class="stats-box stats-box-alternate full clearfix">
286:       <div class="scrollable">
287:         <div>
288:           <table>
289:             <tr class="thead accent-bg">
290:               #if ($isIncluded)
291:                 #if(!$tennis)
292:                   <th class="text">No.</th>
293:                 #end
294:               #elseif ($sort != 'name' && ! $isSharedMeets)
295:                 <th class="text">Rk</th>
296:               #end
297: 
298:               <th class="text pinned-col" title="Name">
299:                 #if ($cansort == 'n' || $isSharedMeets)
300:                   Name
301:                 #else
302:                   <button value="${url}?sort=name&view=${view}&pos=${p}&r=${r}${paginationParameters}"
303:                           class="sortable"
304:                           aria-label="sort table using name">
305:                     Name
306:                   </button>
307:                 #end
308:               </th>
309: 
310:               #if ($isIncluded)
311:                 <th>Yr</th>
312:                 <th>Pos</th>
313:               #elseif ($isSharedMeets)
314:                 <th>Yr</th>
315:               #else
316:                 <th>&nbsp;</th>
317:               #end
318: 
319:               ## Hack for now
320:               #set ($pos = "")
321:               #set ($pos = $formatter.escapeXml($request.getParameter("pos")))
322:               #set ($labels = $labels.get($pos))
323: 
324:               #foreach ($key in $briefs.keySet())
325:                 #if ($cansort == 'n')
326:                   <th>${briefs.get($key)}</th>
327:                 #else
328:                   <th>
329:                     <button value="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}${paginationParameters}"
330:                             title="$!{labels.get($key)}"
331:                             class="sortable"
332:                             aria-label="sort table using ${briefs.get($key)}"
333:                     >
334:                       ${briefs.get($key)}
335:                     </button>
336:                   </th>
337:                 #end
338:               #end
339:             </tr>
340: 
341:             #set ($showCount = 0)
342:             #set ($rankValue = "abb")
343:             #set ($counter = 0)
344: 
345:             #foreach ($individual in $individuals)
346:               #if ($restriction == "1")
347:                 #set ($stats = $individual.statsConference)
348:               #else
349:                 #set ($stats = $individual.stats)
350:               #end
351: 
352:               #set ($individualPosition = "")
353:               #set ($individualPosition = $individual.position)
354:               #set ($posVec = $individualPosition.split("/"))
355:               #set ($individualPosition = $posVec[0])
356: 
357:               #set ($show = "")
358: 
359:               #set ($showAllPlayers = $options.get("stats_show_all_players"))
360:               #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p))
361:               #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p))
362:               #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min))
363:                 #if ($showPosition)
364:                   #set ($indPositionsList = $lineupShowPosition.get($p))
365:                   #foreach ($indPos in $indPositionsList)
366:                     #if ($individualPosition.equalsIgnoreCase($indPos))
367:                       #set ($show = "y")
368:                     #end
369:                   #end
370:                 #end
371: 
372:                 #if ($showStat)
373:                   #set ($statsList = $lineupShowStat.get($p))
374:                   #foreach ($statElem in $statsList)
375:                     #if ($stats.get($statElem) > 0)
376:                       #set ($show = "y")
377:                     #end
378:                   #end
379:                 #end
380: 
381:                 #if ($min)
382:                   #set ($test = 0)
383:                   #set ($test = $stats.get($min))
384:                   #if ($test > 0)
385:                     #set ($show = "y")
386:                   #end
387:                 #end
388:               #else
389:                 #set ($show = "y")
390:               #end
391: 
392:               #if ($show.length() > 0)
393:                 #set ($showCount = $showCount + 1)
394:                 <tr>
395:                     #if ($isIncluded)
396:                       #if(!$tennis)
397:                         <td class="text">${individual.uniform}</td>
398:                       #end
399:                     #elseif ($sort != 'name' && ! $isSharedMeets)
400:                       <td class="text">
401:                         ## Need to figure out what value is
402:                         #set ($value = ${stats.get($sort)})
403:                         #if (!($value == $rankValue))
404:                         ##This is a new rank value... let's update our ranking
405:                           #set ($rank = $showCount)
406:                           #set ($rankValue = $value)
407:                         #end
408:                         #if($request.getParameter("page"))
409:                           ${individual.getRank()}
410:                         #else
411:                           ${rank}
412:                         #end
413:                       </td>
414:                     #end
415: 
416:                     <td class="text pinned-col">
417:                       #if ($isSharedMeets)
418:                         ${individual.firstName} ${individual.lastName}
419:                       #else
420:                         #if ($page.contentType == "tournament/bios")
421:                           <a href="players/${individual.pageName}">
422:                             #printPlayerName($isIncluded, $individual)
423:                           </a>
424:                         #else
425:                           <a href="${page.url}/${individual.pageName}">
426:                             #printPlayerName($isIncluded, $individual)
427:                           </a>
428:                         #end
429:                       #end
430:                     </td>
431: 
432:                     #if ($isIncluded)
433:                       <td>$!{individual.year}</td>
434:                       <td>
435:                         #if($individual.positionAbbreviation)
436:                           $!individual.positionAbbreviation
437:                         #else
438:                           $!individual.position
439:                         #end
440:                       </td>
441:                     #elseif ($isSharedMeets)
442:                       <td>$!{individual.year}</td>
443:                     #else
444:                       #set ($teamname = "")
445:                       #set ($teamname = $individual.team)
446: 
447:                       ##############################################################
448:                       ## This creates an abbr. team name for each athlete.
449:                       ## Comment out if client would prefer the full team name to show.
450: 
451:                       #set ($teamname = $teamAbbr.get($individual.teamId))
452:                       #set ($teamname = $teamAbbr.get($individual.team))
453: 
454:                       ## end of team abbr swap for team name
455:                       ##############################################################
456: 
457:                       <td class="text">
458:                         #if ($teamname.length() > 0)
459:                           <a href="teams?id=$!{individual.teamId}">${teamname}</a>
460:                         #end
461:                       </td>
462:                     #end
463: 
464:                     #foreach ($key in $briefs.keySet())
465:                       #set ($value = "-")
466:                       #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key)))
467:                       <td #if ($key == $sort) class="sort" #end>
468:                         #if ($value.length() > 0)
469:                           $value
470:                         #else
471:                           -
472:                         #end
473:                       </td>
474:                     #end
475:                   </tr>
476:               #end ## showing
477:             #end ## foreach individual
478: 
479:             #if ($isIncluded)
480:               #set ($teamStats = $request.getAttribute("teamStats"))
481:               <tr class="totals">
482:                 <td>&nbsp;</td>
483:                 <td class="text pinned-col">Totals</td>
484:                 <td>&nbsp;</td> ## YR
485:                 <td>&nbsp;</td> ## POS
486:                 #foreach ($key in $briefs.keySet())
487:                   #set ($value = "-")
488:                   #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key)))
489:                   <td #if ($key == $sort) class="sort" #end>
490:                     #if ($value.length() > 0)
491:                       $value
492:                     #else
493:                       -
494:                     #end
495:                   </td>
496:                 #end
497:               </tr>
498: 
499:               <tr class="totals">
500:                 <td>&nbsp;</td>
501:                 <td class="text pinned-col">Opponent</td>
502:                 <td>&nbsp;</td> ## YR
503:                 <td>&nbsp;</td> ## POS
504:                 #foreach ($key in $briefs.keySet())
505:                   #set ($keyopp = "${key}opp")
506:                   #set ($value = "-")
507:                   #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key)))
508:                   <td #if ($key == $sort) class="sort" #end>
509:                     #if ($value.length() > 0)
510:                       $value
511:                     #else
512:                       -
513:                     #end
514:                   </td>
515:                 #end
516:               </tr>
517:             #end
518: 
519:             #if ($individuals.size() == 0)
520:               <tr class="totals">
521:                 <td colspan="5">
522:                   #if ($isSharedMeets)
523:                     This team's roster is empty
524:                   #elseif ($hasBiosBeforeFilter)
525:                     No players meet the minimum
526:                   #else
527:                     No stats are available at this time
528:                   #end
529:                 </td>
530:               </tr>
531:             #end
532:             #if($totals)
533:               <tfoot>
534:                   <tr class="font-weight-bold">
535:                       <td colspan="3" class="text-center">TOTALS</td>
536:                        #foreach ($key in $briefs.keySet())
537:                           #set ($value = "-")
538:                           #set ($value = $formatter.formatNumber(${totals.get($key)}, $!formats.get($key)))
539:                           <td class="text-right text-nowrap" #if($key == $sort) #end>
540:                               #if ($value.length() > 0)
541:                                   $value
542:                               #else
543:                                   -
544:                               #end
545:                           </td>
546:                       #end
547:                   </tr>
548:               </tfoot>
549:             #end
550:           </table>
551:           #if($request.getParameter("page"))
552:             Page ${request.getParameter("page")}/${totalPages} - Showing: ${showCount}, Total: ${individualsTotalLength} Players
553:           #end
554:         </div>
555:       </div> ## scrollable
556:     </div> ## stats-box
557:   </div> ## stats-wrap
558: #end ## printPlayers
559: 
560: ### END MACROS ###
561: 
562: ## TEAMS LAYOUTS FOR SHARED MEETS
563: #if ($isSharedMeets && !$isSingleTeam)
564: 
565: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value"))
566: #set ($teamsThreshold = 20)
567: 
568: #if ($page.title.length() > 0)
569:   <h1>$page.title</h1>
570: #else
571:   <h1>Teams</h1>
572: #end
573: 
574: #if ($teams.size() > $teamsThreshold)
575: 
576: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
577: 
578: <div class="alphabet-filter" data-module="stats/alphabet-filter">
579: <div class="alphabet-filter-chars">
580:   <span class="alphabet-filter-border"> | </span>
581:   #foreach ($alphabet in $alphabets.split(""))
582:     #if ($alphabet.length() > 0)
583:       <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a>
584:       <span class="alphabet-filter-border"> | </span>
585:     #end
586:   #end
587: </div> ## alphabet-filter-char
588: 
589: <div class="alphabet-filter-list">
590:   <div class="alphabet-filter-column">
591:       #set ($lastAlphabet = "")
592:       #set ($counter = 0)
593: 
594:       #foreach ($team in $teams)
595:         #set ($teamName = $team.value)
596: 
597:         #if ($teamName.charAt(0) != $lastAlphabet)
598:           #set ($counter = $counter + 1)
599:           #if ($counter > 1)
600:             </div> ## alphabet-filter-section
601:           #end
602:           #if ($counter == 8 || $counter == 15)
603:             </div> ## alphabet-filter-column
604:             <div class="alphabet-filter-column">
605:           #end
606:           #set ($lastAlphabet = $teamName.charAt(0))
607:           <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}">
608:             <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4>
609:         #end
610:         <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a>
611:       #end
612:       </div> ## alphabet-filter-section
613:       </div> ## alphabet-filter-column
614: </div> ## alphabet-filter-list
615: </div> ## alphabet-filter
616: 
617: #else ## plain list
618: 
619: <div class="stats-wrap clearfix">
620:   <div class="stats-box full clearfix">
621:     <table>
622:       #foreach ($team in $teams)
623:         <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr>
624:       #end
625:       #if ($teams.size() == 0)
626:         <tr><td>There are no teams that match this criteria</td></tr>
627:       #end
628:     </table>
629:   </div>
630: </div>
631: 
632: #end ## teams threshold
633: 
634: ## TEAMINFO ROSTER LAYOUT
635: #elseif ($isIncluded && $view == 'roster')
636:   #set ($baseball = $sport && $sport.XMLCode == "bsgame")
637:   #set ($tennis = $sport && $sport.XMLCode == "tngame")
638: 
639:   <div class="stats-wrap clearfix">
640:     <div class="stats-box stats-box-alternate full clearfix">
641:       <div class="scrollable">
642:         <div>
643:           <table>
644:             <tr class="thead accent-bg">
645:               #if (!$tennis)
646:               <th class="text">No.</th>
647:               #end
648:               <th class="text pinned-col">Name</th>
649:               <th>Position</th>
650:               <th>Year</th>
651:               <th>Player Status</th>
652:               #if ($baseball)
653:                 <th>Height</th>
654:                 <th>Weight</th>
655:                 <th>Bats</th>
656:                 <th>Throws</th>
657:                 <th>DOB</th>
658:                 <th>Hometown</th>
659:               #end
660:             </tr>
661:             #foreach ($individual in $individuals)
662:               <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>
663:                 #if (!$tennis)
664:                   <td class="text">
665:                     ${individual.uniform}
666:                   </td>
667:                 #end
668:                 <td class="text pinned-col">
669:                   <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a>
670:                 </td>
671:                 <td>
672:                   #if ($individual.positionAbbreviation)
673:                     $!individual.positionAbbreviation
674:                   #else
675:                     $!individual.position
676:                   #end
677:                 </td>
678:                 <td>$!{individual.year}</td>
679:                 <td>
680:                   #if($additionalRosterStatus)
681:                      $individual.playerStatus
682:                  #elseif ($individual.active)
683:                      Active
684:                    #else
685:                      Inactive
686:                    #end
687:                 </td>
688:                 #if ($baseball)
689:                   <td>$!{individual.dataMap["height"]}</td>
690:                   <td>$!{individual.dataMap["weight"]}</td>
691:                   <td>$!{individual.dataMap["bats"]}</td>
692:                   <td>$!{individual.dataMap["throws"]}</td>
693:                   <td>$!{individual.dataMap["born"]}</td>
694:                   <td>$!{individual.dataMap["hometown"]}</td>
695:                 #end
696:               </tr>
697:             #end
698:           </table>
699:         </div>
700:       </div>
701:     </div>
702:   </div>
703: 
704: ## SHARED MEETS PLAYERS
705: #elseif ($isSharedMeets)
706: 
707: #if ($teamId)
708:   #set ($playersPageTitle = $page.title)
709:   #foreach($team in $page.teams.entrySet())
710:     #if ($teamId == $team.key)
711:       #set ($playersPageTitle = $team.value)
712:     #end
713:   #end
714:   <h1>$playersPageTitle</h1>
715: #end
716: 
717: #printPlayers($pos, $restriction)
718: 
719: ## PLAYERS / LINEUP
720: #else
721: 
722: ## do not show these options on the lineup page
723: #if (not $isIncluded)
724: 
725:   #if ($isAjax)
726:     $website.decorate('')
727:       #printPlayers($pos $restriction)
728:     #stop
729:   #end
730: 
731:   #if ($page.contentType == "stat/bios")
732:     ## ARCHIVES
733:     <div class="align-right">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div>
734:   #end
735: 
736:   #if ($page.title.length() > 0 && !$isSharedMeets)
737:     <h1>$page.title</h1>
738:   #end
739: 
740:   #if ($minimum.length() > 0)
741:     <div class="clearfix align-right">$!minimum</div>
742:   #end
743: 
744:   #if ($showconf && !$isSharedMeets)
745:     <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
746:       <div class="tab-nav" data-module="jscroll" data-momentum="false">
747:         <div>
748:           <ul class="clearfix">
749:             <li #if ($restriction == "0")class="active"#end>
750:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0${paginationParameters}">Overall</a>
751:             </li>
752:             <li #if ($restriction == "1")class="active"#end>
753:               <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1${paginationParameters}">Conference</a>
754:             </li>
755:           </ul>
756:         </div>
757:       </div>
758: 
759:       <div class="tab-panels clearfix">
760:         <div class="tab-panel
761: 			#if ($restriction.equals("0"))
762: 				active
763: 			#else
764: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
765: 			#end">
766:           #printBriefsCategories(0)
767:         </div>
768:         <div class="tab-panel
769: 			#if ($restriction.equals("1"))
770: 				active
771: 			#else
772: 				#if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end
773: 			#end">
774:           #printBriefsCategories(1)
775:         </div>
776:       </div>
777:     </div> ## tab-container overall/conf
778:   #else
779:     #printBriefsCategories($restriction)
780:   #end
781: 
782: #else
783:   #printBriefsCategories($restriction)
784: #end ## not isIncluded
785: #end ## LAYOUTS
786: 
787: $wiki.su

Punting
No. Name Yr Pos gp punt yds avg lg in20 fc tb blk
  Totals     - - - - - - - - -
  Opponent     - - - - - - - - -
No players meet the minimum
Returns
All-Purpose
Scoring
Defense
Download roster: FRO (First Last) | FRO (Last, First) FRX (First Last) | FRX (Last, First)
Date Opponent Score yds pass c-a comp % rush r y/r int fum tack sac pen yds top
Feb 24 Cornell   - - - - - - - - - - - - -
Feb 24 at Utah   - - - - - - - - - - - - -
Feb 25 Cornell   - - - - - - - - - - - - -
Feb 26 at Cornell   - - - - - - - - - - - - -
Feb 27 at Cornell   - - - - - - - - - - - - -
Mar 16 at Utah   - - - - - - - - - - - - -
Mar 20 at Utah   - - - - - - - - - - - - -
Mar 24 Cornell   - - - - - - - - - - - - -
Mar 25 Cornell   - - - - - - - - - - - - -
Mar 26 at Cornell   - - - - - - - - - - - - -
Mar 27 at Cornell   - - - - - - - - - - - - -
Apr 25 Cornell   - - - - - - - - - - - - -
Apr 26 at Cornell   - - - - - - - - - - - - -
Apr 27 at Cornell   - - - - - - - - - - - - -
Jun 16 at Utah   - - - - - - - - - - - - -
Jun 24 Cornell   - - - - - - - - - - - - -
Jun 25 Cornell   - - - - - - - - - - - - -
Jun 26 at Cornell   - - - - - - - - - - - - -
Jun 27 at Cornell   - - - - - - - - - - - - -
Jul 16 at Utah   - - - - - - - - - - - - -
Jul 24 Cornell   - - - - - - - - - - - - -
Jul 25 Cornell   - - - - - - - - - - - - -
Jul 26 at Cornell   - - - - - - - - - - - - -
Jul 27 at Cornell   - - - - - - - - - - - - -
Aug 16 at Utah   - - - - - - - - - - - - -
Aug 24 Cornell   - - - - - - - - - - - - -
Aug 25 Cornell   - - - - - - - - - - - - -
Aug 26 at Cornell   - - - - - - - - - - - - -
Aug 27 at Cornell   - - - - - - - - - - - - -
Oct 24 # at Utah   - - - - - - - - - - - - -
Feb 16 at Utah T, 0-0 - - - - - - - - - - - - -
Feb 24 Cornell   - - - - - - - - - - - - -
Feb 24 at Utah   - - - - - - - - - - - - -
Feb 25 Cornell   - - - - - - - - - - - - -
Feb 26 at Cornell   - - - - - - - - - - - - -
Feb 27 at Cornell   - - - - - - - - - - - - -
Mar 1 at Utah   - - - - - - - - - - - - -
Mar 2 at Albany (N.Y.)   - - - - - - - - - - - - -
Mar 16 at Albany (N.Y.)   - - - - - - - - - - - - -
Mar 16 at Utah   - - - - - - - - - - - - -
Mar 24 Cornell   - - - - - - - - - - - - -
Mar 25 Cornell   - - - - - - - - - - - - -
Mar 26 at Cornell   - - - - - - - - - - - - -
Mar 27 at Cornell   - - - - - - - - - - - - -
Apr 16 at Utah   - - - - - - - - - - - - -
Apr 24 Cornell   - - - - - - - - - - - - -
May 3 at Utah   - - - - - - - - - - - - -
May 6 at Utah   - - - - - - - - - - - - -
May 6 at Utah   - - - - - - - - - - - - -
May 7 at Albany (N.Y.)   - - - - - - - - - - - - -
May 9 at Utah   - - - - - - - - - - - - -
May 16 at Albany (N.Y.)   - - - - - - - - - - - - -
May 19 at Utah   - - - - - - - - - - - - -
May 21 at Utah   - - - - - - - - - - - - -
May 23 at Adrian   - - - - - - - - - - - - -
May 29 at Albany (N.Y.)   - - - - - - - - - - - - -
May 30 at Utah   - - - - - - - - - - - - -
May 31 at Albany (N.Y.)   - - - - - - - - - - - - -
Jun 16 at Cornell   - - - - - - - - - - - - -
Jun 16 at Utah   - - - - - - - - - - - - -
Jun 24 Cornell   - - - - - - - - - - - - -
Jun 25 Cornell   - - - - - - - - - - - - -
Jun 26 at Cornell   - - - - - - - - - - - - -
Jun 27 at Cornell   - - - - - - - - - - - - -
Jul 16 at Utah   - - - - - - - - - - - - -
Jul 24 Cornell   - - - - - - - - - - - - -
Jul 25 Cornell   - - - - - - - - - - - - -
Jul 26 at Cornell   - - - - - - - - - - - - -
Jul 27 at Cornell   - - - - - - - - - - - - -
Aug 16 at Utah   - - - - - - - - - - - - -
Aug 24 at Cornell College   - - - - - - - - - - - - -
Aug 24 Cornell   - - - - - - - - - - - - -
Aug 25 Cornell   - - - - - - - - - - - - -
Aug 26 at Cornell   - - - - - - - - - - - - -
Aug 27 at Cornell   - - - - - - - - - - - - -
  gp td fg xpt 2pc dxp saf pts ppg
Total - - - - - - - - -
Conference - - - - - - - - -
Exhibition - - - - - - - - -
 
-
Home - - - - - - - - -
Away - - - - - - - - -
Neutral - - - - - - - - -
 
-
Wins - - - - - - - - -
Losses - - - - - - - - -
 
-
  gp ppg pts yd/g pass y/g rush y/g tkl/g int fum rec sack td
Total - - - - - - - - - - -
Conference - - - - - - - - - - -
Exhibition - - - - - - - - - - -
 
-
Home - - - - - - - - - - -
Away - - - - - - - - - - -
Neutral - - - - - - - - - - -
 
-
Wins - - - - - - - - - - -
Losses - - - - - - - - - - -
 
-
Date Opponent Score Attend
Feb 24 Cornell   -
Feb 24 at Utah   -
Feb 25 Cornell   -
Feb 26 at Cornell   -
Feb 27 at Cornell   -
Mar 16 at Utah   -
Mar 20 at Utah   -
Mar 24 Cornell   -
Mar 25 Cornell   -
Mar 26 at Cornell   -
Mar 27 at Cornell   -
Apr 25 Cornell   -
Apr 26 at Cornell   -
Apr 27 at Cornell   -
Jun 16 at Utah   -
Jun 24 Cornell   -
Jun 25 Cornell   -
Jun 26 at Cornell   -
Jun 27 at Cornell   -
Jul 16 at Utah   -
Jul 24 Cornell   -
Jul 25 Cornell   -
Jul 26 at Cornell   -
Jul 27 at Cornell   -
Aug 16 at Utah   -
Aug 24 Cornell   -
Aug 25 Cornell   -
Aug 26 at Cornell   -
Aug 27 at Cornell   -
Oct 24 at Utah   -
Feb 16 at Utah 0-0 Tie -
Feb 24 Cornell   -
Feb 24 at Utah   -
Feb 25 Cornell   -
Feb 26 at Cornell   -
Feb 27 at Cornell   -
Mar 1 at Utah   -
Mar 2 at Albany (N.Y.)   -
Mar 16 at Albany (N.Y.)   -
Mar 16 at Utah   -
Mar 24 Cornell   -
Mar 25 Cornell   -
Mar 26 at Cornell   -
Mar 27 at Cornell   -
Apr 16 at Utah   -
Apr 24 Cornell   -
May 3 at Utah   -
May 6 at Utah   -
May 6 at Utah   -
May 7 at Albany (N.Y.)   -
May 9 at Utah   -
May 16 at Albany (N.Y.)   -
May 19 at Utah   -
May 21 at Utah   -
May 23 at Adrian   -
May 29 at Albany (N.Y.)   -
May 30 at Utah   -
May 31 at Albany (N.Y.)   -
Jun 16 at Cornell   -
Jun 16 at Utah   -
Jun 24 Cornell   -
Jun 25 Cornell   -
Jun 26 at Cornell   -
Jun 27 at Cornell   -
Jul 16 at Utah   -
Jul 24 Cornell   -
Jul 25 Cornell   -
Jul 26 at Cornell   -
Jul 27 at Cornell   -
Aug 16 at Utah   -
Aug 24 at Cornell College   -
Aug 24 Cornell   -
Aug 25 Cornell   -
Aug 26 at Cornell   -
Aug 27 at Cornell   -