22 Jaleen Thomas
22 Jaleen Thomas
Height: 5-10
Year: Sr.
Hometown: Conyers, GA
High School: Salem
Position: GUARD/FORWARD
gp 28
pts/g 4.0
fg % 36.5
3pt % 42.9
ft % 78.1
reb/g 5.5
a/g 0.6

2013-14: Will serve as team a captain this season.

2012-13: Saw action in 29 games, including 24 starts as a junior…Tied for third on the team with 4.6 rebounds per game and was sixth with 2.5 points per game…Totaled 72 points, 132 rebounds, 31 steals, 20 assists and two blocks…Had a career game against Wagner (2/18/13) with 15 points and 19 rebounds, both career-highs…Posted a career-high seven steals against Delaware State (12/29/12)…Posted one double-double and led the team in rebounds on four occasions…Had two games of 10+ rebounds.

2011-12: Appeared in all 29 games for the Blue Devils, making two starts...Averaged 14.8 minutes, 1.4 points and 3.7 rebounds per game...Scored a career-high seven points against St. Fransis PA on Jan. 9...Recorded a career-high eight rebounds at Quinnipiac on Feb. 15...Totaled 41 points, 106 rebounds and 13 steals for the season.

2010-11: Played 13 games for the Blue Devils last season...Averaged six minutes, 1.7 points and 0.8 rebounds per game...Scored a season-high seven points against Maine on Nov. 23...Had a season-high five rebounds against Brown on Nov. 17...Also made seven steals and blocked a pair of shots...Totaled 22 points and 11 rebounds in 78 minutes of action on the year.

Before Central: Played four years of basketball at Salem High School in Atlanta, Georgia...Led team to a Sub-Region Championship in 2008-09 and again in 2009-10...Team won the Jefferson County Thanksgiving Tournament her senior year, was also named MVP of the tournament that year...Was also a standout in track and field...Placed second in the region in the 4x400 meter relay and was ranked sixth in the state for that event as a junior.

