7 Nathan Ring
7 Nathan Ring
Birth Date: 09/23/1991
Height: 5-9
Weight: 165
Year: Senior
Hometown: Litchfield, AZ
Position: OF
Major: Business Management
Bats/Throws: R/R
EXP: 3V
Previous School: Millenium HS
gp 57
avg .262
hr 4
rbi 24
r 35
sb 14

2013

Nathan Ring was the lightning rod for the Matadors both offensively and defensively this season. Ring ended the year with a .262 batting average and was second on the team with 35 runs scored. He belted four home runs this season, which ranked second on the squad. With 75 total bases, Ring ranked fourth on the team and he had seven more walks than any other teammate at 38. Ring led the team with 14 stolen bases while his 56 hits ranked third in the clubhouse. In the series at Sacramento State, Ring had five hits, four runs scored, three RBIs and two steals. In CSUN’s midweek game against San Diego on March 26, Ring turned in a career performance, going 5-for-5 with two RBIs, two runs scored and a stolen base. He also had multiple-hit performances in the first two games at Long Beach State and led the team with 14 such outings. Against Washington, Ring hit a home run late and scored the winning run in the bottom of the ninth as CSUN won 8-7. In the series sweep at Hawai’i, Ring went 6-for-13 with a double, RBI and five runs scored. He also collected a stolen base and improved his batting average by 15 points.

2012

Ring started the finale at Sacramento State and went 1-for-3 in the victory. He was brought on as a pinch hitter vs. #22 UCLA and drew a walk. Ring went 2-for-3 with a run scored and an RBI in game two of a doubleheader sweep over Northwestern (2/25). He went 1-for-3 with an RBI and two runs scored at San Diego State (3/4). Ring was the leadoff hitter for the Matadors in all three games vs. Indiana and singled in his first at bat each game. He had three hits, two doubles, in the series at #13 Cal State Fullerton (3/30 - 4/1) and drove in three runs. Ring went 1-for-3 with an RBI and a run scored against LMU (4/3). He went 2-for-4 in two games at UC Santa Barbara (4/6 - 4/7) and again vs. CSU Bakersfield (4/10). Ring went 2-for-3 at #11 UCLA (4/17) and had a double and an RBI. He added another double and scored a run against CSU Bakersfield on April 24. Ring went 2-for-6 in the win over Long Beach State (4/28) and stole third and scored the winning run in the bottom of the 12th. He went 2-for-3 in the finale (4/29) with a run scored as well. In the series against UC Irvine (5/11 - 5/13) Ring had four RBIs, including two in each of Northridge’s victories. He hit the game-winning two-run double on Saturday and drove in the winning run with a walkoff single in the bottom of the ninth on Sunday. Ring had a pair of 2-for-3 days with runs scored in the series against UC Davis (5/18 - 5/20).

2011

Nate Ring finished his sophomore season at CSUNwith a .164 batting average in 42 games (10 starts) and had a double and home run with three RBI and six stolen bases. He ended the season with a perfect fielding percentage and added three outfield assists and went 1-for-4 with a run scored as the designated hitter vs. Seattle University (2/19 Gm. 2). He went 0-for-1 in the series against Valparaiso (2/26 - 2/28) and hit his first home run of the year and went 2-for-6 with two runs scored in the win at Lamar (3/6). He walked and scored a run against Sacramento State (3/18 Gm. 2), hit 2-for-3 with a double, RBI and run scored against LMU (3/25), and threw a runner out at home in the bottom of the ninth with one out at Bakersfield (4/10) to help preserve the 2-1 victory. Ring had a pinch-hit single against UC Riverside (5/14) and walked and scored a run as a pinch hitter in the finale, a 9-8 come-from-behind victory (5/15).

2010

Nate Ring started in 28 of the 44 games he competed in and finished with a .306 average on 34 hits in his 111 at-bats. He scored 23 runs, hit 13 doubles and two home runs and stole four bases and hit two sacrifice flies. He had 11 multiple hit games and five multiple RBI games and possessed a hit streak of 11 games, the third longest on the team. He batted 2-for-4, scored for the first time on the season, and hit his first double as a Matador vs. East Carolina (3/10), had a hit and scored twice at LMU (3/12), and went 2-for-4, drove in two Matadors, scored once, and hit his second double of the season at LMU (3/13). He went 2-for-3, scored once, and drove in a run vs. LMU (3/14), went 2-for-4 with two RBI, two doubles, and scored a run vs. Sacramento State (3/26), and batted a perfect 3-for-3, scored twice, and hit another double vs. Sacramento State (3/27). He hit his eighth double of the season vs. UC Irvine (4/2), scored once and had a hit at Pepperdine (4/6, Gm. 2), and went 2-for-4 with a double vs. Cal State Bakersfield (4/10). He went 2-for-3 with a RBI, a double and a stolen base vs. Cal State Bakersfield (4/11), had two hits, including a double, and drove in two runs vs. Cal Poly (4/17), and went 2-for-4, scored a run, and had a career-high three RBI at Pacific (4/23). Ring hit his second home run of the season at Pacific (4/25), batted 2-for-4, hit a double, and scored twice vs. UC Davis (4/30), and hit another double and scored once vs. UC Davis (5/1). He had a career-high seven at-bats at UC Santa Barbara (5/7) and had a hit and drew a walk at Cal State Fullerton (5/30).

MILLENNIUM HIGH SCHOOL

Ring competed for one season on the soccer team and lettered as a forward and played shortstop for coach Sam Mussina during his four years with the Tigers' baseball team. Ring was a two-time First Team All-West Valley award recipient in addition to being named team MVP during his senior year and finished with a .435 batting average and led the team in runs with 51.

CAREER BATTING STATS

Year GP-GS AB  R  H 2B 3B HR RBI BB SO SF SH SB-ATT AVG
2010   44-28 111
23
 34
13
 0  2  16
10  30  2  0   4-6 .306
2011
  42-10
 55  8
  9
 1
 0  1   3
 6  17  0  0   6-7 .164
2012
  48-41 146
24
 39
 9  0  0  18 19
 30
 4  5   9-14
.267
2013
  57-57 214
35
 56
 5  1  4  24 38
 36
 0  3 14-23 .262
Total 191-136
526
90
138
28
 1  7  61 73
113
 6  8 33-50 .262
                             


