Gage Canning #12 OF Arizona State

gp 55
avg .369
hr 9
rbi 45
r 47
sb 8
Recent Games
May 17 at Arizona L, 6-4
May 18 at Arizona W, 10-5
May 19 at Arizona L, 10-9
May 24 California W, 5-4
May 25 California L, 6-4
May 26 California L, 3-0
Statistics category Overall Conf
Games 55 9th 30 1st
Plate appearances 263 2nd 144 3rd
At Bats 236 1st 132 1st
Runs 47 11th 27 5th
Hits 87 1st 44 2nd
Doubles 17 7th 8 14th
Triples 11 1st 3 3rd
Home Runs 9 14th 7 7th
Runs Batted In 45 13th 27 8th
Total bases 153 2nd 79 3rd
Walks 24 26th 11 39th
Hit by pitch 1 110th - -
Strikeouts 54 8th 33 5th
Sacrifice Flies 2 41st 1 30th
Sacrifice Hits - - - -
Hit into double play 2 78th 1 62nd
Stolen Bases 8 13th 3 19th
Caught Stealing 7 1st 3 5th
Batting Average .369 5th .333 15th
On Base Percentage .426 17th .382 34th
Slugging Percentage .648 4th .598 7th
Appearances 0 162nd 0 149th
Games started 0 82nd 0 54th
Wins 0 100th 0 66th
Losses 0 102nd 0 71st
Saves 0 39th 0 27th
Complete Games - - - -
Shutouts - - - -
Innings Pitched 0.0 192nd 0.0 177th
Hits - - - -
Runs - - - -
Earned Runs - - - -
Walks - - - -
Strikeouts - - - -
Strikeouts per Game .00 - .00 -
Doubles Allowed - - - -
Triples Allowed - - - -
Home Runs Allows - - - -
At Bats Against - - - -
Batting Average Against - - - -
Earned Run Average 0.00 - 0.00 -
Wild pitches - - - -
Hit Batters - - - -
Balks - - - -
Sacrifice Flies Allowed - - - -
Sacrifice Hits Allowed - - - -
Total Chances 145 50th 88 51st
Put Outs 143 28th 87 27th
Assists 1 223rd 1 174th
Errors 1 112th 0 137th
Fielding Percentage .993 20th 1.000 1st
Double Plays - - - -
Stolen Bases Allowed - - - -
Runners Caught Stealing - - - -
Runners Caught Stealing Percentage - - - -
Passed Balls - - - -
Catcher's Interference - - - -
Date Opponent Score ab r h 2b 3b hr rbi bb k sb cs
Feb 17 vs. Miami (Ohio) L, 4-2 4 0 2 - - - 0 - 1 - -
Feb 17 vs. Miami (Ohio) W, 7-3 5 0 3 - 2 - 0 - - - -
Feb 18 vs. Miami (Ohio) W, 11-1 4 0 1 - - - 2 - 1 - 1
Feb 18 vs. Miami (Ohio) L, 16-8 3 2 3 1 - - 2 1 - - -
Feb 21 vs. TBD   - - - - - - - - - - -
Feb 23 vs. St. Mary's (Cal.) L, 6-1 4 0 4 2 - - 1 - - - -
Feb 24 vs. St. Mary's (Cal.) L, 6-5 3 1 1 - 1 - 1 2 1 - -
Feb 25 vs. St. Mary's (Cal.) W, 2-1 4 0 2 - - - 1 - 2 - -
Feb 27 at Long Beach St. W, 1-0 4 1 2 - - - 0 - 1 1 -
Feb 28 at Long Beach St. L, 16-4 5 0 3 - - - 0 - - - -
Mar 2 vs. Oklahoma St. W, 9-1 5 1 1 1 - - 0 - 3 - -
Mar 3 vs. Oklahoma St. W, 14-2 5 2 3 1 2 - 4 - 1 - -
Mar 4 vs. Oklahoma St. L, 3-2 4 0 1 - - - 0 1 - - -
Mar 6 vs. Pepperdine W, 10-7 6 1 2 - 1 - 1 - 2 - 1
Mar 9 vs. UNC Wilmington W, 9-4 4 2 2 1 - - 1 1 - 1 1
Mar 10 vs. UNC Wilmington L, 9-0 3 0 1 - - - 0 1 1 1 -
Mar 11 vs. UNC Wilmington L, 3-1 3 0 1 1 - - 0 1 1 - -
Mar 13 vs. Arizona L, 6-2 4 0 0 - - - 0 1 - - -
Mar 16 Oregon W, 7-4 4 2 3 - 1 - 3 1 1 - -
Mar 17 Oregon W, 18-4 5 5 5 - 1 2 4 1 - - -
Mar 18 Oregon W, 6-1 4 1 2 1 - - 0 1 - - -
Mar 20 vs. UNLV L, 10-3 4 2 1 1 - - 0 - 1 1 -
Mar 23 at UCLA L, 5-4 4 1 0 - - - 0 1 - - -
Mar 24 at UCLA L, 12-1 4 0 2 - - - 0 - 1 - -
Mar 25 at UCLA W, 4-0 5 0 1 - - - 0 - 1 - -
Mar 29 at Washington State L, 8-7 4 2 2 1 - - 0 1 1 - -
Mar 30 at Washington State L, 4-3 5 1 1 - - - 0 - 2 - -
Mar 31 at Washington State W, 7-0 5 2 2 1 - - 0 - 1 - -
Apr 3 Cal St. Fullerton L, 7-6 5 1 1 - 1 - 0 - 2 - -
Apr 4 Cal St. Fullerton L, 2-1 4 1 1 - - 1 1 - - - -
Apr 6 USC W, 5-1 4 1 1 - - 1 2 - 1 - -
Apr 7 USC L, 10-1 4 0 1 - - - 0 - 3 - -
Apr 8 USC L, 8-4 5 0 0 - - - 0 - 1 - -
Apr 10 at UNLV L, 14-6 4 1 1 - - 1 3 1 1 - -
Apr 13 at Stanford L, 3-1 4 0 0 - - - 0 1 2 - 1
Apr 14 at Stanford L, 11-6 5 0 1 - - - 0 - 3 - 1
Apr 15 at Stanford L, 10-3 4 0 1 1 - - 2 - - - -
Apr 20 Utah W, 7-4 5 2 3 - - - 1 - 1 - 1
Apr 21 Utah W, 15-7 5 1 2 1 - 1 2 - 1 - -
Apr 22 Utah W, 13-8 5 2 2 - - 1 2 - - 1 -
Apr 25 New Mexico St. L, 8-7 5 0 1 - - - 0 - 2 - -
Apr 27 at Oregon State L, 6-2 4 0 0 - - - 0 - 2 1 -
Apr 28 at Oregon State W, 8-5 4 2 3 - - - 1 1 1 1 -
Apr 29 at Oregon State L, 6-5 5 1 3 1 - - 2 - 1 - -
May 4 Washington W, 4-3 5 0 3 1 - - 1 - - - -
May 5 Washington L, 7-3 4 0 1 - - - 1 - - - -
May 6 Washington L, 7-6 5 1 1 - - 1 3 - 1 - -
May 9 at San Diego W, 12-7 5 2 2 - - - 0 1 - - -
May 13 University of the Pacific L, 12-7 4 1 2 - 1 - 1 1 - - -
May 14 University of the Pacific W, 8-3 3 2 2 1 - - 0 2 1 1 1
May 17 at Arizona L, 6-4 3 1 0 - - - 0 1 2 - -
May 18 at Arizona W, 10-5 5 2 2 - 1 1 1 - 2 - -
May 19 at Arizona L, 10-9 4 0 0 - - - 1 2 3 - -
May 24 California W, 5-4 4 0 1 1 - - 0 - 1 - -
May 25 California L, 6-4 4 0 0 - - - 1 1 1 - -
May 26 California L, 3-0 4 0 1 - - - 0 - - - -
Jun 25 TBD   - - - - - - - - - - -
Date Opponent Score hbp sf sh tb xbh hdp go fo go/fo pa
Feb 17 vs. Miami (Ohio) L, 4-2 - - - 2 0 - - 1 - 4
Feb 17 vs. Miami (Ohio) W, 7-3 - - - 7 2 - 1 1 1.00 5
Feb 18 vs. Miami (Ohio) W, 11-1 - - - 1 0 - - 2 - 4
Feb 18 vs. Miami (Ohio) L, 16-8 - 1 - 4 1 - - 1 - 5
Feb 21 vs. TBD   - - - - - - - - - -
Feb 23 vs. St. Mary's (Cal.) L, 6-1 - - - 6 2 - - - - 4
Feb 24 vs. St. Mary's (Cal.) L, 6-5 - - - 3 1 - - 1 - 5
Feb 25 vs. St. Mary's (Cal.) W, 2-1 - - - 2 0 - - - - 4
Feb 27 at Long Beach St. W, 1-0 - - - 2 0 - - 1 - 4
Feb 28 at Long Beach St. L, 16-4 - - - 3 0 - - 2 - 5
Mar 2 vs. Oklahoma St. W, 9-1 - - - 2 1 - 1 - - 5
Mar 3 vs. Oklahoma St. W, 14-2 - - - 8 3 - - 1 - 5
Mar 4 vs. Oklahoma St. L, 3-2 - - - 1 0 - 2 1 2.00 5
Mar 6 vs. Pepperdine W, 10-7 - - - 4 1 - 1 1 1.00 6
Mar 9 vs. UNC Wilmington W, 9-4 - - - 3 1 - 1 1 1.00 5
Mar 10 vs. UNC Wilmington L, 9-0 - - - 1 0 - - 1 - 4
Mar 11 vs. UNC Wilmington L, 3-1 - - - 2 1 - - 1 - 4
Mar 13 vs. Arizona L, 6-2 - - - 0 0 - 1 3 0.33 5
Mar 16 Oregon W, 7-4 - - - 5 1 - - - - 5
Mar 17 Oregon W, 18-4 - - - 13 3 - - - - 6
Mar 18 Oregon W, 6-1 - - - 3 1 - - 2 - 5
Mar 20 vs. UNLV L, 10-3 1 - - 2 1 - 2 1 2.00 5
Mar 23 at UCLA L, 5-4 - - - 0 0 - 2 2 1.00 5
Mar 24 at UCLA L, 12-1 - - - 2 0 - - 1 - 4
Mar 25 at UCLA W, 4-0 - - - 1 0 - 1 2 0.50 5
Mar 29 at Washington State L, 8-7 - - - 3 1 - - 1 - 5
Mar 30 at Washington State L, 4-3 - - - 1 0 - 2 - - 5
Mar 31 at Washington State W, 7-0 - - - 3 1 - - 2 - 5
Apr 3 Cal St. Fullerton L, 7-6 - - - 3 1 - 3 - - 5
Apr 4 Cal St. Fullerton L, 2-1 - - - 4 1 - 1 2 0.50 4
Apr 6 USC W, 5-1 - - - 4 1 - 2 - - 4
Apr 7 USC L, 10-1 - - - 1 0 - - - - 4
Apr 8 USC L, 8-4 - - - 0 0 - 1 3 0.33 5
Apr 10 at UNLV L, 14-6 - - - 4 1 - 1 1 1.00 5
Apr 13 at Stanford L, 3-1 - - - 0 0 - - 2 - 5
Apr 14 at Stanford L, 11-6 - - - 1 0 - 1 - - 5
Apr 15 at Stanford L, 10-3 - - - 2 1 - 2 1 2.00 4
Apr 20 Utah W, 7-4 - - - 3 0 - 1 - - 5
Apr 21 Utah W, 15-7 - - - 6 2 - 1 1 1.00 5
Apr 22 Utah W, 13-8 - - - 5 1 - 2 1 2.00 5
Apr 25 New Mexico St. L, 8-7 - - - 1 0 1 1 1 1.00 5
Apr 27 at Oregon State L, 6-2 - - - 0 0 - 2 - - 4
Apr 28 at Oregon State W, 8-5 - - - 3 0 - - - - 5
Apr 29 at Oregon State L, 6-5 - - - 4 1 - 1 - - 5
May 4 Washington W, 4-3 - - - 4 1 - - 2 - 5
May 5 Washington L, 7-3 - 1 - 1 0 - 2 2 1.00 5
May 6 Washington L, 7-6 - - - 4 1 - 1 2 0.50 5
May 9 at San Diego W, 12-7 - - - 2 0 - 3 - - 6
May 13 University of the Pacific L, 12-7 - - - 4 1 - 1 1 1.00 5
May 14 University of the Pacific W, 8-3 - - - 3 1 - - - - 5
May 17 at Arizona L, 6-4 - - - 0 0 - 1 - - 4
May 18 at Arizona W, 10-5 - - - 7 2 - - 1 - 5
May 19 at Arizona L, 10-9 - - - 0 0 - 1 - - 6
May 24 California W, 5-4 - - - 2 1 - 1 1 1.00 4
May 25 California L, 6-4 - - - 0 0 1 1 2 0.50 5
May 26 California L, 3-0 - - - 1 0 - 2 1 2.00 4
Jun 25 TBD   - - - - - - - - - -
Date Opponent Score gs w l sv ip h r er era bb k hr
Feb 17 vs. Miami (Ohio) L, 4-2 0 0 0 0 0.0 - - - 0.00 - - -
Feb 17 vs. Miami (Ohio) W, 7-3 0 0 0 0 0.0 - - - 0.00 - - -
Feb 18 vs. Miami (Ohio) W, 11-1 0 0 0 0 0.0 - - - 0.00 - - -
Feb 18 vs. Miami (Ohio) L, 16-8 0 0 0 0 0.0 - - - 0.00 - - -
Feb 21 vs. TBD   - - - - - - - - - - - -
Feb 23 vs. St. Mary's (Cal.) L, 6-1 0 0 0 0 0.0 - - - 0.00 - - -
Feb 24 vs. St. Mary's (Cal.) L, 6-5 0 0 0 0 0.0 - - - 0.00 - - -
Feb 25 vs. St. Mary's (Cal.) W, 2-1 0 0 0 0 0.0 - - - 0.00 - - -
Feb 27 at Long Beach St. W, 1-0 0 0 0 0 0.0 - - - 0.00 - - -
Feb 28 at Long Beach St. L, 16-4 0 0 0 0 0.0 - - - 0.00 - - -
Mar 2 vs. Oklahoma St. W, 9-1 0 0 0 0 0.0 - - - 0.00 - - -
Mar 3 vs. Oklahoma St. W, 14-2 0 0 0 0 0.0 - - - 0.00 - - -
Mar 4 vs. Oklahoma St. L, 3-2 0 0 0 0 0.0 - - - 0.00 - - -
Mar 6 vs. Pepperdine W, 10-7 0 0 0 0 0.0 - - - 0.00 - - -
Mar 9 vs. UNC Wilmington W, 9-4 0 0 0 0 0.0 - - - 0.00 - - -
Mar 10 vs. UNC Wilmington L, 9-0 0 0 0 0 0.0 - - - 0.00 - - -
Mar 11 vs. UNC Wilmington L, 3-1 0 0 0 0 0.0 - - - 0.00 - - -
Mar 13 vs. Arizona L, 6-2 0 0 0 0 0.0 - - - 0.00 - - -
Mar 16 Oregon W, 7-4 0 0 0 0 0.0 - - - 0.00 - - -
Mar 17 Oregon W, 18-4 0 0 0 0 0.0 - - - 0.00 - - -
Mar 18 Oregon W, 6-1 0 0 0 0 0.0 - - - 0.00 - - -
Mar 20 vs. UNLV L, 10-3 0 0 0 0 0.0 - - - 0.00 - - -
Mar 23 at UCLA L, 5-4 0 0 0 0 0.0 - - - 0.00 - - -
Mar 24 at UCLA L, 12-1 0 0 0 0 0.0 - - - 0.00 - - -
Mar 25 at UCLA W, 4-0 0 0 0 0 0.0 - - - 0.00 - - -
Mar 29 at Washington State L, 8-7 0 0 0 0 0.0 - - - 0.00 - - -
Mar 30 at Washington State L, 4-3 0 0 0 0 0.0 - - - 0.00 - - -
Mar 31 at Washington State W, 7-0 0 0 0 0 0.0 - - - 0.00 - - -
Apr 3 Cal St. Fullerton L, 7-6 0 0 0 0 0.0 - - - 0.00 - - -
Apr 4 Cal St. Fullerton L, 2-1 0 0 0 0 0.0 - - - 0.00 - - -
Apr 6 USC W, 5-1 0 0 0 0 0.0 - - - 0.00 - - -
Apr 7 USC L, 10-1 0 0 0 0 0.0 - - - 0.00 - - -
Apr 8 USC L, 8-4 0 0 0 0 0.0 - - - 0.00 - - -
Apr 10 at UNLV L, 14-6 0 0 0 0 0.0 - - - 0.00 - - -
Apr 13 at Stanford L, 3-1 0 0 0 0 0.0 - - - 0.00 - - -
Apr 14 at Stanford L, 11-6 0 0 0 0 0.0 - - - 0.00 - - -
Apr 15 at Stanford L, 10-3 0 0 0 0 0.0 - - - 0.00 - - -
Apr 20 Utah W, 7-4 0 0 0 0 0.0 - - - 0.00 - - -
Apr 21 Utah W, 15-7 0 0 0 0 0.0 - - - 0.00 - - -
Apr 22 Utah W, 13-8 0 0 0 0 0.0 - - - 0.00 - - -
Apr 25 New Mexico St. L, 8-7 0 0 0 0 0.0 - - - 0.00 - - -
Apr 27 at Oregon State L, 6-2 0 0 0 0 0.0 - - - 0.00 - - -
Apr 28 at Oregon State W, 8-5 0 0 0 0 0.0 - - - 0.00 - - -
Apr 29 at Oregon State L, 6-5 0 0 0 0 0.0 - - - 0.00 - - -
May 4 Washington W, 4-3 0 0 0 0 0.0 - - - 0.00 - - -
May 5 Washington L, 7-3 0 0 0 0 0.0 - - - 0.00 - - -
May 6 Washington L, 7-6 0 0 0 0 0.0 - - - 0.00 - - -
May 9 at San Diego W, 12-7 0 0 0 0 0.0 - - - 0.00 - - -
May 13 University of the Pacific L, 12-7 0 0 0 0 0.0 - - - 0.00 - - -
May 14 University of the Pacific W, 8-3 0 0 0 0 0.0 - - - 0.00 - - -
May 17 at Arizona L, 6-4 0 0 0 0 0.0 - - - 0.00 - - -
May 18 at Arizona W, 10-5 0 0 0 0 0.0 - - - 0.00 - - -
May 19 at Arizona L, 10-9 0 0 0 0 0.0 - - - 0.00 - - -
May 24 California W, 5-4 0 0 0 0 0.0 - - - 0.00 - - -
May 25 California L, 6-4 0 0 0 0 0.0 - - - 0.00 - - -
May 26 California L, 3-0 0 0 0 0 0.0 - - - 0.00 - - -
Jun 25 TBD   - - - - - - - - - - - -
Date Opponent Score tc po a e fpct dp sba rcs rcs% pb ci
Feb 17 vs. Miami (Ohio) L, 4-2 3 3 0 0 1.000 - - - - - -
Feb 17 vs. Miami (Ohio) W, 7-3 2 2 0 0 1.000 - - - - - -
Feb 18 vs. Miami (Ohio) W, 11-1 2 1 0 1 .500 - - - - - -
Feb 18 vs. Miami (Ohio) L, 16-8 2 2 0 0 1.000 - - - - - -
Feb 21 vs. TBD   - - - - - - - - - - -
Feb 23 vs. St. Mary's (Cal.) L, 6-1 4 4 0 0 1.000 - - - - - -
Feb 24 vs. St. Mary's (Cal.) L, 6-5 3 3 0 0 1.000 - - - - - -
Feb 25 vs. St. Mary's (Cal.) W, 2-1 2 2 0 0 1.000 - - - - - -
Feb 27 at Long Beach St. W, 1-0 2 2 0 0 1.000 - - - - - -
Feb 28 at Long Beach St. L, 16-4 6 6 0 0 1.000 - - - - - -
Mar 2 vs. Oklahoma St. W, 9-1 1 1 0 0 1.000 - - - - - -
Mar 3 vs. Oklahoma St. W, 14-2 0 0 0 0 - - - - - - -
Mar 4 vs. Oklahoma St. L, 3-2 0 0 0 0 - - - - - - -
Mar 6 vs. Pepperdine W, 10-7 3 3 0 0 1.000 - - - - - -
Mar 9 vs. UNC Wilmington W, 9-4 1 1 0 0 1.000 - - - - - -
Mar 10 vs. UNC Wilmington L, 9-0 2 2 0 0 1.000 - - - - - -
Mar 11 vs. UNC Wilmington L, 3-1 3 3 0 0 1.000 - - - - - -
Mar 13 vs. Arizona L, 6-2 5 5 0 0 1.000 - - - - - -
Mar 16 Oregon W, 7-4 4 4 0 0 1.000 - - - - - -
Mar 17 Oregon W, 18-4 5 5 0 0 1.000 - - - - - -
Mar 18 Oregon W, 6-1 3 3 0 0 1.000 - - - - - -
Mar 20 vs. UNLV L, 10-3 1 1 0 0 1.000 - - - - - -
Mar 23 at UCLA L, 5-4 3 3 0 0 1.000 - - - - - -
Mar 24 at UCLA L, 12-1 6 5 1 0 1.000 - - - - - -
Mar 25 at UCLA W, 4-0 5 5 0 0 1.000 - - - - - -
Mar 29 at Washington State L, 8-7 0 0 0 0 - - - - - - -
Mar 30 at Washington State L, 4-3 2 2 0 0 1.000 - - - - - -
Mar 31 at Washington State W, 7-0 5 5 0 0 1.000 - - - - - -
Apr 3 Cal St. Fullerton L, 7-6 0 0 0 0 - - - - - - -
Apr 4 Cal St. Fullerton L, 2-1 4 4 0 0 1.000 - - - - - -
Apr 6 USC W, 5-1 3 3 0 0 1.000 - - - - - -
Apr 7 USC L, 10-1 3 3 0 0 1.000 - - - - - -
Apr 8 USC L, 8-4 3 3 0 0 1.000 - - - - - -
Apr 10 at UNLV L, 14-6 2 2 0 0 1.000 - - - - - -
Apr 13 at Stanford L, 3-1 4 4 0 0 1.000 - - - - - -
Apr 14 at Stanford L, 11-6 4 4 0 0 1.000 - - - - - -
Apr 15 at Stanford L, 10-3 1 1 0 0 1.000 - - - - - -
Apr 20 Utah W, 7-4 3 3 0 0 1.000 - - - - - -
Apr 21 Utah W, 15-7 4 4 0 0 1.000 - - - - - -
Apr 22 Utah W, 13-8 3 3 0 0 1.000 - - - - - -
Apr 25 New Mexico St. L, 8-7 4 4 0 0 1.000 - - - - - -
Apr 27 at Oregon State L, 6-2 0 0 0 0 - - - - - - -
Apr 28 at Oregon State W, 8-5 3 3 0 0 1.000 - - - - - -
Apr 29 at Oregon State L, 6-5 2 2 0 0 1.000 - - - - - -
May 4 Washington W, 4-3 2 2 0 0 1.000 - - - - - -
May 5 Washington L, 7-3 3 3 0 0 1.000 - - - - - -
May 6 Washington L, 7-6 3 3 0 0 1.000 - - - - - -
May 9 at San Diego W, 12-7 1 1 0 0 1.000 - - - - - -
May 13 University of the Pacific L, 12-7 3 3 0 0 1.000 - - - - - -
May 14 University of the Pacific W, 8-3 1 1 0 0 1.000 - - - - - -
May 17 at Arizona L, 6-4 3 3 0 0 1.000 - - - - - -
May 18 at Arizona W, 10-5 2 2 0 0 1.000 - - - - - -
May 19 at Arizona L, 10-9 4 4 0 0 1.000 - - - - - -
May 24 California W, 5-4 1 1 0 0 1.000 - - - - - -
May 25 California L, 6-4 2 2 0 0 1.000 - - - - - -
May 26 California L, 3-0 2 2 0 0 1.000 - - - - - -
Jun 25 TBD   - - - - - - - - - - -
  g ab r h 2b 3b hr rbi bb k sb cs avg obp slg
