#21 Bobby New (P) - MCLA

app
11
gs
9
w
4
l
3
sv
0
ip
45.1
era
4.76
k
40
Player Stats
  Overall Conf
Games 11 6
Plate appearances 0 0
At Bats 0 0
Runs 0 0
Hits 0 0
Doubles - -
Triples - -
Home Runs - -
Runs Batted In 0 0
Total bases 0 0
Walks - -
Hit by pitch - -
Strikeouts - -
Sacrifice Flies - -
Sacrifice Hits - -
Hit into double play - -
Stolen Bases - -
Caught Stealing - -
Batting Average - -
On Base Percentage - -
Slugging Percentage - -
Appearances 11 6
Games started 9 6
Wins 4 2
Losses 3 3
Saves 0 0
Complete Games 5 3
Shutouts 2 -
Innings Pitched 45.1 28.1
Hits 45 32
Runs 31 24
Earned Runs 24 18
Walks 16 11
Strikeouts 40 24
Strikeouts per Game 7.94 7.62
Doubles Allowed 15 12
Triples Allowed 1 1
Home Runs Allows 1 1
At Bats Against 173 114
Batting Average Against .260 .281
Earned Run Average 4.76 5.72
Wild pitches 5 5
Hit Batters 4 2
Balks - -
Sacrifice Flies Allowed 1 1
Sacrifice Hits Allowed 2 1
Total Chances 23 16
Put Outs 1 0
Assists 19 14
Errors 3 2
Fielding Percentage .870 .875
Double Plays - -
Stolen Bases Allowed 1 1
Runners Caught Stealing - -
Runners Caught Stealing Percentage - -
Passed Balls - -
Catcher's Interference - -
Recent Results
Apr 22 Bridgewater St. L, 8-4
Apr 24 Westfield St. L, 14-0
Apr 24 Westfield St. L, 10-6
Apr 28 at Salem St. W, 5-2
Apr 28 at Salem St. L, 11-0
May 3 at Framingham St. L, 8-3
Date Opponent Score ab r h 2b 3b hr rbi bb k sb cs
Mar 10 vs. Anderson (Ind.) L, 6-5 - - - - - - - - - - -
Mar 10 vs. Anderson (Ind.) W, 2-0 0 0 0 - - - 0 - - - -
Mar 11 vs. Illinois Tech W, 5-4 - - - - - - - - - - -
Mar 11 vs. Illinois Tech L, 7-5 - - - - - - - - - - -
Mar 12 vs. Cazenovia W, 15-3 - - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 6-1 - - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 2-0 0 0 0 - - - 0 - - - -
Mar 16 vs. Me.-Farmington L, 8-1 - - - - - - - - - - -
Mar 16 vs. Me.-Farmington W, 12-3 - - - - - - - - - - -
Mar 28 at Springfield L, 7-0 0 0 0 - - - 0 - - - -
Mar 31 vs. Framingham St. W, 2-0 - - - - - - - - - - -
Mar 31 vs. Framingham St. L, 10-5 0 0 0 - - - 0 - - - -
Apr 3 at Anna Maria W, 11-9 0 0 0 - - - 0 - - - -
Apr 5 at Rensselaer L, 11-5 - - - - - - - - - - -
Apr 9 Fitchburg St. L, 11-9 - - - - - - - - - - -
Apr 9 Fitchburg St. T, 5-5 0 0 0 - - - 0 - - - -
Apr 11 at Union (N.Y.) L, 15-0 - - - - - - - - - - -
Apr 14 at Mass. Maritime L, 4-3 - - - - - - - - - - -
Apr 14 at Mass. Maritime W, 2-1 0 0 0 - - - 0 - - - -
Apr 18 at Williams L, 4-2 - - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 - - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 0 0 0 - - - 0 - - - -
Apr 22 Bridgewater St. W, 4-3 - - - - - - - - - - -
Apr 22 Bridgewater St. L, 8-4 - - - - - - - - - - -
Apr 24 Westfield St. L, 14-0 - - - - - - - - - - -
Apr 24 Westfield St. L, 10-6 0 0 0 - - - 0 - - - -
Apr 28 at Salem St. W, 5-2 - - - - - - - - - - -
Apr 28 at Salem St. L, 11-0 0 0 0 - - - 0 - - - -
May 3 at Framingham St. L, 8-3 0 0 0 - - - 0 - - - -
Date Opponent Score hbp sf sh tb xbh hdp go fo go/fo pa
Mar 10 vs. Anderson (Ind.) L, 6-5 - - - - - - - - - -
Mar 10 vs. Anderson (Ind.) W, 2-0 - - - 0 0 - - - - 0
Mar 11 vs. Illinois Tech W, 5-4 - - - - - - - - - -
Mar 11 vs. Illinois Tech L, 7-5 - - - - - - - - - -
Mar 12 vs. Cazenovia W, 15-3 - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 6-1 - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 2-0 - - - 0 0 - - - - 0
Mar 16 vs. Me.-Farmington L, 8-1 - - - - - - - - - -
Mar 16 vs. Me.-Farmington W, 12-3 - - - - - - - - - -
Mar 28 at Springfield L, 7-0 - - - 0 0 - - - - 0
Mar 31 vs. Framingham St. W, 2-0 - - - - - - - - - -
Mar 31 vs. Framingham St. L, 10-5 - - - 0 0 - - - - 0
Apr 3 at Anna Maria W, 11-9 - - - 0 0 - - - - 0
Apr 5 at Rensselaer L, 11-5 - - - - - - - - - -
Apr 9 Fitchburg St. L, 11-9 - - - - - - - - - -
Apr 9 Fitchburg St. T, 5-5 - - - 0 0 - - - - 0
Apr 11 at Union (N.Y.) L, 15-0 - - - - - - - - - -
Apr 14 at Mass. Maritime L, 4-3 - - - - - - - - - -
Apr 14 at Mass. Maritime W, 2-1 - - - 0 0 - - - - 0
Apr 18 at Williams L, 4-2 - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 - - - 0 0 - - - - 0
Apr 22 Bridgewater St. W, 4-3 - - - - - - - - - -
Apr 22 Bridgewater St. L, 8-4 - - - - - - - - - -
Apr 24 Westfield St. L, 14-0 - - - - - - - - - -
Apr 24 Westfield St. L, 10-6 - - - 0 0 - - - - 0
Apr 28 at Salem St. W, 5-2 - - - - - - - - - -
Apr 28 at Salem St. L, 11-0 - - - 0 0 - - - - 0
May 3 at Framingham St. L, 8-3 - - - 0 0 - - - - 0
Date Opponent Score gs w l sv ip h r er era bb k hr
Mar 10 vs. Anderson (Ind.) L, 6-5 - - - - - - - - - - - -
Mar 10 vs. Anderson (Ind.) W, 2-0 1 1 0 0 7.0 3 0 0 0.00 0 6 -
Mar 11 vs. Illinois Tech W, 5-4 - - - - - - - - - - - -
Mar 11 vs. Illinois Tech L, 7-5 - - - - - - - - - - - -
Mar 12 vs. Cazenovia W, 15-3 - - - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 6-1 - - - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 2-0 1 1 0 0 7.0 3 0 0 0.00 1 8 -
Mar 16 vs. Me.-Farmington L, 8-1 - - - - - - - - - - - -
Mar 16 vs. Me.-Farmington W, 12-3 - - - - - - - - - - - -
Mar 28 at Springfield L, 7-0 1 0 0 0 1.0 0 0 0 0.00 0 1 -
Mar 31 vs. Framingham St. W, 2-0 - - - - - - - - - - - -
Mar 31 vs. Framingham St. L, 10-5 1 0 1 0 4.0 5 5 4 9.00 2 7 -
Apr 3 at Anna Maria W, 11-9 0 0 0 0 0.1 1 4 4 108.00 3 1 -
Apr 5 at Rensselaer L, 11-5 - - - - - - - - - - - -
Apr 9 Fitchburg St. L, 11-9 - - - - - - - - - - - -
Apr 9 Fitchburg St. T, 5-5 1 0 0 0 6.0 4 5 1 1.50 4 5 -
Apr 11 at Union (N.Y.) L, 15-0 - - - - - - - - - - - -
Apr 14 at Mass. Maritime L, 4-3 - - - - - - - - - - - -
Apr 14 at Mass. Maritime W, 2-1 1 1 0 0 7.0 3 1 1 1.29 0 6 -
Apr 18 at Williams L, 4-2 - - - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 - - - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 1 1 0 0 7.0 6 1 1 1.29 1 4 -
Apr 22 Bridgewater St. W, 4-3 - - - - - - - - - - - -
Apr 22 Bridgewater St. L, 8-4 - - - - - - - - - - - -
Apr 24 Westfield St. L, 14-0 - - - - - - - - - - - -
Apr 24 Westfield St. L, 10-6 1 0 1 0 2.0 6 6 6 27.00 3 0 1
Apr 28 at Salem St. W, 5-2 - - - - - - - - - - - -
Apr 28 at Salem St. L, 11-0 1 0 1 0 2.1 8 6 5 19.29 1 2 -
May 3 at Framingham St. L, 8-3 0 0 0 0 1.2 6 3 2 10.80 1 - -
Date Opponent Score tc po a e fpct dp sba rcs rcs% pb ci
Mar 10 vs. Anderson (Ind.) L, 6-5 - - - - - - - - - - -
Mar 10 vs. Anderson (Ind.) W, 2-0 1 0 1 0 1.000 - - - - - -
Mar 11 vs. Illinois Tech W, 5-4 - - - - - - - - - - -
Mar 11 vs. Illinois Tech L, 7-5 - - - - - - - - - - -
Mar 12 vs. Cazenovia W, 15-3 - - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 6-1 - - - - - - - - - - -
Mar 15 vs. Colby-Sawyer W, 2-0 5 1 4 0 1.000 - - - - - -
Mar 16 vs. Me.-Farmington L, 8-1 - - - - - - - - - - -
Mar 16 vs. Me.-Farmington W, 12-3 - - - - - - - - - - -
Mar 28 at Springfield L, 7-0 0 0 0 0 - - - - - - -
Mar 31 vs. Framingham St. W, 2-0 - - - - - - - - - - -
Mar 31 vs. Framingham St. L, 10-5 1 0 1 0 1.000 - 1 - - - -
Apr 3 at Anna Maria W, 11-9 0 0 0 0 - - - - - - -
Apr 5 at Rensselaer L, 11-5 - - - - - - - - - - -
Apr 9 Fitchburg St. L, 11-9 - - - - - - - - - - -
Apr 9 Fitchburg St. T, 5-5 3 0 2 1 .667 - - - - - -
Apr 11 at Union (N.Y.) L, 15-0 - - - - - - - - - - -
Apr 14 at Mass. Maritime L, 4-3 - - - - - - - - - - -
Apr 14 at Mass. Maritime W, 2-1 7 0 7 0 1.000 - - - - - -
Apr 18 at Williams L, 4-2 - - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 - - - - - - - - - - -
Apr 21 at Worcester St. W, 7-1 2 0 2 0 1.000 - - - - - -
Apr 22 Bridgewater St. W, 4-3 - - - - - - - - - - -
Apr 22 Bridgewater St. L, 8-4 - - - - - - - - - - -
Apr 24 Westfield St. L, 14-0 - - - - - - - - - - -
Apr 24 Westfield St. L, 10-6 1 0 1 0 1.000 - - - - - -
Apr 28 at Salem St. W, 5-2 - - - - - - - - - - -
Apr 28 at Salem St. L, 11-0 2 0 1 1 .500 - - - - - -
May 3 at Framingham St. L, 8-3 1 0 0 1 .000 - - - - - -
  g ab r h 2b 3b hr rbi bb k sb cs avg obp slg
