Kolby Somers #22 LHP/1B Oregon

app 16
gs 11
w 2
l 7
sv 0
ip 62.1
era 4.62
k 46
Recent Games
May 18 at UCLA L, 12-4
May 19 at UCLA L, 15-1
May 20 at UCLA L, 10-2
May 24 Arizona L, 10-2
May 25 Arizona W, 2-1
May 26 Arizona L, 11-4
Statistics category Overall Conf
Games 16 211th 10 183rd
Plate appearances 0 349th 0 347th
At Bats 0 193rd 0 184th
Runs 0 178th 0 160th
Hits 0 173rd 0 162nd
Doubles - - - -
Triples - - - -
Home Runs - - - -
Runs Batted In 0 172nd 0 156th
Total bases 0 345th 0 342nd
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 16 55th 10 36th
Games started 11 24th 9 18th
Wins 2 50th 0 66th
Losses 7 2nd 7 1st
Saves 0 39th 0 27th
Complete Games - - - -
Shutouts - - - -
Innings Pitched 62.1 27th 46.2 24th
Hits 71 20th 56 14th
Runs 39 21st 33 9th
Earned Runs 32 24th 27 14th
Walks 13 68th 11 37th
Strikeouts 46 34th 33 25th
Strikeouts per Game 6.64 23rd 6.36 21st
Doubles Allowed 9 39th 6 34th
Triples Allowed 3 60th 3 43rd
Home Runs Allows 5 14th 4 12th
At Bats Against 242 27th 187 23rd
Batting Average Against .293 106th .299 80th
Earned Run Average 4.62 21st 5.21 21st
Wild pitches 4 82nd 2 36th
Hit Batters 5 78th 1 1st
Balks 1 1st - -
Sacrifice Flies Allowed 4 95th 3 68th
Sacrifice Hits Allowed 6 90th 5 71st
Total Chances 14 161st 8 153rd
Put Outs 3 185th 1 192nd
Assists 11 93rd 7 86th
Errors 0 175th 0 137th
Fielding Percentage 1.000 - 1.000 -
Double Plays 1 84th - -
Stolen Bases Allowed 4 42nd 4 30th
Runners Caught Stealing 3 33rd 2 27th
Runners Caught Stealing Percentage .429 63rd .333 50th
Passed Balls - - - -
Catcher's Interference - - - -
Date Opponent Score ab r h 2b 3b hr rbi bb k sb cs
Feb 16 vs. TBD   - - - - - - - - - - -
Feb 16 vs. Loyola Marymount W, 6-1 - - - - - - - - - - -
Feb 17 vs. UNLV L, 9-3 - - - - - - - - - - -
Feb 18 vs. Indiana St. W, 8-5 0 0 0 - - - 0 - - - -
Feb 21 vs. Portland   - - - - - - - - - - -
Feb 23 vs. Loyola Marymount L, 4-2 0 0 0 - - - 0 - - - -
Feb 24 vs. Loyola Marymount W, 2-1 - - - - - - - - - - -
Feb 25 vs. Loyola Marymount W, 9-7 0 0 0 - - - 0 - - - -
Feb 27 Seattle U W, 14-0 - - - - - - - - - - -
Mar 2 Fla. Atlantic W, 2-1 - - - - - - - - - - -
Mar 3 Fla. Atlantic L, 5-0 - - - - - - - - - - -
Mar 4 Fla. Atlantic W, 4-0 - - - - - - - - - - -
Mar 5 Fla. Atlantic W, 10-4 0 0 0 - - - 0 - - - -
Mar 9 UC Davis W, 5-4 - - - - - - - - - - -
Mar 10 UC Davis W, 4-1 - - - - - - - - - - -
Mar 10 UC Davis W, 7-2 0 0 0 - - - 0 - - - -
Mar 11 UC Davis L, 9-7 - - - - - - - - - - -
Mar 13 Gonzaga W, 6-3 - - - - - - - - - - -
Mar 16 at Arizona State L, 7-4 - - - - - - - - - - -
Mar 17 at Arizona State L, 18-4 - - - - - - - - - - -
Mar 18 at Arizona State L, 6-1 0 0 0 - - - 0 - - - -
Mar 24 California W, 8-5 - - - - - - - - - - -
Mar 24 California W, 7-2 - - - - - - - - - - -
Mar 25 California L, 5-3 0 0 0 - - - 0 - - - -
Mar 26 San Francisco L, 5-1 - - - - - - - - - - -
Mar 29 at Stanford W, 10-1 - - - - - - - - - - -
Mar 30 at Stanford L, 5-1 - - - - - - - - - - -
Mar 31 at Stanford L, 4-0 0 0 0 - - - 0 - - - -
Apr 2 at San Francisco W, 5-2 - - - - - - - - - - -
Apr 6 Washington State W, 2-1 - - - - - - - - - - -
Apr 6 Washington State W, 4-2 - - - - - - - - - - -
Apr 8 Washington State L, 7-0 0 0 0 - - - 0 - - - -
Apr 9 Portland L, 9-7 - - - - - - - - - - -
Apr 13 at Washington L, 2-1 - - - - - - - - - - -
Apr 15 at Washington W, 6-4 - - - - - - - - - - -
Apr 15 at Washington L, 4-0 0 0 0 - - - 0 - - - -
Apr 19 at Oregon State L, 5-2 - - - - - - - - - - -
Apr 20 at Oregon State L, 2-1 - - - - - - - - - - -
Apr 21 at Oregon State L, 12-5 0 0 0 - - - 0 - - - -
Apr 25 at Portland L, 2-1 - - - - - - - - - - -
Apr 27 USC L, 10-2 - - - - - - - - - - -
Apr 28 USC W, 9-2 - - - - - - - - - - -
Apr 29 USC W, 2-1 0 0 0 - - - 0 - - - -
May 1 Oregon State L, 4-3 - - - - - - - - - - -
May 4 at UC Irvine L, 2-1 - - - - - - - - - - -
May 5 at UC Irvine L, 10-9 - - - - - - - - - - -
May 6 at UC Irvine W, 10-5 0 0 0 - - - 0 - - - -
May 8 Oregon State L, 10-0 - - - - - - - - - - -
May 11 Utah W, 6-2 - - - - - - - - - - -
May 12 Utah W, 13-1 - - - - - - - - - - -
May 13 Utah W, 4-3 0 0 0 - - - 0 - - - -
May 18 at UCLA L, 12-4 - - - - - - - - - - -
May 19 at UCLA L, 15-1 - - - - - - - - - - -
May 20 at UCLA L, 10-2 0 0 0 - - - 0 - - - -
May 24 Arizona L, 10-2 0 0 0 - - - 0 - - - -
May 25 Arizona W, 2-1 - - - - - - - - - - -
May 26 Arizona L, 11-4 - - - - - - - - - - -
Date Opponent Score hbp sf sh tb xbh hdp go fo go/fo pa
Feb 16 vs. TBD   - - - - - - - - - -
Feb 16 vs. Loyola Marymount W, 6-1 - - - - - - - - - -
Feb 17 vs. UNLV L, 9-3 - - - - - - - - - -
Feb 18 vs. Indiana St. W, 8-5 - - - 0 0 - - - - 0
Feb 21 vs. Portland   - - - - - - - - - -
Feb 23 vs. Loyola Marymount L, 4-2 - - - 0 0 - - - - 0
Feb 24 vs. Loyola Marymount W, 2-1 - - - - - - - - - -
Feb 25 vs. Loyola Marymount W, 9-7 - - - 0 0 - - - - 0
Feb 27 Seattle U W, 14-0 - - - - - - - - - -
Mar 2 Fla. Atlantic W, 2-1 - - - - - - - - - -
Mar 3 Fla. Atlantic L, 5-0 - - - - - - - - - -
Mar 4 Fla. Atlantic W, 4-0 - - - - - - - - - -
Mar 5 Fla. Atlantic W, 10-4 - - - 0 0 - - - - 0
Mar 9 UC Davis W, 5-4 - - - - - - - - - -
Mar 10 UC Davis W, 4-1 - - - - - - - - - -
Mar 10 UC Davis W, 7-2 - - - 0 0 - - - - 0
Mar 11 UC Davis L, 9-7 - - - - - - - - - -
Mar 13 Gonzaga W, 6-3 - - - - - - - - - -
Mar 16 at Arizona State L, 7-4 - - - - - - - - - -
Mar 17 at Arizona State L, 18-4 - - - - - - - - - -
Mar 18 at Arizona State L, 6-1 - - - 0 0 - - - - 0
Mar 24 California W, 8-5 - - - - - - - - - -
Mar 24 California W, 7-2 - - - - - - - - - -
Mar 25 California L, 5-3 - - - 0 0 - - - - 0
Mar 26 San Francisco L, 5-1 - - - - - - - - - -
Mar 29 at Stanford W, 10-1 - - - - - - - - - -
Mar 30 at Stanford L, 5-1 - - - - - - - - - -
Mar 31 at Stanford L, 4-0 - - - 0 0 - - - - 0
Apr 2 at San Francisco W, 5-2 - - - - - - - - - -
Apr 6 Washington State W, 2-1 - - - - - - - - - -
Apr 6 Washington State W, 4-2 - - - - - - - - - -
Apr 8 Washington State L, 7-0 - - - 0 0 - - - - 0
Apr 9 Portland L, 9-7 - - - - - - - - - -
Apr 13 at Washington L, 2-1 - - - - - - - - - -
Apr 15 at Washington W, 6-4 - - - - - - - - - -
Apr 15 at Washington L, 4-0 - - - 0 0 - - - - 0
Apr 19 at Oregon State L, 5-2 - - - - - - - - - -
Apr 20 at Oregon State L, 2-1 - - - - - - - - - -
Apr 21 at Oregon State L, 12-5 - - - 0 0 - - - - 0
Apr 25 at Portland L, 2-1 - - - - - - - - - -
Apr 27 USC L, 10-2 - - - - - - - - - -
Apr 28 USC W, 9-2 - - - - - - - - - -
Apr 29 USC W, 2-1 - - - 0 0 - - - - 0
May 1 Oregon State L, 4-3 - - - - - - - - - -
May 4 at UC Irvine L, 2-1 - - - - - - - - - -
May 5 at UC Irvine L, 10-9 - - - - - - - - - -
May 6 at UC Irvine W, 10-5 - - - 0 0 - - - - 0
May 8 Oregon State L, 10-0 - - - - - - - - - -
May 11 Utah W, 6-2 - - - - - - - - - -
May 12 Utah W, 13-1 - - - - - - - - - -
May 13 Utah W, 4-3 - - - 0 0 - - - - 0
May 18 at UCLA L, 12-4 - - - - - - - - - -
May 19 at UCLA L, 15-1 - - - - - - - - - -
May 20 at UCLA L, 10-2 - - - 0 0 - - - - 0
May 24 Arizona L, 10-2 - - - 0 0 - - - - 0
May 25 Arizona W, 2-1 - - - - - - - - - -
May 26 Arizona L, 11-4 - - - - - - - - - -
Date Opponent Score gs w l sv ip h r er era bb k hr
Feb 16 vs. TBD   - - - - - - - - - - - -
Feb 16 vs. Loyola Marymount W, 6-1 - - - - - - - - - - - -
Feb 17 vs. UNLV L, 9-3 - - - - - - - - - - - -
Feb 18 vs. Indiana St. W, 8-5 0 0 0 0 1.2 3 - - 0.00 - 2 -
Feb 21 vs. Portland   - - - - - - - - - - - -
Feb 23 vs. Loyola Marymount L, 4-2 0 0 0 0 2.0 2 1 1 4.50 1 3 -
Feb 24 vs. Loyola Marymount W, 2-1 - - - - - - - - - - - -
Feb 25 vs. Loyola Marymount W, 9-7 0 0 0 0 1.1 2 1 - 0.00 - 1 -
Feb 27 Seattle U W, 14-0 - - - - - - - - - - - -
Mar 2 Fla. Atlantic W, 2-1 - - - - - - - - - - - -
Mar 3 Fla. Atlantic L, 5-0 - - - - - - - - - - - -
Mar 4 Fla. Atlantic W, 4-0 - - - - - - - - - - - -
Mar 5 Fla. Atlantic W, 10-4 0 0 0 0 0.2 1 1 1 13.50 - - -
Mar 9 UC Davis W, 5-4 - - - - - - - - - - - -
Mar 10 UC Davis W, 4-1 - - - - - - - - - - - -
Mar 10 UC Davis W, 7-2 1 1 0 0 5.0 2 0 0 0.00 0 4 -
Mar 11 UC Davis L, 9-7 - - - - - - - - - - - -
Mar 13 Gonzaga W, 6-3 - - - - - - - - - - - -
Mar 16 at Arizona State L, 7-4 - - - - - - - - - - - -
Mar 17 at Arizona State L, 18-4 - - - - - - - - - - - -
Mar 18 at Arizona State L, 6-1 1 0 1 0 3.1 7 4 4 10.80 1 1 -
Mar 24 California W, 8-5 - - - - - - - - - - - -
Mar 24 California W, 7-2 - - - - - - - - - - - -
Mar 25 California L, 5-3 1 0 1 0 5.2 6 5 2 3.18 2 3 1
Mar 26 San Francisco L, 5-1 - - - - - - - - - - - -
Mar 29 at Stanford W, 10-1 - - - - - - - - - - - -
Mar 30 at Stanford L, 5-1 - - - - - - - - - - - -
Mar 31 at Stanford L, 4-0 1 0 1 0 6.0 3 1 1 1.50 0 6 -
Apr 2 at San Francisco W, 5-2 - - - - - - - - - - - -
Apr 6 Washington State W, 2-1 - - - - - - - - - - - -
Apr 6 Washington State W, 4-2 - - - - - - - - - - - -
Apr 8 Washington State L, 7-0 1 0 1 0 5.1 6 3 3 5.06 3 4 -
Apr 9 Portland L, 9-7 - - - - - - - - - - - -
Apr 13 at Washington L, 2-1 - - - - - - - - - - - -
Apr 15 at Washington W, 6-4 - - - - - - - - - - - -
Apr 15 at Washington L, 4-0 1 0 1 0 4.1 8 2 2 4.15 0 7 -
Apr 19 at Oregon State L, 5-2 - - - - - - - - - - - -
Apr 20 at Oregon State L, 2-1 - - - - - - - - - - - -
Apr 21 at Oregon State L, 12-5 1 0 1 0 2.2 10 6 6 20.25 0 2 2
Apr 25 at Portland L, 2-1 - - - - - - - - - - - -
Apr 27 USC L, 10-2 - - - - - - - - - - - -
Apr 28 USC W, 9-2 - - - - - - - - - - - -
Apr 29 USC W, 2-1 1 0 0 0 6.1 2 0 0 0.00 1 4 -
May 1 Oregon State L, 4-3 - - - - - - - - - - - -
May 4 at UC Irvine L, 2-1 - - - - - - - - - - - -
May 5 at UC Irvine L, 10-9 - - - - - - - - - - - -
May 6 at UC Irvine W, 10-5 1 1 0 0 5.0 5 3 3 5.40 1 3 1
May 8 Oregon State L, 10-0 - - - - - - - - - - - -
May 11 Utah W, 6-2 - - - - - - - - - - - -
May 12 Utah W, 13-1 - - - - - - - - - - - -
May 13 Utah W, 4-3 1 0 0 0 5.1 5 3 2 3.38 2 1 -
May 18 at UCLA L, 12-4 - - - - - - - - - - - -
May 19 at UCLA L, 15-1 - - - - - - - - - - - -
May 20 at UCLA L, 10-2 1 0 1 0 3.2 5 7 5 12.27 2 3 -
May 24 Arizona L, 10-2 0 0 0 0 4.0 4 2 2 4.50 - 2 1
May 25 Arizona W, 2-1 - - - - - - - - - - - -
May 26 Arizona L, 11-4 - - - - - - - - - - - -
Date Opponent Score tc po a e fpct dp sba rcs rcs% pb ci
Feb 16 vs. TBD   - - - - - - - - - - -
Feb 16 vs. Loyola Marymount W, 6-1 - - - - - - - - - - -
Feb 17 vs. UNLV L, 9-3 - - - - - - - - - - -
Feb 18 vs. Indiana St. W, 8-5 1 0 1 0 1.000 - - - - - -
Feb 21 vs. Portland   - - - - - - - - - - -
Feb 23 vs. Loyola Marymount L, 4-2 1 0 1 0 1.000 - - - - - -
Feb 24 vs. Loyola Marymount W, 2-1 - - - - - - - - - - -
Feb 25 vs. Loyola Marymount W, 9-7 0 0 0 0 - - - - - - -
Feb 27 Seattle U W, 14-0 - - - - - - - - - - -
Mar 2 Fla. Atlantic W, 2-1 - - - - - - - - - - -
Mar 3 Fla. Atlantic L, 5-0 - - - - - - - - - - -
Mar 4 Fla. Atlantic W, 4-0 - - - - - - - - - - -
Mar 5 Fla. Atlantic W, 10-4 0 0 0 0 - - - - - - -
Mar 9 UC Davis W, 5-4 - - - - - - - - - - -
Mar 10 UC Davis W, 4-1 - - - - - - - - - - -
Mar 10 UC Davis W, 7-2 1 1 0 0 1.000 - - 1 1.000 - -
Mar 11 UC Davis L, 9-7 - - - - - - - - - - -
Mar 13 Gonzaga W, 6-3 - - - - - - - - - - -
Mar 16 at Arizona State L, 7-4 - - - - - - - - - - -
Mar 17 at Arizona State L, 18-4 - - - - - - - - - - -
Mar 18 at Arizona State L, 6-1 0 0 0 0 - - 1 - - - -
Mar 24 California W, 8-5 - - - - - - - - - - -
Mar 24 California W, 7-2 - - - - - - - - - - -
Mar 25 California L, 5-3 0 0 0 0 - - - - - - -
Mar 26 San Francisco L, 5-1 - - - - - - - - - - -
Mar 29 at Stanford W, 10-1 - - - - - - - - - - -
Mar 30 at Stanford L, 5-1 - - - - - - - - - - -
Mar 31 at Stanford L, 4-0 1 0 1 0 1.000 - 2 - - - -
Apr 2 at San Francisco W, 5-2 - - - - - - - - - - -
Apr 6 Washington State W, 2-1 - - - - - - - - - - -
Apr 6 Washington State W, 4-2 - - - - - - - - - - -
Apr 8 Washington State L, 7-0 0 0 0 0 - - - - - - -
Apr 9 Portland L, 9-7 - - - - - - - - - - -
Apr 13 at Washington L, 2-1 - - - - - - - - - - -
Apr 15 at Washington W, 6-4 - - - - - - - - - - -
Apr 15 at Washington L, 4-0 0 0 0 0 - - - - - - -
Apr 19 at Oregon State L, 5-2 - - - - - - - - - - -
Apr 20 at Oregon State L, 2-1 - - - - - - - - - - -
Apr 21 at Oregon State L, 12-5 0 0 0 0 - - - - - - -
Apr 25 at Portland L, 2-1 - - - - - - - - - - -
Apr 27 USC L, 10-2 - - - - - - - - - - -
Apr 28 USC W, 9-2 - - - - - - - - - - -
Apr 29 USC W, 2-1 1 1 0 0 1.000 - 1 - - - -
May 1 Oregon State L, 4-3 - - - - - - - - - - -
May 4 at UC Irvine L, 2-1 - - - - - - - - - - -
May 5 at UC Irvine L, 10-9 - - - - - - - - - - -
May 6 at UC Irvine W, 10-5 3 1 2 0 1.000 1 - - - - -
May 8 Oregon State L, 10-0 - - - - - - - - - - -
May 11 Utah W, 6-2 - - - - - - - - - - -
May 12 Utah W, 13-1 - - - - - - - - - - -
May 13 Utah W, 4-3 1 0 1 0 1.000 - - 1 1.000 - -
May 18 at UCLA L, 12-4 - - - - - - - - - - -
May 19 at UCLA L, 15-1 - - - - - - - - - - -
May 20 at UCLA L, 10-2 1 0 1 0 1.000 - - 1 1.000 - -
May 24 Arizona L, 10-2 4 0 4 0 1.000 - - - - - -
May 25 Arizona W, 2-1 - - - - - - - - - - -
May 26 Arizona L, 11-4 - - - - - - - - - - -
  g ab r h 2b 3b hr rbi bb k sb cs avg obp slg
