1 - Tyler Harvey
Tyler Harvey
Height: 6-4
Weight: 185
Year: Jr.
Hometown: Torrance, Calif.
High School: Bishop Montgomery HS '11
Position: G
Experience: 2L*
gp 31
pts/g 21.8
fg % 44.3
3pt % 43.3
ft % 89.7
reb/g 4.2
a/g 2.7

Hayford on Harvey: “Tyler has had two tremendous seasons as an underclassman, and we only expect that to continue in his junior year. He is an outstanding shooter and scorer, and is a great teammate and leader of our team.”

Career: Entering the 2014-15 season, Harvey currently ranks sixth in school history with a 15.88 career scoring average, has the school’s fifth-best 3-point field goal percentage mark (43.3 percent) and the eighth-most total treys (132). With two seasons to play, he already is only 52 3-pointers away from the school record, with senior teammate Parker Kelly only 39 away. He enters his junior season with string of 25-straight free throws made in a row. He has now averaged 20.7 points per game in his last 39 games as an Eagle after averaging 1.3 points in his first 13 outings. In fact, his one-year improvement by 14.7 points per game ranked third in the nation. In EWU’s last eight games of the 2012-13 season, he scored 132 points (16.5 average) on 55 percent shooting from the field (52-of-94, including 20-of-44 3-point attempts). In the first 13 games he played in the 2012-13 season, Harvey scored just 17 points (by contrast, in the first 13 games in the 2013-14 season he scored 261 with an average of 20.1 per game). He has scored in double figures in 37 of EWU’s last 39 games, with a streak of 23 snapped versus North Dakota (1/30/14). He has one career double-double, and has led EWU in scoring in 25 games, assists nine times and steals on 21 occasions.

2014:15:
He will serve as one of the team’s co-captains in the 2014-15 season (along with Venky Jois and Parker Kelly). He was selected as the preseason MVP by Lindy’s Magazine, and was also chosen as a first team All-Big Sky selection and the best shooter in the league by Lindy’s. In addition, he was named to preseason All-Big Sky Conference teams by Athlon Magazine (one of only five players selected) and College Sports Madness (first team). Is expected to be an Academic All-America candidate for the Eagles this year based on his success on the court and in the classroom.

2013-14:
Harvey earned a variety of honors following his record-breaking season for the Eagles, including first team All-Big Sky Conference and second team NABC All-District 6 honors. His he was EWU’s first player honored on the NABC team since Rodney Stuckey in 2007. He was also selected by College Sports Madness to its All-BSC second team and earned Big Sky All-Academic honors. Twice he earned Big Sky Conference Player of the Week accolades, and once earned the same honor from College Sports Madness. Earlier in the season, he was named to the All-Tournament team at the 2K Sports Classic in Irvine, Calif., and was an EWU Scholar-Athlete of the Month. Harvey finished with a school-record 109 3-pointers on the season, giving him sole possession of second on the league’s all-time list. Former BSC record holder Shannon Taylor from Eastern is now fourth on the list with 103 in the 1998-99 season, and the league record is 124 set by Stephen Sir of NAU in 2006-07. Harvey’s average of 3.52 per game finished fourth in league history. Harvey was the Big Sky’s leading scorer with a 21.8 average, and ranked in the top 13 nationally in four categories -- scoring (8th), 3-pointers per game (6th, 3.52), 3-point shooting percentage (16th, 43.3) and free throw percentage (8th, 89.7). His combined ranking of 22nd in 3-pointers per game (6th, 3.52) and 3-point shooting percentage (16th, 43.3) was third in NCAA Division I. Harvey also led the league in 3-pointers made per game (3.5) and free throw percentage (.897), and was fourth in 3-point field goal percentage (.433). Harvey set the school’s single season record for 3-pointers made when he had seven against Northern Colorado (2/27/14). He tied a school record with 10 3-pointers in an earlier meeting against Northern Colorado (2/1/14), and had a total of 69 points and 17 treys in a season sweep over UNC for the Eagles. Harvey made a 3-pointer that helped send the first meeting against the Bears into overtime, then made his record-tying 10th trey to open the extra period and give EWU the lead for good. He hit nine 3-pointers en route to a 37-point outing in EWU’s 84-65 win over Northern Arizona (2/15/14), to go along with performances of 36 and 38 he had in the final 14 games of the season. Now with three of the top 17 performances in school history, only Rodney Stuckey (45, 38, 36, 36) and David Peed (44, 37, 37) have accomplished that feat. He also became a dead-eye free throw shooter for the Eagles, after having made only 43.5 percent of his free throws as a freshman. In the 2013-14 season he led the Big Sky in games overall (.897) and was  second in league play (.907). He made 118-of-128 (.922) in his last 16 outings, concluding the season with a string of 25 in a row that included a season-ending 12-of-12 performance versus Weber State on March 8. He also had a Big Sky and EWU record 20-of-20 versus Southern Utah on Jan. 23, a 13-of-13 effort at Northern Arizona on Jan. 16, an 11-of-11 effort at Montana on Feb. 8 and two other 8-of-8 efforts. At one time during the season he made 22-straight, then ended the season with a string of 25 in a row. He scored in double figures in 30 of 31 games with a double-double versus Idaho State (3/6/14) with 22 points and 10 rebounds. He led Eastern in scoring in 21 games, assists seven times and steals on 16 occasions.

2012-13:
Was one of a school-record nine Eagles to be selected to the Big Sky Conference All-Academic team. Finishing the season as the hottest Eagle, Harvey scored 132 points (16.5 average) on 55 percent shooting from the field (52-of-94, including 20-of-44 3-point attempts) in EWU’s last eight games. In the first 13 games he played in the 2012-13 season, Harvey scored just 17 points. He burst onto the scene at Northern Arizona (2/9/13) when EWU was down by 18 with 7:35 left to play in regulation. He came off the bench to score 14 points in the last 8:31 of the game and rallied the Eagles to an improbable 77-74 overtime victory in Flagstaff, Ariz. Eastern trailed by 13 when Harvey entered the game for the second time with 3:42 left. He never came out after that, and scored eight points in regulation and six in overtime.

2011-12:
Redshirted.

High School: Graduated from Bishop Montgomery High School in 2011. Earned first-team All-CIF Southern Section Division 3AA honors as a senior after earning second-team accolades as a junior. Harvey averaged 18 points and three steals per game as a senior to also earn all-area honors. He also earned first-team All-Del Rey League honors twice, leading the Knights to a league title his senior season with an 8-0 record. Bishop Montgomery finished the 2010-11 season 20-7 and advanced to the second round of the CIF Playoffs (Southern Section Division 3AA). Earlier in the year, he was an All-Tournament selection (National Division) at the 2010 National Prep Classic in Santa Maria, Calif. Bishop Montgomery finished the tournament 3-2.

Personal:
Born July 17, 1993, in Torrance, Calif. Communications studies major with a 3.63 grade point average. Son of Frank Harvey and Susan Raya. His father is a collegiate basketball official. While in high school, Tyler grew 11 inches.

 

 

 

 

 

Total

 

 

3-Point

 

 

F-Throw

 

 

Rebounds

 

 

 

 

 

 

 

 

 

 

 

Year

GP

GS

Min

Avg

FG

FGA

Pct

FG

FGA

Pct

FT

FTA

Pct

Off

Def

Tot

Avg

PF

FO

Ast

TO

Blk

Stl

Pts

Avg

2012-13

21

4

295

14.0

58

111

.523

23

53

.434

10

23

.435

8

40

48

2.3

31

1

31

21

3

15

149

7.1

2013-14

31

31

1158

37.4

206

465

.443

109

252

.433

156

174

.897

21

108

129

4.2

71

0

84

66

9

35

677

21.8

TOTAL

52

35

1453

27.9

264

576

.458

132

305

.433

166

197

.843

29

148

177

3.4

102

1

115

87

12

50

826

15.9