2016-17 14 0 0 0 - - - 0 - - - - - - -
2017-18 11 0 0 0 - - - 0 - - - - - - -
2018-19 15 0 0 0 - - - 0 - - - - - - -
Total 40 0 0 0 - - - 0 - - - - - - -
  g hbp sf sh tb xbh hdp go fo go/fo pa
2016-17 14 - - - 0 0 - - - - 0
2017-18 11 - - - 0 0 - - - - 0
2018-19 15 - - - 0 0 - - - - 0
Total 40 - - - 0 0 - - - - 0
  app gs w l sv cg ip h r er bb k k/9 hr era
2016-17 14 2 3 1 0 - 28.1 39 26 18 12 17 5.40 - 5.72
2017-18 11 9 4 3 0 5 45.1 45 31 24 16 40 7.94 1 4.76
2018-19 15 10 5 6 2 6 77.1 76 44 34 18 59 6.87 4 3.96
Total 40 21 12 10 2 11 151.0 160 101 76 46 116 6.91 5 4.53
  g tc po a e fpct dp sba rcs rcs% pb ci
2016-17 14 11 0 10 1 .909 1 5 1 .167 - -
2017-18 11 23 1 19 3 .870 - 1 - - - -
2018-19 15 31 2 27 2 .935 - 3 1 .250 - -
Total 40 65 3 56 6 .908 1 9 2 .182 - -
There was a problem with a Velocity script
Pagebio-network-template
ErrorVM #printCategories: too few arguments to macro. Wanted 3 got 2 at bio-network-template[line 540, column 33]
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: 
7: #set ($showconf = true)
8: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide"))
9:     #set ($showconf = false)
10: #end
11: 
12: #set ($showCareer = $wiki.valid() && $seasons)
13: #if ("yes" == $options.get("stats_show_career") && $seasons)
14:     #set ($showCareer = "yes")
15: #end
16: 
17: #if ($locale == "en_us")
18:     #set ($defLabel = "Defense")
19: #elseif ($locale == "en_gb")
20:     #set ($defLabel = "Defence")
21: #end
22: 
23: #set ($pos = "")
24: #set ($pos = $attributes.get("position"))
25: #set ($posVec = $pos.split("/"))
26: #set ($pos = $posVec[0])
27: #set ($pos = $pos.toLowerCase())
28: 
29: #set ($statPos = $positions.get($pos))
30: #set ($paramPos = $request.getParameter("pos").toLowerCase())
31: #set ($highlights = $highlights.get($statPos))
32: 
33: #set ($url = ${page.url})
34: #set ($playerId = $attributes.get("playerId"))
35: #set ($stats = $splits.overall)
36: 
37: #set ($hasEvents = $events.size() > 0)
38: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
39: #set ($htmlStatsURL = "${page.url}-stats")
40: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
41: #set ($bioBriefURL = "${page.url}-brief")
42: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
43: 
44: $request.setAttribute("careerTotals", $career)
45: ## We track a map of the careers to see if we are missing any seasons
46: #set ($careerMap = {})
47: $request.setAttribute("careerMap", $careerMap)
48: #foreach ($season in $seasons)
49:     ## We need to include this season stats
50:     #set ($path = "${season.path}?tmpl=bio-career-template&name=${season.seasonName}&pos=${statPos}&print=no")
51: 	###set ($path = $path.replace("../..", $page.sectionPage.sectionPage.sectionPage.url))
52: 	$website.includeAgain($path)
53: #end
54: 
55: #set ($view = "profile")
56: #if ($request.getParameter("view"))
57:     #set ($view = $request.getParameter("view"))
58: #end
59: 
60: #################################### MACROS ####################################################
61: #macro (printTableHeader $label $class)
62: 	<th class="text-uppercase $class">$label</th>
63: #end
64: 
65: #macro (printCellClass)
66: 	class="text-nowrap"
67: #end
68: 
69: #macro (printTab $viewParam $label)
70: 	#set ($classAttr = "nav-link text-nowrap")
71: 	#if ($viewParam == $view)
72: 		#set ($classAttr = "${classAttr} active")
73: 	#end
74: 	<li class="nav-item">
75: 		<a href="${page.url}?view=${viewParam}" class="$classAttr" role="tab" data-toggle="tab" data-target="#${viewParam}" aria-selected="true" aria-controls="$viewParam">$label</a>
76: 	</li>
77: #end
78: 
79: #macro (printPaneAttrs $viewParam)
80: 	#set ($classAttr = "tab-pane")
81: 	#if ($viewParam == $view)
82: 		#set ($classAttr = "tab-pane active")
83: 	#else
84: 		#set ($classAttr = "${classAttr} fade")
85: 	#end
86: 	
87: 	class="$classAttr" role="tabpanel" id="$viewParam"
88: #end
89: 
90: #macro (printResultAriaLabel $event)
91:     #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
92:     #if ($event.neutralSite.length() > 0 || $event.home) 
93:     	#set ($ariaLabel = "${ariaLabel} vs.")
94:     #else
95:     	#set ($ariaLabel = "${ariaLabel} at")
96:     #end
97:     #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
98:     #if ($event.neutralSite.length() > 0)
99:     	#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
100:     #end
101:     #set ($ariaLabel = "${ariaLabel} Box Score")
102:     aria-label="$ariaLabel"
103: #end
104: 
105: #macro (printHighlights)
106:     #if ($highlights)
107:         <div class="d-flex flex-wrap mb-3 bg-light">
108:         #foreach ($highlight in $highlights.keySet())
109:             #set ($value = "-")
110:             #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
111:             #set ($classAttr = "flex-fill border p-2 text-center")
112:             #if ($velocityCount > 1)
113:                 ## #set ($classAttr = "nav-item border-left")
114:             #end
115:             <div class="$classAttr" style="min-width:100px">
116:                 <div class="text-uppercase">$!highlights.get($highlight)</div>
117:                 <div class="h5 m-0">$!value</div>
118:             </div>
119:         #end
120: 		</div>
121: 	#end
122: #end ## macro printHighlights
123: 
124: #macro (splitBioNetwork $statPosBriefs $label $stats)
125: 	<tr>
126: 		<td #printCellClass>${label}</td>
127: 		#foreach ($brief in $statPosBriefs.keySet())
128: 			#set ($value = "-")
129: 			#set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
130: 			<td #printCellClass>#if ($value.length() > 0) $value #else - #end</td>
131: 		#end
132: 	</tr>
133: #end ## marco split
134: 
135: #macro (printCategories $briefCategoryLabels $viewParam)
136: 	#printSubTabs($briefCategoryLabels.entrySet(), $viewParam)
137: 	
138: 	<div class="tab-content">
139: 		#foreach ($briefCat in $briefCategoryLabels.entrySet())
140: 			#set ($briefCatLabel = $briefCat.value)
141: 			#set ($class = "tab-pane")
142: 			#if ($briefCat.key == $activePos)
143: 				#set ($class = "tab-pane active")
144: 			#end
145: 			<div id="${viewParam}-${briefCat.key}" class="$class" role="tabpanel">
146: 				<div class="stats-wrap clearfix">
147: 					#if ($viewParam == "splits")
148: 						#splitsBioNetworkData($briefCat.key)
149: 					#elseif ($viewParam == "career")
150: 						#careerData($briefCat.key)
151: 					#end
152: 				</div>
153: 			</div>
154: 		#end  
155: 	</div>
156: #end ## macro printCategories
157: 
158: #macro (splitsBioNetworkData $p)
159: 	#set ($p = $positions.get($p))
160: 	#set ($statPosBriefs = $briefs.get($p))
161: 	#set ($colspan = $statPosBriefs.size() + 1)  
162:   
163: 	<div class="stats-container table-responsive">
164: 		<table class="table table-hover table-sm">
165:                         <thead class="thead-dark">
166:                                 <tr>
167:                                         <td>&nbsp;</td>
168:                                         #foreach ($brief in $statPosBriefs)
169:                                                 #printTableHeader($brief, "")
170:                                         #end
171:                                 </tr>
172:                         </thead>
173: 			#splitBioNetwork($statPosBriefs, "Total", $splits.overall)
174: 			#if ($showconf)
175: 				#splitBioNetwork($statPosBriefs, "Conference", $splits.conference)
176: 			#end
177: 			#splitBioNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
178: 
179: 			<tr>
180: 				<td colspan="$colspan" class="text-center">-</td>
181: 			</tr>
182: 
183: 			#splitBioNetwork($statPosBriefs, "Home", $splits.home)
184: 			#splitBioNetwork($statPosBriefs, "Away", $splits.away)
185: 			#splitBioNetwork($statPosBriefs, "Neutral", $splits.neutral)
186: 
187: 			<tr>
188: 				<td colspan="$colspan" class="text-center">-</td>
189: 			</tr>
190: 
191: 			#foreach($gameResult in $gamesResults.entrySet())
192: 				#if ($gameResult.key == "wins")
193: 					#set ($splitGameResult = $splits.inWins)
194: 				#elseif ($gameResult.key == "losses")
195: 					#set ($splitGameResult = $splits.inLosses)
196: 				#elseif ($gameResult.key == "ties")
197: 					#set ($splitGameResult = $splits.inTies)
198: 				#end
199:   
200: 				#splitBioNetwork($statPosBriefs, $gameResult.value, $splitGameResult)
201: 			#end
202: 
203: 			<tr>
204: 				<td colspan="$colspan" class="text-center">-</td>
205: 			</tr>
206: 
207: 			#if ($monthsPlayed and $monthsPlayed.size() > 0)
208: 				#foreach($month in $monthsPlayed)
209: 					#if ($month == 'January')
210: 						#set ($splitMonth = $splits.january)
211: 					#elseif ($month == 'February')
212: 						#set ($splitMonth = $splits.february)
213: 					#elseif ($month == 'March')
214: 						#set($splitMonth = $splits.march)
215: 					#elseif ($month == 'April')
216: 						#set($splitMonth = $splits.april)
217: 					#elseif ($month == 'May')
218: 						#set ($splitMonth = $splits.may)
219: 					#elseif ($month == 'June')
220: 						#set ($splitMonth = $splits.june)
221: 					#elseif ($month == 'July')
222: 						#set($splitMonth = $splits.july)
223: 					#elseif ($month == 'August')
224: 						#set ($splitMonth = $splits.august)
225: 					#elseif ($month == 'September')
226: 						#set($splitMonth = $splits.september)
227: 					#elseif ($month == 'October')
228: 						#set($splitMonth = $splits.october)
229: 					#elseif ($month == 'November')
230: 						#set ($splitMonth = $splits.november)
231: 					#elseif ($month == 'December')
232: 						#set($splitMonth = $splits.december)
233: 					#end
234: 					#splitBioNetwork($statPosBriefs, $month, $splitMonth)
235: 				#end
236: 			#end
237: 		</table>
238: 	</div>
239: #end ## macro splitsBioNetworkData
240: 
241: #macro (printRecentGames)
242: 	<div class="stats-container table-responsive">
243:     	<table class="table table-hover table-sm">
244:     
245:     		#set ($eventEnd = -1)
246:     		#foreach ($event in $events)
247:     			#if ($event.event.result.resolved)
248:     				#set ($eventEnd = $velocityCount)
249:     			#end
250:     		#end
251:     
252:     		#set ($eventStart = $eventEnd - 5)
253:     		#if ($eventStart < 0) #set ($eventStart = 0) #end
254:     
255:     		#foreach ($event in $events)
256:     			#if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
257:     				<tr>
258:     					<td #printCellClass>$formatter.formatDate($event.event.date, "MMM d")</td>
259:     					<td #printCellClass>
260:     						#if ($event.event.neutralSite.length() > 0) vs.
261:     						#elseif (!$event.event.home) at
262:     						#end
263:     						$event.event.opponent.name
264:     					</td>
265:     					<td #printCellClass>
266:     						#if ($event.event.statusCode >= 0)
267:     							#if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
268:     								<a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
269:     							#else
270:     								${event.event.APResult}
271:     							#end
272:     						#end
273:     					</td>
274:     				</tr>
275:     			#end
276:     		#end
277:     	</table>
278: 	</div>
279: #end ## macro printRecentGames
280: 
281: #macro (gamelogData $p)
282: 	#set ($p = $positions.get($p))
283: 	#set ($gamelogs = $gamelogs.get($p))
284: 	#set ($atLeastOneNotOverall = false)
285: 
286: 	<div class="stats-container table-responsive">
287: 		<table class="table table-hover table-sm">
288:                         <thead class="thead-dark">
289:                                 <tr>
290:                                         #printTableHeader("Date", "")
291:                                         #printTableHeader("Opponent", "")
292:                                         #printTableHeader("Score", "")
293: 
294:                                         #set ($colspan = 3)
295:                                         #if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9   soccer:3
296:                                                 #printTableHeader("Dec", "")
297:                                         #end
298:                                         #foreach ($gamelog in $gamelogs)
299:                                                 #printTableHeader($gamelog, "")
300:                                         #end
301:                                 </tr>
302:                         </thead>
303: 			#foreach ($event in $events)
304: 				<tr>
305: 					<td #printCellClass>$formatter.formatDate($event.event.date, "MMM d") #if (!$event.event.overall) #set ($atLeastOneNotOverall = true) # #end</</td>
306: 					<td #printCellClass>
307: 						#if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
308: 						$event.event.opponent.name
309: 					</td>
310: 					<td #printCellClass>
311: 						#if ($event.event.statusCode >= 0)
312: 							#if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
313: 								<a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
314: 							#else
315: 								${event.event.APResult}
316: 							#end
317: 						#else &nbsp; #end
318: 					</td>
319: 					#if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9   soccer:3
320: 						<td #printCellClass>
321: 						#if ($event.stats.get('gow') == 1)
322: 							W
323: 						#elseif ($event.stats.get('gol') == 1)
324: 							L
325: 						#elseif ($event.stats.get('got') == 1)
326: 							T<
327: 						#else
328: 							-
329: 						#end
330: 						</td>
331: 					#end
332: 					#foreach ($gamelog in $gamelogs.keySet())
333: 						#set ($value = "-")
334: 						#set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
335: 						<td #printCellClass>$value</td>
336: 					#end
337: 				</tr>
338: 			#end
339: 		</table>
340: 		
341: 		#if ($atLeastOneNotOverall)
342: 			<p class="my-3"># Stats don't count towards season totals</p>
343: 		#end
344: 	</div>
345: #end ## macro gamelogData
346: 
347: #macro (careerData $p)
348: 	#set ($p = $positions.get($p))
349: 	#set ($statPosBriefs = $briefs.get($p))
350: 
351: 	<div class="stats-container table-responsive">
352: 		<table class="table table-hover table-sm">
353:                         <thead class="thead-dark">
354:                                 <tr>
355:                                         <td>&nbsp;</td>
356:                                         #foreach ($brief in $statPosBriefs)
357:                                                 #printTableHeader($brief, "")
358:                                         #end
359:                                 </tr>
360:                         </thead>
361: 			#foreach ($season in $seasons)
362: 				#if ($careerMap.get($season.seasonName))
363: 					#set ($label = "<a href='${season.path}?view=profile'>$season.seasonName</a>")
364: 					#splitBioNetwork($statPosBriefs, $label, $careerMap[$season.seasonName])
365: 				#elseif ($wiki.valid())
366: 					<tr>
367: 						<td #printCellClass>${season.seasonName}</td>
368: 						<td #printCellClass colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
369: 					</tr>
370: 				#end
371: 			#end
372: 
373: 			#splitBioNetwork($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
374: 		</table>
375: 	</div>
376: #end ## macro careerData
377: 	
378: #macro (printTabs)
379: 	<div class="tab-nav">
380: 		<ul class="nav nav-tabs flex-nowrap" role="tablist">
381: 			#printTab("profile", "Player Profile")
382: 			#printTab("gamelog", "Game Log")
383: 			#if ($showCareer)
384: 				#printTab("career", "Career Stats")
385: 			#end
386: 			#printTab("splits", "Split Stats")
387: 		</ul>
388:     </div>
389: #end ## printTabs
390: 
391: #macro (printLabel $label)
392: 	#if ($locale == "en_gb" && $label == "Defense")
393: 		Defence
394: 	#else
395: 		$label
396: 	#end
397: #end
398: 
399: #macro (printSubTabs $entries $viewParam)
400: 	#set ($activeLabel = "")
401: 	#foreach ($entry in $entries)
402: 		#if ($entry.key == $activePos)
403: 			#set ($activeLabel = $entry.value)
404: 		#end
405: 	#end
406: 	
407: 	<ul class="nav nav-tabs" role="tablist">
408: 		<li class="nav-item dropdown" data-module="bs-scripts/dropdown-tab-state">
409: 			<div class="p-2 dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">#printLabel($activeLabel)</div>
410: 			<div class="dropdown-menu" role="tablist">
411: 			#foreach($entry in $entries)
412: 				<a href="#${viewParam}-${entry.key}" data-url="${page.url}?view=${viewParam}&pos=${entry.key}" class="dropdown-item" role="tab" data-toggle="tab">#printLabel($entry.value)</a>
413: 			#end
414: 			</div>
415: 		</li>
416: 	</ul>
417: #end
418: ################################################## END MACROS  #############################################################
419: 
420: <head>
421: <title>
422:     $!attributes.get("first_name") $!attributes.get("last_name") | #if ($attributes.get("number"))#$!attributes.get("number") | #end #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty)$!attributes.get("position_abbr") | #elseif ($attributes.get("position"))$!attributes.get("position") | #end  $attributes.get("team")
423: </title>
424: </head>
425: 
426: <div class="page-content player-stats">
427: 	
428: 	
429: 	<div class="d-flex justify-content-between">
430:     	<h1>
431:             #if (!$attributes.get("number").empty)<span class="small text-muted">#$!attributes.get("number")</span>#end
432:     		$!attributes.get("first_name") $!attributes.get("last_name")
433:             
434:             #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty)
435:     			<span class="small">($!attributes.get("position_abbr"))</span> -
436:     		#elseif ($attributes.get("position"))
437:     			<span class="small">($!attributes.get("position"))</span> -
438:     		#end 
439:     		$attributes.get("team")
440:         </h1>
441: 		
442: 		#set ($teamId = $attributes.get("teamId"))
443:     	#if ($teamId.length() > 0)
444:     		<img src="${website.teamLogo($teamId)}" alt="" style="width:48px" />
445:     	#end
446: 	</div>
447: 	
448:     #printHighlights
449: 
450: 	<div class="tabs-container my-3">
451: 		
452: 		#printTabs
453: 		
454:     	<div class="tab-content p-3 border border-top-0">
455:     		
456:     		## PROFILE
457:     		<div #printPaneAttrs("profile")>
458:     			<div class="row">
459:     				<div class="col-lg">
460:     					<h5>Player Stats</h5>
461:     					$website.include("${page.sectionPage.url}/players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
462:     				</div>
463:     				<div class="mt-3 col-lg mt-lg-0">
464:     					<h5>Recent Results</h5>
465:     					#printRecentGames
466:                     </div>
467:     			</div>
468:     
469:                 #if ($hasSynopsis)
470:     				<div class="my-3">$!synopsis</div>
471:                 #end
472:     
473:                 #if ($hasBioBrief)
474:     				<div class="my-3">$website.include($bioBriefURL)</div>
475:                 #end
476:     
477:                 #if ($htmlStatsURL)
478:     				<div class="my-3">$website.include($htmlStatsURL)</div>
479:                 #end
480:     		</div> ## PROFILE
481:     
482:     		## GAMELOG
483:             #set ($activePos = $statPos)
484:             #if ($view == "gamelog" && $paramPos.length() > 0)
485:     			#if ($positions.get($paramPos).length() > 0)
486:     				#set ($activePos = $positions.get($paramPos))
487:     			#end
488:             #end
489:     
490:     		<div #printPaneAttrs("gamelog")>
491:     			#if ($gamelogsCategoriesLabels.size() > 0)
492:     				#printSubTabs($gamelogsCategoriesLabels.entrySet(), "gamelog")
493: 					
494:     				<div class="tab-content">
495:     					#foreach($entry in $gamelogsCategoriesLabels.entrySet())
496:     						#set ($class = "tab-pane")
497:     						#if ($entry.key == $activePos)
498:     							#set ($class = "tab-pane active")
499:     						#end
500:     						<div class="${class}" role="tabpanel" id="gamelog-${entry.key}">
501:     							#gamelogData($entry.key)
502:     						</div>
503:     					#end
504:     				</div>
505:     			#else
506:     				#gamelogData($pos)
507:     			#end
508:     		</div> ## tab-pane
509:     		## GAMELOG
510:     
511:             ## CAREER
512:     		#if ($showCareer)
513:     			#set ($activePos = $statPos)
514:     			#if ($view == "career" && $paramPos.length() > 0)
515:     				#if ($positions.get($paramPos).length() > 0)
516:     					#set ($activePos = $positions.get($paramPos))
517:     				#end
518:     			#end
519:     
520:     			<div #printPaneAttrs("career")>
521:     				#if ($briefsCategoriesLabels)
522:     					#printCategories($briefsCategoriesLabels "career")
523:     				#else
524:     					#careerData($activePos)
525:     				#end    
526:     			</div>
527:     		#end
528:     		## CAREER
529:             
530:             ## SPLITS
531:     		#set ($activePos = $statPos)
532:     		#if ($view == "splits" && $paramPos.length() > 0)
533:     			#if ($positions.get($paramPos).length() > 0)
534:     				#set ($activePos = $positions.get($paramPos))
535:     			#end
536:     		#end
537:     
538:     		<div #printPaneAttrs("splits")>
539:     			#if ($briefsCategoriesLabels)
540:     				#printCategories($briefsCategoriesLabels "splits")
541:     			#else
542:     				#splitsBioNetworkData($pos)
543:     			#end
544:     		</div>
545:     		## SPLITS
546:             
547:     	</div> ## tab-content
548: 	</div> ## tabs-container
549: </div> ## bio-wrapper
550: $wiki.su