2017-18 55 236 47 87 17 11 9 45 24 54 8 7 .369 .426 .648
Total 55 236 47 87 17 11 9 45 24 54 8 7 .369 .426 .648
  g hbp sf sh tb xbh hdp go fo go/fo pa
2017-18 55 1 2 - 153 37 2 46 53 0.87 263
Total 55 1 2 - 153 37 2 46 53 0.87 263
  app gs w l sv cg ip h r er bb k k/9 hr era
2017-18 0 0 0 0 0 - 0.0 - - - - - .00 - 0.00
Total 0 0 0 0 0 - 0.0 - - - - - .00 - 0.00
  g tc po a e fpct dp sba rcs rcs% pb ci
2017-18 55 145 143 1 1 .993 - - - - - -
Total 55 145 143 1 1 .993 - - - - - -
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 574, 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 (split $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:       #splitsData($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 (splitsData $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: #split($statPosBriefs, "Total", $splits.overall)
168: #if ($showconf)
169:   #split($statPosBriefs, "Conference", $splits.conference)
170: #end
171: #split($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: #split($statPosBriefs, "Home", $splits.home)
179: #split($statPosBriefs, "Away", $splits.away)
180: #split($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:   #split($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:     #split($statPosBriefs, $month, $splitMonth)
233:   #end ## foreach
234: #end
235: </table>
236: </div>
237: </div> ## scrollable
238: </div> ## srollable-table
239: 
240: #end ## macro splitsData
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 (split $statPosBriefs $label $stats)
351:   <tr>
352:     <td class="pinned-col text">${label}</td>
353:     #foreach ($brief in $statPosBriefs.keySet())
354:       #set ($value = "-")
355:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
356:       <td>#if ($value.length() > 0) $value #else - #end</td>
357:     #end
358:   </tr>
359: #end
360: 
361: #macro (careerData $p)
362: #set ($p = $positions.get($p))
363: #set ($statPosBriefs = $briefs.get($p))
364: 
365: <div class="stats-box full clearfix">
366: <div class="scrollable">
367: <div>
368: <table>
369: <tr class="thead accent-bg">
370:   <th class="pinned-col">&nbsp;</th>
371:   #foreach ($brief in $statPosBriefs)
372:     <th>$brief</th>
373:   #end
374: </tr>
375: 
376: #foreach ($season in $seasons)
377:   #if ($careerMap.get($season.seasonName))
378:     #set ($label = "<a href='${season.path}?view=profile'>$season.seasonName</a>")
379:     #split($statPosBriefs, $label, $careerMap[$season.seasonName])
380:   #elseif ($wiki.valid())
381:     <tr>
382:       <td class="pinned-col text">${season.seasonName}</td>
383:       <td colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
384:     </tr>
385:   #end
386: #end
387: 
388: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
389: 
390: </table>
391: </div>
392: </div> ## scrollable
393: </div> ## stats-box
394: 
395: #end ## macro careerData
396: 
397: ################################################## END MACROS  #############################################################
398: 
399: <head>
400: <title>
401:     $!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")
402: </title>
403: </head>
404: 
405: <div class="bio-wrap bio-wrap-network clearfix" data-module="stats/responsive-container">
406: 
407:     #if ($page.title.length() > 0)
408:     <h1>$page.title</h1>
409:     #end
410: 
411:     <h2 class="player-name">
412:         <span>$!attributes.get("first_name") $!attributes.get("last_name")</span>
413:         #if (!$attributes.get("number").empty)<span>#$!attributes.get("number")</span>#end
414:         #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty)
415: 			<span>$!attributes.get("position_abbr")</span>
416: 		#elseif ($attributes.get("position"))
417: 			<span>$!attributes.get("position")</span>
418: 		#end 
419:         <a href="../teams?id=$!{attributes.get("teamId")}" aria-label="Team Stats - ${attributes.get("team")}">$attributes.get("team")</a>
420:     </h2>
421: 	
422:     #printHighlights
423: 
424:     <div class="body clearfix">
425:         <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
426:             <div class="tab-nav" data-module="jscroll" data-momentum="false">
427:                 <div>
428:                     <ul class="clearfix">
429:                         <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile" role="tab" id="stats-tab-player-profile">Player Profile</a></li>
430:                         <li #if ($view == "gamelog")class="active"#end><a href="${page.url}?view=gamelog" role="tab" id="stats-tab-game-log">Game Log</a></li>
431:                         #if ($showCareer)
432:                         <li #if ($view == "career")class="active"#end><a href="${page.url}?view=career" role="tab" id="stats-tab-career-stats">Career Stats</a></li>
433:                         #end
434:                         <li #if ($view == "splits")class="active"#end><a href="${page.url}?view=splits" role="tab" id="stats-tab-split-stats">Split Stats</a></li>
435:                     </ul>
436:                 </div>
437:             </div> ## tab-nav
438: 
439:             <div class="tab-panels clearfix">
440: 
441:                 ## PROFILE
442:                 #set ($class = "tab-panel clearfix")
443:                 #if ($view == "profile")
444:                 #set ($class = "tab-panel active clearfix")
445:                 #end
446:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-player-profile">
447: 
448:                     ## Player profile
449:                     <div class="clearfix stats-wrap">
450: 
451:                         ## LAST SIX GAMES
452:                         <div class="stats-box half">
453:                             #printRecentGames()
454:                         </div>
455: 
456:                         ## RANKING
457:                         <div class="stats-box half">
458:                             $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
459:                         </div>
460: 
461:                     </div> ## clearfix
462: 
463:                     #if ($hasSynopsis)
464:                     <div class="clearfix">$!synopsis</div>
465:                     #end
466: 
467:                     #if ($hasBioBrief)
468:                     <div class="clearfix">$website.include($htmlStatsURL)</div>
469:                     #end
470: 
471:                     #if ($htmlStatsURL)
472:                     <div class="clearfix">$website.include($bioBriefURL)</div>
473:                     #end
474: 
475:                 </div>
476:                 ## PROFILE
477: 
478:                 ## GAMELOG
479:                 #set ($class = "tab-panel clearfix")
480:                 #if ($view == "gamelog")
481:                 #set ($class = "tab-panel active clearfix")
482:                 #end
483: 
484:                 #set ($activePos = $statPos)
485:                 #if ($view == "gamelog" && $paramPos.length() > 0)
486:                   #if ($positions.get($paramPos).length() > 0)
487:                     #set ($activePos = $positions.get($paramPos))
488:                   #end
489:                 #end
490: 
491:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-game-log">
492: 
493:                     #if ($gamelogsCategoriesLabels)
494:                     <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
495:                         <div class="tab-nav" data-module="jscroll" data-momentum="false">
496:                             <div>
497:                                 <ul class="clearfix">
498:                                     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
499:                                       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
500: 
501:                                   #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
502:                       #set($gamelogsCatLabelVal = "Defence")
503:                     #end
504: 
505:                     <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end>
506:                       <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>
507:                     </li>
508:                                     #end
509:                                 </ul>
510:                             </div>
511:                         </div>
512:                         <div class="tab-panels">
513:                 #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
514: 					#set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
515:                 #set ($class = "tab-panel clearfix")
516:                 #if ($gamelogsCatLabel.key == $activePos)
517:                   #set ($class = "tab-panel active clearfix")
518:                 #end
519:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-game-log-${gamelogsCatLabelVal.toLowerCase()}">
520:                   <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
521:                 </div>
522:               #end
523:                         </div>
524:                     </div>
525:                     #else
526:                       <div class="stats-wrap clearfix">#gamelogData($pos)</div>
527:                     #end
528: 
529:                 </div> ## tab-panel
530:                 ## GAMELOG
531: 
532:         ## CAREER
533:         #if ($showCareer)
534: 
535:         #set ($activePos = $statPos)
536:         #if ($view == "career" && $paramPos.length() > 0)
537:           #if ($positions.get($paramPos).length() > 0)
538:           #set ($activePos = $positions.get($paramPos))
539:           #end
540:         #end
541: 
542:         #set ($class = "tab-panel clearfix")
543:         #if ($view == "career")
544:           #set ($class = "tab-panel active clearfix")
545:         #end
546: 
547:         <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-career-stats">
548: 
549:         #if ($briefsCategoriesLabels)
550:           #printCategories($briefsCategoriesLabels "career" "Career Stats")
551:         #else
552:           <div class="stats-wrap clearfix">#careerData($activePos)</div>
553:         #end    
554: 
555:         </div> ## tab-panel
556:         #end ## CAREER
557:         
558:         ## SPLITS
559:         #set ($class = "tab-panel clearfix")
560:         #if ($view == "splits")
561:           #set ($class = "tab-panel active clearfix")
562:         #end
563: 
564:         #set ($activePos = $statPos)
565:         #if ($view == "splits" && $paramPos.length() > 0)
566:           #if ($positions.get($paramPos).length() > 0)
567:           #set ($activePos = $positions.get($paramPos))
568:           #end
569:         #end
570: 
571:         <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-split-stats">
572: 
573:         #if ($briefsCategoriesLabels)
574:           #printCategories($briefsCategoriesLabels "splits" "Splits Stats")
575:         #else
576:           <div class="stats-wrap clearfix">#splitsData($pos)</div>
577:         #end    
578: 
579:         </div> ## tab-panel
580:         ## SPLITS
581:         
582:             </div> ##tab-panels
583: 
584:         </div> ## tab-container
585:     </div> ## body
586: 
587: 
588: </div> ## bio-wrapper
589: $wiki.su