Recent Games
Feb 15 at Robert Morris L, 66-49
Feb 17 at St. Francis University L, 88-83
Feb 22 Sacred Heart W, 63-53
Feb 24 Wagner L, 75-63
Mar 1 at Fairleigh Dickinson W, 62-61
Mar 3 Bryant L, 72-65
Statistics category Overall Conf
Games 28 18
Games started 26 18
Minutes 608 440
Minutes per game 21.7 24.4
FG 42-115 31-86
FG Pct 36.5 36.0
3PT 3-7 3-5
3PT Pct 42.9 60.0
FT 25-32 23-26
FT Pct 78.1 88.5
Off rebounds 61 48
Def rebounds 94 69
Total rebounds 155 117
Rebounds per game 5.5 6.5
Personal fouls 74 45
Disqualifications 1 1
Assists 16 13
Turnovers 51 35
Assist to turnover ratio 0.3 0.4
Steals 18 16
Blocks 0 0
Points 112 88
Points per game 4.0 4.9
Points per 40 min 7.4 8.0
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 8 at UCF L, 65-51 1 27 2-9 22.2 0-1 0.0 0-1 0.0 4
Nov 10 at South Florida L, 81-47 1 12 1-1 100.0 0-0 - 1-2 50.0 3
Nov 13 Rhode Island W, 65-58 1 20 0-2 0.0 0-0 - 0-0 - 0
Nov 20 New Hampshire W, 53-52 - 7 1-2 50.0 0-0 - 0-0 - 2
Nov 26 at Hartford W, 82-50 1 6 1-1 100.0 0-0 - 0-0 - 2
Nov 30 at La Salle L, 71-60 1 20 2-3 66.7 0-0 - 0-1 0.0 4
Dec 3 Siena W, 70-53 1 25 3-3 100.0 0-0 - 1-2 50.0 7
Dec 8 at Vermont W, 82-68 1 18 1-5 20.0 0-0 - 0-0 - 2
Dec 15 UMass Lowell   - - - - - - - - -
Dec 21 at Rider L, 61-58 - 12 0-0 - 0-0 - 0-0 - 0
Dec 30 Hofstra W, 64-62 1 21 0-3 0.0 0-1 0.0 0-0 - 0
Jan 4 Robert Morris L, 61-59 1 21 0-4 0.0 0-0 - 0-0 - 0
Jan 6 St. Francis University L, 106-97 1 32 5-8 62.5 0-0 - 4-4 100.0 14
Jan 11 at Wagner W, 80-71 1 32 2-6 33.3 0-0 - 2-2 100.0 6
Jan 13 at LIU Brooklyn L, 60-51 1 36 2-6 33.3 0-0 - 2-2 100.0 6
Jan 18 Fairleigh Dickinson W, 72-67 1 26 2-6 33.3 0-0 - 1-2 50.0 5
Jan 20 at Sacred Heart L, 77-59 1 11 1-3 33.3 0-0 - 0-0 - 2
Jan 25 St. Francis Brooklyn W, 71-66 1 19 0-1 0.0 0-0 - 0-0 - 0
Jan 27 Mount St. Mary's L, 64-62 1 16 1-2 50.0 0-0 - 0-0 - 2
Feb 1 at St. Francis Brooklyn L, 71-50 1 21 0-3 0.0 0-0 - 0-0 - 0
Feb 3 at Mount St. Mary's L, 69-55 1 29 0-1 0.0 0-0 - 0-0 - 0
Feb 8 at Bryant L, 81-50 1 13 0-3 0.0 0-0 - 0-0 - 0
Feb 10 LIU Brooklyn L, 59-48 1 21 3-5 60.0 0-0 - 1-1 100.0 7
Feb 15 at Robert Morris L, 66-49 1 22 0-2 0.0 0-0 - 2-2 100.0 2
Feb 17 at St. Francis University L, 88-83 1 27 2-4 50.0 0-0 - 4-4 100.0 8
Feb 22 Sacred Heart W, 63-53 1 32 6-9 66.7 1-1 100.0 2-3 66.7 15
Feb 24 Wagner L, 75-63 1 23 2-6 33.3 0-0 - 1-2 50.0 5
Mar 1 at Fairleigh Dickinson W, 62-61 1 26 1-10 10.0 1-2 50.0 0-0 - 3
Mar 3 Bryant L, 72-65 1 33 4-7 57.1 1-2 50.0 4-4 100.0 13
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 8 at UCF L, 65-51 1 27 4 6 10 0 2 0.0 1 0 3 0
Nov 10 at South Florida L, 81-47 1 12 1 1 2 0 2 0.0 0 0 4 0
Nov 13 Rhode Island W, 65-58 1 20 0 5 5 0 0 - 1 0 2 0
Nov 20 New Hampshire W, 53-52 - 7 1 1 2 1 0 - 0 0 4 0
Nov 26 at Hartford W, 82-50 1 6 0 0 0 0 2 0.0 0 0 3 0
Nov 30 at La Salle L, 71-60 1 20 1 3 4 0 2 0.0 0 0 4 0
Dec 3 Siena W, 70-53 1 25 1 2 3 1 4 0.3 0 0 4 0
Dec 8 at Vermont W, 82-68 1 18 2 3 5 0 1 0.0 0 0 1 0
Dec 15 UMass Lowell   - - - - - - - - - - - -
Dec 21 at Rider L, 61-58 - 12 0 1 1 0 0 - 0 0 1 0
Dec 30 Hofstra W, 64-62 1 21 3 3 6 1 3 0.3 0 0 3 0
Jan 4 Robert Morris L, 61-59 1 21 1 4 5 0 1 0.0 0 0 2 0
Jan 6 St. Francis University L, 106-97 1 32 2 5 7 1 3 0.3 0 0 5 1
Jan 11 at Wagner W, 80-71 1 32 6 8 14 1 3 0.3 0 0 2 0
Jan 13 at LIU Brooklyn L, 60-51 1 36 2 4 6 4 1 4.0 3 0 4 0
Jan 18 Fairleigh Dickinson W, 72-67 1 26 3 2 5 0 3 0.0 1 0 1 0
Jan 20 at Sacred Heart L, 77-59 1 11 2 1 3 0 3 0.0 0 0 2 0
Jan 25 St. Francis Brooklyn W, 71-66 1 19 3 3 6 0 4 0.0 3 0 2 0
Jan 27 Mount St. Mary's L, 64-62 1 16 1 1 2 0 0 - 0 0 2 0
Feb 1 at St. Francis Brooklyn L, 71-50 1 21 1 4 5 0 0 - 0 0 1 -
Feb 3 at Mount St. Mary's L, 69-55 1 29 1 5 6 1 0 - 1 0 4 -
Feb 8 at Bryant L, 81-50 1 13 1 2 3 0 4 0.0 0 0 2 0
Feb 10 LIU Brooklyn L, 59-48 1 21 2 1 3 1 1 1.0 0 0 1 -
Feb 15 at Robert Morris L, 66-49 1 22 1 4 5 1 1 1.0 3 0 0 -
Feb 17 at St. Francis University L, 88-83 1 27 2 8 10 3 1 3.0 0 0 3 -
Feb 22 Sacred Heart W, 63-53 1 32 7 6 13 0 2 0.0 2 0 4 -
Feb 24 Wagner L, 75-63 1 23 6 5 11 0 4 0.0 0 0 4 -
Mar 1 at Fairleigh Dickinson W, 62-61 1 26 3 2 5 1 1 1.0 3 0 4 -
Mar 3 Bryant L, 72-65 1 33 4 4 8 0 3 0.0 0 0 2 -
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
2013-14 28 26 21.7 1.5-4.1 36.5 0.1-0.2 42.9 0.9-1.1 78.1 4.0
Total 28 26 21.7 1.5-4.1 36.5 0.1-0.2 42.9 0.9-1.1 78.1 4.0
  gp gs min fg pct 3pt pct ft pct pts
2013-14 28 26 608 42-115 36.5 3-7 42.9 25-32 78.1 112
Total 28 26 608 42-115 36.5 3-7 42.9 25-32 78.1 112
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
2013-14 28 26 21.7 2.8-7.6 36.5 0.2-0.5 42.9 1.6-2.1 78.1 7.4
Total 28 26 21.7 2.8-7.6 36.5 0.2-0.5 42.9 1.6-2.1 78.1 7.4
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
2013-14 28 26 21.7 2.2 3.4 5.5 2.6 0.0 0.6 1.8 0.3 0.6 0.0
Total 28 26 21.7 2.2 3.4 5.5 2.6 0.0 0.6 1.8 0.3 0.6 0.0
  gp gs min off def reb pf dq ast to a/to stl blk
