30 Abbey Lawrence
30 - Abbey Lawrence
Height: 5-9
Year: So.
Hometown: West Caldwell, N.J.
High School: Newark Tech
Position: G/F
Major: Nursing
gp 25
pts/g 16.2
fg % 42.6
3pt % 33.3
ft % 85.4
reb/g 4.5
a/g 1.6

2019-20 Season/ Career Highs:

Season

 

Career

30 (at Brandeis 1/31/20)

Points

30 (at Brandeis 1/31/20)

10 (2 times)

Field Goals

10 (2 times)

3 (4 times)

3-pt Field Goals

5 (at Carnegie Mellon 1/5/19)

9 (at Carnegie Mellon 2/29/20)

Rebounds

9 (at Carnegie Mellon 2/29/20)

5 (2 times)

Assists

5 (2 times)

2 (at NYU 2/2/20)

Blocks

2 (2 times)

3 (vs. Emory 2/23/20)

Steals

3 (vs. Emory 2/23/20)

Sophomore (2019-20): Named to the D3hoops.com All-Great Lakes Region Third Team, marking the seventh time in program history that a Spartan has been named to the all-region team and the first time since 2016-17… It was just the fourth time a CWRU non-senior player has been named to the team… Selected to the All-UAA First Team as well… Finished the year second among conference players with 16.2 points per game, while her 404 total points were the eighth-most ever in a single season in program history… Shot 42.6% overall from the floor, including 33.3% from behind the three-point line... Converted free throws at an 85.4% clip, the 26th-best mark among qualifying Division III players during the year, and the 11th-best rate in team history… Added 4.5 rebounds, 1.5 assists and 1.1 steals per game during the year… Started all 25 games, scoring in double figures 20 times, including 10 efforts of 20 or more points… Registered a 30-point effort against Brandeis on January 31 and a 28-point game against NYU on February 2, earning USBWA National Player of the Week honors following the weekend performance… Also secured UAA Athlete of the Week honors and a spot on the D3hoops.com Team of the Week… Averaged 19.0 points per game in wins over Washington (Mo.) and Chicago on January 17 and 19, en route to being named the UAA Athlete of the Week and earning a place on the D3hoops.com Team of the Week… Became the only player in program history to be named to the D3hoops.com Team of the Week twice in the same season, and one of just two players (along with Kara Hageman) to receive the honor multiple times over a career… Earned an additional UAA Athlete of the Week award on January 6, after scoring 24 points in a win over Wooster on December 20, and 20 points during the team’s victory against Chatham on January 2… Named to the M-Club All-Tournament Team after averaging 12.5 points over two games during the tournament… Received UAA Winter All-Academic honors.

First-Year (2018-19): Had an immediate impact on the Spartans’ roster during her freshman season, appearing in all 25 games off the bench… Was third on the team with 8.0 points per game, adding 3.6 rebounds per contest as well… Averaged 20.8 minutes per game, shooting 37.2% from the floor, 32.4% from three-point range, and a team-high 85.4% from the free throw line (the 11th-best single-season mark in program history)… Added 13 assists, seven blocks and 13 steals during the year… Scored in double figures on eight occasions during the campaign, while totaling five or more rebounds in nine games… Scored a season-high 19 points and collected seven rebounds against Carnegie Mellon on January 5th, shooting seven-of-11 from the floor, including a season-best five-for-five from three-point range… Secured a season-high eight rebounds and added eight points against Chatham on November 17th.

Personal: Was a four-year member of the Newark Tech High School basketball team, serving as a captain during her junior and senior years... Coached by Keith Jefferson... Graduated as the school's all-time leading scorer with 1,411 career points... Was an All-State honoree in 2017 and 2018, an All-Group Second Team selection from 2016-18, and a 2017 First Team All-County honoree... Helped lead her team to three New Jersey State Sectional Championships and the Essex County Championship in 2017 and 2018... Also played varsity volleyball for two years... Was her high school's valedictorian... Member of the National Honor Society from 2016-18... New Jersey State Interscholastic Athletic Association Scholar Athlete Award Recipient... Born September 24... Daughter of David and Terri Ann... Her father played basketball at NYU, while her mother ran track for the Violets.