2017-18 16 0 0 0 - - - 0 - - - - - - -
Total 16 0 0 0 - - - 0 - - - - - - -
  g hbp sf sh tb xbh hdp go fo go/fo pa
2017-18 16 - - - 0 0 - - - - 0
Total 16 - - - 0 0 - - - - 0
  app gs w l sv cg ip h r er bb k k/9 hr era
2017-18 16 11 2 7 0 - 62.1 71 39 32 13 46 6.64 5 4.62
Total 16 11 2 7 0 - 62.1 71 39 32 13 46 6.64 5 4.62
  g tc po a e fpct dp sba rcs rcs% pb ci
2017-18 16 14 3 11 0 1.000 1 4 3 .429 - -
Total 16 14 3 11 0 1.000 1 4 3 .429 - -
There was a problem with a Velocity script
Pagebio-network-template
ErrorVM #printCategories: too many arguments to macro. Wanted 2 got 3 at bio-network-template[line 563, column 11]
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: 
32: #*
33: $positions
34: $positions.keySet()
35: $positions.entrySet()
36: $statPos
37: $paramPos
38: *#
39: 
40: #set ($highlights = $highlights.get($statPos))
41: 
42: #set ($url = ${page.url})
43: #set ($playerId = $attributes.get("playerId"))
44: #set ($stats = $splits.overall)
45: 
46: #set ($hasEvents = $events.size() > 0)
47: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
48: #set ($htmlStatsURL = "${page.url}-stats")
49: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
50: #set ($bioBriefURL = "${page.url}-brief")
51: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
52: 
53: $request.setAttribute("careerTotals", $career)
54: ## We track a map of the careers to see if we are missing any seasons
55: #set ($careerMap = {})
56: $request.setAttribute("careerMap", $careerMap)
57: #foreach ($season in $seasons)
58:   ## We need to include this season stats
59:   #set ($path = "${season.path}?tmpl=bio-career-template&name=${season.seasonName}&pos=${statPos}&print=no")
60:   $website.includeAgain($path)
61: #end
62: 
63: #set ($view = "profile")
64: #if ($request.getParameter("view"))
65:   #set ($view = $request.getParameter("view"))
66: #end
67: 
68: #macro (printResultAriaLabel $event)
69:     #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
70:     #if ($event.neutralSite.length() > 0 || $event.home) 
71:     	#set ($ariaLabel = "${ariaLabel} vs.")
72:     #else
73:     	#set ($ariaLabel = "${ariaLabel} at")
74:     #end
75:     #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
76:     #if ($event.neutralSite.length() > 0)
77:     	#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
78:     #end
79:     #set ($ariaLabel = "${ariaLabel} Box Score")
80:     aria-label="$ariaLabel"
81: #end
82: 
83: #macro (printHighlights)
84: #if ($highlights)
85:   <div class="highlights highlights-standalone accent-bg">
86:     #foreach ($highlight in $highlights.keySet())
87:       #set ($value = "-")
88:       #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
89:       <div class="stat clearfix">
90:         <span class="stat-title">$!highlights.get($highlight)</span>
91:         <span class="stat-value">$value</span>
92:       </div>
93:     #end
94:   </div>
95: #end ## has highlights
96: #end ## macro printHighlights
97: 
98: #macro (splitBioNetwork $statPosBriefs $label $stats)
99:   <tr>
100:     <td class="pinned-col text">${label}</td>
101:     #foreach ($brief in $statPosBriefs.keySet())
102:       #set ($value = "-")
103:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
104:       <td>#if ($value.length() > 0) $value #else - #end</td>
105:     #end
106:   </tr>
107: #end ## marco split
108: 
109: #macro (printCategories $briefCategoryLabels $v $ariaLabel)
110:   
111: <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
112: <div class="tab-nav" data-module="jscroll" data-momentum="false">
113: <div>
114: <ul class="clearfix">
115: #foreach($briefCat in $briefCategoryLabels.entrySet())
116:   #set ($briefCatLabel = $briefCat.value)
117:   #set ($briefCatKey = $briefCat.key)
118:     
119:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
120:     #set ($briefCatLabel = "Defence")
121:   #end  
122:   
123:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}" role="tab" id="stats-tab-${ariaLabel.toLowerCase().replace(" ", "-")}-${briefCatLabel.toLowerCase()}" aria-label="${ariaLabel}: ${briefCatLabel}">$briefCatLabel</a></li>
124: #end
125: </ul>
126: </div>
127: </div>
128: <div class="tab-panels">
129: #foreach ($briefCat in $briefCategoryLabels.entrySet())
130:   #set ($briefCatLabel = $briefCat.value)
131:   #set ($class = "tab-panel clearfix")
132:   #if ($briefCat.key == $activePos)
133:     #set ($class = "tab-panel active clearfix")
134:   #end
135:   <div class="$class" role="tabpanel" aria-labelledby="stats-tab-${ariaLabel.toLowerCase().replace(" ", "-")}-${briefCatLabel.toLowerCase()}">
136:     <div class="stats-wrap clearfix">
137:     #if ($v == "splits")
138:       #splitsBioNetworkData($briefCat.key)
139:     #elseif ($v == "career")
140:       #careerData($briefCat.key)
141:     #end
142:     </div>
143:   </div>
144: #end  
145: </div>
146: </div> ## tab-container
147: 
148: #end ## macro printCategories
149: 
150: #macro (splitsBioNetworkData $p)
151: 
152: #set ($p = $positions.get($p))
153: #set ($statPosBriefs = $briefs.get($p))
154: #set ($colspan = $statPosBriefs.size())  
155:   
156: <div class="stats-box full clearfix">
157: <div class="scrollable">
158: <div>
159: <table>
160:   <tr class="accent-bg">
161:     <th class="pinned-col">&nbsp;</th>
162:     #foreach ($brief in $statPosBriefs)
163:       <th>$brief</th>
164:     #end
165:   </tr>
166: 
167: #splitBioNetwork($statPosBriefs, "Total", $splits.overall)
168: #if ($showconf)
169:   #splitBioNetwork($statPosBriefs, "Conference", $splits.conference)
170: #end
171: #splitBioNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
172: 
173: <tr class="empty-row">
174: 	<td class="pinned-col">&nbsp;</td>
175: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
176: </tr>
177: 
178: #splitBioNetwork($statPosBriefs, "Home", $splits.home)
179: #splitBioNetwork($statPosBriefs, "Away", $splits.away)
180: #splitBioNetwork($statPosBriefs, "Neutral", $splits.neutral)
181: 
182: <tr class="empty-row">
183: 	<td class="pinned-col">&nbsp;</td>
184: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
185: </tr>
186: 
187: #foreach($gameResult in $gamesResults.entrySet())
188:   #if ($gameResult.key == "wins")
189:     #set ($splitGameResult = $splits.inWins)
190:   #elseif ($gameResult.key == "losses")
191:     #set ($splitGameResult = $splits.inLosses)
192:   #elseif ($gameResult.key == "ties")
193:     #set ($splitGameResult = $splits.inTies)
194:   #end
195:   
196:   #splitBioNetwork($statPosBriefs, $gameResult.value, $splitGameResult)
197: #end
198: 
199: <tr class="empty-row">
200: 	<td class="pinned-col">&nbsp;</td>
201: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
202: </tr>
203: 
204: #if ($monthsPlayed and $monthsPlayed.size() > 0)
205:   #foreach($month in $monthsPlayed)
206:     #if ($month == 'January')
207:       #set ($splitMonth = $splits.january)
208:     #elseif ($month == 'February')
209:       #set ($splitMonth = $splits.february)
210:     #elseif ($month == 'March')
211:       #set($splitMonth = $splits.march)
212:     #elseif ($month == 'April')
213:       #set($splitMonth = $splits.april)
214:     #elseif ($month == 'May')
215:       #set ($splitMonth = $splits.may)
216:     #elseif ($month == 'June')
217:       #set ($splitMonth = $splits.june)
218:     #elseif ($month == 'July')
219:       #set($splitMonth = $splits.july)
220:     #elseif ($month == 'August')
221:       #set ($splitMonth = $splits.august)
222:     #elseif ($month == 'September')
223:       #set($splitMonth = $splits.september)
224:     #elseif ($month == 'October')
225:       #set($splitMonth = $splits.october)
226:     #elseif ($month == 'November')
227:       #set ($splitMonth = $splits.november)
228:     #elseif ($month == 'December')
229:       #set($splitMonth = $splits.december)
230:     #end
231:     
232:     #splitBioNetwork($statPosBriefs, $month, $splitMonth)
233:   #end ## foreach
234: #end
235: </table>
236: </div>
237: </div> ## scrollable
238: </div> ## srollable-table
239: 
240: #end ## macro splitsBioNetworkData
241: 
242: #macro (printRecentGames)
243: <table>
244:     <tr class="thead accent-bg"><th colspan="3" class="text">Recent Games</th></tr>
245: 
246:     #set ($eventEnd = -1)
247:     #foreach ($event in $events)
248:     #if ($event.event.result.resolved)
249:     #set ($eventEnd = $velocityCount)
250:     #end
251:     #end
252: 
253:     #set ($eventStart = $eventEnd - 5)
254:     #if ($eventStart < 0) #set ($eventStart = 0) #end
255: 
256:     #foreach ($event in $events)
257:     #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
258:     <tr>
259:         <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
260:         <td class="text">
261:             #if ($event.event.neutralSite.length() > 0) vs.
262:             #elseif (!$event.event.home) at
263:             #else ## nothing for a home game
264:             #end
265:             $event.event.opponent.name
266:         </td>
267:         <td class="text">
268:             #if ($event.event.statusCode >= 0)
269:             #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
270:                 <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
271:             #else
272:             ${event.event.APResult}
273:             #end
274:             #end
275:         </td>
276:     </tr>
277:     #end ## if
278:     #end
279: </table>
280: #end ## macro printRecentGames
281: 
282: #macro (gamelogData $p)
283: 
284: #set ($p = $positions.get($p))
285: #set ($gamelogs = $gamelogs.get($p))
286: #set ($atLeastOneNotOverall = false)
287: 
288: <div class="stats-box full clearfix">
289:     <div class="scrollable">
290:         <div>
291:             <table>
292:               <tr class="thead accent-bg">
293:                   <th class="text">Date</th>
294:                   <th class="pinned-col text">Opponent</th>
295:                   <th>Score</th>
296: 				  #set ($colspan = 3)
297:                   #if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9   soccer:3
298: 					#set ($colspan = $colspan + 1)
299: 					<th>Dec</th>
300:                   #end
301:                   #foreach ($gamelog in $gamelogs)
302: 					#set ($colspan = $colspan + 1)
303: 					<th>$gamelog</th>
304:                   #end
305:               </tr>
306:               #foreach ($event in $events)
307:               <tr>
308:                   <td class="text">$formatter.formatDate($event.event.date, "MMM d") #if (!$event.event.overall) #set ($atLeastOneNotOverall = true) # #end</</td>
309:                   <td class="pinned-col text">
310:                       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
311:                       $event.event.opponent.name
312:                   </td>
313:                   <td>
314:                       #if ($event.event.statusCode >= 0)
315:                       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
316:                           <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
317:                       #else
318:                       ${event.event.APResult}
319:                       #end
320:                       #else &nbsp; #end
321:                   </td>
322:                   #if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9   soccer:3
323:                       #if ($event.stats.get('gow') == 1)
324:                           <td>W</td>
325:                       #elseif ($event.stats.get('gol') == 1)
326:                           <td>L</td>
327:                       #elseif ($event.stats.get('got') == 1)
328:                           <td>T</td>
329:                       #else
330:                           <td>-</td>
331:                       #end
332:                   #end
333:                   #foreach ($gamelog in $gamelogs.keySet())
334:                   #set ($value = "-")
335:                   #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
336:                   <td>$value</td>
337:                   #end
338:               </tr>
339:               #end
340:               #if ($atLeastOneNotOverall)
341:                 <tr><td colspan="$colspan"># Stats don't count towards season totals</td></tr>
342:               #end
343:             </table>
344:         </div>
345:     </div> ## scrollable
346: </div> ## stats-box
347: 
348: #end ## macro gamelogData
349: 
350: #macro (careerData $p)
351: #set ($p = $positions.get($p))
352: #set ($statPosBriefs = $briefs.get($p))
353: 
354: <div class="stats-box full clearfix">
355: <div class="scrollable">
356: <div>
357: <table>
358: <tr class="thead accent-bg">
359:   <th class="pinned-col">&nbsp;</th>
360:   #foreach ($brief in $statPosBriefs)
361:     <th>$brief</th>
362:   #end
363: </tr>
364: 
365: #foreach ($season in $seasons)
366:   #if ($careerMap.get($season.seasonName))
367:     #set ($label = "<a href='${season.path}?view=profile'>$season.seasonName</a>")
368:     #splitBioNetwork($statPosBriefs, $label, $careerMap[$season.seasonName])
369:   #elseif ($wiki.valid())
370:     <tr>
371:       <td class="pinned-col text">${season.seasonName}</td>
372:       <td colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
373:     </tr>
374:   #end
375: #end
376: 
377: #splitBioNetwork($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
378: 
379: </table>
380: </div>
381: </div> ## scrollable
382: </div> ## stats-box
383: 
384: #end ## macro careerData
385: 
386: ################################################## END MACROS  #############################################################
387: 
388: <head>
389: <title>
390:     $!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")
391: </title>
392: </head>
393: 
394: <div class="bio-wrap bio-wrap-network clearfix" data-module="stats/responsive-container">
395: 
396:     #if ($page.title.length() > 0)
397:     <h1>$page.title</h1>
398:     #end
399: 
400:     <h2 class="player-name">
401:         <span>$!attributes.get("first_name") $!attributes.get("last_name")</span>
402:         #if (!$attributes.get("number").empty)<span>#$!attributes.get("number")</span>#end
403:         #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty)
404: 			<span>$!attributes.get("position_abbr")</span>
405: 		#elseif ($attributes.get("position"))
406: 			<span>$!attributes.get("position")</span>
407: 		#end 
408:         <a href="../teams?id=$!{attributes.get("teamId")}" aria-label="Team Stats - ${attributes.get("team")}">$attributes.get("team")</a>
409:     </h2>
410: 	
411:     #printHighlights
412: 
413:     <div class="body clearfix">
414:         <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
415:             <div class="tab-nav" data-module="jscroll" data-momentum="false">
416:                 <div>
417:                     <ul class="clearfix">
418:                         <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile" role="tab" id="stats-tab-player-profile">Player Profile</a></li>
419:                         <li #if ($view == "gamelog")class="active"#end><a href="${page.url}?view=gamelog" role="tab" id="stats-tab-game-log">Game Log</a></li>
420:                         #if ($showCareer)
421:                         <li #if ($view == "career")class="active"#end><a href="${page.url}?view=career" role="tab" id="stats-tab-career-stats">Career Stats</a></li>
422:                         #end
423:                         <li #if ($view == "splits")class="active"#end><a href="${page.url}?view=splits" role="tab" id="stats-tab-split-stats">Split Stats</a></li>
424:                     </ul>
425:                 </div>
426:             </div> ## tab-nav
427: 
428:             <div class="tab-panels clearfix">
429: 
430:                 ## PROFILE
431:                 #set ($class = "tab-panel clearfix")
432:                 #if ($view == "profile")
433:                 #set ($class = "tab-panel active clearfix")
434:                 #end
435:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-player-profile">
436: 
437:                     ## Player profile
438:                     <div class="clearfix stats-wrap">
439: 
440:                         ## LAST SIX GAMES
441:                         <div class="stats-box half">
442:                             #printRecentGames()
443:                         </div>
444: 
445:                         ## RANKING
446:                         <div class="stats-box half">
447:                             $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
448:                         </div>
449: 
450:                     </div> ## clearfix
451: 
452:                     #if ($hasSynopsis)
453:                     <div class="clearfix">$!synopsis</div>
454:                     #end
455: 
456:                     #if ($hasBioBrief)
457:                     <div class="clearfix">$website.include($htmlStatsURL)</div>
458:                     #end
459: 
460:                     #if ($htmlStatsURL)
461:                     <div class="clearfix">$website.include($bioBriefURL)</div>
462:                     #end
463: 
464:                 </div>
465:                 ## PROFILE
466: 
467:                 ## GAMELOG
468:                 #set ($class = "tab-panel clearfix")
469:                 #if ($view == "gamelog")
470:                 #set ($class = "tab-panel active clearfix")
471:                 #end
472: 
473:                 #set ($activePos = $statPos)
474:                 #if ($view == "gamelog" && $paramPos.length() > 0)
475:                   #if ($positions.get($paramPos).length() > 0)
476:                     #set ($activePos = $positions.get($paramPos))
477:                   #end
478:                 #end
479: 
480:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-game-log">
481: 
482:                     #if ($gamelogsCategoriesLabels)
483:                     <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
484:                         <div class="tab-nav" data-module="jscroll" data-momentum="false">
485:                             <div>
486:                                 <ul class="clearfix">
487:                                     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
488:                                       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
489: 
490:                                   #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
491:                       #set($gamelogsCatLabelVal = "Defence")
492:                     #end
493: 
494:                     <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end>
495:                       <a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}" role="tab" id="stats-tab-game-log-${gamelogsCatLabelVal.toLowerCase()}" aria-label="Game Log: ${gamelogsCatLabelVal}">$gamelogsCatLabelVal</a>
496:                     </li>
497:                                     #end
498:                                 </ul>
499:                             </div>
500:                         </div>
501:                         <div class="tab-panels">
502:                 #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
503: 					#set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
504:                 #set ($class = "tab-panel clearfix")
505:                 #if ($gamelogsCatLabel.key == $activePos)
506:                   #set ($class = "tab-panel active clearfix")
507:                 #end
508:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-game-log-${gamelogsCatLabelVal.toLowerCase()}">
509:                   <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
510:                 </div>
511:               #end
512:                         </div>
513:                     </div>
514:                     #else
515:                       <div class="stats-wrap clearfix">#gamelogData($pos)</div>
516:                     #end
517: 
518:                 </div> ## tab-panel
519:                 ## GAMELOG
520: 
521:         ## CAREER
522:         #if ($showCareer)
523: 
524:         #set ($activePos = $statPos)
525:         #if ($view == "career" && $paramPos.length() > 0)
526:           #if ($positions.get($paramPos).length() > 0)
527:           #set ($activePos = $positions.get($paramPos))
528:           #end
529:         #end
530: 
531:         #set ($class = "tab-panel clearfix")
532:         #if ($view == "career")
533:           #set ($class = "tab-panel active clearfix")
534:         #end
535: 
536:         <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-career-stats">
537: 
538:         #if ($briefsCategoriesLabels)
539:           #printCategories($briefsCategoriesLabels "career" "Career Stats")
540:         #else
541:           <div class="stats-wrap clearfix">#careerData($activePos)</div>
542:         #end    
543: 
544:         </div> ## tab-panel
545:         #end ## CAREER
546:         
547:         ## SPLITS
548:         #set ($class = "tab-panel clearfix")
549:         #if ($view == "splits")
550:           #set ($class = "tab-panel active clearfix")
551:         #end
552: 
553:         #set ($activePos = $statPos)
554:         #if ($view == "splits" && $paramPos.length() > 0)
555:           #if ($positions.get($paramPos).length() > 0)
556:           #set ($activePos = $positions.get($paramPos))
557:           #end
558:         #end
559: 
560:         <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-split-stats">
561: 
562:         #if ($briefsCategoriesLabels)
563:           #printCategories($briefsCategoriesLabels "splits" "Splits Stats")
564:         #else
565:           <div class="stats-wrap clearfix">#splitsBioNetworkData($pos)</div>
566:         #end    
567: 
568:         </div> ## tab-panel
569:         ## SPLITS
570:         
571:             </div> ##tab-panels
572: 
573:         </div> ## tab-container
574:     </div> ## body
575: 
576: 
577: </div> ## bio-wrapper
578: $wiki.su