2013-14 28 26 608 61 94 155 74 1 16 51 0.3 18 0
Total 28 26 608 61 94 155 74 1 16 51 0.3 18 0
  gp gs mpg off/40 def/40 reb/40 pf/40 dq/40 ast/40 to/40 a/to stl/40 blk/40
2013-14 28 26 21.7 4.0 6.2 10.2 4.9 0.1 1.1 3.4 0.3 1.2 0.0
Total 28 26 21.7 4.0 6.2 10.2 4.9 0.1 1.1 3.4 0.3 1.2 0.0
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 28 26 21.7 1.5-4.1 36.5 0.1-0.2 42.9 0.9-1.1 78.1 4.0
Conference 18 18 24.4 1.7-4.8 36.0 0.2-0.3 60.0 1.3-1.4 88.5 4.9
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 13 12 22.8 2.1-4.5 46.6 0.2-0.3 50.0 1.1-1.4 77.8 5.4
Away 15 14 20.8 1.0-3.8 26.3 0.1-0.2 33.3 0.7-0.9 78.6 2.8
Neutral - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Wins 11 10 21.1 1.5-4.4 35.4 0.2-0.4 50.0 0.5-0.8 66.7 3.8
Losses 17 16 22.1 1.5-3.9 37.3 0.1-0.2 33.3 1.1-1.4 82.6 4.1
-
November 6 5 15.3 1.2-3.0 38.9 0.0-0.2 0.0 0.2-0.7 25.0 2.5
December 4 3 19.0 1.0-2.8 36.4 0.0-0.2 0.0 0.2-0.5 50.0 2.3
January 8 8 24.1 1.6-4.5 36.1 0.0-0.0 - 1.1-1.2 90.0 4.4
February 8 8 23.5 1.6-4.1 39.4 0.1-0.1 100.0 1.2-1.5 83.3 4.6
March 2 2 29.5 2.5-8.5 29.4 1.0-2.0 50.0 2.0-2.0 100.0 8.0
  gp gs min fg pct 3pt pct ft pct pts
Total 28 26 608 42-115 36.5 3-7 42.9 25-32 78.1 112
Conference 18 18 440 31-86 36.0 3-5 60.0 23-26 88.5 88
Exhibition - - - 0-0 - 0-0 - 0-0 - 0
-
Home 13 12 296 27-58 46.6 2-4 50.0 14-18 77.8 70
Away 15 14 312 15-57 26.3 1-3 33.3 11-14 78.6 42
Neutral - - - 0-0 - 0-0 - 0-0 - 0
-
Wins 11 10 232 17-48 35.4 2-4 50.0 6-9 66.7 42
Losses 17 16 376 25-67 37.3 1-3 33.3 19-23 82.6 70
-
November 6 5 92 7-18 38.9 0-1 0.0 1-4 25.0 15
December 4 3 76 4-11 36.4 0-1 0.0 1-2 50.0 9
January 8 8 193 13-36 36.1 0-0 - 9-10 90.0 35
February 8 8 188 13-33 39.4 1-1 100.0 10-12 83.3 37
March 2 2 59 5-17 29.4 2-4 50.0 4-4 100.0 16
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
Total 28 26 21.7 2.8-7.6 36.5 0.2-0.5 42.9 1.6-2.1 78.1 7.4
Conference 18 18 24.4 2.8-7.8 36.0 0.3-0.5 60.0 2.1-2.4 88.5 8.0
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 13 12 22.8 3.6-7.8 46.6 0.3-0.5 50.0 1.9-2.4 77.8 9.5
Away 15 14 20.8 1.9-7.3 26.3 0.1-0.4 33.3 1.4-1.8 78.6 5.4
Neutral - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Wins 11 10 21.1 2.9-8.3 35.4 0.3-0.7 50.0 1.0-1.6 66.7 7.2
Losses 17 16 22.1 2.7-7.1 37.3 0.1-0.3 33.3 2.0-2.4 82.6 7.4
-
November 6 5 15.3 3.0-7.8 38.9 0.0-0.4 0.0 0.4-1.7 25.0 6.5
December 4 3 19.0 2.1-5.8 36.4 0.0-0.5 0.0 0.5-1.1 50.0 4.7
January 8 8 24.1 2.7-7.5 36.1 0.0-0.0 - 1.9-2.1 90.0 7.3
February 8 8 23.5 2.8-7.0 39.4 0.2-0.2 100.0 2.1-2.6 83.3 7.9
March 2 2 29.5 3.4-11.5 29.4 1.4-2.7 50.0 2.7-2.7 100.0 10.8
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
Total 28 26 21.7 2.2 3.4 5.5 2.6 0.0 0.6 1.8 0.3 0.6 0.0
Conference 18 18 24.4 2.7 3.8 6.5 2.5 0.1 0.7 1.9 0.4 0.9 0.0
Exhibition - - - - - - - - - - - - -
-
Home 13 12 22.8 2.6 3.2 5.8 2.8 0.1 0.4 2.2 0.2 0.5 0.0
Away 15 14 20.8 1.8 3.5 5.3 2.5 0.0 0.7 1.5 0.5 0.7 0.0
Neutral - - - - - - - - - - - - -
-
Wins 11 10 21.1 2.6 3.2 5.8 2.7 0.0 0.5 2.1 0.2 0.9 0.0
Losses 17 16 22.1 1.9 3.5 5.4 2.6 0.1 0.6 1.6 0.4 0.5 0.0
-
November 6 5 15.3 1.2 2.7 3.8 3.3 0.0 0.2 1.3 0.1 0.3 0.0
December 4 3 19.0 1.5 2.3 3.8 2.3 0.0 0.5 2.0 0.3 0.0 0.0
January 8 8 24.1 2.5 3.5 6.0 2.5 0.1 0.8 2.3 0.3 0.9 0.0
February 8 8 23.5 2.6 4.4 7.0 2.4 0.0 0.8 1.6 0.5 0.8 0.0
March 2 2 29.5 3.5 3.0 6.5 3.0 - 0.5 2.0 0.3 1.5 0.0
  gp gs min off def reb pf dq ast to a/to stl blk