SINGLE-GAME HIGHS:
Points: 38, Northern Colorado -- 2/1/14
Rebounds: 10, Idaho State -- 3/6/14
Assists: 8, at Montana State -- 02/06/14 ; North Dakota -- 3/2/13 ; Idaho State -- 3/6/14
Steals: 4, at Montana State -- 02/06/14 ; Idaho State -- 3/6/14 ; Weber State -- 3/8/14
Blocks: 3, Sam Houston State -- 2/23/13
FG made: 13, Northern Arizona -- 2/15/14
FG attempts: 22, at Washington -- 11/17/13 ; Northern Arizona -- 2/15/14
3FG made: 10, Northern Colorado -- 2/1/14
3FG attempts: 16, Northern Arizona -- 2/15/14
FT made: 20, Southern Utah -- 1/23/14
FT attempts: 20, Southern Utah -- 1/23/14

Recent Games
Feb 22 at Southern Utah W, 85-74
Feb 24 Portland St. L, 87-76
Feb 27 at Northern Colo. W, 80-66
Mar 1 at North Dakota L, 69-67
Mar 6 Idaho St. W, 77-69
Mar 8 Weber St. L, 82-78
Statistics category Overall Conf
Games - -
Games started - -
Minutes - -
Minutes per game - -
FG - -
FG Pct - -
3PT - -
3PT Pct - -
FT - -
FT Pct - -
Off rebounds - -
Def rebounds - -
Total rebounds - -
Rebounds per game - -
Personal fouls - -
Disqualifications - -
Assists - -
Turnovers - -
Assist to turnover ratio - -
Steals - -
Blocks - -
Points - -
Points per game - -
Points per 40 min - -
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 10 Pacific (Ore.) W, 87-58 1 34 5-11 45.5 3-8 37.5 0-0 - 13
Nov 17 at Washington L, 92-80 1 39 10-22 45.5 7-13 53.8 1-2 50.0 28
Nov 19 Walla Walla W, 82-44 1 26 5-10 50.0 5-10 50.0 0-0 - 15
Nov 22 vs. Boston U. W, 80-68 1 38 7-13 53.8 5-7 71.4 2-2 100.0 21
Nov 23 vs. LIU Brooklyn W, 102-70 1 33 6-10 60.0 0-1 0.0 2-4 50.0 14
Nov 24 at UC Irvine L, 81-58 1 35 6-13 46.2 2-7 28.6 7-7 100.0 21
Nov 29 Seattle W, 82-75 1 40 9-15 60.0 6-9 66.7 6-6 100.0 30
Dec 8 at St. Mary's (Cal.) L, 93-65 1 37 7-13 53.8 2-6 33.3 4-5 80.0 20
Dec 15 UC Irvine L, 70-61 1 40 4-15 26.7 3-9 33.3 4-4 100.0 15
Dec 22 at Seton Hall L, 92-70 1 31 6-13 46.2 4-8 50.0 0-0 - 16
Dec 28 at Connecticut L, 82-65 1 39 7-16 43.8 2-9 22.2 3-4 75.0 19
Jan 2 at Weber St. L, 74-67 1 39 10-17 58.8 4-6 66.7 6-6 100.0 30
Jan 4 at Idaho St. L, 83-72 1 37 6-20 30.0 5-14 35.7 2-3 66.7 19
Jan 9 Montana W, 69-62 1 38 10-21 47.6 4-10 40.0 1-3 33.3 25
Jan 11 Montana St. W, 77-72 1 40 7-16 43.8 5-9 55.6 0-0 - 19
Jan 16 at Northern Ariz. L, 84-65 1 36 5-13 38.5 2-6 33.3 13-13 100.0 25
Jan 18 at Sacramento St. L, 75-64 1 38 3-15 20.0 1-5 20.0 8-10 80.0 15
Jan 23 Southern Utah W, 90-83 1 38 7-9 77.8 2-2 100.0 20-20 100.0 36
Jan 27 at Portland St. L, 92-83 1 39 5-16 31.2 4-9 44.4 4-7 57.1 18
Jan 30 North Dakota L, 73-61 1 32 3-12 25.0 1-8 12.5 0-0 - 7
Feb 1 Northern Colo. W, 94-90 1 41 10-20 50.0 10-15 66.7 8-8 100.0 38
Feb 6 at Montana St. W, 79-50 1 39 5-9 55.6 4-6 66.7 5-6 83.3 19
Feb 8 at Montana L, 82-77 1 40 6-18 33.3 1-8 12.5 11-11 100.0 24
Feb 13 Sacramento St. W, 85-72 1 35 5-10 50.0 3-5 60.0 3-4 75.0 16
Feb 15 Northern Ariz. W, 84-65 1 39 13-22 59.1 9-16 56.2 2-2 100.0 37
Feb 22 at Southern Utah W, 85-74 1 40 6-13 46.2 1-3 33.3 13-15 86.7 26
Feb 24 Portland St. L, 87-76 1 40 8-15 53.3 2-6 33.3 5-5 100.0 23
Feb 27 at Northern Colo. W, 80-66 1 38 9-17 52.9 7-11 63.6 6-7 85.7 31
Mar 1 at North Dakota L, 69-67 1 37 5-15 33.3 1-6 16.7 0-0 - 11
Mar 6 Idaho St. W, 77-69 1 40 5-18 27.8 4-14 28.6 8-8 100.0 22
Mar 8 Weber St. L, 82-78 1 40 6-18 33.3 0-6 0.0 12-12 100.0 24
Mar 13 at TBD   - - - - - - - - -
Mar 14 at TBD   - - - - - - - - -
Mar 15 at TBD   - - - - - - - - -
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 10 Pacific (Ore.) W, 87-58 1 34 0 3 3 5 2 2.5 0 0 2 0
Nov 17 at Washington L, 92-80 1 39 1 1 2 2 6 0.3 1 0 0 0
Nov 19 Walla Walla W, 82-44 1 26 0 2 2 3 2 1.5 1 1 3 0
Nov 22 vs. Boston U. W, 80-68 1 38 0 5 5 0 1 0.0 1 1 2 0
Nov 23 vs. LIU Brooklyn W, 102-70 1 33 1 7 8 5 2 2.5 1 0 2 0
Nov 24 at UC Irvine L, 81-58 1 35 3 6 9 0 3 0.0 2 0 2 0
Nov 29 Seattle W, 82-75 1 40 0 4 4 2 4 0.5 1 1 1 0
Dec 8 at St. Mary's (Cal.) L, 93-65 1 37 0 3 3 1 2 0.5 0 0 3 0
Dec 15 UC Irvine L, 70-61 1 40 1 2 3 0 0 - 1 0 2 0
Dec 22 at Seton Hall L, 92-70 1 31 0 4 4 1 2 0.5 1 0 3 0
Dec 28 at Connecticut L, 82-65 1 39 1 3 4 1 2 0.5 2 0 2 0
Jan 2 at Weber St. L, 74-67 1 39 0 2 2 3 2 1.5 1 1 2 0
Jan 4 at Idaho St. L, 83-72 1 37 1 1 2 5 1 5.0 0 0 3 0
Jan 9 Montana W, 69-62 1 38 0 5 5 4 2 2.0 0 0 3 0
Jan 11 Montana St. W, 77-72 1 40 0 5 5 2 2 1.0 1 0 1 0
Jan 16 at Northern Ariz. L, 84-65 1 36 1 1 2 2 1 2.0 1 0 2 0
Jan 18 at Sacramento St. L, 75-64 1 38 0 2 2 2 2 1.0 2 0 4 0
Jan 23 Southern Utah W, 90-83 1 38 3 5 8 3 4 0.8 0 0 2 0
Jan 27 at Portland St. L, 92-83 1 39 2 2 4 3 2 1.5 1 0 4 0
Jan 30 North Dakota L, 73-61 1 32 1 3 4 1 5 0.2 1 1 2 -
Feb 1 Northern Colo. W, 94-90 1 41 0 4 4 4 1 4.0 1 1 2 -
Feb 6 at Montana St. W, 79-50 1 39 0 2 2 8 1 8.0 4 0 2 -
Feb 8 at Montana L, 82-77 1 40 0 3 3 1 0 - 1 1 3 -
Feb 13 Sacramento St. W, 85-72 1 35 0 2 2 2 3 0.7 0 2 1 -
Feb 15 Northern Ariz. W, 84-65 1 39 1 6 7 1 3 0.3 0 0 3 -
Feb 22 at Southern Utah W, 85-74 1 40 0 4 4 5 1 5.0 1 0 3 -
Feb 24 Portland St. L, 87-76 1 40 1 3 4 3 1 3.0 0 0 2 -
Feb 27 at Northern Colo. W, 80-66 1 38 2 4 6 1 1 1.0 1 0 2 -
Mar 1 at North Dakota L, 69-67 1 37 0 4 4 6 2 3.0 1 0 3 -
Mar 6 Idaho St. W, 77-69 1 40 1 9 10 8 4 2.0 4 0 1 -
Mar 8 Weber St. L, 82-78 1 40 1 1 2 0 2 0.0 4 0 4 -
Mar 13 at TBD   - - - - - - - - - - - -
Mar 14 at TBD   - - - - - - - - - - - -
Mar 15 at TBD   - - - - - - - - - - - -
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 31 31 37.4 6.6-15.0 44.3 3.5-8.1 43.3 5.0-5.6 89.7 21.8
Conference 20 20 38.3 6.7-15.7 42.7 3.5-8.2 42.4 6.4-7.0 90.7 23.2
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -

