2023-24 Basketball Statistics - Co-Lin

Games
27
Pts
80.6
FG %
44.1
3PT %
31.9
FT %
73.4
Reb
40.8
Ast
14.1
Team Summary
Title Record
Overall 16-11 (.593)
Conference 8-6 (.571)
Streak Lost 1
Home 10-2
Away 6-6
Neutral 0-3
Recent Results
Date Opponent Result
Feb 22 Coahoma W, 70-54
Feb 26 at East Central W, 74-63
Feb 29 Hinds W, 81-61
Mar 4 at Itawamba L, 83-77
Mar 7 Meridian W, 85-79
Mar 9 vs. Baton Rouge CC L, 70-65
Team Stats
Statistics Overall Conf
Games 27 14
Points 2175 1095
Points per game 80.6 78.2
FG made per game 28.6 28.7
FG attempts per game 64.9 64.3
FG Pct 44.1 44.7
3PT made per game 6.8 6.1
3PT attempts per game 21.2 20.4
3PT Pct 31.9 30.1
FT made per game 16.5 14.6
FT attempt per game 22.5 20.1
FT Pct 73.4 73.0
Off rebounds per game 14.5 13.3
Def rebounds per game 26.3 25.7
Total rebounds per game 40.8 39.0
Opponents' Off rebounds per game 10.5 9.9
Opponents' Def rebounds per game 22.8 23.4
Opponents' Total rebounds per game 33.3 33.3
Rebound margin per game 7.5 5.7
Assists per game 14.1 14.1
Opponents' Assists per game 13.1 12.3
Turnovers per game 12.7 11.7
Opponents' Turnovers per game 13.3 12.0
Steals per game 7.5 7.1
Opponents' Steals per game 5.9 5.8
Blocks per game 2.6 2.1
Opponents' Blocks per game 2.9 2.8
Personal fouls per game 16.7 16.6
Offensive efficiency 1.084 1.075
Net efficiency 0.082 0.042
Opponents' Personal fouls per game 17.9 16.2
Offensive efficiency 1.001 1.034
Points per game allowed 74.8 74.8
Opponents' Field goal percentage 43.3 44.3
Opponents' Free throw total-attempts 31.3 31.2
Home Attendance 300 300
Home Attendance average 25 43
Field goal total-attempts 773-1751 402-900
3 point total-attempts 183-573 86-286
Free throw total-attempts 446-608 205-281
Opponents' Field goal total-attempts 726-1675 371-838
Opponents' 3 point total-attempts 204-652 98-314
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/teaminfo-network-template
ErrorInvocation of method 'getSectionPage' in class com.prestosports.render.storage.database.DatabasePage threw exception java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 59,553 milliseconds ago. The last packet sent successfully to the server was 39 milliseconds ago. at /httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/teaminfo-network-template[line 125, column 38]
Page source:
1: ## PICK UP OPTIONS
2: $website.include("options")
3: #set ($options = $request.getAttribute("options"))
4: 
5: #set ($locale = "en_us")
6: #set ($locale = $options.get("locale"))
7: 
8: #set ($showConf = true)
9: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide"))
10:     #set ($showConf = false)
11: #end
12: 
13: #set ($teamId = $attributes.get("teamId"))
14: #set ($stats = $splits.overall)
15: 
16: #set ($pos = "")
17: #if ($sport.enumCode == 0) ## Football
18:     #set ($pos = "off")
19: #elseif ($sport.enumCode == 2) ## Basketball
20:     #set ($pos = "sh")
21: #elseif ($sport.enumCode == 3) ## Soccer
22:     #set ($pos = "kickers")
23: #elseif ($sport.enumCode == 9) ## Field Hockey
24:     #set ($pos = "fielder")
25: #end
26: 
27: #set ($posEsc = $formatter.escapeXml($request.getParameter("pos").toLowerCase()))
28: #if ($posEsc.length() > 0)
29:     #set ($pos = $posEsc)
30: #end
31: 
32: #if ($sport.enumCode == 2) ## Basketball
33:     #if ($pos == "bc")
34:         #set ($pos = "sh")
35:     #end
36:     #if ($pos == "bt")
37:         #set ($pos = "st")
38:     #end
39:     #if ($pos == "bm")
40:         #set ($pos = "sm")
41:     #end
42: #end
43: 
44: #if ($sport.enumCode == 3) ## Soccer
45:     #if ($pos == "goalie")
46:         #set ($pos = "kickers")
47:     #end
48:     #if ($pos == "gg")
49:         #set ($pos = "kg")
50:     #end
51: #end
52: 
53: #if ($sport.enumCode == 9) ## Field Hockey
54:     #if ($pos == "goalie")
55:         #set ($pos = "fielder")
56:     #end
57:     #if ($pos == "gg")
58:         #set ($pos = "kg")
59:     #end
60: #end
61: 
62: #set ($restriction = 0)
63: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
64: #if ($restrictionEsc.length() > 0 && $restrictionEsc.equals("1"))
65:     #set ($restriction = 1)
66: #end
67: 
68: #set ($view = "profile")
69: #if ($request.getParameter("view"))
70:     #set ($view = $formatter.escapeXml($!request.getParameter("view")))
71: #end
72: 
73: #if ($briefsCategoriesLabels)
74:     #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
75:     #set($firstCategoryPos = $briefsCategoriesSeason.keySet().iterator().next())
76: #end
77: 
78: #set ($showRoster = false)
79: #if ($options.get("stats_show_roster") and $options.get("stats_show_roster").equalsIgnoreCase("yes"))
80:     #set ($showRoster = true)
81: #end
82: 
83: #set ($showAttendance = true)
84: #if ($options.get("stats_show_attendance") and $options.get("stats_show_attendance").equalsIgnoreCase("hide"))
85:     #set ($showAttendance = false)
86: #end
87: 
88: ## MACROS
89: #macro (printTableHeader $label $class)
90: 	<th class="text-uppercase $class">$label</th>
91: #end
92: 
93: #macro (printResultAriaLabel $event)
94:     #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
95:     #if ($event.neutralSite.length() > 0 || $event.home) 
96:         #set ($ariaLabel = "${ariaLabel} vs.")
97: 	#else
98: 		#set ($ariaLabel = "${ariaLabel} at")
99: 	#end
100: 	#set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
101: 	#if ($event.neutralSite.length() > 0)
102: 		#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
103: 	#end
104: 	#set ($ariaLabel = "${ariaLabel} Box Score")
105:     aria-label="$ariaLabel"
106: #end
107: 
108: #macro (printBriefCategory $briefCatLabel $briefCatPos $r)
109:   	#if ($locale == "en_gb" && $briefCatLabel == "Defense")
110:         #set ($briefCatLabel = "Defence")
111:     #end
112:   	
113:     #if ($lineupDefaultSorting && $lineupDefaultSorting.containsKey($briefCatPos))
114:         #set ($sort = $lineupDefaultSorting.get($briefCatPos))
115:     #end	
116:   	
117:     #if ($allowChooseSort)
118:         #set ($sortEsc = $formatter.escapeXml($request.getParameter("sort")))
119:         #if ($sortEsc.length() > 0)
120:             #set ($sort = $sortEsc)
121:         #end
122:     #end
123:   	
124: 	#set ($url = "")
125:     #set ($url = "${page.sectionPage.sectionPage.url}/players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&pos=${briefCatPos}&r=${r}&tmpl=stats-bios-template")
126:   	
127:     #if ($lineupMin && $lineupMin.containsKey($briefCatPos))
128:         #set ($minStat = $lineupMin.get($briefCatPos))
129:         #set ($url = $url + "&min=" + $minStat)
130:     #end
131:   	
132:     #if ($lineupFilters)
133:         #if ($lineupFilters.containsKey("cs"))
134:             #set($url = $url + "&cs=n")
135:         #end
136:   		
137:         #if ($lineupFilters.containsKey("skipBlank"))
138:             #set($skipBlank = $lineupFilters.get("skipBlank"))	
139:   			
140:             #if ($skipBlank.contains($briefCatPos))
141:                 #set($url = $url + "&skipBlank=n")
142:             #end	
143:         #end	
144:     #end	
145:   	
146: 	<div class="my-3">
147: 		<h5>$briefCatLabel</h5>
148: 		$website.includeAgain($url)
149: 	</div>
150:     
151: #end ## printBriefCategory
152: 
153: #macro(printBriefCategories $r)
154: ## Set this for the inner page to pull something out
155: 	#if ($r == 1)
156: 		#set ($restrictionLabel = "conf")
157: 		$!request.setAttribute("teamStats", $splits.conference)
158: 	#else
159: 		#set ($restrictionLabel = "overall")
160: 		$!request.setAttribute("teamStats", $splits.overall)
161: 	#end
162: 
163: 	#if ($briefsCategoriesLabels)
164: 		#set($allowChooseSort = false)
165:   	
166: 		#if ($lineupFilters && $lineupFilters.containsKey("allowChooseSort"))
167: 			#set ($allowChooseSort = true)
168: 		#end
169: 
170: 		#if ($briefsCategoriesLabels.containsKey("Game"))
171: 			#set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
172:       	
173: 			## Print Game categories tables
174: 			## Get the first Game category position
175: 			#set ($gamePos = $briefsCategoriesGame.keySet().iterator().next())
176:       
177: 			## GAME
178: 			<div #if ($pos.equals($gamePos)) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-game" role="tabpanel">
179: 			#foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
180: 				#printBriefCategory($briefsCatGame.value, $briefsCatGame.key, $r)
181: 			#end
182: 			</div>
183: 
184: 			## Print the Season categories tables
185: 			#set ($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
186:    
187: 			## SEASON
188: 			<div #if ($pos.equals($firstCategoryPos)) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-season" role="tabpanel">
189: 			#foreach ($briefCat in $briefsCategoriesSeason.entrySet())
190: 				#printBriefCategory($briefCat.value, $briefCat.key, $r)
191: 			#end
192: 			</div>
193:   		
194: 			## Print the Minutes categories tables
195: 			#if ($briefsCategoriesLabels.containsKey("Minutes"))
196: 				#set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
197: 				#set($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
198:       		
199: 				#set($showMinutesTab = false)
200: 				#if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
201: 					#set($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
202:   			
203: 					#set($lineupMinOverallStat = $lineupMinOverallValues[0])
204: 					#set($lineupMinOverallMinVal = $lineupMinOverallValues[1])
205: 					#set($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
206:   			
207: 					#if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue)
208: 						#set($showMinutesTab = true)
209: 					#end	
210: 				#end
211: 
212: 				#if ($showMinutesTab)
213: 					## MINUTES
214: 					<div #if ($pos.equals($minutesPos)) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-minutes" role="tabpanel">
215: 					#foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
216: 						#printBriefCategory($briefsCatMinutes.value, $briefsCatMinutes.key, $r)
217: 					#end
218: 					</div>
219: 				#end
220: 			#end ## end minutes
221: 		#else
222: 
223: 			#set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
224: 			## SINGLE SEASON
225: 			#foreach($briefCat in $briefsCategoriesSeason.entrySet())
226: 				#printBriefCategory($briefCat.value, $briefCat.key, $r)
227: 			#end
228: 		#end
229: 		
230: 	#elseif ($lineupFilters)
231: 
232: 		## All of the supported sports has lineupFilters, so print it without matter it does not have briefs category, yeah voleyball is you :)
233: 		#set ($sort = $formatter.escapeXml($request.getParameter("sort")))
234: 		#set ($url = "../players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&r=${r}")
235: 		$website.includeAgain($url)
236: 		
237: 	#else
238: 		We do not support this sport
239: 	#end
240: #end ## printBriefCategories
241: 
242: #macro (printCategories $briefCategoryLabels $v)
243: 	<div class="nav nav-pills mb-3" role="tablist">
244: 		#foreach($label in $briefCategoryLabels.entrySet())
245: 			#set($catLabel = $label.value)
246: 			#if ($locale == "en_gb" && $catLabel == "Defense")
247: 				#set ($catLabel = "Defence")
248: 			#end
249: 			#set ($btnClass = "btn btn-outline-secondary rounded-0")
250: 			#if ($pos == $label.key || ($pos.length() == 0 && $velocityCount == 1)) 
251: 				#set ($btnClass = "${btnClass} active") 
252: 			#end 
253: 			<button class="$btnClass" data-url="${page.url}?view=${v}&pos=${label.key}" data-toggle="tab" data-target="#gamelog-${v}-${label.key}" style="margin-right:-1px">${catLabel}</button>
254: 		#end
255: 	</div>
256: 	<div class="tab-content">
257: 		#foreach ($briefCat in $briefCategoryLabels.entrySet())
258: 			#set ($classAttr = "tab-pane")
259: 			#if ($briefCat.key == $pos || ($pos.length() == 0 && $velocityCount == 1))
260: 				#set ($classAttr = "${classAttr} active")
261: 			#end
262: 			<div class="$classAttr" id="gamelog-${v}-${briefCat.key}" role="tabpanel">
263: 				#if ($v == "gamelog")
264: 					#gamelogData($briefCat.key)
265: 				#elseif ($v == "splits")
266: 					#splitsTeamNetworkData($briefCat.key)
267: 				#end
268: 			</div>
269: 		#end  
270: 	</div>
271: #end ## printCategories
272:   
273: #macro (printSeasonGameMinutesTabs $r)
274:     #if ($briefsCategoriesLabels.containsKey("Game"))
275:         #set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
276:         #set ($gamePos = $briefsCategoriesGame.keySet().iterator().next())
277: 		
278: 		#set ($restrictionLabel = "overall")
279: 		#if ($r == 1)
280: 			#set ($restrictionLabel = "conf")
281: 		#end
282:         	
283: 		#set ($showMinutesTab = false)
284:         #if ($briefsCategoriesLabels.containsKey("Minutes"))
285:             #set ($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
286:             #set ($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
287:     		
288:             #if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
289:                 #set ($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
290:                 #set ($lineupMinOverallStat = $lineupMinOverallValues[0])
291:                 #set ($lineupMinOverallMinVal = $lineupMinOverallValues[1])
292:                 #set ($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
293:   			
294:                 #if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue)
295:                     #set($showMinutesTab = true)
296:                 #end	
297:   		    #end
298: 		#end
299: 		
300: 		<div class="nav nav-pills" role="tablist">
301: 			#printSubTab($pos.equals($gamePos), "${url}?view=lineup&r=${r}&pos=${gamePos}", "Game", "#lineup-${restrictionLabel}-game")
302: 			#printSubTab($pos.equals($firstCategoryPos), "${url}?view=lineup&r=${r}&pos=${firstCategoryPos}", "Season", "#lineup-${restrictionLabel}-season")
303:     		#if ($showMinutesTab)
304:                 #printSubTab($pos.equals($minutesPos), "${url}?view=lineup&r=${r}&pos=${minutesPos}", "Minutes", "#lineup-${restrictionLabel}-minutes")
305:     		#end
306: 		</div>
307: 		<div class="tab-content">
308: 			#printBriefCategories($r)
309: 		</div>
310:     #end
311: #end ## printSeasonGameMinutesTabs
312:   
313: #macro (printLineupTabs)
314: 	#set ($navClass = "nav nav-pills")
315: 	#if ($briefsCategoriesLabels.containsKey("Game"))
316: 		#set ($navClass = "${navClass} float-left mr-3")
317: 	#end
318: 	<div class="$navClass" role="tablist">
319: 		#printSubTab(true, "${url}?view=lineup&r=0&pos=${pos}", "Overall", "#lineup-overall-pane")
320: 		#if ($showConf)
321: 			#printSubTab(false, "${url}?view=lineup&r=1&pos=${pos}", "Conference", "#lineup-conf-pane")
322: 		#end
323: 	</div>
324: 		
325: 	<div class="tab-content">
326: 		<div class="tab-pane active" id="lineup-overall-pane" role="tabpanel">
327: 			#if ($briefsCategoriesLabels.containsKey("Game"))
328: 				#printSeasonGameMinutesTabs(0)
329: 			#else
330: 				#printBriefCategories(0)
331: 			#end
332: 		</div>
333: 		#if ($showConf)
334: 			<div class="tab-pane" id="lineup-conf-pane" role="tabpanel">
335: 				#if ($briefsCategoriesLabels.containsKey("Game"))
336: 					#printSeasonGameMinutesTabs(1)
337: 				#else
338: 					#printBriefCategories(1)
339: 				#end
340: 			</div>
341: 		#end
342: 	</div>
343: #end ## printLineupTabs
344: 
345: #macro (printHighlights)
346:     #if ($highlights)
347:         <div class="d-flex flex-wrap">
348:         #foreach ($highlight in $highlights.keySet())
349:             #set ($value = "-")
350:             #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
351:             #set ($classAttr = "flex-fill p-2 border border-white bg-primary text-white text-center")
352:             <div class="$classAttr">
353:                 <div class="text-uppercase small">$!highlights.get($highlight).replace("per game", "")</div>
354:                 <div class="h5 m-0 font-weight-bold">$!value</div>
355:             </div>
356:         #end
357:         </div>
358:     #end
359: #end ## macro printHighlights
360: #macro (gamelogData $p)
361: 
362:     #set ($gamelogStats = $gamelogs.get($p))
363: 
364: <table class="table table-hover">
365:     <thead class="thead-dark">
366:     <tr>
367: 		#printTableHeader("Date", "w-1 text-start text-left")
368:                 #printTableHeader("Opponent", "")
369:                 #printTableHeader("Score", "text-center")
370:                 #foreach ($gamelog in $gamelogStats)
371: 		#printTableHeader($gamelog, "text-center")
372: 	#end
373:     </tr>
374:     </thead>
375:         #foreach ($event in $events)
376:             <tr>
377:                 <td class="text-nowrap text-start text-left">
378:                     $formatter.formatDate($event.event.date, "MMM d") 
379:                     #if (!$event.event.overall)
380:                         #set ($atLeastOneNotOverall = true) # 
381:                     #end
382:                 </td>
383:                 <td class="text-nowrap">
384: 					#if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
385: 					$event.event.opponent.name
386:                 </td>
387:                 <td class="text-nowrap text-center">
388:                 #if ($event.event.statusCode >= 0)
389:                     #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
390:                         <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
391:                     #else
392:                         ${event.event.APResult}
393:                     #end
394:                 #else &nbsp; 
395:                 #end
396:                 </td>
397:                 #foreach ($gamelog in $gamelogStats.keySet())
398:                     #set ($value = "-")
399:                     #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
400:                     <td class="text-center text-nowrap">$value</td>
401:                 #end
402:             </tr>
403:         #end
404:     </table>
405: #end ## gamelogData
406: 
407: #macro (printRecentGames)
408:     <table class="table table-hover">
409:             <thead class="thead-dark">
410: 		<tr>
411: 			#printTableHeader("Date", "w-1 text-start text-left")
412: 			#printTableHeader("Opponent", "")
413: 			#printTableHeader("Result", "text-center")
414: 		</tr>
415:             </thead>
416: 
417:         #set ($eventEnd = -1)
418:         #foreach ($event in $events)
419:             #if ($event.event.result.resolved)
420:                 #set ($eventEnd = $velocityCount)
421:             #end
422:         #end
423: 
424:         #set ($eventStart = $eventEnd - 5)
425:         #if ($eventStart < 0) #set ($eventStart = 0) #end
426: 
427:         #foreach ($event in $events)
428:             #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
429:                 <tr>
430:                     <td class="text-nowrap text-start text-left">$formatter.formatDate($event.event.date, "MMM d")</td>
431:                     <td>
432:                         #if ($event.event.neutralSite.length() > 0) vs.
433:                         #elseif (!$event.event.home) at
434:                         #else ## nothing for a home game
435:                         #end
436:                         $event.event.opponent.name
437:                     </td>
438:                     <td class="text-center">
439:                         #if ($event.event.statusCode >= 0)
440:                             #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
441:                                 <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
442:                             #else
443:                                 ${event.event.APResult}
444:                             #end
445:                         #end
446:                     </td>
447:                 </tr>
448:             #end
449:         #end
450:     </table>
451: #end ## printRecentGames
452: 
453: #macro (splitTeamNetwork $statPosBriefs $label $stats)
454:     <tr>
455:         <th scope="row" class="font-weight-normal text-end text-right">${label}</th>
456:         #foreach ($brief in $statPosBriefs.keySet())
457:             #set ($value = "-")
458:             #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
459:             <td class="text-center text-nowrap">#if ($value.length() > 0) $value #else - #end</td>
460:         #end
461:     </tr>
462: #end ## split
463: 
464: #macro (splitsTeamNetworkData $p)
465: 	#set ($statPosBriefs = $briefs.get($p))
466: 	#set ($colspan = $tool.math.add($statPosBriefs.size(), 1))  
467:     
468: 	#if ($statPosBriefs.size() > 0)
469:     <table class="table table-hover">
470:         <thead class="thead-dark">
471:         <tr>
472:             <th class="text-uppercase" aria-label="Title"> </th>
473: 			#foreach ($brief in $statPosBriefs)
474: 				#printTableHeader($brief, "text-center")
475: 			#end
476:         </tr>
477:         </thead>
478: 			#splitTeamNetwork($statPosBriefs, "Total", $splits.overall)
479: 			#if ($showConf)
480: 				#splitTeamNetwork($statPosBriefs, "Conference", $splits.conference)
481: 				#splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
482: 			#else
483: 				#splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
484: 			#end ## hide overall/conf
485: 
486: 			<tr class="bg-transparent">
487: 				<td colspan="$colspan">&nbsp;</td>
488: 			</tr>
489: 
490: 			#splitTeamNetwork($statPosBriefs, "Home", $splits.home)
491: 			#splitTeamNetwork($statPosBriefs, "Away", $splits.away)
492: 			#splitTeamNetwork($statPosBriefs, "Neutral", $splits.neutral)
493: 
494: 			<tr class="bg-transparent">
495: 				<td colspan="$colspan">&nbsp;</td>
496: 			</tr>
497: 
498: 			#foreach($gameResult in $gamesResults.entrySet())
499: 				#if ($gameResult.key == "wins")
500: 					#set ($splitGameResult = $splits.inWins)
501: 				#elseif ($gameResult.key == "losses")
502: 					#set ($splitGameResult = $splits.inLosses)
503: 				#elseif ($gameResult.key == "ties")
504: 					#set ($splitGameResult = $splits.inTies)
505: 				#end
506:     
507: 				#splitTeamNetwork($statPosBriefs, $gameResult.value, $splitGameResult)
508: 			#end
509: 
510: 			<tr class="bg-transparent">
511: 				<td colspan="$colspan">&nbsp;</td>
512: 			</tr>
513: 
514: 			#if ($monthsPlayed and $monthsPlayed.size() > 0)
515: 				#foreach($month in $monthsPlayed)
516: 					#if ($month == 'January')
517: 						#set ($splitMonth = $splits.january)
518: 					#elseif ($month == 'February')
519: 						#set ($splitMonth = $splits.february)
520: 					#elseif ($month == 'March')
521: 						#set($splitMonth = $splits.march)
522: 					#elseif ($month == 'April')
523: 						#set($splitMonth = $splits.april)
524: 					#elseif ($month == 'May')
525: 						#set ($splitMonth = $splits.may)
526: 					#elseif ($month == 'June')
527: 						#set ($splitMonth = $splits.june)
528: 					#elseif ($month == 'July')
529: 						#set($splitMonth = $splits.july)
530: 					#elseif ($month == 'August')
531: 						#set ($splitMonth = $splits.august)
532: 					#elseif ($month == 'September')
533: 						#set($splitMonth = $splits.september)
534: 					#elseif ($month == 'October')
535: 						#set($splitMonth = $splits.october)
536: 					#elseif ($month == 'November')
537: 						#set ($splitMonth = $splits.november)
538: 					#elseif ($month == 'December')
539: 						#set($splitMonth = $splits.december)
540: 					#end
541:   
542: 					#splitTeamNetwork($statPosBriefs, $month, $splitMonth)
543: 				#end ## foreach
544: 			#end
545: 		</table>
546: 	#end
547: #end ## splitsTeamNetworkData
548: 
549: #macro (printAttendance)
550:     #if ($showAttendance)
551:         <table class="table table-hover">
552:                 <thead class="thead-dark">
553:                 <tr>
554: 					#printTableHeader("Date", "w-1 text-start text-left")
555:                     #printTableHeader("Opponent", "")
556:                     #printTableHeader("Score", "text-center")
557:                     #printTableHeader("Attend", "text-center")
558:                 </tr>
559:                 </thead>
560:             #set ($counter = 0)
561:             #foreach ($event in $events)
562:                 <tr>
563:                     <td class="text-nowrap text-start text-left">$formatter.formatDate($event.event.date, "MMM d")</td>
564:                     <td class="text-nowrap">
565:                         #if ($event.event.neutralSite.length() > 0) vs.
566:                         #elseif (!$event.event.home) at
567:                         #else ## nothing for a home game
568:                         #end
569:                         $event.event.opponent.name
570:                     </td>
571:                     <td class="text-nowrap text-center">
572:                     #if ($event.event.statusCode >= 0)
573:                         #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
574:                             <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
575:                         #else
576:                             ${event.event.result}
577:                         #end
578:                     #else &nbsp; #end
579:                     </td>
580:                     <td class="text-nowrap text-center">
581:                         #set ($value = "-")
582:                         #set ($value = $!formatter.formatNumber($event.stats.get('at'), $formats.get('at')))
583:                         #if ($value.length() > 0) $value #else - #end
584:                     </td>
585:                 </tr>
586:             #end
587:         </table>
588:     #end ## showAttendance
589: #end
590: 
591: #macro (printTab $viewParam $label)
592: 	#set ($classAttr = "nav-link text-nowrap")
593: 	#if ($viewParam == $view)
594: 		#set ($classAttr = "${classAttr} active")
595: 	#end
596: 	<li class="nav-item"><a href="${page.url}?view=${viewParam}" class="$classAttr" role="tab" data-toggle="tab" data-target="#${viewParam}" aria-controls="$viewParam">$label</a></li>
597: #end
598: 
599: #macro (printSubTab $active $url $label $target)
600: 	#set ($classAttr = "btn btn-sm btn-outline-secondary rounded-0")
601: 	#if ($active)
602: 		#set ($classAttr = "${classAttr} active")
603: 	#end
604: 	<button data-url="$url" class="$classAttr" data-toggle="tab" data-target="$target" style="margin-right:-1px">$label</button>
605: #end
606: 
607: #macro (printPaneAttrs $viewParam)
608: 	#set ($classAttr = "tab-pane")
609: 	#if ($viewParam == $view)
610: 		#set ($classAttr = "tab-pane active")
611: 	#else
612: 		#set ($classAttr = "${classAttr} fade")
613: 	#end
614: 	
615: 	class="$classAttr" role="tabpanel" id="$viewParam"
616: #end
617: 
618: #macro (printCoachViewUrl)
619: 	#set ($coachViewUrl = "${page.url}?tmpl=teaminfo-network-monospace-template")
620:     #set ($enumCode = $sport.enumCode)
621:     
622: 	#if ($enumCode == 2)
623:         #set ($coachViewUrl = "${coachViewUrl}&sort=ptspg") 
624:     #elseif ($enumCode == 1 || $enumCode == 11)
625:         #set ($coachViewUrl = "${coachViewUrl}&sort=ab&pos=h")
626:     #end
627:     
628:     #if ($enumCode == 7 || $enumCode == 8 || $enumCode > 11) #else
629:         <li class="nav-item" data-skip="true"><a href="$coachViewUrl" target="_blank" class="nav-link text-nowrap">Coach's View</a></li>
630:     #end
631: #end
632: 
633: #macro (printTabs)
634: 	<div class="tab-nav" style="overflow-x:auto">
635:     	<ul class="nav nav-tabs flex-nowrap" role="tablist">
636:     		#printTab("profile", "Team Profile")
637:     		
638:     		#if ($showRoster)
639:     			#printTab("roster", "Roster")
640:     		#end
641:     		
642:     		#printTab("lineup", "Lineup")
643:     		#printTab("gamelog", "Game Log")
644:     		#printTab("splits", "Split Stats")
645:     		
646:     		#if ($showAttendance)
647:     			#printTab("attendance", "Attendance")
648:     		#end
649:     		
650:             #printCoachViewUrl
651:         </ul>
652: 	</div>
653: #end ## printTabs
654: ############ END MACROS #############
655: 
656: #set ($pageTitle = $page.title)
657: #if ($pageTitle.trim().length() == 0)
658: 	#set ($season = "")
659: 	#if ($page.url.matches(".*/\d{4}-\d{2}/.*"))
660: 		#set ($truncateStr = $page.url.split("/\d{4}-\d{2}/").get(0))
661: 		#set ($season = $page.url.replace($truncateStr, "").substring(1, 8))
662: 	#end
663: 	
664: 	#set ($gender = "")
665: 	#if ($sport.enumCode == 6 or $sport.enumCode == 10)
666: 	#else
667: 		#if ($page.url.matches(".*/sports/m.*") || $page.url.matches(".*/sports/m-*"))
668: 			##set ($gender = "Men's")
669: 		#elseif ($page.url.matches(".*/sports/w.*") || $page.url.matches(".*/sports/w-*"))
670: 			##set ($gender = "Women's")
671: 		#end
672: 	#end
673: 	
674: 	#set ($pageTitle = "${season} ${gender} ${sport} Statistics")
675: 
676: #end
677: 
678: #if ($attributes.get("school_name").length() > 0)
679: 	#set ($pageTitle = "${pageTitle} - ${attributes.get('school_name')}")
680: #end
681: 
682: $!request.setAttribute("pageTitle", "${pageTitle}")
683: 
684: <head><title>$pageTitle</title></head>
685: 	
686: 
687: <div class="page-content team-stats">
688:     
689:     <h1>$pageTitle</h1>
690: 	
691: 	## TEAM HIGHLIGHT STATS
692: 	<div class="my-3">#printHighlights</div>
693: 
694:     ## TABS
695: 	<div class="tabs-container my-3" data-module="stats/tabs">
696:         #printTabs
697:     
698:         <div class="tab-content p-3 border border-top-0">
699:             
700:             ## TEAM PROFILE
701:             <div #printPaneAttrs("profile")>
702:                 
703:                 <div class="row">
704:                     <div class="col-lg">
705:     					<div class="mb-3">
706: 							<h5>Team Summary</h5>
707: 							<div class="stats-container table-responsive">
708: 								$website.include("${page.sectionPage.sectionPage.url}/schedule?teamId=${teamId}&tmpl=schedule-data-template")
709: 							</div>
710:     					</div>
711:     					<div class="mb-3">
712:     						<h5>Recent Results</h5>
713:     						<div class="stats-container table-responsive">#printRecentGames</div>
714:     					</div>
715:                     </div>
716:                     <div class="col-lg">
717:     					<div class="mb-3">
718: 							<h5>Team Stats</h5>
719: 							<div class="stats-container table-responsive">
720: 								$website.include("${page.sectionPage.url}/teams?tmpl=stats-teams-rank-template&rank=${teamId}")
721: 							</div>
722:     					</div>
723:                     </div>
724:                 </div>
725:             </div> ## team profile
726:     
727:             ## ROSTER
728:             #if ($showRoster)
729:                 <div #printPaneAttrs("roster")>
730: 					$website.includeAgain("../players?teamId=${teamId}&view=roster&tmpl=stats-bios-template")
731:                 </div>
732:             #end
733:     
734:             ## LINEUP
735:             <div #printPaneAttrs("lineup")>
736:                 ## start of overall/conference
737:                 #set ($url = $request.requestURI)
738:     			#printLineupTabs()
739:                
740:                 Download roster:
741:                 <a href="../players?teamId=${attributes.teamId}&view=ext">${rosterExtension} (First Last) </a> | 
742:                 <a href="../players?teamId=${attributes.teamId}&view=ext&type=lf"> ${rosterExtension} (Last, First)</a>
743:                 #if ($rosterExtraExtension)
744:                     <a href="../players?teamId=${attributes.teamId}&view=exte">${rosterExtraExtension} (First Last)</a> | 
745:                     <a href="../players?teamId=${attributes.teamId}&view=exte&type=lf">${rosterExtraExtension} (Last, First)</a>
746: 				#end
747:             </div> ## lineup
748:     
749:             ## GAMELOG
750:             <div #printPaneAttrs("gamelog")>
751:             	<div class="stats-container table-responsive">
752: 					#if ($gamelogsCategoriesLabels && $gamelogsCategoriesLabels.size() > 1)
753: 						#printCategories($gamelogsCategoriesLabels, 'gamelog')
754: 					#else
755: 						#gamelogData($pos)
756: 					#end
757:     			</div>
758:             </div>
759:     
760:             ## SPLITS
761:             <div #printPaneAttrs("splits")>
762:     			<div class="stats-container table-responsive">
763: 					#if ($briefsTeamCategoriesLabels && $briefsTeamCategoriesLabels.size() > 1)
764: 						#printCategories($briefsTeamCategoriesLabels, 'splits')
765: 					#else
766: 						#splitsTeamNetworkData($pos)
767: 					#end
768: 				</div>
769:             </div> ## splits
770:     
771:             ## ATTENDANCE
772:             <div #printPaneAttrs("attendance")>
773: 				<div class="stats-container table-responsive">#printAttendance</div>
774:             </div>
775:         </div> ## tab-content
776: 	</div> ## tab-container
777: </div> ## stats-container
778: $wiki.su