Total 28 26 608 61 94 155 74 1 16 51 0.3 18 0
Conference 18 18 440 48 69 117 45 1 13 35 0.4 16 0
Exhibition - - - - - - - - - - - - -
-
Home 13 12 296 34 42 76 36 1 5 28 0.2 7 0
Away 15 14 312 27 52 79 38 0 11 23 0.5 11 0
There was a problem with a Velocity script
Pagebio-template
ErrorVM #split: too few arguments to macro. Wanted 4 got 3 at bio-template[line 226, column 1]
Page source:
1: ## PICK UP OPTIONS
2: $website.include("options")
3: #set ($options = $request.getAttribute("options"))
4: #set ($locale = "en_us")
5: #set ($locale = $options.get("locale"))
6: 
7: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE
8: #set ($bioObject = $page.getDataAsObject())
9: #set ($statsURL = $bioObject.statsURL)
10: 
11: #if ($statsURL.length() > 0)
12:   $website.includeAgain("${statsURL}?tmpl=bio-stats-template")
13:   ## various settings to get the variables set
14:   #set ($events = $request.getAttribute("bio_events"))
15:   #set ($seasons = $request.getAttribute("bio_seasons"))
16:   #set ($career = $request.getAttribute("bio_career"))
17:   #set ($labels = $request.getAttribute("bio_labels"))
18:   #set ($briefs = $request.getAttribute("bio_briefs"))
19:   #set ($gamelogs = $request.getAttribute("bio_gamelogs"))
20:   #set ($splits = $request.getAttribute("bio_splits"))
21:   #set ($statPosition = $request.getAttribute("bio_position"))
22:   #set ($positions = $request.getAttribute("bio_positions"))
23:   #set ($playerId = $request.getAttribute("bio_player_id"))
24:   #set ($highlights = $request.getAttribute("bio_highlights"))
25:   #set ($formats = $request.getAttribute("bio_formats"))
26:   #set ($gamelogsCategoriesLabels = $request.getAttribute("bio_gamelogs_labels"))
27:   #set ($briefsCategoriesLabels = $request.getAttribute("bio_briefs_labels"))
28:   #set ($gamesResults = $request.getAttribute("bio_games_results"))
29:   #set ($monthsPlayed = $request.getAttribute("bio_months_played"))
30: #end
31: 
32: #set ($pos = "")
33: #set ($pos = $attributes.get("position"))
34: #set ($pos = $statPosition)
35: #set ($posVec = $pos.split("/"))
36: #set ($pos = $posVec[0])
37: #set ($pos = $pos.toLowerCase())
38: #set ($statPos = $positions.get($pos))
39: #set ($paramPos = $request.getParameter("pos"))
40: 
41: #set ($playerId = $attributes.get("playerId"))
42: #set ($stats = $splits.overall)
43: #set ($highlights = $highlights.get($statPos))
44: 
45: #set ($showHighlights = true)
46: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false)
47: 	#set ($showHighlights = false)
48: #end
49: 
50: #set ($showCareer = $wiki.valid() && $seasons)
51: #if ("yes" == $options.get("stats_show_career") && $seasons)
52:   #set ($showCareer = true)
53: #end
54: 
55: #set ($hasEvents = $events.size() > 0)
56: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
57: #set ($htmlStatsURL = "${page.url}-stats")
58: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
59: #set ($bioBriefURL = "${page.url}-brief")
60: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
61: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1))
62: #if ($options.get("bio_hide_roster") == true)
63:   #set ($showRoster = false)
64: #end
65: 
66: #set ($view = "")
67: #if ($hasSynopsis || $hasBioBrief)
68:   #set ($view = "bio")
69: #elseif ($statsURL.length() > 0)
70:   #set ($view = "profile")
71: #elseif ($hasHTMLStats)
72:   #set ($view = "htmlstats")
73: #elseif ($releases.size() > 0)
74:   #set ($view = "news")
75: #end
76: 
77: #if ($options.get("bio_default_view").length() > 0)
78:   #set ($checkView = $options.get("bio_default_view"))
79: #end
80: 
81: #if ($request.getParameter("view"))
82:   #set ($checkView = $request.getParameter("view"))
83: #end
84: 
85: #if ($checkView == "profile" && $statsURL.length() > 0)
86:   #set ($view = "profile")
87: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
88:   #set ($view = "bio")
89: #elseif ($checkView == "gamelog" && $statsURL.length() > 0)
90:   #set ($view = "gamelog")
91: #elseif ($checkView == "career" && $showCareer)
92:   #set ($view = "career")
93: #elseif ($checkView == "splits" && $statsURL.length() > 0)
94:   #set ($view = "splits")
95: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
96:   #set ($view = "htmlstats")
97: #elseif ($checkView == "news" && $releases.size() > 0)
98:   #set ($view = "news")
99: #end
100: 
101: #macro (gamelogData $p)
102: 
103: #set ($p = $positions.get($p))
104: #set ($gamelogs = $gamelogs.get($p))
105: 	
106: #if ($hasEvents)
107: <div class="stats-box full clearfix">
108: <div class="scrollable">
109: <div>
110: <table>
111:   <tr class="thead">
112:     <th class="text">Date</th>
113:     <th class="pinned-col text">Opponent</th>
114:     <th>Score</th>
115:     #foreach ($gamelog in $gamelogs)
116:       <th>$gamelog</th>
117:     #end
118:   </tr>
119: #foreach ($event in $events)
120:   <tr>
121:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
122:     <td class="pinned-col text">
123:       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
124:       $event.event.opponent.name
125:     </td>
126:     <td>
127:     #if ($event.event.statusCode >= 0)
128:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
129:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
130:       #else
131:       ${event.event.APResult}
132:       #end
133:     #else &nbsp; #end
134:     </td>
135:     #foreach ($gamelog in $gamelogs.keySet())
136:       #set ($value = "-")
137:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
138:       <td>$value</td>
139:     #end
140:   </tr>
141: #end
142: </table>
143: </div>
144: </div> ## scrollable
145: </div> ## stats-box
146: #end
147: 
148: #end ## macro gamelogData
149: 
150: #macro (split $statPosBriefs $label $stats)
151:   <tr>
152:     <td class="pinned-col text">${label}</td>
153:     #foreach ($brief in $statPosBriefs.keySet())
154:       #set ($value = "-")
155:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
156:       <td>#if ($value.length() > 0) $value #else - #end</td>
157:     #end
158:   </tr>
159: #end
160: 
161: #macro (careerData $p)
162: #set ($p = $positions.get($p))
163: #set ($statPosBriefs = $briefs.get($p))
164: 
165: <div class="stats-box full clearfix">
166: <div class="scrollable">
167: <div>
168: <table>
169: <tr class="thead">
170:   <th class="pinned-col">&nbsp;</th>
171:   #foreach ($brief in $statPosBriefs)
172:     <th>$brief</th>
173:   #end
174: </tr>
175: 
176: #set ($careerTotals = $request.getAttribute("careerTotals"))
177: #set ($careerMap = $request.getAttribute("careerMap"))
178: 
179: #foreach ($season in $seasons)
180:   ## Check if we did not get stats for this season
181:   #if ($careerMap.get($season.seasonName))
182:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName])
183:   #elseif ($wiki.valid())
184:     <tr>
185:       <td class="text">${season.seasonName}</td>
186:       <td colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
187:     </tr>
188:   #end
189: #end
190: 
191: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
192: 
193: </table>
194: </div>
195: </div> ## scrollable
196: </div> ## stats-box
197: 
198: #end ## macro careerData
199: 
200: #macro (splitsData $p)
201: 
202: #set ($p = $positions.get($p))
203: #set ($statPosBriefs = $briefs.get($p))
204: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1))	
205: 	
206: #if ($statPosBriefs.size() > 0)
207: <div class="stats-box full clearfix">
208: <div class="scrollable">
209: <div>
210: <table>
211:   <tr>
212:     <th class="pinned-col">&nbsp;</th>
213:     #foreach ($brief in $statPosBriefs)
214:       <th>$brief</th>
215:     #end
216:   </tr>
217: 
218: #split($statPosBriefs, "Total", $splits.overall)
219: #split($statPosBriefs, "Conference", $splits.conference)
220: #split($statPosBriefs, "Exhibition", $splits.exhibition)
221: 
222: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
223: 
224: #split($statPosBriefs, "Home", $splits.home)
225: #split($statPosBriefs, "Away", $splits.away)
226: #split($statPosBriefs, "Neutral", $splits.neutral)
227: 
228: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
229: 
230: #foreach($gameResult in $gamesResults.entrySet())
231:   #if ($gameResult.key == "wins")
232:     #set ($splitGameResult = $splits.inWins)
233:   #elseif ($gameResult.key == "losses")
234:     #set ($splitGameResult = $splits.inLosses)
235:   #elseif ($gameResult.key == "ties")
236:     #set ($splitGameResult = $splits.inTies)
237:   #end
238: 	
239:   #split($statPosBriefs, $gameResult.value, $splitGameResult)
240: #end
241: 
242: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
243: 
244: #if ($monthsPlayed and $monthsPlayed.size() > 0)
245:   #foreach($month in $monthsPlayed)
246:     #if ($month == 'January')
247:       #set ($splitMonth = $splits.january)
248:     #elseif ($month == 'February')
249:       #set ($splitMonth = $splits.february)
250:     #elseif ($month == 'March')
251:       #set($splitMonth = $splits.march)
252:     #elseif ($month == 'April')
253:       #set($splitMonth = $splits.april)
254:     #elseif ($month == 'May')
255:       #set ($splitMonth = $splits.may)
256:     #elseif ($month == 'June')
257:       #set ($splitMonth = $splits.june)
258:     #elseif ($month == 'July')
259:       #set($splitMonth = $splits.july)
260:     #elseif ($month == 'August')
261:       #set ($splitMonth = $splits.august)
262:     #elseif ($month == 'September')
263:       #set($splitMonth = $splits.september)
264:     #elseif ($month == 'October')
265:       #set($splitMonth = $splits.october)
266:     #elseif ($month == 'November')
267:       #set ($splitMonth = $splits.november)
268:     #elseif ($month == 'December')
269:       #set($splitMonth = $splits.december)
270:     #end
271: 		
272:     #split($statPosBriefs, $month, $splitMonth)
273:   #end ## foreach
274: #end
275: </table>
276: </div>
277: </div> ## scrollable
278: </div> ## srollable-table
279: #end
280: 
281: #end ## macro splitsData
282: 
283: #macro (printRecentGames)
284: #if ($hasEvents)
285: <table>
286:   <tr class="thead"><th colspan="3">Recent Games</th></tr>
287:   
288: #set ($eventEnd = -1)
289: #foreach ($event in $events)
290:   #if ($event.event.result.resolved)
291:     #set ($eventEnd = $velocityCount)
292:   #end
293: #end
294: 
295: #set ($eventStart = $eventEnd - 5)
296: #if ($eventStart < 0) #set ($eventStart = 0) #end
297: 
298: #foreach ($event in $events)
299: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
300:   <tr>
301:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
302:     <td class="text">
303:       #if ($event.event.neutralSite.length() > 0) vs.
304:       #elseif (!$event.event.home) at
305:       #else ## nothing for a home game
306:       #end
307:       $event.event.opponent.name
308:     </td>
309:     <td class="text">
310:     #if ($event.event.statusCode >= 0)
311:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
312:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
313:       #else
314:       ${event.event.APResult}
315:       #end
316: 	#end
317: 	</td>
318:   </tr>
319: #end ## if
320: #end
321: </table>
322: #end
323: #end ## macro printRecentGames
324: 
325: #macro (printCategories $briefCategoryLabels $v)
326: 	
327: <div class="tab-container secondary clearfix" data-module="amd-tabs">
328: <div class="tab-nav" data-module="jscroll" data-momentum="false">
329: <div>
330: <ul class="clearfix">
331: #foreach($briefCat in $briefCategoryLabels.entrySet())
332:   #set ($briefCatLabel = $briefCat.value)
333:   #set ($briefCatKey = $briefCat.key)
334: 		
335:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
336:     #set ($briefCatLabel = "Defence")
337:   #end	
338: 	
339:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}">$briefCatLabel</a></li>
340: #end
341: </ul>
342: </div>
343: </div>
344: <div class="tab-panels">
345: #foreach ($briefCat in $briefCategoryLabels.entrySet())
346:   #set ($class = "tab-panel clearfix")
347:   #if ($briefCat.key == $activePos)
348:     #set ($class = "tab-panel active clearfix")
349:   #end
350:   <div class="$class">
351:     <div class="stats-wrap clearfix">
352:     #if ($v == "splits")
353:       #splitsData($briefCat.key)
354:     #elseif ($v == "career")
355:       #careerData($briefCat.key)
356:     #end
357:     </div>
358:   </div>
359: #end	
360: </div>
361: </div> ## tab-container
362: 
363: #end ## macro printCategories
364: 	
365: #macro (printHeadshot)
366: 
367: #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
368: 
369: #if ($headshot.url)
370:   <img src="$headshot.url?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
371: #else
372:   #if ($website.exists("/images/setup/headshot_default.jpg"))
373:     <img src="/images/setup/headshot_default.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
374:   #else
375:     <img src="/info/images/default_headshot.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
376:   #end
377: #end
378: #end ## macro printHeadshot
379: 	
380: #macro (printBioInfo)
381: <div class="player-name">
382:   #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
383:   <span class="name">$fullName</span>
384: </div>	
385: 	
386: <table>
387: #foreach ($i in [1..10])
388:   #set ($stickyKey = "bio_custom${i}_sticky")
389:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
390:     <tr>
391:       <td class="label">$options.get($stickyKey): </td>
392:       <td class="value">$!attributes.get("custom${i}")</td>
393:     </tr>
394:   #end
395: #end
396: 
397: #foreach ($field in $fields)
398:   #if (!$field.key.startsWith("custom"))
399:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
400:       #if ($field.key == "phone1" || $field.key == "phone2")
401:         <tr>
402:           <td class="label">Phone: </td>
403:           <td class="value">$!attributes.get($field.key)</td>
404:         </tr>
405:       #elseif ($field.key == "email_address")
406:         #set ($emailAdd = $attributes.get($field.key))
407:         <tr>
408:           <td class="label">Email: </td>
409:           <td class="value"><a href="mailto:${emailAdd}">$emailAdd</a></td>
410:         </tr>
411:       #else
412:         <tr>
413:           <td class="label">$field.value: </td>
414:           <td class="value">$!attributes.get($field.key)</td>
415:         </tr>
416:       #end
417:     #end
418:   #end
419: #end
420: 
421: #foreach ($i in [1..10])
422:   #set ($customKey = "bio_custom${i}")
423:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
424:     <tr>
425:       <td class="label">$options.get($customKey): </td>
426:       <td class="value">$!attributes.get("custom${i}")</td>
427:     </tr>
428:   #end
429: #end
430: </table>
431: #end ## macro printBioInfo
432: 	
433: #macro (printHighlights)
434: #foreach ($highlight in $highlights.keySet())
435:   #set ($value = "-")
436:   #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
437:   <div class="stat clearfix">
438:     <span class="stat-title">$!highlights.get($highlight)</span>
439:     <span class="stat-value">$value</span>
440:   </div>
441: #end
442: #end ## macro printHighlights
443: 	
444: #macro (printRoster)
445: #if ($page.contentType == "loki/bio")
446:   #set ($headlinesFeaturedSize = 0)
447:   #foreach ($featuredPage in $page.headlinesFeatured)
448:     #if ($featuredPage.contentType == "loki/headlines")
449:       #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
450:     #end
451:   #end
452:   #if ($headlinesFeaturedSize > 0)
453:     <select class="roster-select-list">
454:       <option selected="selected">Related Bios</option>
455:       #foreach ($featuredPage in $page.headlinesFeatured)
456:         #if ($featuredPage.contentType == "loki/headlines")
457:           $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
458: 		#end
459: 	  #end
460:     </select>
461:   #end
462: #elseif ($page.contentType == "loki/bio-network")
463:   #set ($relatedPlayers = $page.sectionPage.children)
464:   #set ($teamNames = {})
465:   #foreach ($relatedPlayer in $relatedPlayers)
466:     #if ($relatedPlayer.contentType == "loki/bio-network")
467:       #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
468:       #set ($teamName = $relatedPlayerObj.get("team"))
469:       #if ($teamName.length() > 0)
470:         #if (!$teamNames.containsValue($teamName))
471:           $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
472:         #end
473:       #end
474:     #end
475:   #end
476: 
477:   <select class="roster-select-list">
478:   #foreach ($i in [1..$teamNames.size()])
479:     #if ($teamNames.size() > 1)
480:       <optgroup label="$teamNames.get($i)">
481:     #end
482: 				
483:     #foreach ($relatedPlayer in $relatedPlayers)
484:       #if ($relatedPlayer.contentType == "loki/bio-network")
485:         #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
486:         #set ($teamName = $relatedPlayerObj.get("team"))
487:         #if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
488:           #set ($playerFirstName = $relatedPlayerObj.get("first_name"))
489:           #set ($playerLastName = $relatedPlayerObj.get("last_name"))
490:           #if ($page.url == $relatedPlayer.url)
491:             <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option>
492:           #else
493:             <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
494:           #end
495:         #end
496:       #end
497:     #end
498: 				
499:     #if ($teamNames.size() > 1)
500:       </optgroup>
501:     #end
502:   #end
503:   </select>
504: #end
505: #end ## macro printRoster
506: 	
507: ################################################## END MACROS  #############################################################
508: 
509: #if ($attributes.get("full_name").length() > 0)
510:   #set ($fullName = $attributes.get("full_name"))
511: #else
512:   #set ($firstName = $!attributes.get("first_name"))
513:   #set ($lastName = $!attributes.get("last_name"))
514:   #set ($fullName = "${firstName} ${lastName}")
515: #end
516: 
517: ## FULL ROSTER
518: <div class="bio-wrap clearfix">
519: 	
520: ## RELATED BIOS
521: #if ($showRoster)
522:   <div class="related-bios clearfix">#printRoster</div>
523: #end
524:   
525: <div class="head clearfix">
526: <div class="clearfix">
527:     
528: <div class="player-about clearfix">
529:   <div class="player-headshot">#printHeadshot</div>
530:   <div class="player-info">#printBioInfo</div>
531: </div>
532: 
533: #if ($highlights && $showHighlights)
534:   <div class="player-highlights clearfix">#printHighlights</div>
535: #end
536: 
537: </div>
538: </div> ## head
539: 
540: #if ($view.length() > 0)
541: <div class="body clearfix">
542:   
543: <div class="tab-container primary clearfix" data-module="amd-tabs">
544: <div class="tab-nav" data-module="jscroll" data-momentum="false">
545:   <div>
546:   <ul class="clearfix">
547:   #if ($hasSynopsis || $hasBioBrief)
548:     <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li>
549:   #end
550: 		
551:   #if ($statsURL.length() > 0)
552:     <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li>
553:     <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li>
554:     #if ($showCareer)
555:       <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li>
556:     #end
557:     <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li>
558:   #end
559: 
560:   #if ($hasHTMLStats)
561:     <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li>
562:   #end
563:  
564:   #if ($releases.size() > 0)
565: 	<li #if ($view == "news") class="active" #end><a href="${page.url}?view=news">News</a></li>
566:   #end
567:   </ul>
568:   </div>
569: </div> ## tab-nav
570: 
571: <div class="tab-panels clearfix">
572: 	
573: ## BIO
574: #if ($hasSynopsis || $hasBioBrief)
575: 
576: #set ($class = "tab-panel clearfix")
577: #if ($view == "bio")
578:   #set ($class = "tab-panel active clearfix")
579: #end
580: <div class="${class}">
581: 
582: <div class="synopsis clearfix">
583: #if ($hasSynopsis)
584:   $synopsis
585: #elseif ($hasBioBrief)
586:   $website.include("$bioBriefURL")
587: #end
588: </div>
589: 
590: </div> ## tab-panel
591: #end 
592: ## BIO
593: 
594: ## STATS
595: #if ($statsURL.length() > 0)
596: 
597: ## PROFILE
598: #set ($class = "tab-panel clearfix")
599: #if ($view == "profile")
600:   #set ($class = "tab-panel active clearfix")
601: #end
602: <div class="${class}">
603: <div class="stats-wrap clearfix">
604: 
605: ## LAST SIX GAMES
606: <div class="stats-box half">
607: #printRecentGames()
608: </div>
609: 
610: ## RANKING
611: <div class="stats-box half">
612: #if ($statPos.length() > 0)
613:   $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
614: #end
615: </div>
616: 
617: </div> ## stats-wrap	
618: </div> ## tab-content
619: ## PROFILE
620: 
621: ## GAMELOG
622: #set ($class = "tab-panel clearfix")
623: #if ($view == "gamelog")
624:   #set ($class = "tab-panel active clearfix")
625: #end
626: 
627: #set ($activePos = $statPos)
628: #if ($view == "gamelog" && $paramPos.length() > 0)
629:   #if ($positions.get($paramPos).length() > 0)
630:     #set ($activePos = $positions.get($paramPos))
631:   #end
632: #end
633: 
634: <div class="${class}">
635: 
636: #if ($gamelogsCategoriesLabels)
637: <div class="tab-container secondary clearfix" data-module="amd-tabs">
638:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
639:     <div>
640:     <ul class="clearfix">
641:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
642:       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
643: 		
644:       #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
645:         #set($gamelogsCatLabelVal = "Defence")
646:       #end
647: 
648:       <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}">$gamelogsCatLabelVal</a></li>
649:     #end
650:     </ul>
651: 	</div>
652:   </div>
653:   <div class="tab-panels">
654:   #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
655:     #set ($class = "tab-panel clearfix")
656:     #if ($gamelogsCatLabel.key == $activePos)
657:       #set ($class = "tab-panel active clearfix")
658:     #end
659:     <div class="${class}">
660:       <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
661: 	</div>
662:   #end   
663:   </div>
664: </div>	
665: #else
666:   <div class="stats-wrap clearfix">#gamelogData($pos)</div>
667: #end
668: 	
669: </div> ## tab-panel
670: ## GAMELOG
671: 
672: 
673: ## CAREER
674: #if ($showCareer)
675: 
676: #set ($activePos = $statPos)
677: #if ($view == "career" && $paramPos.length() > 0)
678:   #if ($positions.get($paramPos).length() > 0)
679:     #set ($activePos = $positions.get($paramPos))
680:   #end
681: #end
682: 
683: #set ($class = "tab-panel clearfix")
684: #if ($view == "career")
685:   #set ($class = "tab-panel active clearfix")
686: #end
687: 
688: <div class="${class}">
689: 
690: #if ($briefsCategoriesLabels)
691:   #printCategories($briefsCategoriesLabels "career")
692: #else
693:   <div class="stats-wrap clearfix">#careerData($activePos)</div>
694: #end		
695: 
696: </div> ## tab-panel
697: #end
698: ## CAREER
699: 
700: ## SPLITS
701: #set ($class = "tab-panel clearfix")
702: #if ($view == "splits")
703: 	#set ($class = "tab-panel active clearfix")
704: #end
705: 
706: #set ($activePos = $statPos)
707: #if ($view == "splits" && $paramPos.length() > 0)
708:   #if ($positions.get($paramPos).length() > 0)
709:     #set ($activePos = $positions.get($paramPos))
710:   #end
711: #end
712: 
713: <div class="${class}">
714: 
715: #if ($briefsCategoriesLabels)
716:   #printCategories($briefsCategoriesLabels "splits")
717: #else
718:   <div class="stats-wrap clearfix">#splitsData($pos)</div>
719: #end		
720: 
721: </div> ## tab-panel
722: ## SPLITS
723: 
724: #end 
725: ## STATS
726: 
727: ## HTML STATS
728: #if ($hasHTMLStats)
729: 
730: #set ($class = "tab-panel clearfix")
731: #if ($view == "htmlstats")
732:   #set ($class = "tab-panel active clearfix")
733: #end
734: <div class="${class}">
735:   <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
736: </div>
737: 
738: #end
739: ## HTML STATS
740: 
741: ## NEWS
742: #set ($class = "tab-panel clearfix")
743: #if ($view == "news")
744:   #set ($class = "tab-panel active clearfix")
745: #end
746: <div class="bio-news ${class}">
747: 
748: #set ($counter = 0)
749: 
750: #foreach ($article in $releases)
751: #if ($article.title.length() > 0)
752: 
753: #set ($counter = $counter + 1)
754: 
755: #if ($counter == 1)
756:   <div class="row clearfix">
757: #end
758: 
759: <div class="item">
760: <div>
761: #if ($article.thumbnailURL)
762:   <img src="${article.thumbnailURL}?max_width=300" alt="" />
763: #else
764:   <img src="/images/setup/thumbnail_default.jpg" alt="" />
765: #end
766: 
767: <a href="$article.url" class="title">$article.title</a>
768: 
769: </div>
770: </div> ## item
771: 
772: #if ($counter == 3 || $velocityCount == $releases.size())
773:   </div> ## row
774:   #set ($counter = 0)
775: #end
776: 
777: #end
778: #end ## foreach
779: 
780: </div> ## tab-content
781: ## NEWS
782: 	
783: </div> ## tab-panels
784: </div> ## tab-container
785: </div> ## body
786: #end
787: 
788: $wiki
789: </div> ## ends bio-wrap

PrestoSports