Home 14 14 37.4 6.9-15.1 45.8 4.1-9.1 44.9 4.9-5.1 95.8 22.9
Away 15 15 37.6 6.4-15.3 41.7 3.1-7.8 40.2 5.5-6.4 86.5 21.5
Neutral 2 2 35.5 6.5-11.5 56.5 2.5-4.0 62.5 2.0-3.0 66.7 17.5

Wins 15 15 37.3 7.3-14.3 50.9 4.5-8.4 54.0 5.1-5.7 89.4 24.1
Losses 16 16 37.4 6.1-15.7 38.6 2.6-7.9 32.5 5.0-5.6 89.9 19.7

November 7 7 35.0 6.9-13.4 51.1 4.0-7.9 50.9 2.6-3.0 85.7 20.3
December 4 4 36.8 6.0-14.2 42.1 2.8-8.0 34.4 2.8-3.2 84.6 17.5
January 9 9 37.4 6.2-15.4 40.3 3.1-7.7 40.6 6.0-6.9 87.1 21.6
February 8 8 39.0 7.8-15.5 50.0 4.6-8.8 52.9 6.6-7.2 91.4 26.8
March 3 3 39.0 5.3-17.0 31.4 1.7-8.7 19.2 6.7-6.7 100.0 19.0
  gp gs min fg pct 3pt pct ft pct pts
Total 31 31 1158 206-465 44.3 109-252 43.3 156-174 89.7 677
Conference 20 20 766 134-314 42.7 70-165 42.4 127-140 90.7 465
Exhibition - - - 0-0 - 0-0 - 0-0 - 0

Home 14 14 523 97-212 45.8 57-127 44.9 69-72 95.8 320
Away 15 15 564 96-230 41.7 47-117 40.2 83-96 86.5 322
Neutral 2 2 71 13-23 56.5 5-8 62.5 4-6 66.7 35

Wins 15 15 559 109-214 50.9 68-126 54.0 76-85 89.4 362
Losses 16 16 599 97-251 38.6 41-126 32.5 80-89 89.9 315

November 7 7 245 48-94 51.1 28-55 50.9 18-21 85.7 142
December 4 4 147 24-57 42.1 11-32 34.4 11-13 84.6 70
January 9 9 337 56-139 40.3 28-69 40.6 54-62 87.1 194
February 8 8 312 62-124 50.0 37-70 52.9 53-58 91.4 214
March 3 3 117 16-51 31.4 5-26 19.2 20-20 100.0 57
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
Total 31 31 37.4 7.1-16.1 44.3 3.8-8.7 43.3 5.4-6.0 89.7 23.4
Conference 20 20 38.3 7.0-16.4 42.7 3.7-8.6 42.4 6.6-7.3 90.7 24.3
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -

Home 14 14 37.4 7.4-16.2 45.8 4.4-9.7 44.9 5.3-5.5 95.8 24.5
Away 15 15 37.6 6.8-16.3 41.7 3.3-8.3 40.2 5.9-6.8 86.5 22.8
Neutral 2 2 35.5 7.3-13.0 56.5 2.8-4.5 62.5 2.3-3.4 66.7 19.7

Wins 15 15 37.3 7.8-15.3 50.9 4.9-9.0 54.0 5.4-6.1 89.4 25.9
Losses 16 16 37.4 6.5-16.8 38.6 2.7-8.4 32.5 5.3-5.9 89.9 21.0

November 7 7 35.0 7.8-15.3 51.1 4.6-9.0 50.9 2.9-3.4 85.7 23.2
December 4 4 36.8 6.5-15.5 42.1 3.0-8.7 34.4 3.0-3.5 84.6 19.0
January 9 9 37.4 6.6-16.5 40.3 3.3-8.2 40.6 6.4-7.4 87.1 23.0
February 8 8 39.0 7.9-15.9 50.0 4.7-9.0 52.9 6.8-7.4 91.4 27.4
March 3 3 39.0 5.5-17.4 31.4 1.7-8.9 19.2 6.8-6.8 100.0 19.5
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
Total 31 31 37.4 0.7 3.5 4.2 2.3 0.0 2.7 2.1 1.3 1.1 0.3
Conference 20 20 38.3 0.7 3.4 4.1 2.4 0.0 3.2 2.0 1.6 1.2 0.3
Exhibition - - - - - - - - - - - - -

Home 14 14 37.4 0.6 3.9 4.5 2.1 0.0 2.7 2.5 1.1 1.0 0.4
Away 15 15 37.6 0.7 2.8 3.5 2.5 0.0 2.7 1.9 1.5 1.3 0.1
Neutral 2 2 35.5 0.5 6.0 6.5 2.0 0.0 2.5 1.5 1.7 1.0 0.5

Wins 15 15 37.3 0.5 4.5 5.0 2.0 0.0 3.5 2.2 1.6 1.1 0.4
Losses 16 16 37.4 0.8 2.6 3.4 2.6 0.0 1.9 2.1 0.9 1.2 0.2

November 7 7 35.0 0.7 4.0 4.7 1.7 0.0 2.4 2.9 0.8 1.0 0.4
December 4 4 36.8 0.5 3.0 3.5 2.5 0.0 0.8 1.5 0.5 1.0 0.0
January 9 9 37.4 0.9 2.9 3.8 2.6 0.0 2.8 2.3 1.2 0.8 0.2
February 8 8 39.0 0.5 3.5 4.0 2.2 - 3.1 1.4 2.3 1.0 0.5
March 3 3 39.0 0.7 4.7 5.3 2.7 - 4.7 2.7 1.8 3.0 0.0
  gp gs min off def reb pf dq ast to a/to stl blk
Total 31 31 1158 21 108 129 71 0 84 66 1.3 35 9
Conference 20 20 766 14 68 82 49 0 64 40 1.6 24 6
Exhibition - - - - - - - - - - - - -