Recent Games
Feb 9 New York U. L, 64-55
Feb 14 at Washington (Mo.) L, 88-71
Feb 16 at Chicago L, 83-41
Feb 21 Rochester (N.Y.) L, 58-54
Feb 23 Emory L, 88-84
Feb 29 at Carnegie Mellon L, 71-70
Statistics category Overall Conf
Games 25 14
Games started 25 14
Minutes 801 442
Minutes per game 32.0 31.6
FG 146-343 75-189
FG Pct 42.6 39.7
3PT 36-108 20-60
3PT Pct 33.3 33.3
FT 76-89 42-47
FT Pct 85.4 89.4
Off rebounds 37 20
Def rebounds 76 47
Total rebounds 113 67
Rebounds per game 4.5 4.8
Personal fouls 56 31
Disqualifications 0 -
Assists 41 24
Turnovers 54 24
Assist to turnover ratio 0.8 1.0
Steals 28 17
Blocks 4 2
Points 404 212
Points per game 16.2 15.1
Points per 40 min 20.2 19.2
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 9 at Albion L, 76-51 1 31 9-17 52.9 1-5 20.0 2-2 100.0 21
Nov 12 at Kenyon L, 47-45 1 37 6-13 46.2 3-6 50.0 0-0 - 15
Nov 15 at Wash. & Jeff. L, 71-64 1 34 7-16 43.8 2-4 50.0 5-6 83.3 21
Nov 16 vs. Otterbein L, 65-56 1 36 7-16 43.8 2-7 28.6 9-11 81.8 25
Nov 19 Waynesburg W, 96-79 1 32 6-13 46.2 1-2 50.0 6-6 100.0 19
Nov 22 vs. Hope L, 80-43 1 25 2-5 40.0 0-2 0.0 0-0 - 4
Nov 23 vs. Juniata W, 70-46 1 30 8-14 57.1 1-3 33.3 4-5 80.0 21
Nov 26 at John Carroll L, 71-54 1 31 4-12 33.3 0-3 0.0 0-2 0.0 8
Dec 7 Denison W, 79-72 1 48 4-17 23.5 1-8 12.5 5-6 83.3 14
Dec 20 Wooster W, 95-70 1 24 10-13 76.9 2-3 66.7 2-2 100.0 24
Jan 2 Chatham W, 71-51 1 31 8-18 44.4 3-5 60.0 1-2 50.0 20
Jan 11 Carnegie Mellon W, 78-51 1 26 4-8 50.0 3-5 60.0 0-0 - 11
Jan 17 Washington (Mo.) W, 74-73 1 34 8-17 47.1 2-5 40.0 3-3 100.0 21
Jan 19 Chicago W, 77-71 1 33 6-16 37.5 1-3 33.3 4-4 100.0 17
Jan 24 at Rochester (N.Y.) L, 88-60 1 33 5-19 26.3 0-4 0.0 0-0 - 10
Jan 26 at Emory L, 74-50 1 29 4-8 50.0 3-3 100.0 0-0 - 11
Jan 31 at Brandeis W, 80-68 1 38 10-18 55.6 3-7 42.9 7-7 100.0 30
Feb 2 at New York U. W, 87-75 1 37 9-15 60.0 1-3 33.3 9-9 100.0 28
Feb 7 Brandeis L, 80-71 1 35 6-19 31.6 2-7 28.6 2-2 100.0 16
Feb 9 New York U. L, 64-55 1 26 3-10 30.0 2-5 40.0 0-0 - 8
Feb 14 at Washington (Mo.) L, 88-71 1 33 7-15 46.7 1-3 33.3 5-6 83.3 20
Feb 16 at Chicago L, 83-41 1 23 2-11 18.2 0-2 0.0 3-4 75.0 7
Feb 21 Rochester (N.Y.) L, 58-54 1 33 5-16 31.3 0-6 0.0 5-6 83.3 15
Feb 23 Emory L, 88-84 1 34 6-9 66.7 2-2 100.0 3-4 75.0 17
Feb 29 at Carnegie Mellon L, 71-70 1 28 0-8 0.0 0-5 0.0 1-2 50.0 1
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 9 at Albion L, 76-51 1 31 2 4 6 2 1 2.0 0 0 2 0
Nov 12 at Kenyon L, 47-45 1 37 1 3 4 1 2 0.5 0 0 3 -
Nov 15 at Wash. & Jeff. L, 71-64 1 34 3 3 6 3 2 1.5 2 0 3 -
Nov 16 vs. Otterbein L, 65-56 1 36 2 0 2 0 2 0.0 1 0 3 -
Nov 19 Waynesburg W, 96-79 1 32 2 3 5 1 3 0.3 2 0 1 -
Nov 22 vs. Hope L, 80-43 1 25 0 3 3 0 4 0.0 0 0 2 -
Nov 23 vs. Juniata W, 70-46 1 30 2 1 3 3 2 1.5 2 1 2 -
Nov 26 at John Carroll L, 71-54 1 31 0 3 3 2 4 0.5 2 0 2 -
Dec 7 Denison W, 79-72 1 48 2 4 6 4 5 0.8 1 1 2 -
Dec 20 Wooster W, 95-70 1 24 1 2 3 1 3 0.3 1 0 4 -
Jan 2 Chatham W, 71-51 1 31 2 3 5 0 2 0.0 0 0 1 -
Jan 11 Carnegie Mellon W, 78-51 1 26 0 2 2 1 1 1.0 2 0 3 -
Jan 17 Washington (Mo.) W, 74-73 1 34 1 1 2 1 2 0.5 2 0 2 -
Jan 19 Chicago W, 77-71 1 33 2 2 4 0 2 0.0 1 0 3 -
Jan 24 at Rochester (N.Y.) L, 88-60 1 33 3 0 3 1 0 - 1 0 3 -
Jan 26 at Emory L, 74-50 1 29 1 4 5 2 1 2.0 1 0 2 -
Jan 31 at Brandeis W, 80-68 1 38 1 6 7 5 1 5.0 1 0 3 -
Feb 2 at New York U. W, 87-75 1 37 0 7 7 1 3 0.3 1 2 3 -
Feb 7 Brandeis L, 80-71 1 35 1 5 6 5 2 2.5 1 0 2 -
Feb 9 New York U. L, 64-55 1 26 0 3 3 0 2 0.0 1 0 2 -
Feb 14 at Washington (Mo.) L, 88-71 1 33 3 4 7 3 3 1.0 0 0 2 -
Feb 16 at Chicago L, 83-41 1 23 2 0 2 0 1 0.0 0 0 1 -
Feb 21 Rochester (N.Y.) L, 58-54 1 33 2 3 5 2 1 2.0 2 0 4 -
Feb 23 Emory L, 88-84 1 34 1 4 5 3 3 1.0 3 0 1 -
Feb 29 at Carnegie Mellon L, 71-70 1 28 3 6 9 0 2 0.0 1 0 0 -
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
2018-19 25 - 20.8 2.8-7.6 37.2 0.9-2.8 32.4 1.4-1.6 85.4 8.0
2019-20 25 25 32.0 5.8-13.7 42.6 1.4-4.3 33.3 3.0-3.6 85.4 16.2
2020-21 - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
Total 50 25 26.4 4.3-10.7 40.6 1.2-3.6 33.0 2.2-2.6 85.4 12.1
  gp gs min fg pct 3pt pct ft pct pts
2018-19 25 - 519 71-191 37.2 23-71 32.4 35-41 85.4 200
2019-20 25 25 801 146-343 42.6 36-108 33.3 76-89 85.4 404
2020-21 - - - 0-0 - 0-0 - 0-0 - 0
Total 50 25 1320 217-534 40.6 59-179 33.0 111-130 85.4 604
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
2018-19 25 - 20.8 5.5-14.7 37.2 1.8-5.5 32.4 2.7-3.2 85.4 15.4
2019-20 25 25 32.0 7.3-17.1 42.6 1.8-5.4 33.3 3.8-4.4 85.4 20.2
2020-21 - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
Total 50 25 26.4 6.6-16.2 40.6 1.8-5.4 33.0 3.4-3.9 85.4 18.3
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
2018-19 25 - 20.8 0.9 2.6 3.6 2.2 0.0 0.5 1.0 0.5 0.5 0.3
2019-20 25 25 32.0 1.5 3.0 4.5 2.2 0.0 1.6 2.2 0.8 1.1 0.2
2020-21 - - - - - - - - - - - - -
Total 50 25 26.4 1.2 2.8 4.0 2.2 0.0 1.1 1.6 0.7 0.8 0.2
  gp gs min off def reb pf dq ast to a/to stl blk
2018-19 25 - 519 23 66 89 54 0 13 26 0.5 13 7
2019-20 25 25 801 37 76 113 56 0 41 54 0.8 28 4
2020-21 - - - - - - - - - - - - -
Total 50 25 1320 60 142 202 110 0 54 80 0.7 41 11
  gp gs mpg off/40 def/40 reb/40 pf/40 dq/40 ast/40 to/40 a/to stl/40 blk/40
