2019-20 Basketball Statistics - Chapman

Games
25
Pts
70.2
FG %
47.4
3PT %
39.3
FT %
67.3
Reb
35.2
Ast
13.3
Team Summary
Title Record
Overall 15-10 (.600)
Conference 7-9 (.438)
Streak Lost 2
Home 8-5
Away 5-5
Neutral 2-0
Recent Results
Date Opponent Result
Feb 5 Cal Lutheran W, 63-43
Feb 8 Whittier W, 75-56
Feb 12 at Redlands L, 87-81
Feb 15 at La Verne W, 64-54
Feb 22 at Caltech L, 71-62
Feb 25 Claremont-M-S L, 73-63
Team Stats
Statistics Overall Conf
Games 25 16
Points 1755 1070
Points per game 70.2 66.9
FG made per game 25.2 23.6
FG attempts per game 53.2 53.8
FG Pct 47.4 44.0
3PT made per game 6.3 6.3
3PT attempts per game 16.0 16.6
3PT Pct 39.3 38.0
FT made per game 13.5 13.3
FT attempt per game 20.1 19.9
FT Pct 67.3 67.0
Off rebounds per game 10.1 10.4
Def rebounds per game 25.0 23.4
Total rebounds per game 35.2 33.8
Opponents' Off rebounds per game 9.1 9.6
Opponents' Def rebounds per game 21.3 23.1
Opponents' Total rebounds per game 30.4 32.7
Rebound margin per game 4.8 1.1
Assists per game 13.3 12.0
Opponents' Assists per game 12.9 14.0
Turnovers per game 14.0 13.3
Opponents' Turnovers per game 13.4 12.6
Steals per game 6.4 5.4
Opponents' Steals per game 6.4 5.9
Blocks per game 1.8 1.6
Opponents' Blocks per game 2.6 2.9
Personal fouls per game 15.9 15.4
Offensive efficiency 1.047 1.004
Net efficiency 0.091 -0.012
Opponents' Personal fouls per game 17.4 17.1
Offensive efficiency 0.955 1.016
Points per game allowed 63.8 67.1
Opponents' Field goal percentage 41.6 44.1
Opponents' Free throw total-attempts 33.6 33.7
Home Attendance 2,836 2,015
Home Attendance average 219 252
Field goal total-attempts 630-1330 378-860
3 point total-attempts 157-400 101-266
Free throw total-attempts 338-502 213-318
Opponents' Field goal total-attempts 570-1369 391-887
Opponents' 3 point total-attempts 183-545 116-344
Shooting
# Name Yr Pos gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
21 Hayden Moore Jr. SG 25 25 32.4 4.9-10.7 46.1 3.7-8.0 46.0 1.7-1.8 97.7 15.2
5 Sam Barela Fr. G 22 22 23.9 2.1-5.2 40.4 0.0-1.0 4.8 1.4-2.3 60.8 5.6
35 Chandler White Jr. PF 22 22 29.5 4.2-9.6 43.6 1.5-3.7 39.5 3.2-4.3 75.5 13.0
34 Alex Rogat So. F 25 20 25.9 3.7-6.8 54.7 0.0-0.0 0.0 2.6-4.3 61.7 10.1
10 Colin Ferrier Sr. SG 22 19 19.1 2.2-4.8 45.3 0.5-1.2 40.7 0.7-1.2 57.7 5.5
24 Daniel Foldes So. SF 24 10 17.1 3.0-5.2 58.4 0.0-0.0 0.0 0.8-1.6 47.4 6.8
4 Thomas Doyle Jr. PG 24 6 17.9 2.0-4.8 43.0 0.0-0.5 9.1 1.5-2.0 73.5 5.6
3 Brandon Chan Jr. F 22 1 10.9 1.1-1.8 60.0 0.0-0.1 0.0 0.7-0.9 75.0 2.9
32 John Besse Jr. F 23 0 10.6 0.9-1.6 56.8 0.0-0.1 33.3 0.3-0.5 66.7 2.2
12 JJ Chou Fr. PG 11 0 8.5 1.6-3.6 45.0 0.7-2.0 36.4 0.5-0.6 71.4 4.5
15 Erik Farias Fr. PG 19 0 8.6 0.4-1.2 34.8 0.0-0.1 0.0 0.3-0.9 33.3 1.2
14 Anthony Giomi So. SF 20 0 7.8 0.9-2.1 45.2 0.1-0.5 33.3 0.4-0.7 61.5 2.5
13 Isaiah Jeannot Fr. F 9 0 3.7 0.4-0.7 66.7 0.4-0.7 66.7 0.1-0.2 50.0 1.4
30 Kobe Kiener Fr. PG 5 0 .8 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - 0.0
31 Shane McKnight Fr. F 8 0 1.8 0.5-0.6 80.0 0.1-0.1 100.0 0.1-0.2 50.0 1.3
11 Derrick Morris So. SF 23 0 6.8 0.2-1.1 19.2 0.1-0.6 21.4 0.6-0.8 72.2 1.1
22 Kian Nader Fr. G 7 0 3.1 0.4-0.6 75.0 0.0-0.0 - 0.1-0.1 100.0 1.0
Totals     25 25 200.8 25.2-53.2 47.4 6.3-16.0 39.3 13.5-20.1 67.3 70.2
Opponent     25 25 200.8 22.8-54.8 41.6 7.3-21.8 33.6 10.8-15.4 70.6 63.8
Ball control
# Name Yr Pos gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
21 Hayden Moore Jr. SG 25 25 32.4 0.1 3.2 3.4 2.0 0.0 1.4 1.7 0.8 0.8 0.2
5 Sam Barela Fr. G 22 22 23.9 0.6 1.8 2.4 2.1 0.0 4.6 2.2 2.1 0.7 0.1
35 Chandler White Jr. PF 22 22 29.5 1.5 4.0 5.5 1.6 0.1 1.1 1.8 0.6 0.4 0.3
34 Alex Rogat So. F 25 20 25.9 2.1 4.3 6.4 1.9 0.1 0.9 1.6 0.6 1.1 0.4
10 Colin Ferrier Sr. SG 22 19 19.1 0.8 2.4 3.2 1.6 0.0 1.1 1.0 1.1 0.8 0.1
24 Daniel Foldes So. SF 24 10 17.1 1.5 1.9 3.3 1.8 0.0 0.5 1.2 0.4 0.3 0.4
4 Thomas Doyle Jr. PG 24 6 17.9 0.5 2.1 2.6 1.3 0.0 2.3 1.6 1.4 1.2 0.1
3 Brandon Chan Jr. F 22 1 10.9 0.3 0.6 1.0 0.9 0.0 0.5 0.5 0.9 0.1 0.0
32 John Besse Jr. F 23 0 10.6 0.5 1.7 2.3 0.8 0.0 0.3 0.9 0.3 0.3 0.0
12 JJ Chou Fr. PG 11 0 8.5 0.5 0.6 1.1 1.1 0.0 0.5 0.3 1.7 0.5 0.2
15 Erik Farias Fr. PG 19 0 8.6 0.2 0.7 0.9 0.7 0.0 1.3 0.9 1.3 0.5 0.0
14 Anthony Giomi So. SF 20 0 7.8 0.8 1.0 1.8 0.7 0.0 0.5 0.6 0.8 0.3 0.1
13 Isaiah Jeannot Fr. F 9 0 3.7 0.1 0.2 0.3 0.6 0.0 0.1 0.1 1.0 0.1 0.0
30 Kobe Kiener Fr. PG 5 0 .8 0.0 0.0 0.0 0.0 0.0 0.2 0.2 1.0 0.0 0.0
31 Shane McKnight Fr. F 8 0 1.8 0.0 0.3 0.3 0.3 0.0 0.0 0.0 - 0.3 0.0
11 Derrick Morris So. SF 23 0 6.8 0.3 1.0 1.3 0.8 0.0 0.1 0.4 0.2 0.2 0.1
22 Kian Nader Fr. G 7 0 3.1 0.0 0.0 0.0 0.4 0.0 0.4 0.6 0.8 0.0 0.0
Totals     25 25 200.8 10.1 25.0 35.2 15.9 0.3 13.3 14.0 1.0 6.4 1.8
Opponent     25 25 200.8 9.1 21.3 30.4 17.4 0.3 12.9 13.4 1.0 6.4 2.6
Shooting
# Name Yr Pos gp gs min fg pct 3pt pct ft pct pts
21 Hayden Moore Jr. SG 25 25 809 123-267 46.1 92-200 46.0 43-44 97.7 381
5 Sam Barela Fr. G 22 22 526 46-114 40.4 1-21 4.8 31-51 60.8 124
35 Chandler White Jr. PF 22 22 649 92-211 43.6 32-81 39.5 71-94 75.5 287
34 Alex Rogat So. F 25 20 648 93-170 54.7 0-1 0.0 66-107 61.7 252
10 Colin Ferrier Sr. SG 22 19 421 48-106 45.3 11-27 40.7 15-26 57.7 122
24 Daniel Foldes So. SF 24 10 411 73-125 58.4 0-1 0.0 18-38 47.4 164
4 Thomas Doyle Jr. PG 24 6 430 49-114 43.0 1-11 9.1 36-49 73.5 135
3 Brandon Chan Jr. F 22 1 240 24-40 60.0 0-2 0.0 15-20 75.0 63
32 John Besse Jr. F 23 0 243 21-37 56.8 1-3 33.3 8-12 66.7 51
12 JJ Chou Fr. PG 11 0 93 18-40 45.0 8-22 36.4 5-7 71.4 49
15 Erik Farias Fr. PG 19 0 164 8-23 34.8 0-1 0.0 6-18 33.3 22
14 Anthony Giomi So. SF 20 0 155 19-42 45.2 3-9 33.3 8-13 61.5 49
13 Isaiah Jeannot Fr. F 9 0 33 4-6 66.7 4-6 66.7 1-2 50.0 13
30 Kobe Kiener Fr. PG 5 0 4 0-0 - 0-0 - 0-0 - 0
31 Shane McKnight Fr. F 8 0 14 4-5 80.0 1-1 100.0 1-2 50.0 10
11 Derrick Morris So. SF 23 0 156 5-26 19.2 3-14 21.4 13-18 72.2 26
22 Kian Nader Fr. G 7 0 22 3-4 75.0 0-0 - 1-1 100.0 7
Totals     25 25 5019 630-1330 47.4 157-400 39.3 338-502 67.3 1755
Opponent     25 25 5019 570-1369 41.6 183-545 33.6 271-384 70.6 1594
Ball control
# Name Yr Pos gp gs min off def reb pf dq ast to a/to stl blk
21 Hayden Moore Jr. SG 25 25 809 3 81 84 51 1 34 43 0.8 20 4
5 Sam Barela Fr. G 22 22 526 14 39 53 46 1 101 48 2.1 15 3
35 Chandler White Jr. PF 22 22 649 33 87 120 35 2 24 39 0.6 8 6
34 Alex Rogat So. F 25 20 648 52 108 160 48 2 22 40 0.6 27 11
10 Colin Ferrier Sr. SG 22 19 421 18 52 70 36 1 25 22 1.1 17 2
24 Daniel Foldes So. SF 24 10 411 35 45 80 44 0 11 29 0.4 8 9
4 Thomas Doyle Jr. PG 24 6 430 11 51 62 32 0 55 38 1.4 29 3
3 Brandon Chan Jr. F 22 1 240 7 14 21 20 0 10 11 0.9 3 0
32 John Besse Jr. F 23 0 243 12 40 52 18 0 6 20 0.3 7 1
12 JJ Chou Fr. PG 11 0 93 5 7 12 12 0 5 3 1.7 5 2
15 Erik Farias Fr. PG 19 0 164 3 14 17 13 0 24 18 1.3 10 0
14 Anthony Giomi So. SF 20 0 155 16 20 36 13 0 9 12 0.8 5 2
13 Isaiah Jeannot Fr. F 9 0 33 1 2 3 5 0 1 1 1.0 1 0
30 Kobe Kiener Fr. PG 5 0 4 0 0 0 0 0 1 1 1.0 0 0
31 Shane McKnight Fr. F 8 0 14 0 2 2 2 0 0 0 - 2 0
11 Derrick Morris So. SF 23 0 156 7 22 29 19 0 2 9 0.2 4 3
22 Kian Nader Fr. G 7 0 22 0 0 0 3 0 3 4 0.8 0 0
Totals     25 25 5019 253 626 879 398 7 333 349 1.0 161 46
Opponent     25 25 5019 228 532 760 434 7 322 336 1.0 160 64
Shooting
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/teaminfo-network-template
ErrorInvocation of method 'includeAgain' in class com.prestosports.render.ContentEngineInvoker threw exception javax.servlet.ServletException: javax.servlet.ServletException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 44,676 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. at /httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/teaminfo-network-template[line 148, column 26]
Page source:
1: ## PICK UP OPTIONS
2: $website.include("options")
3: #set ($options = $request.getAttribute("options"))
4: 
5: #set ($locale = "en_us")
6: #set ($locale = $options.get("locale"))
7: 
8: #set ($showConf = true)
9: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide"))
10:     #set ($showConf = false)
11: #end
12: 
13: #set ($teamId = $attributes.get("teamId"))
14: #set ($stats = $splits.overall)
15: 
16: #set ($pos = "")
17: #if ($sport.enumCode == 0) ## Football
18:     #set ($pos = "off")
19: #elseif ($sport.enumCode == 2) ## Basketball
20:     #set ($pos = "sh")
21: #elseif ($sport.enumCode == 3) ## Soccer
22:     #set ($pos = "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