Home 14 14 523 9 54 63 29 0 38 35 1.1 14 6
There was a problem with a Velocity script
Pagebio-template
ErrorVM #split: too many arguments to macro. Wanted 3 got 4 at bio-template[line 245, column 1]
Page source:
1: #if ($browser.getIphone() || $browser.getMobile())
2: 	#set ($isMobile = true)
3: #else
4: 	#set ($isMobile = false)
5: #end
6: 
7: ## PICK UP OPTIONS
8: $website.include("options")
9: #set ($options = $request.getAttribute("options"))
10: #set ($locale = "en_us")
11: #set ($locale = $options.get("locale"))
12: 
13: ## STATS DATA
14: #if ($request.getParameter("stats"))
15: 
16: #set ($showCareer = $wiki.valid() && $seasons)
17: #if ("yes" == $options.get("stats_show_career") && $seasons)
18:   #set ($showCareer = "yes")
19: #end
20: 	
21: ## FETCH THE BIO URL FROM THE PARAMETER
22: #set ($bioURL = $request.getParameter("biourl"))
23: 
24: ## VIEW IS AVAILABLE PROVIDED WHEN REACHED HERE
25: #set ($view = $request.getParameter("view"))
26: 
27: #set ($pos = "")
28: #set ($pos = $attributes.get("position"))
29: #set ($posVec = $pos.split("/"))
30: #set ($pos = $posVec[0])
31: #set ($pos = $pos.toLowerCase())
32: #set ($statPos = $positions.get($pos))
33: 
34: #set ($playerId = $attributes.get("playerId"))
35: #set ($stats = $splits.overall)
36: 
37: #if ($locale == "en_us")
38: #set ($defLabel = 'Defense')
39: #elseif ($locale == "en_gb") 
40: #set ($defLabel = 'Defence')
41: #end
42:  
43: #macro (gamelogData $p)
44: 
45: #set ($p = $positions.get($p))
46: #set ($gamelogs = $gamelogs.get($p))
47: 
48: ## SECONDARY TAB CONTENT FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
49: #if($gamelogsCategoriesLabels)
50:   #set ($class = "sub-tab-content")
51:   #if ($activePos == $p)
52:     #set ($class = "sub-tab-content active")
53:   #end
54:   #if ($isMobile)
55: 	<div class="mobile-bios-subtab-panel mobile-stats-panel-wrapper #if ($activePos == $p) active #end">
56:   #else
57: 	<div class="$class">
58:   #end
59: #end
60: 	
61: #if (! $isMobile)
62: 	<div class="stats-fullbox clearfix">
63: #else
64: 	<div class="mobile-stats-panel-container">
65: #end
66: <table>
67:   <tr>
68:     <th #if ($isMobile) width="10%" #end>Date</th>
69:     <th #if ($isMobile) class="mobile-stats-fixed-column" #*width="20%"*# #end>Opponent</th>
70:     <th>Score</th>
71:     #foreach ($gamelog in $gamelogs)
72:       <th>$gamelog</th>
73:     #end
74:   </tr>
75: 
76: #set ($counter = 0)
77: #foreach ($event in $events)
78:  #set ($counter = $counter + 1)
79:  #if ($counter % 2 == 0)
80:   #set ($row = "even")
81:  #else
82:   #set ($row = "odd")
83:  #end
84:   <tr class="${row}">
85:     <td>$formatter.formatDate($event.event.date, "MMM d")</td>
86:     <td #if ($isMobile) class="mobile-stats-fixed-column" #end>
87:     #if ($event.event.neutralSite.length() > 0) vs.
88:     #elseif (!$event.event.home) at
89:     #else ## nothing for a home game
90:     #end
91:     $event.event.opponent.name</td>
92:     <td class="align-center">
93:     #if ($event.event.statusCode >= 0)
94:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
95:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
96:       #else
97:       ${event.event.APResult}
98:       #end
99:     #else &nbsp; #end
100:     </td>
101:     #foreach ($gamelog in $gamelogs.keySet())
102:       #set ($value = "-")
103:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
104:       <td class="align-center">
105:       #if ($value.length() > 0)$value#else - #end
106:       </td>
107:     #end
108:   </tr>
109: #end
110: </table>
111: </div>
112: 
113: #if($gamelogsCategoriesLabels)
114:   </div>
115: #end
116: 
117: #end ## macro gamelogData
118: 
119: #macro (split $statPosBriefs $label $stats $class)
120:   <tr class="$!{class}">
121:     <td #if ($isMobile) class="mobile-stats-fixed-column" #end>${label}</td>
122:     #foreach ($brief in $statPosBriefs.keySet())
123:       #set ($value = "-")
124:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
125:       <td class="align-center">#if ($value.length() > 0) $value #else - #end</td>
126:     #end
127:   </tr>
128: #end
129: 
130: #set ($colspan = $statPosBriefs.size() + 1)
131: #macro (printSplitsHr)
132: 	#if ($isMobile)
133: 		<tr>
134: 			<td class="mobile-stats-fixed-column">&nbsp;</td>
135: 			<td colspan="$statPosBriefs.size()">&nbsp;</td>
136: 		</tr>
137: 	#else
138: 		<tr><td colspan="${colspan}"><hr /></td></tr>
139: 	#end
140: #end
141: 
142: 
143: #macro (careerData $p)
144: 
145: #set ($p = $positions.get($p))
146: #set ($statPosBriefs = $briefs.get($p))
147: 
148: ## SECONDARY TAB CONTENT.
149: #if($briefsCategoriesLabels)
150:   #set ($class = "sub-tab-content")
151:   #if ($activePos == $p)
152:     #set ($class = "sub-tab-content active")
153:   #end
154:   #if ($isMobile)
155: 	<div class="mobile-bios-subtab-panel mobile-stats-panel-wrapper #if ($activePos == $p) active #end">
156:   #else
157: 	<div class="$class">
158:   #end
159: #end
160: 
161: 
162: #if (! $isMobile) 
163: 	<div class="stats-fullbox clearfix">
164: #else
165: 	<div class="mobile-stats-panel-container">
166: #end
167: <table>
168:   <tr>
169:     <th #if ($isMobile) class="mobile-stats-fixed-column" #end>&nbsp;</th>
170:     #foreach ($brief in $statPosBriefs)
171:       <th>$brief</th>
172:     #end
173:   </tr>
174: 
175: #set ($careerTotals = $request.getAttribute("careerTotals"))
176: #set ($careerMap = $request.getAttribute("careerMap"))
177: 
178: #foreach ($season in $seasons)
179:   ## Check if we did not get stats for this season
180:   #if ($careerMap.get($season.seasonName))
181:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName], '')
182:   #elseif ($wiki.valid())
183:     <tr><td class="${mobileNS}fixed-column">${season.seasonName}</td><td colspan="${briefs.size()}" align="center">We could not find the "players" page in the ${season.seasonName} section.</td></tr>
184:   #end
185: 
186: #end
187: 
188: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall, '')
189: 
190: 
191: </table>
192: 
193: </div> ## stats-fullbox
194: 
195: #if($briefsCategoriesLabels)
196: 	</div>
197: #end
198: #end ## macro splitsData
199: 
200: 
201: 
202: 
203: 
204: 
205: 
206: 
207: #macro (splitsData $p)
208: 
209: #set ($p = $positions.get($p))
210: #set ($statPosBriefs = $briefs.get($p))
211: 
212: ## SECONDARY TAB CONTENT.
213: #if($briefsCategoriesLabels)
214:   #set ($class = "sub-tab-content")
215:   #if ($activePos == $p)
216:     #set ($class = "sub-tab-content active")
217:   #end
218:   #if ($isMobile)
219: 	<div class="mobile-bios-subtab-panel mobile-stats-panel-wrapper #if ($activePos == $p) active #end">
220:   #else
221: 	<div class="$class">
222:   #end
223: #end	
224: 	
225: #if (! $isMobile) 
226: 	<div class="stats-fullbox clearfix">
227: #else
228: 	<div class="mobile-stats-panel-container">
229: #end
230: <table>
231:   <tr>
232:     <th #if ($isMobile) class="mobile-stats-fixed-column" #end>&nbsp;</th>
233:     #foreach ($brief in $statPosBriefs)
234:       <th>$brief</th>
235:     #end
236:   </tr>
237: 
238: #split($statPosBriefs, "Total", $splits.overall, "odd")
239: #split($statPosBriefs, "Conference", $splits.conference, "even")
240: #split($statPosBriefs, "Exhibition", $splits.exhibition, "odd")
241: 
242: #printSplitsHr()
243: 
244: #split($statPosBriefs, "Home", $splits.home, "odd")
245: #split($statPosBriefs, "Away", $splits.away, "even")
246: #split($statPosBriefs, "Neutral", $splits.neutral, "odd")
247: 
248: #printSplitsHr()
249: 
250: #set($isOddOrEven = 'odd')
251: 
252: #foreach($gameResult in $gamesResults.entrySet())
253: 	
254: 	#if($gameResult.key == "wins")
255: 		#set($splitGameResult = $splits.inWins)
256: 	#elseif($gameResult.key == "losses")
257: 		#set($splitGameResult = $splits.inLosses)
258: 	#elseif($gameResult.key == "ties")
259: 		#set($splitGameResult = $splits.inTies)
260: 	#end
261: 	
262: 	#split($statPosBriefs, $gameResult.value, $splitGameResult, $isOddOrEven)
263: 	
264: 	#if($isOddOrEven == 'even')
265: 		#set($isOddOrEven = 'odd')
266: 	#else
267: 		#set($isOddOrEven = 'even')
268: 	#end
269: #end
270: 
271: #printSplitsHr()
272: 
273: #if($monthsPlayed and $monthsPlayed.size() > 0)
274: 	
275: 	#set($isOddOrEven = 'odd')
276: 	
277: 	#foreach($month in $monthsPlayed)
278: 		#if($month == 'January')
279: 			#set($splitMonth =  $splits.january)
280: 		#elseif($month == 'February')
281: 			#set($splitMonth =  $splits.february)
282: 		#elseif($month == 'March')
283: 			#set($splitMonth =  $splits.march)
284: 		#elseif($month == 'April')
285: 			#set($splitMonth =  $splits.april)
286: 		#elseif($month == 'May')
287: 			#set($splitMonth =  $splits.may)
288: 		#elseif($month == 'June')
289: 			#set($splitMonth =  $splits.june)
290: 		#elseif($month == 'July')
291: 			#set($splitMonth =  $splits.july)
292: 		#elseif($month == 'August')
293: 			#set($splitMonth =  $splits.august)
294: 		#elseif($month == 'September')
295: 			#set($splitMonth =  $splits.september)
296: 		#elseif($month == 'October')
297: 			#set($splitMonth =  $splits.october)
298: 		#elseif($month == 'November')
299: 			#set($splitMonth =  $splits.november)
300: 		#elseif($month == 'December')
301: 			#set($splitMonth =  $splits.december)
302: 		#end
303: 		
304: 		#split($statPosBriefs, $month, $splitMonth, $isOddOrEven)
305: 		
306: 		#if($isOddOrEven == 'odd')
307: 			#set($isOddOrEven = 'even')
308: 		#else
309: 			#set($isOddOrEven = 'odd')
310: 		#end
311: 	#end	
312: #end	
313: 
314: </table>
315: 
316: </div> ## stats-fullbox
317: 
318: #if($briefsCategoriesLabels)
319: 	</div>
320: #end
321: 
322: #end ## macro splitsData
323: 
324: #macro (printRecentGames)
325: <table>
326: <tr><th colspan="3">Recent Games</th></tr>
327: #set ($eventEnd = -1)
328: #foreach ($event in $events)
329:   #if ($event.event.result.resolved)
330:     #set ($eventEnd = $velocityCount)
331:   #end
332: #end
333: #set ($eventStart = $eventEnd - 5)
334: #if ($eventStart < 0) #set ($eventStart = 0) #end
335: 
336: #set ($counter = 0)
337: #foreach ($event in $events)
338: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
339: 
340:  #set ($counter = $counter + 1)
341:  #if ($counter % 2 == 0)
342:   #set ($row = "even")
343:  #else
344:   #set ($row = "odd")
345:  #end
346: 
347:   <tr class="${row}">
348:     <td>$formatter.formatDate($event.event.date, "MMM d")</td>
349:     <td>
350:     #if ($event.event.neutralSite.length() > 0) vs.
351:     #elseif (!$event.event.home) at
352:     #else ## nothing for a home game
353:     #end
354:     $event.event.opponent.name</td>
355:     <td>
356:     #if ($event.event.statusCode >= 0)
357:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
358:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
359:       #else
360:       ${event.event.APResult}
361:       #end
362:     #end
363:   </tr>
364: #end ## if
365: #end
366: </table>
367: #end
368: 
369: #macro (printSubTab $pos $label $activePos $view)
370: 	<option #if ($activePos == $pos) selected="selected" #end value="${bioURL}?view=${view}&pos=${pos}">$!label</option>
371: #end
372: 
373: 	
374: #macro(printCategories $briefCategoryLabels $viewReport)
375: 	
376: 	#if ($isMobile)
377: 		<select class="mobile-bios-subtabs clearfix">
378: 	#else
379: 		<div class="stats-tabs-secondary clearfix">
380: 		  <ul class="clearfix">
381: 	#end
382: 			
383: 	#foreach($briefCat in $briefCategoryLabels.entrySet())
384: 		#set($briefCatLabel = $briefCat.value)
385: 		#set($briefCatKey = $briefCat.key)
386: 		
387: 		#if($locale == "en_gb" && $briefCatLabel == "Defense")
388: 			#set($briefCatLabel = "Defence")
389: 		#end	
390: 		
391: 		#if ($isMobile)
392: 			#printSubTab($briefCatKey, $briefCatLabel, $activePos, $viewReport)
393: 		#else
394: 			#if ($activePos == $briefCatKey)<li class="active">#else <li> #end<a href="${bioURL}?view=${viewReport}&pos=${briefCatKey}">$briefCatLabel</a></li>
395: 		#end
396: 	#end
397: 	
398: 	#if ($isMobile)
399: 		</select>
400: 	#else
401: 		   </ul>
402: 		</div> ## stats-tabs-secondary
403: 		<div class="sub-tab-panels">
404: 	#end	
405: 	
406: 	#foreach($briefCat in $briefCategoryLabels.entrySet())
407: 		#if($viewReport == "splits")
408: 			#splitsData($briefCat.key)
409: 		#elseif($viewReport == "career")
410: 			#careerData($briefCat.key)
411: 		#end	
412: 	#end
413: 	
414: 	#if (!$isMobile)
415: 		</div>
416: 	#end
417: 	
418: #end
419: 
420: 
421: 
422: #if ($isMobile)
423: 
424: #set ($activePos = $statPos)
425: #if ($request.getParameter("view") == "gamelog" && $positions.get($request.getParameter("pos")).length() > 0)
426: 	#set ($activePos = $positions.get($request.getParameter("pos")))
427: #end
428: 
429: <div id="tab-gamelog">
430: 
431: #if($gamelogsCategoriesLabels)
432: 
433: 	<select class="mobile-bios-subtabs clearfix">
434:     	#foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
435:     		#set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
436:     		
437:     		#if($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
438:     			#set($gamelogsCatLabelVal = "Defence")
439:     		#end
440:     
441:     		#printSubTab($gamelogsCatLabel.key, $gamelogsCatLabelVal, $activePos, 'gamelog')			
442:     	#end	
443:     </select> ## stats-tabs-secondary
444: 
445:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
446:     	#gamelogData($gamelogsCatLabel.key)
447:     #end
448: 
449: #else
450: 	#gamelogData($pos)
451: #end 
452: 	
453: </div> ## tab-content
454: ## END GAMELOG
455: 
456: 
457: 
458: 
459: 
460: 
461: 
462: 
463: 
464: ## CAREER
465: #set ($activePos = $statPos)
466: #if ($request.getParameter("view") == "career" && $positions.get($request.getParameter("pos")).length() > 0)
467: 	#set ($activePos = $positions.get($request.getParameter("pos")))
468: #end
469: 
470: 
471: <div id="tab-career">
472: 	
473: #if($briefsCategoriesLabels)
474: 	#printCategories($briefsCategoriesLabels, "career")
475: #else
476: 	#careerData($statPos)
477: #end
478: 
479: </div> ## tab-content
480: ## CAREER
481: 
482: 
483: 
484: 
485: 
486: 
487: 
488: 
489: 
490: 
491: 
492: 
493: ## SPLITS
494: #set ($activePos = $statPos)
495: #if ($request.getParameter("view") == "splits" && $positions.get($request.getParameter("pos")).length() > 0)
496: 	#set ($activePos = $positions.get($request.getParameter("pos")))
497: #end
498: 
499: 
500: <div id="tab-splits">
501: 	
502: #if($briefsCategoriesLabels)
503: 	#printCategories($briefsCategoriesLabels, "splits")
504: #else
505: 	#splitsData($statPos)
506: #end
507: 
508: </div> ## tab-content
509: ## SPLITS
510: 
511: 
512: 
513: 
514: 
515: #else
516: 
517: 
518: 
519: ## PROFILE
520: #set ($class = "tab-content clearfix")
521: #if ($view == "profile")
522: 	#set ($class = "tab-content clearfix active")
523: #end
524: <div class="${class}">
525: <div class="stats-wrapper clearfix">
526: 
527: ## LAST SIX GAMES
528: <div class="stats-halfbox-left">
529: #printRecentGames()
530: </div>
531: 
532: ## RANKING
533: $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
534: 
535: </div> ## stats-wrapper	
536: </div> ## tab-content
537: ## PROFILE
538: 
539: ## GAMELOG
540: #set ($class = "tab-content clearfix")
541: #if ($view == "gamelog")
542: 	#set ($class = "tab-content clearfix active")
543: #end
544: 
545: #set ($activePos = $statPos)
546: #if ($request.getParameter("view") == "gamelog" && $positions.get($request.getParameter("pos")).length() > 0)
547: 	#set ($activePos = $positions.get($request.getParameter("pos")))
548: #end
549: 
550: <div class="${class}">
551: <div class="stats-wrapper clearfix">
552: 
553: #if($gamelogsCategoriesLabels)
554: <div class="stats-tabs-secondary clearfix">
555: <ul class="clearfix">
556: 	#foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
557: 		#set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
558: 		
559: 		#if($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
560: 			#set($gamelogsCatLabelVal = "Defence")
561: 		#end
562: 
563: 		#if ($activePos == $$gamelogsCatLabel.key)<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=${gamelogsCatLabel.key}">$gamelogsCatLabelVal</a></li>
564: 	#end
565: </ul>
566: </div> ## stats-tabs-secondary
567: #end
568: 
569: #if($gamelogsCategoriesLabels)
570: 	<div class="sub-tab-panels">
571: 	#foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
572: 		#gamelogData($gamelogsCatLabel.key)
573: 	#end
574: 	</div>	
575: #else
576: 	
577:   #gamelogData($pos)
578:   
579: #end
580: 	
581: </div> ## stats-wrapper
582: </div> ## tab-content
583: ## GAMELOG
584: 
585: 
586: 
587: 
588: 
589: 
590: 
591: 
592: ## CAREER
593: #if ($showCareer)
594: #set ($class = "tab-content clearfix")
595: #if ($view == "career")
596: 	#set ($class = "tab-content clearfix active")
597: #end
598: 
599: #set ($activePos = $statPos)
600: #if ($request.getParameter("view") == "career" && $positions.get($request.getParameter("pos")).length() > 0)
601: 	#set ($activePos = $positions.get($request.getParameter("pos")))
602: #end
603: 
604: <div class="${class}">
605: <div class="stats-wrapper clearfix">
606: 
607: #if($briefsCategoriesLabels)
608: 	#printCategories($briefsCategoriesLabels, "career")
609: #else
610: 	#careerData($statPos)
611: #end		
612: 
613: </div> ## stats-wrapper
614: </div> ## tab-content
615: #end ## show career
616: ## CAREER
617: 
618: 
619: 
620: 
621: 
622: 
623: 
624: 
625: 
626: ## SPLITS
627: #set ($class = "tab-content clearfix")
628: #if ($view == "splits")
629: 	#set ($class = "tab-content clearfix active")
630: #end
631: 
632: #set ($activePos = $statPos)
633: #if ($request.getParameter("view") == "splits" && $positions.get($request.getParameter("pos")).length() > 0)
634: 	#set ($activePos = $positions.get($request.getParameter("pos")))
635: #end
636: 
637: <div class="${class}">
638: <div class="stats-wrapper clearfix">
639: 
640: #if($briefsCategoriesLabels)
641: 	#printCategories($briefsCategoriesLabels, "splits")
642: #else
643: 	#splitsData($statPos)
644: #end		
645: 
646: </div> ## stats-wrapper
647: </div> ## tab-content
648: ## SPLITS
649: 
650: #end ## MOBILE / DESKTOP STATS
651: 
652: #else
653: ## BIO
654: 
655: ## CHANGES FOR STATS
656: 
657: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE
658: #set ($bioObject = $page.getDataAsObject())
659: #set ($statsURL = $bioObject.statsURL)
660: ## END OF HACK
661: 
662: #if ($statsURL.length() > 0)
663:   $website.includeAgain("${statsURL}?tmpl=bio-stats-template")
664:   ## various settings to get the variables set
665:   #set ($events = $request.getAttribute("bio_events"))
666:   #set ($seasons = $request.getAttribute("bio_seasons"))
667:   #set ($career = $request.getAttribute("bio_career"))
668:   #set ($labels = $request.getAttribute("bio_labels"))
669:   #set ($briefs = $request.getAttribute("bio_briefs"))
670:   #set ($gamelogs = $request.getAttribute("bio_gamelogs"))
671:   #set ($splits = $request.getAttribute("bio_splits"))
672:   #set ($statPosition = $request.getAttribute("bio_position"))
673:   #set ($positions = $request.getAttribute("bio_positions"))
674:   #set ($playerId = $request.getAttribute("bio_player_id"))
675:   #set ($highlights = $request.getAttribute("bio_highlights"))
676:   #set ($formats = $request.getAttribute("bio_formats"))
677: #end
678: 
679: ## END CHANGES FOR STATS
680: 
681: #set ($pos = "")
682: #set ($pos = $attributes.get("position"))
683: #set ($pos = $statPosition)
684: #set ($pos = $pos.toLowerCase())
685: #set ($posVec = $pos.split("/"))
686: #set ($pos = $posVec[0])
687: #set ($pos = $positions.get($pos))
688: #set ($highlights = $highlights.get($pos))
689: 
690: #set ($showHighlights = true)
691: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false)
692: 	#set ($showHighlights = false)
693: #end
694: #set ($showCareer = $wiki.valid() && $seasons)
695: #if ("yes" == $options.get("stats_show_career") && $seasons)
696:   #set ($showCareer = "yes")
697: #end
698: 
699: #set ($labels = $labels.get($pos))
700: #set ($briefs = $briefs.get($pos))
701: #set ($gamelogs = $gamelogs.get($pos))
702: #set ($stats = $splits.overall)
703: #set ($hasEvents = $events.size() > 0)
704: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
705: #set ($htmlStatsURL = "${page.url}-stats")
706: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
707: #set ($bioBriefURL = "${page.url}-brief")
708: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
709: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1))
710: #if ($options.get("bio_hide_roster") == true)
711: 	#set ($showRoster = false)
712: #end
713: 
714: ## Always default to the bio page if available
715: #set ($view = "bio")
716: 
717: #if ($hasSynopsis || $hasBioBrief)
718: 	#set ($view = "bio")
719: #elseif ($statsURL.length() > 0)
720: 	#set ($view = "profile")
721: #elseif ($hasHTMLStats)
722: 	#set ($view = "htmlstats")
723: #else
724: 	#set ($view = "")
725: #end
726: 
727: #if ($options.get("bio_default_view").length() > 0)
728: 	#set ($checkView = $options.get("bio_default_view"))
729: #end
730: 
731: #if ($request.getParameter("view"))
732: 	#set ($checkView = $request.getParameter("view"))
733: #end
734: 
735: #if ($checkView == "profile" && $statsURL.length() > 0)
736: 	#set ($view = "profile")
737: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
738: 	#set ($view = "bio")
739: #elseif ($checkView == "gamelog" && $statsURL.length() > 0)
740: 	#set ($view = "gamelog")
741: #elseif ($checkView == "career" && $showCareer)
742: 	#set ($view = "career")
743: #elseif ($checkView == "splits" && $statsURL.length() > 0)
744: 	#set ($view = "splits")
745: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
746: 	#set ($view = "htmlstats")
747: #end
748: 
749: #if ($attributes.get("full_name"))
750: 	#set ($fullName = $attributes.get("full_name"))
751: #else
752: 	#set ($firstName = $!attributes.get("first_name"))
753: 	#set ($lastName = $!attributes.get("last_name"))
754: 	#set ($fullName = "${firstName} ${lastName}")
755: #end
756: 
757: #macro (printHeadshot $width $height)
758: 	#if ($headshot.url)
759: 		<img src="$headshot.url?max_width=$!width&max_height=$!height" alt="$fullName" title="$fullName" class="bio-headshot" />
760: 	#else
761: 		#if ($website.exists("/images/setup/headshot_default.jpg"))
762: 			<img src="/images/setup/headshot_default.jpg?max_width=$!width&max_height=$!height" alt="$fullName" title="$fullName" class="bio-headshot" />
763: 		#else
764: 			<img src="/info/images/default_headshot.jpg?max_width=$!width&max_height=$!height" alt="$fullName" title="$fullName" class="bio-headshot" />
765: 		#end
766: 	#end
767: #end
768: 
769: #if ($isMobile)
770: 
771: #set ($hasBioTab = false)
772: #if ($hasSynopsis || $hasBioBrief)
773: 	#set ($hasBioTab = true)
774: #end
775: 
776: #set ($hasProfileTab = false)
777: #if (($highlights && $showHighlights) || $events.size() > 0 || $website.exists("$statsURL/../players"))
778: 	#set ($hasProfileTab = true)
779: #end
780: 
781: <script type="text/javascript">
782: 	window.mobileConf = {
783: 		page : 'bios',
784: 		pageParams : {
785: 			view : '$!view'
786: 		}
787: 	}
788: </script>
789: 
790: <div class="bios">
791: 	<div class="profile">
792: 		<div class="images">
793: 			<div class="photo">
794: 				#printHeadshot(81, 116)
795: 			</div>				
796: 			#if ($attributes.get("number"))	<div class="number"> $!attributes.get("number") </div> #end
797: 		</div>
798: 		<div class="texts">
799: 			<div class="name">$!attributes.get("first_name") $!attributes.get("last_name")</div>
800: 			<div class="data">
801: 				#foreach ($field in $fields)
802: 					#if (! $field.key.startsWith("custom"))
803: 						#if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
804: 
805: 							#if ($field.key == "phone1" || $field.key == "phone2")
806: 								Phone: $!attributes.get($field.key) <br />
807: 							#elseif ($field.key == "email_address")
808: 								#set ($emailAdd = $attributes.get($field.key))
809: 								Email: <a href="mailto:${emailAdd}">$emailAdd</a> <br />
810: 							#else
811: 								$field.value: $!attributes.get($field.key) <br />
812: 							#end
813: 
814: 							#set ($counter = $counter + 1)
815: 						#end
816: 					#end
817: 				#end
818: 					
819: 				#foreach ($i in [1..10])
820: 					#set ($customKey = "bio_custom${i}")
821: 					#if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
822: 						$options.get($customKey): </td><td class="val">$!attributes.get("custom${i}") <br />
823: 						#set ($counter = $counter + 1)
824: 					#end
825: 				#end
826: 				
827: 			</div>
828: 		</div>
829: 	</div>	
830: 
831: 	#if ($hasBioTab || $hasProfileTab)
832: 	<div class="details mobile-tabs mobile-stats" id="mobile-bios-tabs-container">
833: 		<ul class="mobile-bios-tabs">
834: 			#if ($hasBioTab)
835: 				<li><a data-view="bio" href="#tab-bios">Bio</a></li>
836: 			#end
837: 			#if ($hasProfileTab)
838: 				<li><a data-view="profile" href="#tab-profile">Profile</a></li>
839: 			#end
840: 			#if ($statsURL.length() > 0)
841: 				<li><a data-view="gamelog" href="#tab-gamelog">Game Log</a></li>
842: 				#if ($showCareer)
843: 				    <li><a data-view="career" href="#tab-career">Career</a></li>
844: 				#end
845: 				<li><a data-view="splits" href="#tab-splits">Splits</a></li>
846: 			#end
847: 		</ul>
848: 		
849: 		#if ($hasBioTab)
850: 		<div id="tab-bios">
851: 			#if ($hasSynopsis)
852: 				$synopsis
853: 			#elseif ($hasBioBrief)
854: 				<p>$website.include("$bioBriefURL")</p>
855: 			#end
856: 		</div>
857: 		#end
858: 		
859: 		#if ($hasProfileTab)
860: 		#set ($cellWidth = $tool.math.toInteger($tool.math.div(100, $highlights.size())))
861: 			
862: 		<div id="tab-profile">
863: 			## HIGHLIGHTS
864: 			#if ($highlights && $showHighlights)
865: 				<div class="bios-stat-wrapper">
866: 					<h4>Highlights</h4>
867: 					<table width="100%"><tr>
868: 					#foreach ($highlight in $highlights.keySet())
869: 						<th #if (! $isMobile) width="18%" #else width="${cellWidth}%" #end>$!highlights.get($highlight)</th>
870: 					#end
871: 					</tr><tr>
872: 					#foreach ($highlight in $highlights.keySet())
873: 						<td>
874: 						#set ($value = "-")
875: 						#set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
876: 						#if ($value.length() > 0)
877: 							<span class="value">$value</span>
878: 						#else
879: 							<span class="value">-</span>
880: 						#end	
881: 						</td>
882: 					#end
883: 					</tr></table>
884: 				</div>
885: 			#end
886: 			
887: 			## RECENT GAMES
888: 			#if ($events.size() > 0)
889: 			<div class="bios-stat-wrapper">
890: 				##<h4>Recent Games</h4>
891: 				#printRecentGames()
892: 			</div>
893: 			#end
894: 			
895: 			<div class="bios-stat-wrapper">
896: 				$website.include("$statsURL/../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${pos}")
897: 			</div>
898: 			
899: 		</div>
900: 		#end
901: 		
902: 		## STATS TABS
903: 		#if ($statsURL.length() > 0)
904: 			$website.includeAgain("${statsURL}?tmpl=bio-template&stats=1&biourl=${tool.esc.url($page.url)}&view=${view}&pos=${request.getParameter('pos')}")
905: 			
906: 			<div id="tab-splits"></div>
907: 			
908: 		#end
909: 		
910: 	</div>
911: 	#end
912: </div>   
913:    
914:    
915: #else
916: ## NOT MOBILE
917: 
918: <head>
919: 	<title>$fullName #if ($attributes.get("team")) | $attributes.get("team")#end</title>
920: 	<link rel="stylesheet" type="text/css" href="/info/bio-styles.css" />
921: </head>
922: 
923: ## FULL ROSTER
924: <div class="bio-wrap clearfix">
925: 
926: <div class="head clearfix">
927: 
928: <div class="bio-title">#if ($attributes.get("number"))<span class="number">$!attributes.get("number") - #end</span><span class="name">$fullName</span></div>
929: 
930: <div class="about">
931: 
932: <div class="clearfix">
933: 
934: #printHeadshot(150, 200)
935: 
936: #set ($counter = 0)
937: <table cellpadding="5" cellspacing="5" border="0">
938: 
939: #foreach ($i in [1..10])
940: 	#set ($stickyKey = "bio_custom${i}_sticky")
941: 	#if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
942: 		<tr><td class="lbl">$options.get($stickyKey): </td><td class="val">$!attributes.get("custom${i}")</td></tr>
943: 		#set ($counter = $counter + 1)
944: 	#end
945: #end
946: 
947: #foreach ($field in $fields)
948: 	#if (! $field.key.startsWith("custom"))
949: 		#if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
950: 
951: 			#if ($field.key == "phone1" || $field.key == "phone2")
952: 				<tr><td class="lbl">Phone: </td><td class="val">$!attributes.get($field.key)</td></tr>
953: 			#elseif ($field.key == "email_address")
954: 				#set ($emailAdd = $attributes.get($field.key))
955: 				<tr><td class="lbl">Email: </td><td class="val"><a href="mailto:${emailAdd}">$emailAdd</a></td></tr>
956: 			#else
957: 				<tr><td class="lbl">$field.value: </td><td class="val">$!attributes.get($field.key)</td></tr>
958: 			#end
959: 
960: 			#set ($counter = $counter + 1)
961: 		#end
962: 	#end
963: #end
964: 
965: #foreach ($i in [1..10])
966: 	#set ($customKey = "bio_custom${i}")
967: 	#if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
968: 		<tr><td class="lbl">$options.get($customKey): </td><td class="val">$!attributes.get("custom${i}")</td></tr>
969: 		#set ($counter = $counter + 1)
970: 	#end
971: #end
972: 
973: </table>
974: 
975: </div> ## clearfix
976: </div> ## ends about
977: 
978: #if ($highlights && $showHighlights)
979: <div class="headstats">
980: 	#foreach ($highlight in $highlights.keySet())
981: 		<div class="hst">
982: 		<span class="title" title="$!highlights.get($highlight)">$!highlights.get($highlight)</span>
983: 		#set ($value = "-")
984: 		#set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
985: 		#if ($value.length() > 0)
986: 			<span class="value">$value</span>
987: 		#else
988: 			<span class="value">-</span>
989: 		#end
990: 		</div>
991: 	#end
992: </div>
993: #end ## if-highlights
994: 
995: </div> ## ends head
996: 
997: #if ($hasSynopsis || $hasBioBrief || $statsURL.length() > 0 || $hasHTMLStats || $showRoster)
998: <div class="stats-tabs clearfix">
999: 	#if (($hasSynopsis || $hasBioBrief || $statsURL.length() > 0 || $hasHTMLStats) && $view.length() > 0)
1000: 	<ul class="clearfix">
1001: 		#if ($hasSynopsis || $hasBioBrief)
1002: 			#if ($view == "bio")<li class="active">#else<li>#end<a href="${page.url}?view=bio">Bio</a></li>
1003: 		#end
1004: 		
1005: 		#if ($statsURL.length() > 0)
1006: 			#if ($view == "profile")<li class="active">#else<li>#end<a href="${page.url}?view=profile">Player Profile</a></li>
1007: 			#if ($view == "gamelog")<li class="active">#else<li>#end<a href="${page.url}?view=gamelog">Game Log</a></li>
1008: 			#if ($showCareer)
1009:   			    #if ($view == "career")<li class="active">#else<li>#end<a href="${page.url}?view=career">Career Stats</a></li>
1010:   			#end
1011: 			#if ($view == "splits")<li class="active">#else<li>#end<a href="${page.url}?view=splits">Split Stats</a></li>
1012: 		#end
1013: 
1014: 		#if ($hasHTMLStats)
1015: 			#if ($view == "htmlstats")<li class="active">#else<li>#end<a href="${page.url}?view=htmlstats">HTML Stats</a></li>
1016: 		#end
1017: 	</ul>
1018: 	#end
1019: 	#if ($showRoster)
1020: 		#if ($page.contentType == "loki/bio")
1021: 			#set ($headlinesFeaturedSize = 0)
1022: 			#foreach ($featuredPage in $page.headlinesFeatured)
1023: 				#if ($featuredPage.contentType == "loki/headlines")
1024: 					#set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
1025: 				#end
1026: 			#end
1027: 			#if ($headlinesFeaturedSize > 0)
1028: 				<select class="roster-select-list">
1029: 					<option selected="selected" class="bold">Related Bios</option>
1030:     			#foreach ($featuredPage in $page.headlinesFeatured)
1031:     				#if ($featuredPage.contentType == "loki/headlines")
1032:     					$website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
1033:     				#end
1034: 				#end
1035: 				</select>
1036: 			#end
1037: 		#elseif ($page.contentType == "loki/bio-network")
1038: 			#set ($relatedPlayers = $page.sectionPage.children)
1039: 			#set ($teamNames = {})
1040: 			#foreach ($relatedPlayer in $relatedPlayers)
1041: 				#if ($relatedPlayer.contentType == "loki/bio-network")
1042: 					#set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
1043: 					## <span class="none relatedplayeratt">$relatedPlayerObj</span>
1044: 					#set ($teamName = $relatedPlayerObj.get("team"))
1045: 					#if ($teamName.length() > 0)
1046:     					#if (!$teamNames.containsValue($teamName))
1047:     						$!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
1048:     					#end
1049: 					#end
1050: 				#end
1051: 			#end
1052: 			##<span class="none teamnames">$teamNames</span>
1053: 			<select class="roster-select-list">
1054: 			#foreach ($i in [1..$teamNames.size()])
1055: 				#if ($teamNames.size() > 1)
1056: 					<optgroup label="$teamNames.get($i)">
1057: 				#end
1058: 				
1059: 				#foreach ($relatedPlayer in $relatedPlayers)
1060: 					#if ($relatedPlayer.contentType == "loki/bio-network")
1061: 						#set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
1062: 						#set ($teamName = $relatedPlayerObj.get("team"))
1063: 						#if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
1064: 							#set ($playerFirstName = $relatedPlayerObj.get("first_name"))
1065: 							#set ($playerLastName = $relatedPlayerObj.get("last_name"))
1066: 							#if ($page.url == $relatedPlayer.url)
1067: 								<option value="$relatedPlayer.url" selected="selected" class="bold">${playerFirstName} ${playerLastName}</option>
1068: 							#else
1069: 								<option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
1070: 							#end
1071: 						#end
1072: 					#end
1073: 				#end
1074: 				
1075: 				#if ($teamNames.size() > 1)
1076: 					</optgroup>
1077: 				#end
1078: 			#end
1079: 			</select>
1080: 		#end
1081: 	#end
1082: </div>
1083: #end
1084: 
1085: #if ($hasSynopsis || $hasBioBrief || $statsURL.length() > 0 || $hasHTMLStats)
1086: 	<div class="tab-content-panels">
1087: #end
1088: 
1089: ## BIO TAB
1090: #if ($hasSynopsis || $hasBioBrief)
1091: 
1092: #set ($class = "tab-content clearfix")
1093: #if ($view == "bio")
1094: 	#set ($class = "tab-content clearfix active")
1095: #end
1096: <div class="${class}">
1097: 
1098: <div class="synopsis clearfix">
1099: #if ($hasSynopsis)
1100: 	$synopsis
1101: #elseif ($hasBioBrief)
1102: 	$website.include("$bioBriefURL")
1103: #end
1104: </div>
1105: 
1106: </div> ## tab-content
1107: #end ## BIO TAB ENDS
1108: 
1109: ## STATS TABS
1110: #if ($statsURL.length() > 0)
1111:   $website.includeAgain("${statsURL}?tmpl=bio-template&stats=1&biourl=${tool.esc.url($page.url)}&view=${view}&pos=${request.getParameter('pos')}")
1112: #end
1113: 
1114: ## HTML TAB
1115: #if ($hasHTMLStats)
1116: 
1117: #set ($class = "tab-content clearfix")
1118: #if ($view == "htmlstats")
1119: 	#set ($class = "tab-content clearfix active")
1120: #end
1121: <div class="${class}">
1122: 	<a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
1123: </div>
1124: 
1125: #end
1126: 
1127: #if ($hasSynopsis || $hasBioBrief || $statsURL.length() > 0 || $hasHTMLStats)
1128: 	</div>
1129: #end
1130: 
1131: </div> ## ends bio-wrap
1132: 
1133: #if ($request.getAttribute("bioScriptCalled"))
1134:   #set ($scriptCalled = true)
1135: #else
1136:   #set ($scriptCalled = false)
1137: #end
1138: 
1139: #if (!$scriptCalled)
1140: 	
1141: $!request.setAttribute("bioScriptCalled", true)
1142: <script type="text/javascript" src="$website.cdn("/info/jquery.address-1.5.min.js")"></script>
1143: <script type="text/javascript">
1144: 
1145: jQuery.address.strict(false).state('${page.url}').init(function() {
1146: 	$('.bio-wrap .stats-tabs a').address();
1147: 	$('.bio-wrap .stats-tabs-secondary a').address();
1148: });
1149: 
1150: $(function() {
1151: 
1152: $('.bio-wrap .stats-tabs li').click(function(e) {
1153: 	e.preventDefault();
1154: 	if (!$(this).hasClass('active')) {
1155: 		$(this).addClass('active').siblings().removeClass('active');
1156: 		$(this).parent().parent('.stats-tabs').next('.tab-content-panels').children('.tab-content').removeClass('active').eq($(this).index()).addClass('active');
1157: 	}
1158: });
1159: 
1160: $('.bio-wrap .stats-tabs-secondary li').click(function(e) {
1161: 	e.preventDefault();
1162: 	if (!$(this).hasClass('active')) {
1163: 		$(this).addClass('active').siblings().removeClass('active');
1164: 		$(this).parent().parent('.stats-tabs-secondary').next('.sub-tab-panels').children('.sub-tab-content').removeClass('active').eq($(this).index()).addClass('active');
1165: 	}
1166: });
1167: 
1168: #if ($showRoster)
1169: 	$('.bio-wrap .roster-select-list').change(function() {
1170: 		window.location.href = $(this).val();
1171: 	});
1172: #end
1173: 
1174: #if ($hasHTMLStats)
1175: 	$('.bio-htmlstats-identifier').each(function() {
1176: 		var targetElement = $(this);
1177: 		jQuery.get($(this).attr('href'), function(data) {
1178: 			var htmlStats = $(data).find('center').first();
1179: 			htmlStats.add(htmlStats.siblings('center'));
1180: 			if (htmlStats.children().length > 0) {
1181: 				targetElement.replaceWith(htmlStats);
1182: 			}
1183: 		});
1184: 	});
1185: #end
1186: 
1187: });
1188: </script>
1189: #end
1190: 
1191: #end ## MOBILE CHECK
1192: #end ## STATS PARAMETER
1193: 
1194: $wiki

View: Mobile | Desktop