2018-19 25 - 20.8 1.8 5.1 6.9 4.2 0.0 1.0 2.0 0.5 1.0 0.5
2019-20 25 25 32.0 1.8 3.8 5.6 2.8 0.0 2.0 2.7 0.8 1.4 0.2
2020-21 - - - - - - - - - - - - -
Total 50 25 26.4 1.8 4.3 6.1 3.3 0.0 1.6 2.4 0.7 1.2 0.3
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 25 25 32.0 5.8-13.7 42.6 1.4-4.3 33.3 3.0-3.6 85.4 16.2
Conference 14 14 31.6 5.4-13.5 39.7 1.4-4.3 33.3 3.0-3.4 89.4 15.1
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 11 11 32.4 6.0-14.2 42.3 1.7-4.6 37.3 2.8-3.2 88.6 16.5
Away 11 11 32.2 5.7-13.8 41.4 1.3-4.1 31.1 2.9-3.5 84.2 15.6
Neutral 3 3 30.3 5.7-11.7 48.6 1.0-4.0 25.0 4.3-5.3 81.3 16.7
-
Wins 10 10 33.3 7.3-14.9 49.0 1.8-4.4 40.9 4.1-4.4 93.2 20.5
Losses 15 15 31.2 4.9-12.9 37.6 1.2-4.3 28.1 2.3-3.0 77.8 13.3
-
November 8 8 32.0 6.1-13.2 46.2 1.2-4.0 31.3 3.2-4.0 81.3 16.8
December 2 2 36.0 7.0-15.0 46.7 1.5-5.5 27.3 3.5-4.0 87.5 19.0
January 7 7 32.0 6.4-14.9 43.3 2.1-4.6 46.9 2.1-2.3 93.8 17.1
February 8 8 31.1 4.8-12.9 36.9 1.0-4.1 24.2 3.5-4.1 84.8 14.0
  gp gs min fg pct 3pt pct ft pct pts