Recent Games
May 17 at Cal Poly L, 5-1
May 18 at Cal Poly L, 6-2
May 19 at Cal Poly L, 7-2
May 23 Cal State Fullerton L, 5-2
May 24 Cal State Fullerton L, 6-4
May 25 Cal State Fullerton L, 9-6
Statistics category Overall Conf
Games 57 27
Plate appearances 257 127
At Bats 214 105
Runs 35 19
Hits 56 25
Doubles 5 2
Triples 1 1
Home Runs 4 1
Runs Batted In 24 13
Total bases 75 32
Walks 38 18
Hit by pitch 2 2
Strikeouts 36 22
Sacrifice Flies - -
Sacrifice Hits 3 2
Hit into double play 5 2
Stolen Bases 14 7
Caught Stealing 9 4
Batting Average .262 .238
On Base Percentage .378 .360
Slugging Percentage .350 .305
Appearances 0 0
Games started 0 0
Wins 0 0
Losses 0 0
Saves 0 0
Complete Games - -
Shutouts - -
Innings Pitched 0.0 0.0
Hits - -
Runs - -
Earned Runs - -
Walks - -
Strikeouts - -
Strikeouts per Game - -
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 146 88
Put Outs 137 81
Assists 6 4
Errors 3 3
Fielding Percentage .979 .966
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 9 CSUN Alumni T, 0-0 - - - - - - - - - - -
Feb 15 Saint Mary's (CA) W, 5-0 1 1 0 - - - 0 3 - - 1
Feb 16 Saint Mary's (CA) W, 8-3 4 0 1 - - - 0 - - - -
Feb 16 Saint Mary's (CA) L, 8-6 2 1 1 - - 1 1 2 1 - -
Feb 17 Saint Mary's (CA) W, 8-3 4 0 1 - - - 1 - - - -
Feb 19 at CSU Bakersfield   - - - - - - - - - - -
Feb 20 CSU Bakersfield   - - - - - - - - - - -
Feb 22 at Southern California W, 9-4 5 0 3 - - - 0 1 - - -
Feb 23 Southern California L, 6-5 5 0 2 - - - 0 - - - -
Feb 24 at Southern California L, 4-2 2 0 0 - - - 0 2 - - 1
Feb 28 at Washington State L, 2-1 4 0 1 - - - 0 - - - -
Mar 1 at Washington State L, 8-2 5 0 1 - - - 0 - 2 2 -
Mar 2 at Washington State L, 7-4 4 0 1 - - - 0 - 2 - -
Mar 3 at Washington State W, 5-3 3 1 2 - - 1 1 1 1 - 1
Mar 4 at Oregon L, 12-4 3 1 2 1 - - 0 1 1 - 1
Mar 5 at Oregon L, 4-1 3 0 0 - - - 0 1 - - -
Mar 8 at Sacramento State L, 4-3 4 1 2 - - - 1 - - - 1
Mar 9 at Sacramento State W, 5-3 4 1 2 - - - 1 - - 1 -
Mar 10 at Sacramento State L, 9-6 5 2 1 1 - - 1 - - 1 -
Mar 12 UCLA L, 5-4 4 0 0 - - - 0 - 1 - -
Mar 19 CSU Bakersfield L, 5-3 4 0 0 - - - 0 - - - -
Mar 22 Utah Valley University W, 8-2 5 0 3 - - - 0 - - 1 -
Mar 23 Utah Valley University W, 4-3 3 1 1 - - - 1 - - 1 -
Mar 23 Utah Valley University W, 5-4 3 0 0 - - - 0 1 - - -
Mar 24 Utah Valley University W, 3-1 3 0 0 - - - 0 1 - - -
Mar 26 San Diego W, 8-4 5 2 5 1 - - 2 - - 1 -
Mar 28 at Long Beach State W, 10-5 5 1 2 - - - 2 - 1 - -
Mar 29 at Long Beach State L, 14-2 3 1 2 - - - 0 1 - - -
Mar 30 at Long Beach State L, 7-5 4 1 0 - - - 0 - - - -
Apr 1 CSU Bakersfield W, 2-1 4 1 0 - - - 0 - 1 - -
Apr 2 Loyola Marymount L, 9-7 4 0 0 - - - 0 - 1 - -
Apr 5 UC Riverside W, 5-3 4 1 1 - 1 - 2 - 1 - -
Apr 6 UC Riverside W, 3-1 4 0 0 - - - 0 - 1 - -
Apr 7 UC Riverside W, 15-3 4 2 1 - - - 1 1 1 - -
Apr 8 Washington W, 8-7 4 2 1 - - 1 2 1 - - -
Apr 10 at CSU Bakersfield W, 8-5 3 1 1 - - - 0 2 1 - -
Apr 12 at UC Irvine L, 4-3 4 0 0 - - - 0 1 2 - -
Apr 13 at UC Irvine W, 2-1 5 0 1 - - - 0 - 1 - -
Apr 14 at UC Irvine L, 2-0 3 0 1 - - - 0 1 - - -
Apr 19 at Hawai'i W, 4-1 4 2 1 - - - 0 1 2 1 -
Apr 20 at Hawai'i W, 9-4 5 1 2 - - - 0 - 1 - -
Apr 21 at Hawai'i W, 10-5 4 2 3 1 - - 1 1 - - 1
Apr 23 at Loyola Marymount L, 5-0 3 0 0 - - - 0 1 - - -
Apr 26 Pacific W, 6-1 3 1 0 - - - 0 1 - - -
Apr 27 Pacific W, 5-2 2 0 0 - - - 0 1 - - -
Apr 28 Pacific W, 8-7 5 2 2 - - - 1 1 1 2 -
Apr 30 at San Diego W, 6-4 3 1 0 - - - 0 1 2 - -
May 3 at UC Davis W, 9-3 5 1 1 - - - 0 - - 1 1
May 4 at UC Davis W, 8-5 5 0 1 - - - 0 - 1 - -
May 5 at UC Davis W, 10-4 0 0 0 - - - 1 4 - 1 -
May 7 at UCLA W, 4-1 3 0 0 - - - 0 2 1 - -
May 10 UC Santa Barbara L, 6-1 3 1 1 - - 1 1 1 - - -
May 11 UC Santa Barbara L, 6-2 5 0 0 - - - 0 - - - -
May 12 UC Santa Barbara W, 7-1 3 1 0 - - - 0 2 1 1 1
May 17 at Cal Poly L, 5-1 4 0 1 - - - 1 1 2 1 -
May 18 at Cal Poly L, 6-2 4 0 0 - - - 0 - 4 - -
May 19 at Cal Poly L, 7-2 4 0 1 1 - - 1 - 1 - 1
May 23 Cal State Fullerton L, 5-2 4 0 1 - - - 0 - 1 - -
May 24 Cal State Fullerton L, 6-4 4 1 1 - - - 0 1 - - -
May 25 Cal State Fullerton L, 9-6 5 1 2 - - - 2 - 1 - -
Date Opponent Score hbp sf sh tb xbh hdp go fo go/fo pa
Feb 9 CSUN Alumni T, 0-0 - - - - - - - - - -
Feb 15 Saint Mary's (CA) W, 5-0 - - - 0 0 - - 1 - 4
Feb 16 Saint Mary's (CA) W, 8-3 - - - 1 0 - 1 2 0.50 4
Feb 16 Saint Mary's (CA) L, 8-6 - - - 4 1 - - - - 4
Feb 17 Saint Mary's (CA) W, 8-3 - - - 1 0 1 2 1 2.00 4
Feb 19 at CSU Bakersfield   - - - - - - - - - -
Feb 20 CSU Bakersfield   - - - - - - - - - -
Feb 22 at Southern California W, 9-4 - - - 3 0 - - 2 - 6
Feb 23 Southern California L, 6-5 - - - 2 0 - 2 1 2.00 5
Feb 24 at Southern California L, 4-2 - - - 0 0 - 2 - - 4
Feb 28 at Washington State L, 2-1 - - - 1 0 - - 3 - 4
Mar 1 at Washington State L, 8-2 - - - 1 0 - 1 1 1.00 5
Mar 2 at Washington State L, 7-4 - - - 1 0 - 1 - - 4
Mar 3 at Washington State W, 5-3 - - - 5 1 - - - - 4
Mar 4 at Oregon L, 12-4 - - - 3 1 - - - - 4
Mar 5 at Oregon L, 4-1 - - - 0 0 - 1 2 0.50 4
Mar 8 at Sacramento State L, 4-3 - - - 2 0 - 1 1 1.00 4
Mar 9 at Sacramento State W, 5-3 - - - 2 0 1 1 1 1.00 4
Mar 10 at Sacramento State L, 9-6 - - - 2 1 - 1 3 0.33 5
Mar 12 UCLA L, 5-4 - - - 0 0 - 1 2 0.50 4
Mar 19 CSU Bakersfield L, 5-3 - - - 0 0 1 4 - - 4
Mar 22 Utah Valley University W, 8-2 - - - 3 0 - - 2 - 5
Mar 23 Utah Valley University W, 4-3 - - - 1 0 - 1 1 1.00 3
Mar 23 Utah Valley University W, 5-4 - - - 0 0 - 2 1 2.00 4
Mar 24 Utah Valley University W, 3-1 - - - 0 0 - 3 - - 4
Mar 26 San Diego W, 8-4 - - - 6 1 - - - - 5
Mar 28 at Long Beach State W, 10-5 - - - 2 0 - 2 - - 5
Mar 29 at Long Beach State L, 14-2 - - - 2 0 - - 1 - 4
Mar 30 at Long Beach State L, 7-5 1 - - 0 0 1 2 2 1.00 5
Apr 1 CSU Bakersfield W, 2-1 - - - 0 0 - 1 1 1.00 4
Apr 2 Loyola Marymount L, 9-7 - - 1 0 0 - 2 2 1.00 5
Apr 5 UC Riverside W, 5-3 - - - 3 1 - 1 1 1.00 4
Apr 6 UC Riverside W, 3-1 - - - 0 0 - 1 1 1.00 4
Apr 7 UC Riverside W, 15-3 - - - 1 0 - 1 1 1.00 5
Apr 8 Washington W, 8-7 - - - 4 1 - 2 1 2.00 5
Apr 10 at CSU Bakersfield W, 8-5 - - - 1 0 - - - - 5
Apr 12 at UC Irvine L, 4-3 - - - 0 0 - 1 1 1.00 5
Apr 13 at UC Irvine W, 2-1 - - - 1 0 1 2 1 2.00 5
Apr 14 at UC Irvine L, 2-0 - - - 1 0 - - 1 - 4
Apr 19 at Hawai'i W, 4-1 - - - 1 0 - - 1 - 5
Apr 20 at Hawai'i W, 9-4 - - - 2 0 - 1 1 1.00 5
Apr 21 at Hawai'i W, 10-5 - - - 4 1 - - 1 - 5
Apr 23 at Loyola Marymount L, 5-0 - - - 0 0 - 3 - - 4
Apr 26 Pacific W, 6-1 - - - 0 0 - 1 2 0.50 4
Apr 27 Pacific W, 5-2 - - 1 0 0 - 1 2 0.50 4
Apr 28 Pacific W, 8-7 - - - 2 0 - - 1 - 6
Apr 30 at San Diego W, 6-4 - - - 0 0 - 1 - - 4
May 3 at UC Davis W, 9-3 - - - 1 0 - 1 2 0.50 5
May 4 at UC Davis W, 8-5 - - 1 1 0 - 2 2 1.00 6
May 5 at UC Davis W, 10-4 1 - - 0 0 - - - - 5
May 7 at UCLA W, 4-1 - - - 0 0 - 1 1 1.00 5
May 10 UC Santa Barbara L, 6-1 - - - 4 1 - - 1 - 4
May 11 UC Santa Barbara L, 6-2 - - - 0 0 - 1 4 0.25 5
May 12 UC Santa Barbara W, 7-1 - - - 0 0 - 1 1 1.00 5
May 17 at Cal Poly L, 5-1 - - - 1 0 - - 1 - 5
May 18 at Cal Poly L, 6-2 - - - 0 0 - - - - 4
May 19 at Cal Poly L, 7-2 - - - 2 1 - 1 1 1.00 4
May 23 Cal State Fullerton L, 5-2 - - - 1 0 - 2 - - 4
May 24 Cal State Fullerton L, 6-4 - - - 1 0 - 1 2 0.50 5
May 25 Cal State Fullerton L, 9-6 - - - 2 0 - 2 - - 5
Date Opponent Score w l sv ip h r er era bb k hr
Feb 9 CSUN Alumni T, 0-0 - - - - - - - - - - -
Feb 15 Saint Mary's (CA) W, 5-0 0 0 0 0.0 - - - 0.00 - - -
Feb 16 Saint Mary's (CA) W, 8-3 0 0 0 0.0 - - - 0.00 - - -
Feb 16 Saint Mary's (CA) L, 8-6 0 0 0 0.0 - - - 0.00 - - -
Feb 17 Saint Mary's (CA) W, 8-3 0 0 0 0.0 - - - 0.00 - - -
Feb 19 at CSU Bakersfield   - - - - - - - - - - -
Feb 20 CSU Bakersfield   - - - - - - - - - - -
Feb 22 at Southern California W, 9-4 0 0 0 0.0 - - - 0.00 - - -
Feb 23 Southern California L, 6-5 0 0 0 0.0 - - - 0.00 - - -
Feb 24 at Southern California L, 4-2 0 0 0 0.0 - - - 0.00 - - -
Feb 28 at Washington State L, 2-1 0 0 0 0.0 - - - 0.00 - - -
Mar 1 at Washington State L, 8-2 0 0 0 0.0 - - - 0.00 - - -
Mar 2 at Washington State L, 7-4 0 0 0 0.0 - - - 0.00 - - -
Mar 3 at Washington State W, 5-3 0 0 0 0.0 - - - 0.00 - - -
Mar 4 at Oregon L, 12-4 0 0 0 0.0 - - - 0.00 - - -
Mar 5 at Oregon L, 4-1 0 0 0 0.0 - - - 0.00 - - -
Mar 8 at Sacramento State L, 4-3 0 0 0 0.0 - - - 0.00 - - -
Mar 9 at Sacramento State W, 5-3 0 0 0 0.0 - - - 0.00 - - -
Mar 10 at Sacramento State L, 9-6 0 0 0 0.0 - - - 0.00 - - -
Mar 12 UCLA L, 5-4 0 0 0 0.0 - - - 0.00 - - -
Mar 19 CSU Bakersfield L, 5-3 0 0 0 0.0 - - - 0.00 - - -
Mar 22 Utah Valley University W, 8-2 0 0 0 0.0 - - - 0.00 - - -
Mar 23 Utah Valley University W, 4-3 0 0 0 0.0 - - - 0.00 - - -
Mar 23 Utah Valley University W, 5-4 0 0 0 0.0 - - - 0.00 - - -
Mar 24 Utah Valley University W, 3-1 0 0 0 0.0 - - - 0.00 - - -
Mar 26 San Diego W, 8-4 0 0 0 0.0 - - - 0.00 - - -
Mar 28 at Long Beach State W, 10-5 0 0 0 0.0 - - - 0.00 - - -
Mar 29 at Long Beach State L, 14-2 0 0 0 0.0 - - - 0.00 - - -
Mar 30 at Long Beach State L, 7-5 0 0 0 0.0 - - - 0.00 - - -
Apr 1 CSU Bakersfield W, 2-1 0 0 0 0.0 - - - 0.00 - - -
Apr 2 Loyola Marymount L, 9-7 0 0 0 0.0 - - - 0.00 - - -
Apr 5 UC Riverside W, 5-3 0 0 0 0.0 - - - 0.00 - - -
Apr 6 UC Riverside W, 3-1 0 0 0 0.0 - - - 0.00 - - -
Apr 7 UC Riverside W, 15-3 0 0 0 0.0 - - - 0.00 - - -
Apr 8 Washington W, 8-7 0 0 0 0.0 - - - 0.00 - - -
Apr 10 at CSU Bakersfield W, 8-5 0 0 0 0.0 - - - 0.00 - - -
Apr 12 at UC Irvine L, 4-3 0 0 0 0.0 - - - 0.00 - - -
Apr 13 at UC Irvine W, 2-1 0 0 0 0.0 - - - 0.00 - - -
Apr 14 at UC Irvine L, 2-0 0 0 0 0.0 - - - 0.00 - - -
Apr 19 at Hawai'i W, 4-1 0 0 0 0.0 - - - 0.00 - - -
Apr 20 at Hawai'i W, 9-4 0 0 0 0.0 - - - 0.00 - - -
Apr 21 at Hawai'i W, 10-5 0 0 0 0.0 - - - 0.00 - - -
Apr 23 at Loyola Marymount L, 5-0 0 0 0 0.0 - - - 0.00 - - -
Apr 26 Pacific W, 6-1 0 0 0 0.0 - - - 0.00 - - -
Apr 27 Pacific W, 5-2 0 0 0 0.0 - - - 0.00 - - -
Apr 28 Pacific W, 8-7 0 0 0 0.0 - - - 0.00 - - -
Apr 30 at San Diego W, 6-4 0 0 0 0.0 - - - 0.00 - - -
May 3 at UC Davis W, 9-3 0 0 0 0.0 - - - 0.00 - - -
May 4 at UC Davis W, 8-5 0 0 0 0.0 - - - 0.00 - - -
May 5 at UC Davis W, 10-4 0 0 0 0.0 - - - 0.00 - - -
May 7 at UCLA W, 4-1 0 0 0 0.0 - - - 0.00 - - -
May 10 UC Santa Barbara L, 6-1 0 0 0 0.0 - - - 0.00 - - -
May 11 UC Santa Barbara L, 6-2 0 0 0 0.0 - - - 0.00 - - -
May 12 UC Santa Barbara W, 7-1 0 0 0 0.0 - - - 0.00 - - -
May 17 at Cal Poly L, 5-1 0 0 0 0.0 - - - 0.00 - - -
May 18 at Cal Poly L, 6-2 0 0 0 0.0 - - - 0.00 - - -
May 19 at Cal Poly L, 7-2 0 0 0 0.0 - - - 0.00 - - -
May 23 Cal State Fullerton L, 5-2 0 0 0 0.0 - - - 0.00 - - -
May 24 Cal State Fullerton L, 6-4 0 0 0 0.0 - - - 0.00 - - -
May 25 Cal State Fullerton L, 9-6 0 0 0 0.0 - - - 0.00 - - -
Date Opponent Score tc po a e fpct dp sba rcs rcs% pb ci
Feb 9 CSUN Alumni T, 0-0 - - - - - - - - - - -
Feb 15 Saint Mary's (CA) W, 5-0 0 0 0 0 - - - - - - -
Feb 16 Saint Mary's (CA) W, 8-3 2 2 0 0 1.000 - - - - - -
Feb 16 Saint Mary's (CA) L, 8-6 0 0 0 0 - - - - - - -
Feb 17 Saint Mary's (CA) W, 8-3 1 1 0 0 1.000 - - - - - -
Feb 19 at CSU Bakersfield   - - - - - - - - - - -
Feb 20 CSU Bakersfield   - - - - - - - - - - -
Feb 22 at Southern California W, 9-4 1 1 0 0 1.000 - - - - - -
Feb 23 Southern California L, 6-5 1 1 0 0 1.000 - - - - - -
Feb 24 at Southern California L, 4-2 0 0 0 0 - - - - - - -
Feb 28 at Washington State L, 2-1 1 0 1 0 1.000 - - - - - -
Mar 1 at Washington State L, 8-2 3 3 0 0 1.000 - - - - - -
Mar 2 at Washington State L, 7-4 1 1 0 0 1.000 - - - - - -
Mar 3 at Washington State W, 5-3 4 4 0 0 1.000 - - - - - -
Mar 4 at Oregon L, 12-4 3 2 1 0 1.000 - - - - - -
Mar 5 at Oregon L, 4-1 1 1 0 0 1.000 - - - - - -
Mar 8 at Sacramento State L, 4-3 1 1 0 0 1.000 - - - - - -
Mar 9 at Sacramento State W, 5-3 0 0 0 0 - - - - - - -
Mar 10 at Sacramento State L, 9-6 4 4 0 0 1.000 - - - - - -
Mar 12 UCLA L, 5-4 2 2 0 0 1.000 - - - - - -
Mar 19 CSU Bakersfield L, 5-3 1 1 0 0 1.000 - - - - - -
Mar 22 Utah Valley University W, 8-2 3 3 0 0 1.000 - - - - - -
Mar 23 Utah Valley University W, 4-3 2 2 0 0 1.000 - - - - - -
Mar 23 Utah Valley University W, 5-4 3 3 0 0 1.000 - - - - - -
Mar 24 Utah Valley University W, 3-1 2 2 0 0 1.000 - - - - - -
Mar 26 San Diego W, 8-4 4 4 0 0 1.000 - - - - - -
Mar 28 at Long Beach State W, 10-5 4 4 0 0 1.000 - - - - - -
Mar 29 at Long Beach State L, 14-2 2 2 0 0 1.000 - - - - - -
Mar 30 at Long Beach State L, 7-5 5 5 0 0 1.000 - - - - - -
Apr 1 CSU Bakersfield W, 2-1 1 1 0 0 1.000 - - - - - -
Apr 2 Loyola Marymount L, 9-7 1 1 0 0 1.000 - - - - - -
Apr 5 UC Riverside W, 5-3 5 5 0 0 1.000 - - - - - -
Apr 6 UC Riverside W, 3-1 4 4 0 0 1.000 - - - - - -
Apr 7 UC Riverside W, 15-3 6 6 0 0 1.000 - - - - - -
Apr 8 Washington W, 8-7 3 3 0 0 1.000 - - - - - -
Apr 10 at CSU Bakersfield W, 8-5 2 2 0 0 1.000 - - - - - -
Apr 12 at UC Irvine L, 4-3 2 1 0 1 .500 - - - - - -
Apr 13 at UC Irvine W, 2-1 5 5 0 0 1.000 - - - - - -
Apr 14 at UC Irvine L, 2-0 5 5 0 0 1.000 - - - - - -
Apr 19 at Hawai'i W, 4-1 1 1 0 0 1.000 - - - - - -
Apr 20 at Hawai'i W, 9-4 3 3 0 0 1.000 - - - - - -
Apr 21 at Hawai'i W, 10-5 2 2 0 0 1.000 - - - - - -
Apr 23 at Loyola Marymount L, 5-0 2 2 0 0 1.000 - - - - - -
Apr 26 Pacific W, 6-1 1 0 1 0 1.000 - - - - - -
Apr 27 Pacific W, 5-2 0 0 0 0 - - - - - - -
Apr 28 Pacific W, 8-7 2 1 0 1 .500 - - - - - -
Apr 30 at San Diego W, 6-4 6 6 0 0 1.000 - - - - - -
May 3 at UC Davis W, 9-3 4 3 1 0 1.000 - - - - - -
May 4 at UC Davis W, 8-5 3 3 0 0 1.000 - - - - - -
May 5 at UC Davis W, 10-4 5 5 0 0 1.000 - - - - - -
May 7 at UCLA W, 4-1 3 3 0 0 1.000 - - - - - -
May 10 UC Santa Barbara L, 6-1 4 3 1 0 1.000 - - - - - -
May 11 UC Santa Barbara L, 6-2 1 1 0 0 1.000 - - - - - -
May 12 UC Santa Barbara W, 7-1 3 3 0 0 1.000 - - - - - -
May 17 at Cal Poly L, 5-1 4 4 0 0 1.000 - - - - - -
May 18 at Cal Poly L, 6-2 2 2 0 0 1.000 - - - - - -
May 19 at Cal Poly L, 7-2 5 4 0 1 .800 - - - - - -
May 23 Cal State Fullerton L, 5-2 3 3 0 0 1.000 - - - - - -
May 24 Cal State Fullerton L, 6-4 4 4 0 0 1.000 - - - - - -
May 25 Cal State Fullerton L, 9-6 3 2 1 0 1.000 - - - - - -
  g ab r h 2b 3b hr rbi bb k sb cs avg obp slg
2012-13 57 214 35 56 5 1 4 24 38 36 14 9 .262 .378 .350
Total 57 214 35 56 5 1 4 24 38 36 14 9 .262 .378 .350
  g hbp sf sh tb xbh hdp go fo go/fo pa
There was a problem with a Velocity script
Pagebio-template
ErrorVM #split: too few arguments to macro. Wanted 4 got 3 at bio-template[line 178, column 5]
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: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE
8: #set ($bioObject = $page.getDataAsObject())
9: #set ($statsURL = $bioObject.statsURL)
10: 
11: #if ($statsURL.length() > 0)
12:   $website.includeAgain("${statsURL}?tmpl=bio-stats-template")
13:   ## various settings to get the variables set
14:   #set ($events = $request.getAttribute("bio_events"))
15:   #set ($seasons = $request.getAttribute("bio_seasons"))
16:   #set ($career = $request.getAttribute("bio_career"))
17:   #set ($labels = $request.getAttribute("bio_labels"))
18:   #set ($briefs = $request.getAttribute("bio_briefs"))
19:   #set ($gamelogs = $request.getAttribute("bio_gamelogs"))
20:   #set ($splits = $request.getAttribute("bio_splits"))
21:   #set ($statPosition = $request.getAttribute("bio_position"))
22:   #set ($positions = $request.getAttribute("bio_positions"))
23:   #set ($playerId = $request.getAttribute("bio_player_id"))
24:   #set ($highlights = $request.getAttribute("bio_highlights"))
25:   #set ($formats = $request.getAttribute("bio_formats"))
26:   #set ($gamelogsCategoriesLabels = $request.getAttribute("bio_gamelogs_labels"))
27:   #set ($briefsCategoriesLabels = $request.getAttribute("bio_briefs_labels"))
28:   #set ($gamesResults = $request.getAttribute("bio_games_results"))
29:   #set ($monthsPlayed = $request.getAttribute("bio_months_played"))
30: #end
31: 
32: #set ($pos = "")
33: #set ($pos = $attributes.get("position"))
34: #set ($pos = $statPosition)
35: #set ($posVec = $pos.split("/"))
36: #set ($pos = $posVec[0])
37: #set ($pos = $pos.toLowerCase())
38: #set ($statPos = $positions.get($pos))
39: #set ($paramPos = $request.getParameter("pos"))
40: 
41: #set ($playerId = $attributes.get("playerId"))
42: #set ($stats = $splits.overall)
43: #set ($highlights = $highlights.get($statPos))
44: 
45: #set ($showHighlights = true)
46: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false)
47: 	#set ($showHighlights = false)
48: #end
49: 
50: #set ($showCareer = $wiki.valid() && $seasons)
51: #if ("yes" == $options.get("stats_show_career") && $seasons)
52:   #set ($showCareer = true)
53: #end
54: 
55: #set ($hasEvents = $events.size() > 0)
56: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
57: #set ($htmlStatsURL = "${page.url}-stats")
58: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
59: #set ($bioBriefURL = "${page.url}-brief")
60: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
61: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1))
62: #if ($options.get("bio_hide_roster") == true)
63:   #set ($showRoster = false)
64: #end
65: 
66: #set ($view = "")
67: #if ($hasSynopsis || $hasBioBrief)
68:   #set ($view = "bio")
69: #elseif ($statsURL.length() > 0)
70:   #set ($view = "profile")
71: #elseif ($hasHTMLStats)
72:   #set ($view = "htmlstats")
73: #end
74: 
75: #if ($options.get("bio_default_view").length() > 0)
76:   #set ($checkView = $options.get("bio_default_view"))
77: #end
78: 
79: #if ($request.getParameter("view"))
80:   #set ($checkView = $request.getParameter("view"))
81: #end
82: 
83: #if ($checkView == "profile" && $statsURL.length() > 0)
84:   #set ($view = "profile")
85: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
86:   #set ($view = "bio")
87: #elseif ($checkView == "gamelog" && $statsURL.length() > 0)
88:   #set ($view = "gamelog")
89: #elseif ($checkView == "career" && $showCareer)
90:   #set ($view = "career")
91: #elseif ($checkView == "splits" && $statsURL.length() > 0)
92:   #set ($view = "splits")
93: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
94:   #set ($view = "htmlstats")
95: #end
96: 
97: #macro (gamelogData $p)
98: 
99: #set ($p = $positions.get($p))
100: #set ($gamelogs = $gamelogs.get($p))
101: 	
102: #if ($hasEvents)
103: <div class="stats-box full clearfix">
104: <div class="scrollable">
105: <div>
106: <table>
107:   <tr class="thead">
108:     <th class="text">Date</th>
109:     <th class="pinned-col text">Opponent</th>
110:     <th>Score</th>
111:     #foreach ($gamelog in $gamelogs)
112:       <th>$gamelog</th>
113:     #end
114:   </tr>
115: #foreach ($event in $events)
116:   <tr>
117:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
118:     <td class="pinned-col text">
119:       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
120:       $event.event.opponent.name
121:     </td>
122:     <td>
123:     #if ($event.event.statusCode >= 0)
124:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
125:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
126:       #else
127:       ${event.event.APResult}
128:       #end
129:     #else &nbsp; #end
130:     </td>
131:     #foreach ($gamelog in $gamelogs.keySet())
132:       #set ($value = "-")
133:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
134:       <td>$value</td>
135:     #end
136:   </tr>
137: #end
138: </table>
139: </div>
140: </div> ## scrollable
141: </div> ## stats-box
142: #end
143: 
144: #end ## macro gamelogData
145: 
146: #macro (split $statPosBriefs $label $stats)
147:   <tr>
148:     <td class="pinned-col text">${label}</td>
149:     #foreach ($brief in $statPosBriefs.keySet())
150:       #set ($value = "-")
151:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
152:       <td>#if ($value.length() > 0) $value #else - #end</td>
153:     #end
154:   </tr>
155: #end
156: 
157: #macro (careerData $p)
158: #set ($p = $positions.get($p))
159: #set ($statPosBriefs = $briefs.get($p))
160: 
161: <div class="stats-box full clearfix">
162: <div class="scrollable">
163: <div>
164: <table>
165: <tr class="thead">
166:   <th class="pinned-col">&nbsp;</th>
167:   #foreach ($brief in $statPosBriefs)
168:     <th>$brief</th>
169:   #end
170: </tr>
171: 
172: #set ($careerTotals = $request.getAttribute("careerTotals"))
173: #set ($careerMap = $request.getAttribute("careerMap"))
174: 
175: #foreach ($season in $seasons)
176:   ## Check if we did not get stats for this season
177:   #if ($careerMap.get($season.seasonName))
178:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName])
179:   #elseif ($wiki.valid())
180:     <tr>
181:       <td class="text">${season.seasonName}</td>
182:       <td colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
183:     </tr>
184:   #end
185: #end
186: 
187: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
188: 
189: </table>
190: </div>
191: </div> ## scrollable
192: </div> ## stats-box
193: 
194: #end ## macro careerData
195: 
196: #macro (splitsData $p)
197: 
198: #set ($p = $positions.get($p))
199: #set ($statPosBriefs = $briefs.get($p))
200: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1))	
201: 	
202: #if ($statPosBriefs.size() > 0)
203: <div class="stats-box full clearfix">
204: <div class="scrollable">
205: <div>
206: <table>
207:   <tr>
208:     <th class="pinned-col">&nbsp;</th>
209:     #foreach ($brief in $statPosBriefs)
210:       <th>$brief</th>
211:     #end
212:   </tr>
213: 
214: #split($statPosBriefs, "Total", $splits.overall)
215: #split($statPosBriefs, "Conference", $splits.conference)
216: #split($statPosBriefs, "Exhibition", $splits.exhibition)
217: 
218: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
219: 
220: #split($statPosBriefs, "Home", $splits.home)
221: #split($statPosBriefs, "Away", $splits.away)
222: #split($statPosBriefs, "Neutral", $splits.neutral)
223: 
224: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
225: 
226: #foreach($gameResult in $gamesResults.entrySet())
227:   #if ($gameResult.key == "wins")
228:     #set ($splitGameResult = $splits.inWins)
229:   #elseif ($gameResult.key == "losses")
230:     #set ($splitGameResult = $splits.inLosses)
231:   #elseif ($gameResult.key == "ties")
232:     #set ($splitGameResult = $splits.inTies)
233:   #end
234: 	
235:   #split($statPosBriefs, $gameResult.value, $splitGameResult)
236: #end
237: 
238: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
239: 
240: #if ($monthsPlayed and $monthsPlayed.size() > 0)
241:   #foreach($month in $monthsPlayed)
242:     #if ($month == 'January')
243:       #set ($splitMonth = $splits.january)
244:     #elseif ($month == 'February')
245:       #set ($splitMonth = $splits.february)
246:     #elseif ($month == 'March')
247:       #set($splitMonth = $splits.march)
248:     #elseif ($month == 'April')
249:       #set($splitMonth = $splits.april)
250:     #elseif ($month == 'May')
251:       #set ($splitMonth = $splits.may)
252:     #elseif ($month == 'June')
253:       #set ($splitMonth = $splits.june)
254:     #elseif ($month == 'July')
255:       #set($splitMonth = $splits.july)
256:     #elseif ($month == 'August')
257:       #set ($splitMonth = $splits.august)
258:     #elseif ($month == 'September')
259:       #set($splitMonth = $splits.september)
260:     #elseif ($month == 'October')
261:       #set($splitMonth = $splits.october)
262:     #elseif ($month == 'November')
263:       #set ($splitMonth = $splits.november)
264:     #elseif ($month == 'December')
265:       #set($splitMonth = $splits.december)
266:     #end
267: 		
268:     #split($statPosBriefs, $month, $splitMonth)
269:   #end ## foreach
270: #end
271: </table>
272: </div>
273: </div> ## scrollable
274: </div> ## srollable-table
275: #end
276: 
277: #end ## macro splitsData
278: 
279: #macro (printRecentGames)
280: #if ($hasEvents)
281: <table>
282:   <tr class="thead"><th colspan="3">Recent Games</th></tr>
283:   
284: #set ($eventEnd = -1)
285: #foreach ($event in $events)
286:   #if ($event.event.result.resolved)
287:     #set ($eventEnd = $velocityCount)
288:   #end
289: #end
290: 
291: #set ($eventStart = $eventEnd - 5)
292: #if ($eventStart < 0) #set ($eventStart = 0) #end
293: 
294: #foreach ($event in $events)
295: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
296:   <tr>
297:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
298:     <td class="text">
299:       #if ($event.event.neutralSite.length() > 0) vs.
300:       #elseif (!$event.event.home) at
301:       #else ## nothing for a home game
302:       #end
303:       $event.event.opponent.name
304:     </td>
305:     <td class="text">
306:     #if ($event.event.statusCode >= 0)
307:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
308:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
309:       #else
310:       ${event.event.APResult}
311:       #end
312: 	#end
313: 	</td>
314:   </tr>
315: #end ## if
316: #end
317: </table>
318: #end
319: #end ## macro printRecentGames
320: 
321: #macro (printCategories $briefCategoryLabels $v)
322: 	
323: <div class="tab-container secondary clearfix">
324: <div class="tab-nav" data-jscroll="true" data-momentum="false">
325: <div>
326: <ul class="clearfix">
327: #foreach($briefCat in $briefCategoryLabels.entrySet())
328:   #set ($briefCatLabel = $briefCat.value)
329:   #set ($briefCatKey = $briefCat.key)
330: 		
331:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
332:     #set ($briefCatLabel = "Defence")
333:   #end	
334: 	
335:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}">$briefCatLabel</a></li>
336: #end
337: </ul>
338: </div>
339: </div>
340: <div class="tab-panels">
341: #foreach ($briefCat in $briefCategoryLabels.entrySet())
342:   #set ($class = "tab-panel clearfix")
343:   #if ($briefCat.key == $activePos)
344:     #set ($class = "tab-panel active clearfix")
345:   #end
346:   <div class="$class">
347:     <div class="stats-wrap clearfix">
348:     #if ($v == "splits")
349:       #splitsData($briefCat.key)
350:     #elseif ($v == "career")
351:       #careerData($briefCat.key)
352:     #end
353:     </div>
354:   </div>
355: #end	
356: </div>
357: </div> ## tab-container
358: 
359: #end ## macro printCategories
360: 	
361: #macro (printHeadshot)
362: 
363: #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
364: 
365: #if ($headshot.url)
366:   <img src="$headshot.url?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
367: #else
368:   #if ($website.exists("/images/setup/headshot_default.jpg"))
369:     <img src="/images/setup/headshot_default.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
370:   #else
371:     <img src="/info/images/default_headshot.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
372:   #end
373: #end
374: #end ## macro printHeadshot
375: 	
376: #macro (printBioInfo)
377: <div class="player-name">
378:   #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
379:   <span class="name">$fullName</span>
380: </div>	
381: 	
382: <table>
383: #foreach ($i in [1..10])
384:   #set ($stickyKey = "bio_custom${i}_sticky")
385:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
386:     <tr>
387:       <td class="label">$options.get($stickyKey): </td>
388:       <td class="value">$!attributes.get("custom${i}")</td>
389:     </tr>
390:   #end
391: #end
392: 
393: #foreach ($field in $fields)
394:   #if (!$field.key.startsWith("custom"))
395:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
396:       #if ($field.key == "phone1" || $field.key == "phone2")
397:         <tr>
398:           <td class="label">Phone: </td>
399:           <td class="value">$!attributes.get($field.key)</td>
400:         </tr>
401:       #elseif ($field.key == "email_address")
402:         #set ($emailAdd = $attributes.get($field.key))
403:         <tr>
404:           <td class="label">Email: </td>
405:           <td class="value"><a href="mailto:${emailAdd}">$emailAdd</a></td>
406:         </tr>
407:       #else
408:         <tr>
409:           <td class="label">$field.value: </td>
410:           <td class="value">$!attributes.get($field.key)</td>
411:         </tr>
412:       #end
413:     #end
414:   #end
415: #end
416: 
417: #foreach ($i in [1..10])
418:   #set ($customKey = "bio_custom${i}")
419:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
420:     <tr>
421:       <td class="label">$options.get($customKey): </td>
422:       <td class="value">$!attributes.get("custom${i}")</td>
423:     </tr>
424:   #end
425: #end
426: </table>
427: #end ## macro printBioInfo
428: 	
429: #macro (printHighlights)
430: #foreach ($highlight in $highlights.keySet())
431:   #set ($value = "-")
432:   #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
433:   <div class="stat clearfix">
434:     <span class="stat-title">$!highlights.get($highlight)</span>
435:     <span class="stat-value">$value</span>
436:   </div>
437: #end
438: #end ## macro printHighlights
439: 	
440: #macro (printRoster)
441: #if ($page.contentType == "loki/bio")
442:   #set ($headlinesFeaturedSize = 0)
443:   #foreach ($featuredPage in $page.headlinesFeatured)
444:     #if ($featuredPage.contentType == "loki/headlines")
445:       #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
446:     #end
447:   #end
448:   #if ($headlinesFeaturedSize > 0)
449:     <select class="roster-select-list">
450:       <option selected="selected">Related Bios</option>
451:       #foreach ($featuredPage in $page.headlinesFeatured)
452:         #if ($featuredPage.contentType == "loki/headlines")
453:           $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
454: 		#end
455: 	  #end
456:     </select>
457:   #end
458: #elseif ($page.contentType == "loki/bio-network")
459:   #set ($relatedPlayers = $page.sectionPage.children)
460:   #set ($teamNames = {})
461:   #foreach ($relatedPlayer in $relatedPlayers)
462:     #if ($relatedPlayer.contentType == "loki/bio-network")
463:       #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
464:       #set ($teamName = $relatedPlayerObj.get("team"))
465:       #if ($teamName.length() > 0)
466:         #if (!$teamNames.containsValue($teamName))
467:           $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
468:         #end
469:       #end
470:     #end
471:   #end
472: 
473:   <select class="roster-select-list">
474:   #foreach ($i in [1..$teamNames.size()])
475:     #if ($teamNames.size() > 1)
476:       <optgroup label="$teamNames.get($i)">
477:     #end
478: 				
479:     #foreach ($relatedPlayer in $relatedPlayers)
480:       #if ($relatedPlayer.contentType == "loki/bio-network")
481:         #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
482:         #set ($teamName = $relatedPlayerObj.get("team"))
483:         #if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
484:           #set ($playerFirstName = $relatedPlayerObj.get("first_name"))
485:           #set ($playerLastName = $relatedPlayerObj.get("last_name"))
486:           #if ($page.url == $relatedPlayer.url)
487:             <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option>
488:           #else
489:             <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
490:           #end
491:         #end
492:       #end
493:     #end
494: 				
495:     #if ($teamNames.size() > 1)
496:       </optgroup>
497:     #end
498:   #end
499:   </select>
500: #end
501: #end ## macro printRoster
502: 	
503: ################################################## END MACROS  #############################################################
504: 
505: #if ($attributes.get("full_name"))
506:   #set ($fullName = $attributes.get("full_name"))
507: #else
508:   #set ($firstName = $!attributes.get("first_name"))
509:   #set ($lastName = $!attributes.get("last_name"))
510:   #set ($fullName = "${firstName} ${lastName}")
511: #end
512: 
513: ## FULL ROSTER
514: <div class="bio-wrap clearfix">
515: 	
516: ## RELATED BIOS
517: #if ($showRoster)
518:   <div class="related-bios clearfix">#printRoster</div>
519: #end
520:   
521: <div class="head clearfix">
522: <div class="clearfix">
523:     
524: <div class="player-about clearfix">
525:   <div class="player-headshot">#printHeadshot</div>
526:   <div class="player-info">#printBioInfo</div>
527: </div>
528: 
529: #if ($highlights && $showHighlights)
530:   <div class="player-highlights clearfix">#printHighlights</div>
531: #end
532: 
533: </div>
534: </div> ## head
535: 
536: #if ($view.length() > 0)
537: <div class="body clearfix">
538:   
539: <div class="tab-container primary clearfix">
540:   
541: <div class="tab-nav" data-jscroll="true" data-momentum="false">
542:   <div>
543:   <ul class="clearfix">
544:   #if ($hasSynopsis || $hasBioBrief)
545:     <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li>
546:   #end
547: 		
548:   #if ($statsURL.length() > 0)
549:     <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li>
550:     <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li>
551:     #if ($showCareer)
552:       <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li>
553:     #end
554:     <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li>
555:   #end
556: 
557:   #if ($hasHTMLStats)
558:     <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li>
559:   #end
560:   </ul>
561:   </div>
562: </div> ## tab-nav
563: 
564: <div class="tab-panels clearfix">
565: 	
566: ## BIO
567: #if ($hasSynopsis || $hasBioBrief)
568: 
569: #set ($class = "tab-panel clearfix")
570: #if ($view == "bio")
571:   #set ($class = "tab-panel active clearfix")
572: #end
573: <div class="${class}">
574: 
575: <div class="synopsis clearfix">
576: #if ($hasSynopsis)
577:   $synopsis
578: #elseif ($hasBioBrief)
579:   $website.include("$bioBriefURL")
580: #end
581: </div>
582: 
583: </div> ## tab-panel
584: #end 
585: ## BIO
586: 
587: ## STATS
588: #if ($statsURL.length() > 0)
589: 
590: ## PROFILE
591: #set ($class = "tab-panel clearfix")
592: #if ($view == "profile")
593:   #set ($class = "tab-panel active clearfix")
594: #end
595: <div class="${class}">
596: <div class="stats-wrap clearfix">
597: 
598: ## LAST SIX GAMES
599: <div class="stats-box half">
600: #printRecentGames()
601: </div>
602: 
603: ## RANKING
604: <div class="stats-box half">
605: #if ($statPos.length() > 0)
606:   $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
607: #end
608: </div>
609: 
610: </div> ## stats-wrap	
611: </div> ## tab-content
612: ## PROFILE
613: 
614: ## GAMELOG
615: #set ($class = "tab-panel clearfix")
616: #if ($view == "gamelog")
617:   #set ($class = "tab-panel active clearfix")
618: #end
619: 
620: #set ($activePos = $statPos)
621: #if ($view == "gamelog" && $paramPos.length() > 0)
622:   #if ($positions.get($paramPos).length() > 0)
623:     #set ($activePos = $positions.get($paramPos))
624:   #end
625: #end
626: 
627: <div class="${class}">
628: 
629: #if ($gamelogsCategoriesLabels)
630: <div class="tab-container secondary clearfix">
631:   <div class="tab-nav" data-jscroll="true" data-momentum="false">
632:     <div>
633:     <ul class="clearfix">
634:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
635:       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
636: 		
637:       #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
638:         #set($gamelogsCatLabelVal = "Defence")
639:       #end
640: 
641:       <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}">$gamelogsCatLabelVal</a></li>
642:     #end
643:     </ul>
644: 	</div>
645:   </div>
646:   <div class="tab-panels">
647:   #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
648:     #set ($class = "tab-panel clearfix")
649:     #if ($gamelogsCatLabel.key == $activePos)
650:       #set ($class = "tab-panel active clearfix")
651:     #end
652:     <div class="${class}">
653:       <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
654: 	</div>
655:   #end   
656:   </div>
657: </div>	
658: #else
659:   <div class="stats-wrap clearfix">#gamelogData($pos)</div>
660: #end
661: 	
662: </div> ## tab-panel
663: ## GAMELOG
664: 
665: 
666: ## CAREER
667: #if ($showCareer)
668: 
669: #set ($activePos = $statPos)
670: #if ($view == "career" && $paramPos.length() > 0)
671:   #if ($positions.get($paramPos).length() > 0)
672:     #set ($activePos = $positions.get($paramPos))
673:   #end
674: #end
675: 
676: #set ($class = "tab-panel clearfix")
677: #if ($view == "career")
678:   #set ($class = "tab-panel active clearfix")
679: #end
680: 
681: <div class="${class}">
682: 
683: #if ($briefsCategoriesLabels)
684:   #printCategories($briefsCategoriesLabels "career")
685: #else
686:   <div class="stats-wrap clearfix">#careerData($activePos)</div>
687: #end		
688: 
689: </div> ## tab-panel
690: #end
691: ## CAREER
692: 
693: ## SPLITS
694: #set ($class = "tab-panel clearfix")
695: #if ($view == "splits")
696: 	#set ($class = "tab-panel active clearfix")
697: #end
698: 
699: #set ($activePos = $statPos)
700: #if ($view == "splits" && $paramPos.length() > 0)
701:   #if ($positions.get($paramPos).length() > 0)
702:     #set ($activePos = $positions.get($paramPos))
703:   #end
704: #end
705: 
706: <div class="${class}">
707: 
708: #if ($briefsCategoriesLabels)
709:   #printCategories($briefsCategoriesLabels "splits")
710: #else
711:   <div class="stats-wrap clearfix">#splitsData($pos)</div>
712: #end		
713: 
714: </div> ## tab-panel
715: ## SPLITS
716: 
717: #end 
718: ## STATS
719: 
720: ## HTML STATS
721: #if ($hasHTMLStats)
722: 
723: #set ($class = "tab-panel clearfix")
724: #if ($view == "htmlstats")
725:   #set ($class = "tab-panel active clearfix")
726: #end
727: <div class="${class}">
728:   <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
729: </div>
730: 
731: #end
732: ## HTML STATS
733: 	
734: </div> ## tab-panels
735: </div> ## tab-container
736: </div> ## body
737: #end
738: 
739: $wiki
740: </div> ## ends bio-wrap

Text-Only Website