Total 25 25 801 146-343 42.6 36-108 33.3 76-89 85.4 404
Conference 14 14 442 75-189 39.7 20-60 33.3 42-47 89.4 212
Exhibition - - - 0-0 - 0-0 - 0-0 - 0
-
Home 11 11 356 66-156 42.3 19-51 37.3 31-35 88.6 182
Away 11 11 354 63-152 41.4 14-45 31.1 32-38 84.2 172
Neutral 3 3 91 17-35 48.6 3-12 25.0 13-16 81.3 50
-
Wins 10 10 333 73-149 49.0 18-44 40.9 41-44 93.2 205
Losses 15 15 468 73-194 37.6 18-64 28.1 35-45 77.8 199
-
November 8 8 256 49-106 46.2 10-32 31.3 26-32 81.3 134
December 2 2 72 14-30 46.7 3-11 27.3 7-8 87.5 38
January 7 7 224 45-104 43.3 15-32 46.9 15-16 93.8 120
February 8 8 249 38-103 36.9 8-33 24.2 28-33 84.8 112
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
Total 25 25 32.0 7.3-17.1 42.6 1.8-5.4 33.3 3.8-4.4 85.4 20.2
Conference 14 14 31.6 6.8-17.1 39.7 1.8-5.4 33.3 3.8-4.3 89.4 19.2
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 11 11 32.4 7.4-17.5 42.3 2.1-5.7 37.3 3.5-3.9 88.6 20.4
Away 11 11 32.2 7.1-17.2 41.4 1.6-5.1 31.1 3.6-4.3 84.2 19.4
Neutral 3 3 30.3 7.5-15.4 48.6 1.3-5.3 25.0 5.7-7.0 81.3 22.0
-
Wins 10 10 33.3 8.8-17.9 49.0 2.2-5.3 40.9 4.9-5.3 93.2 24.6
Losses 15 15 31.2 6.2-16.6 37.6 1.5-5.5 28.1 3.0-3.8 77.8 17.0
-
November 8 8 32.0 7.7-16.6 46.2 1.6-5.0 31.3 4.1-5.0 81.3 20.9
December 2 2 36.0 7.8-16.7 46.7 1.7-6.1 27.3 3.9-4.4 87.5 21.1
January 7 7 32.0 8.0-18.6 43.3 2.7-5.7 46.9 2.7-2.9 93.8 21.4
February 8 8 31.1 6.1-16.5 36.9 1.3-5.3 24.2 4.5-5.3 84.8 18.0
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
Total 25 25 32.0 1.5 3.0 4.5 2.2 0.0 1.6 2.2 0.8 1.1 0.2
Conference 14 14 31.6 1.4 3.4 4.8 2.2 - 1.7 1.7 1.0 1.2 0.1
There was a problem with a Velocity script
Pagebio-template
ErrorVM #split: too few arguments to macro. Wanted 5 got 3 at bio-template[line 294, column 1]
Page source:
1: $website.addCss($website.cdn("/info/photo-gallery.css"))
2: <script src="${website.cdn("/info/klass.min.js")}"></script>
3: <script src="${website.cdn("/info/code.photoswipe.jquery-3.0.5.min.js")}"></script>
4: <script src="${website.cdn("/info/masonry.pkgd.min.js")}"></script>
5: <script src="${website.cdn("/info/imagesloaded.pkgd.min.js")}"></script>
6: <script src="${website.cdn("/info/photogallery/photogallery.js")}"></script>
7: 
8: ## PICK UP OPTIONS
9: $website.include("options")
10: #set ($options = $request.getAttribute("options"))
11: #set ($locale = "en_us")
12: #set ($locale = $options.get("locale"))
13: 
14: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE
15: #set ($bioObject = $page.getDataAsObject())
16: #set ($statsURL = $bioObject.statsURL)
17: 
18: #if ($statsURL.length() > 0)
19:   $website.includeAgain("${statsURL}?tmpl=bio-stats-template")
20:   ## various settings to get the variables set
21:   #set ($events = $request.getAttribute("bio_events"))
22:   #set ($seasons = $request.getAttribute("bio_seasons"))
23:   #set ($career = $request.getAttribute("bio_career"))
24:   #set ($labels = $request.getAttribute("bio_labels"))
25:   #set ($briefs = $request.getAttribute("bio_briefs"))
26:   #set ($gamelogs = $request.getAttribute("bio_gamelogs"))
27:   #set ($splits = $request.getAttribute("bio_splits"))
28:   #set ($statPosition = $request.getAttribute("bio_position"))
29:   #set ($positions = $request.getAttribute("bio_positions"))
30:   #set ($playerId = $request.getAttribute("bio_player_id"))
31:   #set ($highlights = $request.getAttribute("bio_highlights"))
32:   #set ($formats = $request.getAttribute("bio_formats"))
33:   #set ($gamelogsCategoriesLabels = $request.getAttribute("bio_gamelogs_labels"))
34:   #set ($briefsCategoriesLabels = $request.getAttribute("bio_briefs_labels"))
35:   #set ($gamesResults = $request.getAttribute("bio_games_results"))
36:   #set ($monthsPlayed = $request.getAttribute("bio_months_played"))
37: #end
38: 
39: #set ($pos = "")
40: #set ($pos = $attributes.get("position"))
41: #set ($pos = $statPosition)
42: #set ($posVec = $pos.split("/"))
43: #set ($pos = $posVec[0])
44: #set ($pos = $pos.toLowerCase())
45: #set ($statPos = $positions.get($pos))
46: #set ($paramPos = $request.getParameter("pos"))
47: 
48: #set ($playerId = $attributes.get("playerId"))
49: #set ($stats = $splits.overall)
50: #set ($highlights = $highlights.get($statPos))
51: 
52: #set ($showHighlights = true)
53: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false)
54: 	#set ($showHighlights = false)
55: #end
56: 
57: #set ($enhancedLayout = false)
58: #if (($options.get("bio_enhanced_layout") == "yes") || ($request.getParameter("bio_enhanced_layout") == true))
59: 	#set ($enhancedLayout = true)
60: 	$website.addCss($website.cdn("/info/bio-styles-enhanced.css"))
61: #end
62: 
63: #set ($showActionShots = true)
64: #if ($options.get("bio_show_action_shots") && $options.get("bio_show_action_shots") == false)
65: 	#set ($showActionShots = false)
66: #end
67: 
68: #set ($actionShotsLimit = 5)
69: #set ($actionShotsLimit = $tool.math.toInteger($options.get("bio_action_shots_limit")))
70: 
71: #set ($showCareer = $wiki.valid() && $seasons)
72: #if ("yes" == $options.get("stats_show_career") && $seasons)
73:   #set ($showCareer = true)
74: #end
75: 
76: #set ($hasEvents = $events.size() > 0)
77: #set ($hasSynopsis = $synopsis.trim().length() > 0)
78: #set ($htmlStatsURL = "${page.url}-stats")
79: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
80: #set ($bioBriefURL = "${page.url}-brief")
81: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
82: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1))
83: #if ($options.get("bio_hide_roster") == true)
84:   #set ($showRoster = false)
85: #end
86: 
87: #set ($view = "")
88: #if ($hasSynopsis || $hasBioBrief)
89:   #set ($view = "bio")
90: #elseif ($statsURL.length() > 0)
91:   #set ($view = "profile")
92: #elseif ($hasHTMLStats)
93:   #set ($view = "htmlstats")
94: #elseif ($releases.size() > 0)
95:   #set ($view = "news")
96: #elseif ($playerPhotos.size() > 0)
97:   #set ($view = "photos")
98: #elseif ($playerVideos.size() > 0)
99:   #set ($view = "videos")
100: #end
101: 
102: #if ($options.get("bio_default_view").length() > 0)
103:   #set ($checkView = $options.get("bio_default_view"))
104: #end
105: 
106: #if ($request.getParameter("view"))
107:   #set ($checkView = $request.getParameter("view"))
108: #end
109: 
110: #if ($checkView == "profile" && $statsURL.length() > 0)
111:   #set ($view = "profile")
112: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
113:   #set ($view = "bio")
114: #elseif ($checkView == "gamelog" && $statsURL.length() > 0)
115:   #set ($view = "gamelog")
116: #elseif ($checkView == "career" && $showCareer)
117:   #set ($view = "career")
118: #elseif ($checkView == "splits" && $statsURL.length() > 0)
119:   #set ($view = "splits")
120: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
121:   #set ($view = "htmlstats")
122: #elseif ($checkView == "news" && $releases.size() > 0)
123:   #set ($view = "news")
124: #elseif ($checkView == "photos" && $playerPhotos.size() > 0)
125:   #set ($view = "photos")
126: #elseif ($checkView == "videos" && $playerVideos.size() > 0)
127:     #set ($view = "videos")
128: #end
129: 
130: #macro (printResultAriaLabel $event)
131:     #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
132:     #if ($event.neutralSite.length() > 0 || $event.home)
133:     	#set ($ariaLabel = "${ariaLabel} vs.")
134:     #else
135:     	#set ($ariaLabel = "${ariaLabel} at")
136:     #end
137:     #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
138:     #if ($event.neutralSite.length() > 0)
139:     	#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
140:     #end
141:     #set ($ariaLabel = "${ariaLabel} Box Score")
142:     aria-label="$ariaLabel"
143: #end
144: 
145: #macro (printGrid $items $type)
146: <div class="news-layout grid">
147:     <div class="stories">
148:         <ul>
149:         #foreach ($item in $items)
150:             #if ($item.title.length() > 0)
151: 
152:                 <li class="story ${type}">
153:                 	<div class="clearfix">
154:                 	<a href="$item.url" class="title-box">
155:                         <span class="thumb">
156:                         #if ($item.thumbnailURL)
157:                         	<img src="$website.cdn("/info/images/spacer.gif")" data-src="${item.thumbnailURL}?max_width=300" alt="" class="lazyload" />
158: 						#elseif ($item.contentType == "loki/youtube")
159: 							<img src="$website.cdn("/info/images/spacer.gif")" data-src="http://img.youtube.com/vi/${item.dataAsString}/0.jpg" alt="" class="lazyload" />
160:                         #else
161:                         	<img src="$website.cdn("/info/images/spacer.gif")" data-src="/images/setup/thumbnail_default.jpg?max_width=300" alt="" class="lazyload" />
162:                         #end
163:                         </span>
164:                 		<span class="title">$item.title</span>
165:                 	</a>
166:                 	</div>
167:                 </li>
168:             #end
169:         #end ## foreach
170:         </ul>
171:     </div>
172: </div>
173: #end ## ends macro
174: 
175: #macro (gamelogData $p)
176: 
177: #set ($p = $positions.get($p))
178: #set ($gamelogs = $gamelogs.get($p))
179: 
180: #if ($hasEvents)
181: <div class="stats-box full clearfix">
182: <div class="scrollable">
183: <div>
184: <table>
185:   <tr class="thead">
186:     <th class="text">Date</th>
187:     <th class="pinned-col text">Opponent</th>
188:     <th>Score</th>
189:     #foreach ($gamelog in $gamelogs)
190:       <th>$gamelog</th>
191:     #end
192:   </tr>
193: #foreach ($event in $events)
194:   <tr>
195:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
196:     <td class="pinned-col text">
197:       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
198:       $event.event.opponent.name
199:     </td>
200:     <td>
201:     #if ($event.event.statusCode >= 0)
202:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
203:           <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
204:       #else
205:       ${event.event.APResult}
206:       #end
207:     #else &nbsp; #end
208:     </td>
209:     #foreach ($gamelog in $gamelogs.keySet())
210:       #set ($value = "-")
211:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
212:       <td>$value</td>
213:     #end
214:   </tr>
215: #end
216: </table>
217: </div>
218: </div> ## scrollable
219: </div> ## stats-box
220: #end
221: 
222: #end ## macro gamelogData
223: 
224: #macro (split $statPosBriefs $label $stats)
225:   <tr>
226:     <td class="pinned-col text">${label}</td>
227:     #foreach ($brief in $statPosBriefs.keySet())
228:       #set ($value = "-")
229:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
230:       <td>#if ($value.length() > 0) $value #else - #end</td>
231:     #end
232:   </tr>
233: #end
234: 
235: #macro (careerData $p)
236: #set ($p = $positions.get($p))
237: #set ($statPosBriefs = $briefs.get($p))
238: 
239: <div class="stats-box full clearfix">
240: <div class="scrollable">
241: <div>
242: <table>
243: <tr class="thead">
244:   <th class="pinned-col">&nbsp;</th>
245:   #foreach ($brief in $statPosBriefs)
246:     <th>$brief</th>
247:   #end
248: </tr>
249: 
250: #set ($careerTotals = $request.getAttribute("careerTotals"))
251: #set ($careerMap = $request.getAttribute("careerMap"))
252: 
253: #foreach ($season in $seasons)
254:   ## Check if we did not get stats for this season
255:   #if ($careerMap.get($season.seasonName))
256:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName])
257:   #elseif ($wiki.valid())
258:     <tr>
259:       <td class="text">${season.seasonName}</td>
260:       <td colspan="${statPosBriefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
261:     </tr>
262:   #end
263: #end
264: 
265: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
266: 
267: </table>
268: </div>
269: </div> ## scrollable
270: </div> ## stats-box
271: 
272: #end ## macro careerData
273: 
274: #macro (splitsData $p)
275: 
276: #set ($p = $positions.get($p))
277: #set ($statPosBriefs = $briefs.get($p))
278: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1))
279: 
280: #if ($statPosBriefs.size() > 0)
281: <div class="stats-box full clearfix">
282: <div class="scrollable">
283: <div>
284: <table>
285:   <tr>
286:     <th class="pinned-col">&nbsp;</th>
287:     #foreach ($brief in $statPosBriefs)
288:       <th>$brief</th>
289:     #end
290:   </tr>
291: 
292: #split($statPosBriefs, "Total", $splits.overall)
293: #split($statPosBriefs, "Conference", $splits.conference)
294: #split($statPosBriefs, "Exhibition", $splits.exhibition)
295: 
296: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
297: 
298: #split($statPosBriefs, "Home", $splits.home)
299: #split($statPosBriefs, "Away", $splits.away)
300: #split($statPosBriefs, "Neutral", $splits.neutral)
301: 
302: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
303: 
304: #foreach($gameResult in $gamesResults.entrySet())
305:   #if ($gameResult.key == "wins")
306:     #set ($splitGameResult = $splits.inWins)
307:   #elseif ($gameResult.key == "losses")
308:     #set ($splitGameResult = $splits.inLosses)
309:   #elseif ($gameResult.key == "ties")
310:     #set ($splitGameResult = $splits.inTies)
311:   #end
312: 
313:   #split($statPosBriefs, $gameResult.value, $splitGameResult)
314: #end
315: 
316: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
317: 
318: #if ($monthsPlayed and $monthsPlayed.size() > 0)
319:   #foreach($month in $monthsPlayed)
320:     #if ($month == 'January')
321:       #set ($splitMonth = $splits.january)
322:     #elseif ($month == 'February')
323:       #set ($splitMonth = $splits.february)
324:     #elseif ($month == 'March')
325:       #set($splitMonth = $splits.march)
326:     #elseif ($month == 'April')
327:       #set($splitMonth = $splits.april)
328:     #elseif ($month == 'May')
329:       #set ($splitMonth = $splits.may)
330:     #elseif ($month == 'June')
331:       #set ($splitMonth = $splits.june)
332:     #elseif ($month == 'July')
333:       #set($splitMonth = $splits.july)
334:     #elseif ($month == 'August')
335:       #set ($splitMonth = $splits.august)
336:     #elseif ($month == 'September')
337:       #set($splitMonth = $splits.september)
338:     #elseif ($month == 'October')
339:       #set($splitMonth = $splits.october)
340:     #elseif ($month == 'November')
341:       #set ($splitMonth = $splits.november)
342:     #elseif ($month == 'December')
343:       #set($splitMonth = $splits.december)
344:     #end
345: 
346:     #split($statPosBriefs, $month, $splitMonth)
347:   #end ## foreach
348: #end
349: </table>
350: </div>
351: </div> ## scrollable
352: </div> ## srollable-table
353: #end
354: 
355: #end ## macro splitsData
356: 
357: #macro (printRecentGames)
358: #if ($hasEvents)
359: <table>
360:   <tr class="thead accent-bg"><th colspan="3">Recent Games</th></tr>
361: 
362: #set ($eventEnd = -1)
363: #foreach ($event in $events)
364:   #if ($event.event.result.resolved)
365:     #set ($eventEnd = $velocityCount)
366:   #end
367: #end
368: 
369: #set ($eventStart = $eventEnd - 5)
370: #if ($eventStart < 0) #set ($eventStart = 0) #end
371: 
372: #foreach ($event in $events)
373: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
374:   <tr>
375:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
376:     <td class="text">
377:       #if ($event.event.neutralSite.length() > 0) vs.
378:       #elseif (!$event.event.home) at
379:       #else ## nothing for a home game
380:       #end
381:       $event.event.opponent.name
382:     </td>
383:     <td class="text">
384:     #if ($event.event.statusCode >= 0)
385:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
386:           <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
387:       #else
388:       ${event.event.APResult}
389:       #end
390: 	#end
391: 	</td>
392:   </tr>
393: #end ## if
394: #end
395: </table>
396: #end
397: #end ## macro printRecentGames
398: 
399: #macro (printCategories $briefCategoryLabels $v $ariaLabel)
400: 
401: <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
402: <div class="tab-nav" data-module="jscroll" data-momentum="false">
403: <div>
404: <ul class="clearfix">
405: #foreach($briefCat in $briefCategoryLabels.entrySet())
406:   #set ($briefCatLabel = $briefCat.value)
407:   #set ($briefCatKey = $briefCat.key)
408: 
409:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
410:     #set ($briefCatLabel = "Defence")
411:   #end
412: 
413:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}" role="button" aria-label="${ariaLabel}: ${briefCatLabel}">$briefCatLabel</a></li>
414: #end
415: </ul>
416: </div>
417: </div>
418: <div class="tab-panels">
419: #foreach ($briefCat in $briefCategoryLabels.entrySet())
420:   #set ($class = "tab-panel clearfix")
421:   #if ($briefCat.key == $activePos)
422:     #set ($class = "tab-panel active clearfix")
423:   #end
424:   <div class="$class">
425:     <div class="stats-wrap clearfix">
426:     #if ($v == "splits")
427:       #splitsData($briefCat.key)
428:     #elseif ($v == "career")
429:       #careerData($briefCat.key)
430:     #end
431:     </div>
432:   </div>
433: #end
434: </div>
435: </div> ## tab-container
436: 
437: #end ## macro printCategories
438: 
439: #macro (printHeadshot)
440: #if ($enhancedLayout)
441: 
442:   #if ($headshot.url)
443:     <img src="$headshot.url?max_width=300&max_height=400" alt="$fullName" />
444:   #else
445:     #if ($website.exists("/images/setup/headshot_default.jpg"))
446:       <img src="/images/setup/headshot_default.jpg?max_width=300&max_height=400" alt="$fullName" />
447:     #else
448:       <img src="$website.cdn("/info/images/default_headshot.jpg?max_width=300&max_height=400")" alt="$fullName" />
449:     #end
450:   #end
451: 
452: #else
453: 
454:   #if ($!attributes.get("number").length() > 0)<span class="number">$!attributes.get("number")</span>#end
455: 
456:   #if ($headshot.url)
457:     <img src="$headshot.url?max_width=160&max_height=210" alt="$fullName" />
458:   #else
459:     #if ($website.exists("/images/setup/headshot_default.jpg"))
460:       <img src="/images/setup/headshot_default.jpg?max_width=160&max_height=210" alt="" />
461:     #else
462:       <img src="$website.cdn("/info/images/default_headshot.jpg?max_width=160&max_height=210")" alt="" />
463:     #end
464:   #end
465: 
466: #end ## ## enhancedLayout check
467: #end ## macro printHeadshot
468: 
469: #macro (printBioInfo)
470: #if ($enhancedLayout)
471: 
472: <h2 class="player-heading">
473:   #if ($!attributes.get("number").length() > 0)<span class="number accent-bg">$!attributes.get("number")</span>#end
474:   <span class="name">$fullName</span>
475: </h2>
476: 
477: <ul>
478: #foreach ($i in [1..10])
479:   #set ($stickyKey = "bio_custom${i}_sticky")
480:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
481:     <li>
482:       <dl>
483:         <dt class="label">$options.get($stickyKey): </dt>
484:         <dd class="value">$!attributes.get("custom${i}")</dd>
485:       </dl>
486:     </li>
487:   #end
488: #end
489: 
490: #foreach ($field in $fields)
491:   #if (!$field.key.startsWith("custom"))
492:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
493:       #if ($field.key == "phone1" || $field.key == "phone2")
494:         <li>
495:           <dl>
496:             <dt class="label">Phone: </dt>
497:             <dd class="value">$!attributes.get($field.key)</dd>
498:           </dl>
499:         </li>
500:       #elseif ($field.key == "email_address")
501:         #set ($emailAdd = $attributes.get($field.key))
502:         <li>
503:           <dl>
504:             <dt class="label">Email: </dt>
505:             <dd class="value"><a href="mailto:${emailAdd}">$emailAdd</a></dd>
506:           </dl>
507:         </li>
508:       #elseif ($field.key == "weight_class")
509:         <li>
510:           <dl>
511:             <dt class="label">Class: </dt>
512:             <dd class="value">$!attributes.get($field.key)</dd>
513:           </dl>
514:         </li>
515:       #elseif ($field.key != "position_abbr")
516:         <li>
517:           <dl>
518:             <dt class="label">$field.value: </dt>
519:             <dd class="value">$!attributes.get($field.key)</dd>
520:           </dl>
521:         </li>
522:       #end
523:     #end
524:   #end
525: #end
526: 
527: #foreach ($i in [1..10])
528:   #set ($customKey = "bio_custom${i}")
529:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
530:     <li>
531:       <dl>
532:         <dt class="label">$options.get($customKey): </dt>
533:         <dd class="value">$!attributes.get("custom${i}")</dd>
534:       </dl>
535:     </li>
536:   #end
537: #end
538: </ul>
539: 
540: #else
541: ## default layout
542: 
543: <div class="player-name">
544:   #if ($!attributes.get("number").length() > 0)<span class="number">$!attributes.get("number")</span><span class="sep"> - </span>#end
545:   <span class="name">$fullName</span>
546: </div>
547: 
548: <table role="presentation">
549: #foreach ($i in [1..10])
550:   #set ($stickyKey = "bio_custom${i}_sticky")
551:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
552:     <tr>
553:       <td class="label">$options.get($stickyKey): </td>
554:       <td class="value">$!attributes.get("custom${i}")</td>
555:     </tr>
556:   #end
557: #end
558: 
559: #foreach ($field in $fields)
560:   #if (!$field.key.startsWith("custom"))
561:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
562:       #if ($field.key == "phone1" || $field.key == "phone2")
563:         <tr>
564:           <td class="label">Phone: </td>
565:           <td class="value">$!attributes.get($field.key)</td>
566:         </tr>
567:       #elseif ($field.key == "email_address")
568:         #set ($emailAdd = $attributes.get($field.key))
569:         <tr>
570:           <td class="label">Email: </td>
571:           <td class="value"><a href="mailto:${emailAdd}">$emailAdd</a></td>
572:         </tr>
573:       #elseif ($field.key == "weight_class")
574:         <tr>
575:           <td class="label">Class: </td>
576:           <td class="value">$!attributes.get($field.key)</td>
577:         </tr>
578:       #elseif ($field.key != "position_abbr")
579:         <tr>
580:           <td class="label">$field.value: </td>
581:           <td class="value">$!attributes.get($field.key)</td>
582:         </tr>
583:       #end
584:     #end
585:   #end
586: #end
587: 
588: #foreach ($i in [1..10])
589:   #set ($customKey = "bio_custom${i}")
590:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
591:     <tr>
592:       <td class="label">$options.get($customKey): </td>
593:       <td class="value">$!attributes.get("custom${i}")</td>
594:     </tr>
595:   #end
596: #end
597: </table>
598: #end ## enhancedLayout check
599: #end ## macro printBioInfo
600: 
601: #macro (printActionShots)
602: #if ($showActionShots)
603: 	## BANNERS SLIDER
604:     #set ($slickSettings = {
605: 		"autoplay": true,
606:         "fade": true,
607:         "arrows": false,
608:         "slidesToShow": 1,
609:         "slidesToScroll": 1,
610:         "lazyLoad": "ondemand",
611:         "responsive": "none"
612:     })
613:     #set ($slickSettings = $slickSettings.toString().replace("=", ":"))
614:     <div class="action-shots clearfix">
615:         <div class="slider" data-module="slick-slider-init" data-slick-settings="$slickSettings">
616:             #foreach ($photo in $playerPhotos)
617: 				#if ($velocityCount <= $actionShotsLimit)
618:     				#set ($imgAlt = "")
619:     				#if (!$image.altText.equals($image.title))
620:     					#set ($imgAlt = $image.altText)
621:     				#elseif( $image.title.length() == 0 )
622:     					#set ($imgAlt = "Action shot for $page.title image $velocityCount")
623:     				#end
624:             		<div class="image">
625:             			<img data-lazy="$photo.url" alt="$imgAlt" />
626:             	    </div>
627: 				#end
628:     	    #end
629: 	    </div>
630:     </div>
631: #end
632: #end ## macro printActionShots
633: 
634: #macro (printHighlights)
635: #if ($highlights && $showHighlights)
636:   <div class="highlights #if ($enhancedLayout) highlights-bio-enhanced #else highlights-bio #end clearfix">
637:     #foreach ($highlight in $highlights.keySet())
638:       #set ($value = "-")
639:       #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
640:       <div class="stat clearfix">
641:         <span class="stat-title">$!highlights.get($highlight)</span>
642:         <span class="stat-value">$value</span>
643:       </div>
644:     #end
645:   </div>
646: #end
647: #end ## macro printHighlights
648: #macro (printRoster)
649: #if ($enhancedLayout)
650:   $website.includeAgain("${page.url}?tmpl=roster-switcher-template&id=roster-list")
651: #else
652: #if ($page.contentType == "loki/bio")
653:   #set ($headlinesFeaturedSize = 0)
654:   #foreach ($featuredPage in $page.headlinesFeatured)
655:     #if ($featuredPage.contentType == "loki/headlines")
656:       #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
657:     #end
658:   #end
659:   #if ($headlinesFeaturedSize > 0)
660:       <select class="roster-select-list" aria-label="Select a player to view its full bio from the list of options below.">
661:         <option selected="selected">Related Bios</option>
662:         #foreach ($featuredPage in $page.headlinesFeatured)
663:           #if ($featuredPage.contentType == "loki/headlines")
664:             $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
665: 		  #end
666: 	    #end
667:       </select>
668:   #end
669: #elseif ($page.contentType == "loki/bio-network")
670:   #set ($relatedPlayers = $page.sectionPage.children)
671:   #set ($teamNames = {})
672:   #foreach ($relatedPlayer in $relatedPlayers)
673:     #if ($relatedPlayer.contentType == "loki/bio-network")
674:       #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
675:       #set ($teamName = $relatedPlayerObj.get("team"))
676:       #if ($teamName.length() > 0)
677:         #if (!$teamNames.containsValue($teamName))
678:           $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
679:         #end
680:       #end
681:     #end
682:   #end
683: 
684:   <select class="roster-select-list" aria-label="Select a player to view its full bio from the list of options below.">
685:   #foreach ($i in [1..$teamNames.size()])
686:     #if ($teamNames.size() > 1)
687:       <optgroup label="$teamNames.get($i)">
688:     #end
689: 
690:     #foreach ($relatedPlayer in $relatedPlayers)
691:       #if ($relatedPlayer.contentType == "loki/bio-network")
692:         #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
693:         #set ($teamName = $relatedPlayerObj.get("team"))
694:         #if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
695:           #set ($playerFirstName = $relatedPlayerObj.get("first_name"))
696:           #set ($playerLastName = $relatedPlayerObj.get("last_name"))
697:           #if ($page.url == $relatedPlayer.url)
698:             <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option>
699:           #else
700:             <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
701:           #end
702:         #end
703:       #end
704:     #end
705: 
706:     #if ($teamNames.size() > 1)
707:       </optgroup>
708:     #end
709:   #end
710:   </select>
711: #end
712: #end ## enhancedLayout check
713: #end ## macro printRoster
714: 
715: ################################################## END MACROS  #############################################################
716: 
717: #if ($attributes.get("full_name").length() > 0)
718:   #set ($fullName = $attributes.get("full_name"))
719: #else
720:   #set ($firstName = $!attributes.get("first_name"))
721:   #set ($lastName = $!attributes.get("last_name"))
722:   #set ($fullName = "${firstName} ${lastName}")
723: #end
724: 
725: #set ($actionShots = false)
726: #if ($enhancedLayout && $playerPhotos.size() > 0)
727:   #set ($actionShots = true)
728: #end
729: 
730: #if ($enhancedLayout)
731:   #set ($rootClass = "bio-enhanced")
732:   #if ($actionShots && $showActionShots)
733:   	#set ($rootClass = "${rootClass} action")
734:   #else
735:   	#set ($rootClass = "${rootClass} plain")
736:   #end
737: #else
738:   #set ($rootClass = "bio-wrap")
739: #end
740: 
741: ## FULL ROSTER
742: <div class="${rootClass} #if ($highlights) bio-wrap-has-highlights #end clearfix" data-module="stats/responsive-container">
743: 
744: ## RELATED BIOS
745: #if ($showRoster)
746:   <div class="related-bios clearfix">#printRoster</div>
747: #end
748: 
749: #if ($actionShots)
750:   #printActionShots
751: #end
752: 
753: <div class="head clearfix">
754: <div class="clearfix">
755: 
756: <div class="player-about clearfix">
757:   <div class="player-headshot">#printHeadshot</div>
758:   <div class="player-info">#printBioInfo</div>
759: </div>
760: 
761: #printHighlights
762: 
763: </div>
764: </div> ## head
765: 
766: #if ($view.length() > 0)
767: <div class="body clearfix">
768: 
769: <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
770: <div class="tab-nav" data-module="jscroll" data-momentum="false">
771:   <div>
772:   <ul class="clearfix">
773:   #if ($hasSynopsis || $hasBioBrief)
774:     <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li>
775:   #end
776: 
777:   #if ($statsURL.length() > 0)
778:     <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li>
779:     <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li>
780:     #if ($showCareer)
781:       <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li>
782:     #end
783:     <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li>
784:   #end
785: 
786:   #if ($hasHTMLStats)
787:     <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li>
788:   #end
789: 
790:   #if ($releases.size() > 0)
791: 	<li #if ($view == "news") class="active" #end><a href="${page.url}?view=news">News</a></li>
792:   #end
793: 
794:   #if ($playerPhotos.size() > 0)
795: 	<li #if ($view == "photos") class="active" #end><a href="${page.url}?view=photos">Photos</a></li>
796:   #end
797: 
798:   #if ($playerVideos.size() > 0)
799:     <li #if ($view == "videos") class="active" #end><a href="${page.url}?view=videos">Videos</a></li>
800:   #end
801:   </ul>
802:   </div>
803: </div> ## tab-nav
804: 
805: <div class="tab-panels clearfix">
806: 
807: ## BIO
808: #if ($hasSynopsis || $hasBioBrief)
809: 
810: #set ($class = "tab-panel clearfix")
811: #if ($view == "bio")
812:   #set ($class = "tab-panel active clearfix")
813: #end
814: <div class="${class}">
815: 
816: <div class="synopsis clearfix">
817: #if ($hasSynopsis)
818:   $synopsis
819: #elseif ($hasBioBrief)
820:   $website.include("$bioBriefURL")
821: #end
822: </div>
823: 
824: </div> ## tab-panel
825: #end
826: ## BIO
827: 
828: ## STATS
829: #if ($statsURL.length() > 0)
830: 
831: ## PROFILE
832: #set ($class = "tab-panel clearfix")
833: #if ($view == "profile")
834:   #set ($class = "tab-panel active clearfix")
835: #end
836: <div class="${class}">
837: <div class="stats-wrap clearfix">
838: 
839: ## LAST SIX GAMES
840: <div class="stats-box half">
841: #printRecentGames()
842: </div>
843: 
844: ## RANKING
845: <div class="stats-box half">
846: #if ($statPos.length() > 0)
847:   $website.include("players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
848: #end
849: </div>
850: 
851: </div> ## stats-wrap
852: </div> ## tab-content
853: ## PROFILE
854: 
855: ## GAMELOG
856: #set ($class = "tab-panel clearfix")
857: #if ($view == "gamelog")
858:   #set ($class = "tab-panel active clearfix")
859: #end
860: 
861: #set ($activePos = $statPos)
862: #if ($view == "gamelog" && $paramPos.length() > 0)
863:   #if ($positions.get($paramPos).length() > 0)
864:     #set ($activePos = $positions.get($paramPos))
865:   #end
866: #end
867: 
868: <div class="${class}">
869: 
870: #if ($gamelogsCategoriesLabels)
871: <div class="tab-container clearfix secondary" data-module="stats/tabs" data-type="secondary">
872:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
873:     <div>
874:     <ul class="clearfix">
875:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
876:       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
877: 
878:       #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
879:         #set($gamelogsCatLabelVal = "Defence")
880:       #end
881: 
882:       <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}" role="button" aria-label="Game Log: ${gamelogsCatLabelVal}">$gamelogsCatLabelVal</a></li>
883:     #end
884:     </ul>
885: 	</div>
886:   </div>
887:   <div class="tab-panels">
888:   #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
889:     #set ($class = "tab-panel clearfix")
890:     #if ($gamelogsCatLabel.key == $activePos)
891:       #set ($class = "tab-panel active clearfix")
892:     #end
893:     <div class="${class}">
894:       <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
895: 	</div>
896:   #end
897:   </div>
898: </div>
899: #else
900:   <div class="stats-wrap clearfix">#gamelogData($pos)</div>
901: #end
902: 
903: </div> ## tab-panel
904: ## GAMELOG
905: 
906: 
907: ## CAREER
908: #if ($showCareer)
909: 
910: #set ($activePos = $statPos)
911: #if ($view == "career" && $paramPos.length() > 0)
912:   #if ($positions.get($paramPos).length() > 0)
913:     #set ($activePos = $positions.get($paramPos))
914:   #end
915: #end
916: 
917: #set ($class = "tab-panel clearfix")
918: #if ($view == "career")
919:   #set ($class = "tab-panel active clearfix")
920: #end
921: 
922: <div class="${class}">
923: 
924: #if ($briefsCategoriesLabels)
925:   #printCategories($briefsCategoriesLabels "career" "Career Stats")
926: #else
927:   <div class="stats-wrap clearfix">#careerData($activePos)</div>
928: #end
929: 
930: </div> ## tab-panel
931: #end
932: ## CAREER
933: 
934: ## SPLITS
935: #set ($class = "tab-panel clearfix")
936: #if ($view == "splits")
937: 	#set ($class = "tab-panel active clearfix")
938: #end
939: 
940: #set ($activePos = $statPos)
941: #if ($view == "splits" && $paramPos.length() > 0)
942:   #if ($positions.get($paramPos).length() > 0)
943:     #set ($activePos = $positions.get($paramPos))
944:   #end
945: #end
946: 
947: <div class="${class}">
948: 
949: #if ($briefsCategoriesLabels)
950:   #printCategories($briefsCategoriesLabels "splits" "Splits Stats")
951: #else
952:   <div class="stats-wrap clearfix">#splitsData($pos)</div>
953: #end
954: 
955: </div> ## tab-panel
956: ## SPLITS
957: 
958: #end
959: ## STATS
960: 
961: ## HTML STATS
962: #if ($hasHTMLStats)
963: 
964: #set ($class = "tab-panel clearfix")
965: #if ($view == "htmlstats")
966:   #set ($class = "tab-panel active clearfix")
967: #end
968: <div class="${class}">
969:   <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
970: </div>
971: 
972: #end
973: ## HTML STATS
974: 
975: ## NEWS
976: #if ($releases.size() > 0)
977: #set ($class = "tab-panel clearfix")
978: #if ($view == "news")
979:   #set ($class = "tab-panel active clearfix")
980: #end
981: <div class="${class}">
982: 	#printGrid($releases, "article")
983: </div> ## tab-content
984: #end
985: ## NEWS
986: 
987: ## PHOTOS
988: #if ($playerPhotos.size() > 0)
989: #set ($class = "tab-panel clearfix")
990: #if ($view == "photos")
991:   #set ($class = "tab-panel active clearfix")
992: #end
993: <div class="${class}">
994:     $website.includeAgain("${page.url}?tmpl=bio-photos-template")
995: </div> ## tab-content
996: #end
997: ## PHOTOS
998: 
999: ## VIDEOS
1000: #if ($playerVideos.size() > 0)
1001:   #set ($class = "tab-panel clearfix")
1002:   #if ($view == "videos")
1003:     #set ($class = "tab-panel active clearfix")
1004:   #end
1005: <div class="${class}">
1006: 	#printGrid($playerVideos, "video")
1007: </div> ## tab-content
1008: #end
1009: ## VIDEOS
1010: 
1011: </div> ## tab-panels
1012: </div> ## tab-container
1013: </div> ## body
1014: #end
1015: 
1016: $wiki
1017: </div> ## ends bio-wrap
1018: 
1019: ## GLOBAL ADS SERVER
1020: #if ($website.ads.isAdvertisingEnabled('BIOS'))
1021:         $website.includeAgain("global-adserver-slots?adSlot=bios")
1022: #end