UMBC

 
1 Chase Plummer
1 Chase Plummer
Height: 6-6
Weight: 235
Year: Sr.
Hometown: Plainfield, N.J.
High School: St. Patrick
Position: F
gp 28
pts/g 10.5
fg % 39.0
3pt % 32.1
ft % 61.0
reb/g 5.0
a/g 1.0

Accolades: (2011-12) Named a team captain for the Retrievers as a sophomore… Selected to the America East Second Team… (2012-13): Also co-captained the squad with Adrian Satchell... Served on search committee for UMBC's Director of Athletics, Physical Education, and Recreation.

2013-14:  Plummer is now ninth on UMBC’s all-time scoring (1,317 points) and has moved into eighth position on the all-time rebounding (663) list… Also completed career with 157 career steals, tied with assistant coach Jay Greene for fourth on the UMBC all-time list... Has become UMBC’s all-time leader in free throws attempted, with 26 more (538) than previous record-holder John Goedeke (1975-79)...  Stands in fourth place with 332 free throws made and in seventh position in all-time field goal attempts for UMBC with 1,140...  Plummer became the seventh player in UMBC’s Division I history to score at least 200 points in four seasons of competition... Played 118 games, fourth on the school’s all-time list… Came off the bench and contributed eight points at Arizona State... Recorded his 11th career double-double and led UMBC with 12 points/12 rebounds at American on Nov. 14...  With team-high seven caroms at Navy on Nov. 23, entered UMBC’s top ten all-time rebounding list... His trey midway through OT vs. the Mount put UMBC ahead to stay... Scored 17 points in 22 minutes vs. Loyola on Nov. 20 and matched that matched that with 17 points at Towson on Nov. 26... Scored a UMBC season-high 27 points at Duquesne on Dec. 4... Set career mark with five treys (5/9) in that game and came within one point of career high, one field goal of career mark and one rebound from double-double... Made his first start of the season in that game... Followed up with team-high 21-point effort at Lehigh...  Competed in career game No. 100 at Coppin State... Tied career high with five assists at GW on Dec. 21 and added season-best five steals... Snapped five-game double-figure scoring drought in that category with 16 points vs. Maine on Jan. 11... Has now scored in double figures 67 times (118 games) in his career... Became 12th Retriever to amass 1,200 points with a 21-point effort vs. Stony Brook.

 

2012-13: Became the 17th player in school history to reach the 1,000 point plateau with 1,017 after three seasons… Just the eighth Retriever to score 1,000 points in three or fewer seasons… Corralled 199 rebounds, the sixth-best figure for a UMBC Division I junior… Has accumulated 524 career caroms, now 17th in school history… Placed 7th in the conference in rebounding at 6.4 per game… Attempted 174 free throws, six shy of his total from the previous season, and the fifth-most tries in school history… Recorded 54 steals, the sixth-most in a single season in school history and his 150 career thefts are also sixth in UMBC’s basketball history… Placed second in the conference with 1.7 steals per outing… After a quiet first two games, tied his career-high with 28 points at Loyola on Nov. 14-it was his 10th career game with 20 or more points for the Retrievers... Posted his first double-double of season and seventh of career with 10 pts./10 rebs. vs. CCSU on Nov. 20... Tied personal high with six thefts vs. Canisius on Nov. 29… Recorded double-doubles in back-to-back home games with 11 pts./11 rebs. (season-high) vs. Towson on Dec. 1 and 16 pts./10 caroms vs. American on Dec. 6… Tied career high with 14 rebounds at Norfolk State on Dec. 9... Matched his career-high with five assists at DePaul on Dec. 22... America East Player of the Game with 14 points at Maine on Jan. 5 and earned award again with 17 pts./8 rebs. at Vermont on Jan. 12... Started for first time since Dec. 22 at Boston U. on Jan. 26 and posted fourth double-double of the season with 19 pts./11 caroms... Posted back-to-back double-doubles for second time in 2012-13 and the third time in his career (3 straight, Dec. 2011) with 17 points/10 caroms at Binghamton on Jan. 30... Hit 28-of-46 from the floor (60.9%) and is averaged 17.0 ppg in four-game stretch (Jan. 26-Feb. 6)... Snared 12 rebounds vs. Binghamton on March 3… Needs only 12 free throw attempts to move into UMBC’s top five in school history.



2011-12: Through the first 15 games, he was 81-of-187 from the floor- as a freshman, he hit 82--of-187 through 30 contests… Finished fourth in America East in scoring (15.4), fifth in rebounding (7.5) and fifth (tied) in steals (1.4)...The only player in America East to be ranked in the top five in scoring and rebounding in 2011-12… Only nine players have finished in the top five in both categories in America East in the last 14 years, including Darryl Proctor, who accomplished the feat in 2008-09... Became just the fourth sophomore in school history to score 400 points in a season and his 446 points was one shy (447, Peter Mulligan, 2001-02) of a school sophomore record... Finished third in league games in scoring at 16.7 ppg... Recorded his second career double-double with 12 points/10 rebounds at St. John’s on Nov. 13... Scored 16 points at VMI (in 14 minutes of action), but fouled out with 6:14 remaining... Scored 20 points (10 field goals) for the first time at Central Connecticut on Nov. 22- ten field goals was the most by a Retriever since Nov. 20, 2010... Recorded second double-double of season (third career) and tied career high in caroms with 13 points/11 rebounds in 23 minutes in win at Towson on Dec. 10... Corralled 12 caroms in an 11-point, 12-rebound double-double vs. Morgan State on Dec. 14... Scored 10 points and had 11 rebounds in second half after playing only seven minutes (two fouls) in the first 20 minutes vs. the Bears... Tallied 22 points and added 11 rebounds vs. Rider on Dec. 17... It was his third consecutive double-double and fourth of the season... Became the first Retriever to post three consecutive double-doubles since Daryl Proctor did it in February of 2009... Scored in double figures for a career-high eight games before tallying three points in 19 minutes at Niagara on Dec. 28... Named America East Player of the Game with 23 points in Jan. 2 win at UNH... Earned same honor and tallied 25 points in just 20 minutes vs. Albany three nights later... Hit a career-best 3 (of 4) treys, but fouled out in just 20 minutes of action... Missed the first game of his career when he suffered a concussion in practice on Jan. 29 and did not travel to Albany for Feb. 1 contest... Returned and scored 24 points vs. Maine on Feb. 4... Tied school record (four others) with 18 free throw attempts and tied for third for a UMBC single game with 14 free throws made... Scored 20 or more points for the sixth time during the season and surpassed the 500-point mark vs. Maine... Scored career-best 28 points and set personal mark with six steals (team season high) vs. Hartford on Feb. 7- his 11 field goals were the most by a Retriever since Darryl Proctor hit 12 (of 15) vs. Boston U. on March 7, 2009... Posted his fifth double-double with 24 points and a career-high 14 caroms at Canisius on Feb. 18...Scored in double figures in personal-best 11 straight games (Jan. 19-Feb. 22), and averaged 18.3 ppg in that span... His 119 free throws made is sixth in UMBC’s DI era., while the 180 attempted is third.



2010-11: Debuted with a 13-point effort in 23 minutes of action vs. VMI on Nov. 14... Hit 5-of-10 shots from the floor and buried his first collegiate 3-point field goal... Added 11 points in 22 minutes at Loyola on Nov. 17 and became UMBC’s first freshman to score in double figures in his first two games since Peter Mulligan did it in the 2000-01 season... Became UMBC’s first freshman in 25 years of Division I basketball to score in double figures in his first three contests with a season-high 14-point effort vs. Central Connecticut on Nov. 20... Scored 12 of UMBC’s first 22 points in the game and added eight caroms... Earned first collegiate start at Coppin State on Nov. 23 and scored 11 points... Tied for team-high scoring honors with nine points at Rider on Dec. 8... Attempted season-high 13 field goals at Morgan State on Dec. 18 and tallied 11 points... Had not scored in doubles since opening the season with four straight games of 10+ points... Fell a point short of his season high with a 13-point effort vs. Maine on Jan. 8... Hit a season-high five free throws... Recorded five steals in 15 minutes vs. Albany on Jan. 26, the top figure for a Retriever during the season... Posted his first career double-double and recorded a season-high 11 rebounds with 13/11 at Stony Brook on Jan. 31... Earned his first career America East Player of the Game honor... Followed up with 12 points/4 steals vs. Binghamton on Feb. 3... Named America East Player of the Game vs. UNH on Feb. 12 with team highs of 13 points and seven rebounds in 13 minutes... Scored in double figures in ten games in his initial season... Lead the team with 32 thefts and had 21 in league play, good for 9th and (tied) 5th respectively in America East.


Background: Played for a St. Patrick team which went 24-3 on the season and was ranked the No. 1 team in the state of New Jersey… Recovered from an early season bang-up with his knee, averaging around eight points and eight rebounds per game for a very gifted team offensively… A tough player in the paint and developing a more consistent game with his short jumper… Earned a pair of state titles while at St. Patrick… Acted in the school play each year and is interested in a career in the film industry… His father, Eric, earned All-America honors as a decathlete and his older brother Eric was an All-American shot putter, both at Princeton... His uncle, Ron Harris (’78) was an All-American in men’s basketball at Florida State University… Also has four younger siblings… Lists favorite professional team as the Los Angeles Lakers and favorite movie as The Lion King… Enjoys public speaking… Son of Karen and Eric Plummer… Born Sept. 19, 1992.

 

 

 

CAREER STATISTICS

Year GP/GS Min-Avg. FG-FGA Pct. 3FG-FGA Pct. FT-FTA Pct. Off Def Reb Avg. PF FO A TO Blk Stl Pts. Avg.
2010-11 30-4 521-17.4 82-187 .439 2-9 .222 34-61 .557 47 63 110 3.7 81 3 12 49 9 32 200 6.7
2011-12 29-26 821-28.3 155-374 .414 17-53 .321 119-180 .661 70 144 214 7.4 84 4 40 114 9 40 446 15.4
2012-13 31-24 833-26.9 123-330 .373 17-62 .274 104-174 .598 60 139 199 6.4 95 6 64 90 11 54 367 11.8
2013-14  28-2 533-19.0  97-249  .390  25-78  .321  75-123  .610  37  103  140  5.0   66  28  49  31  294  10.5 
Career 118-56   2708-22.9  457-1140 .401   61-202  .302  332-538 .617  177  449  626  5.3  326   13  144  302 33   157  1307  11.1



Recent Games
Feb 12 Albany W, 71-69
Feb 15 at Vermont L, 76-52
Feb 19 at Stony Brook L, 72-53
Feb 22 Binghamton L, 72-70
Mar 2 at Hartford L, 67-56
Mar 8 at Albany L, 86-56
Statistics category Overall Conf
Games 28 16
Games started 2 1
Minutes 532 300
Minutes per game 19.0 18.8
FG 97-249 51-132
FG Pct 39.0 38.6
3PT 25-78 12-44
3PT Pct 32.1 27.3
FT 75-123 41-68
FT Pct 61.0 60.3
Off rebounds 37 21
Def rebounds 103 45
Total rebounds 140 66
Rebounds per game 5.0 4.1
Personal fouls 66 39
Disqualifications 0 0
Assists 28 18
Turnovers 49 26
Assist to turnover ratio 0.6 0.7
Steals 31 16
Blocks 4 2
Points 294 155
Points per game 10.5 9.7
Points per 40 min 22.1 20.7
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 8 at Arizona St. L, 96-61 - 18 3-8 37.5 0-1 0.0 2-5 40.0 8
Nov 11 Eastern (Pa.) W, 84-79 - - - - - - - - -
Nov 14 at American L, 63-61 - 24 5-11 45.5 0-2 0.0 2-6 33.3 12
Nov 17 Mount St. Mary's W, 90-84 - 21 4-12 33.3 2-3 66.7 0-0 - 10
Nov 20 Loyola (Md.) L, 89-83 - 22 5-13 38.5 1-3 33.3 6-8 75.0 17
Nov 23 at Navy L, 73-58 - 15 4-9 44.4 0-2 0.0 3-4 75.0 11
Nov 26 at Towson L, 75-60 - 22 5-15 33.3 1-2 50.0 6-9 66.7 17
Dec 2 UMES W, 64-59 - 7 1-4 25.0 0-1 0.0 0-0 - 2
Dec 4 at Duquesne L, 94-88 1 26 10-16 62.5 5-8 62.5 2-2 100.0 27
Dec 7 at Lehigh L, 70-68 - 22 6-16 37.5 2-7 28.6 7-12 58.3 21
Dec 11 at Coppin State L, 91-71 - 17 0-5 0.0 0-1 0.0 1-2 50.0 1
Dec 21 at George Washington L, 74-61 - 23 2-5 40.0 1-2 50.0 3-4 75.0 8
Dec 30 Navy W, 63-48 - 15 1-3 33.3 1-2 50.0 2-3 66.7 5
Jan 5 at UMass Lowell L, 59-54 - 22 3-10 30.0 0-3 0.0 1-4 25.0 7
Jan 8 at Albany L, 73-72 - 12 1-4 25.0 0-2 0.0 0-0 - 2
Jan 11 Maine W, 79-76 - 21 5-13 38.5 1-3 33.3 5-6 83.3 16
Jan 15 at New Hampshire L, 56-42 - 15 0-5 0.0 0-1 0.0 0-0 - 0
Jan 18 Vermont L, 73-47 - 19 4-8 50.0 0-2 0.0 4-5 80.0 12
Jan 20 Stony Brook L, 81-62 - 26 7-14 50.0 3-4 75.0 4-5 80.0 21
Jan 25 Hartford W, 60-58 - 26 3-7 42.9 1-3 33.3 1-4 25.0 8
Jan 29 at Binghamton W, 73-61 - 25 3-6 50.0 2-2 100.0 7-10 70.0 15
Feb 1 at Maine L, 83-80 - 24 8-14 57.1 1-4 25.0 6-11 54.5 23
Feb 5 New Hampshire W, 68-57 - 15 3-6 50.0 0-1 0.0 1-2 50.0 7
Feb 8 UMass Lowell L, 71-61 - 19 2-10 20.0 1-4 25.0 2-4 50.0 7
Feb 12 Albany W, 71-69 - 15 2-8 25.0 1-4 25.0 2-3 66.7 7
Feb 15 at Vermont L, 76-52 - 14 3-6 50.0 0-1 0.0 1-1 100.0 7
Feb 19 at Stony Brook L, 72-53 - 6 1-3 33.3 0-1 0.0 0-0 - 2
Feb 22 Binghamton L, 72-70 1 26 4-12 33.3 2-7 28.6 2-7 28.6 12
Mar 2 at Hartford L, 67-56 - 15 2-6 33.3 0-2 0.0 5-6 83.3 9
Mar 8 at Albany L, 86-56 - - - - - - - - -
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 8 at Arizona St. L, 96-61 - 18 1 3 4 0 3 0.0 0 0 2 0
Nov 11 Eastern (Pa.) W, 84-79 - - - - - - - - - - - -
Nov 14 at American L, 63-61 - 24 2 10 12 0 1 0.0 1 0 1 0
Nov 17 Mount St. Mary's W, 90-84 - 21 3 6 9 1 4 0.3 0 0 3 0
Nov 20 Loyola (Md.) L, 89-83 - 22 4 3 7 0 0 - 3 0 2 0
Nov 23 at Navy L, 73-58 - 15 1 6 7 0 2 0.0 1 1 3 0
Nov 26 at Towson L, 75-60 - 22 1 3 4 0 0 - 3 1 4 0
Dec 2 UMES W, 64-59 - 7 0 1 1 1 1 1.0 0 0 1 0
Dec 4 at Duquesne L, 94-88 1 26 0 9 9 2 3 0.7 1 0 2 0
Dec 7 at Lehigh L, 70-68 - 22 1 6 7 0 2 0.0 1 0 3 0
Dec 11 at Coppin State L, 91-71 - 17 1 4 5 1 0 - 0 0 1 0
Dec 21 at George Washington L, 74-61 - 23 1 2 3 5 3 1.7 5 0 3 0
Dec 30 Navy W, 63-48 - 15 1 5 6 0 4 0.0 0 0 2 0
Jan 5 at UMass Lowell L, 59-54 - 22 2 6 8 3 2 1.5 2 0 4 0
Jan 8 at Albany L, 73-72 - 12 2 0 2 1 4 0.3 1 0 2 0
Jan 11 Maine W, 79-76 - 21 5 2 7 1 0 - 0 0 2 0
Jan 15 at New Hampshire L, 56-42 - 15 2 1 3 0 0 - 0 0 0 0
Jan 18 Vermont L, 73-47 - 19 0 4 4 1 1 1.0 0 0 2 0
Jan 20 Stony Brook L, 81-62 - 26 1 6 7 2 0 - 2 1 3 0
Jan 25 Hartford W, 60-58 - 26 1 4 5 1 1 1.0 3 0 2 0
Jan 29 at Binghamton W, 73-61 - 25 0 2 2 1 2 0.5 1 0 1 0
Feb 1 at Maine L, 83-80 - 24 1 7 8 1 2 0.5 0 1 3 0
Feb 5 New Hampshire W, 68-57 - 15 0 3 3 0 1 0.0 0 0 3 0
Feb 8 UMass Lowell L, 71-61 - 19 3 1 4 2 2 1.0 1 0 2 0
Feb 12 Albany W, 71-69 - 15 0 2 2 1 2 0.5 2 0 2 0
Feb 15 at Vermont L, 76-52 - 14 1 0 1 0 3 0.0 0 0 4 -
Feb 19 at Stony Brook L, 72-53 - 6 0 0 0 0 0 - 1 0 3 -
Feb 22 Binghamton L, 72-70 1 26 3 4 7 3 3 1.0 2 0 4 0
Mar 2 at Hartford L, 67-56 - 15 0 3 3 1 3 0.3 1 0 2 -
Mar 8 at Albany L, 86-56 - - - - - - - - - - - -
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 28 2 19.0 3.5-8.9 39.0 0.9-2.8 32.1 2.7-4.4 61.0 10.5
Conference 16 1 18.8 3.2-8.2 38.6 0.8-2.8 27.3 2.6-4.2 60.3 9.7
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 12 1 19.3 3.4-9.2 37.3 1.1-3.1 35.1 2.4-3.9 61.7 10.3
Away 16 1 18.8 3.5-8.7 40.3 0.8-2.6 29.3 2.9-4.8 60.5 10.6
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:       #elseif ($field.key == "weight_class")
412:         <tr>
413:           <td class="label">Class: </td>
414:           <td class="value">$!attributes.get($field.key)</td>
415:         </tr>
416:       #else
417:         <tr>
418:           <td class="label">$field.value: </td>
419:           <td class="value">$!attributes.get($field.key)</td>
420:         </tr>
421:       #end
422:     #end
423:   #end
424: #end
425: 
426: #foreach ($i in [1..10])
427:   #set ($customKey = "bio_custom${i}")
428:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
429:     <tr>
430:       <td class="label">$options.get($customKey): </td>
431:       <td class="value">$!attributes.get("custom${i}")</td>
432:     </tr>
433:   #end
434: #end
435: </table>
436: #end ## macro printBioInfo
437: 
438: #macro (printHighlights)
439: #foreach ($highlight in $highlights.keySet())
440:   #set ($value = "-")
441:   #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
442:   <div class="stat clearfix">
443:     <span class="stat-title">$!highlights.get($highlight)</span>
444:     <span class="stat-value">$value</span>
445:   </div>
446: #end
447: #end ## macro printHighlights
448: 
449: #macro (printRoster)
450: #if ($page.contentType == "loki/bio")
451:   #set ($headlinesFeaturedSize = 0)
452:   #foreach ($featuredPage in $page.headlinesFeatured)
453:     #if ($featuredPage.contentType == "loki/headlines")
454:       #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
455:     #end
456:   #end
457:   #if ($headlinesFeaturedSize > 0)
458:     <select class="roster-select-list">
459:       <option selected="selected">Related Bios</option>
460:       #foreach ($featuredPage in $page.headlinesFeatured)
461:         #if ($featuredPage.contentType == "loki/headlines")
462:           $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
463: 		#end
464: 	  #end
465:     </select>
466:   #end
467: #elseif ($page.contentType == "loki/bio-network")
468:   #set ($relatedPlayers = $page.sectionPage.children)
469:   #set ($teamNames = {})
470:   #foreach ($relatedPlayer in $relatedPlayers)
471:     #if ($relatedPlayer.contentType == "loki/bio-network")
472:       #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
473:       #set ($teamName = $relatedPlayerObj.get("team"))
474:       #if ($teamName.length() > 0)
475:         #if (!$teamNames.containsValue($teamName))
476:           $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
477:         #end
478:       #end
479:     #end
480:   #end
481: 
482:   <select class="roster-select-list">
483:   #foreach ($i in [1..$teamNames.size()])
484:     #if ($teamNames.size() > 1)
485:       <optgroup label="$teamNames.get($i)">
486:     #end
487: 
488:     #foreach ($relatedPlayer in $relatedPlayers)
489:       #if ($relatedPlayer.contentType == "loki/bio-network")
490:         #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
491:         #set ($teamName = $relatedPlayerObj.get("team"))
492:         #if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
493:           #set ($playerFirstName = $relatedPlayerObj.get("first_name"))
494:           #set ($playerLastName = $relatedPlayerObj.get("last_name"))
495:           #if ($page.url == $relatedPlayer.url)
496:             <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option>
497:           #else
498:             <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
499:           #end
500:         #end
501:       #end
502:     #end
503: 
504:     #if ($teamNames.size() > 1)
505:       </optgroup>
506:     #end
507:   #end
508:   </select>
509: #end
510: #end ## macro printRoster
511: 
512: ################################################## END MACROS  #############################################################
513: 
514: #if ($attributes.get("full_name").length() > 0)
515:   #set ($fullName = $attributes.get("full_name"))
516: #else
517:   #set ($firstName = $!attributes.get("first_name"))
518:   #set ($lastName = $!attributes.get("last_name"))
519:   #set ($fullName = "${firstName} ${lastName}")
520: #end
521: 
522: ## FULL ROSTER
523: <div class="bio-wrap clearfix #if ($highlights) bio-wrap-has-highlights #end">
524: 
525: ## RELATED BIOS
526: #if ($showRoster)
527:   <div class="related-bios clearfix">#printRoster</div>
528: #end
529: 
530: <div class="head clearfix">
531: <div class="clearfix">
532: 
533: <div class="player-about clearfix">
534:   <div class="player-headshot">#printHeadshot</div>
535:   <div class="player-info">#printBioInfo</div>
536: </div>
537: 
538: #if ($highlights && $showHighlights)
539:   <div class="player-highlights clearfix">#printHighlights</div>
540: #end
541: 
542: </div>
543: </div> ## head
544: 
545: #if ($view.length() > 0)
546: <div class="body clearfix">
547: 
548: <div class="tab-container primary clearfix" data-module="amd-tabs">
549: <div class="tab-nav" data-module="jscroll" data-momentum="false">
550:   <div>
551:   <ul class="clearfix">
552:   #if ($hasSynopsis || $hasBioBrief)
553:     <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li>
554:   #end
555: 
556:   #if ($statsURL.length() > 0)
557:     <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li>
558:     <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li>
559:     #if ($showCareer)
560:       <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li>
561:     #end
562:     <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li>
563:   #end
564: 
565:   #if ($hasHTMLStats)
566:     <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li>
567:   #end
568: 
569:   #if ($releases.size() > 0)
570: 	<li #if ($view == "news") class="active" #end><a href="${page.url}?view=news">News</a></li>
571:   #end
572:   </ul>
573:   </div>
574: </div> ## tab-nav
575: 
576: <div class="tab-panels clearfix">
577: 
578: ## BIO
579: #if ($hasSynopsis || $hasBioBrief)
580: 
581: #set ($class = "tab-panel clearfix")
582: #if ($view == "bio")
583:   #set ($class = "tab-panel active clearfix")
584: #end
585: <div class="${class}">
586: 
587: <div class="synopsis clearfix">
588: #if ($hasSynopsis)
589:   $synopsis
590: #elseif ($hasBioBrief)
591:   $website.include("$bioBriefURL")
592: #end
593: </div>
594: 
595: </div> ## tab-panel
596: #end
597: ## BIO
598: 
599: ## STATS
600: #if ($statsURL.length() > 0)
601: 
602: ## PROFILE
603: #set ($class = "tab-panel clearfix")
604: #if ($view == "profile")
605:   #set ($class = "tab-panel active clearfix")
606: #end
607: <div class="${class}">
608: <div class="stats-wrap clearfix">
609: 
610: ## LAST SIX GAMES
611: <div class="stats-box half">
612: #printRecentGames()
613: </div>
614: 
615: ## RANKING
616: <div class="stats-box half">
617: #if ($statPos.length() > 0)
618:   $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
619: #end
620: </div>
621: 
622: </div> ## stats-wrap
623: </div> ## tab-content
624: ## PROFILE
625: 
626: ## GAMELOG
627: #set ($class = "tab-panel clearfix")
628: #if ($view == "gamelog")
629:   #set ($class = "tab-panel active clearfix")
630: #end
631: 
632: #set ($activePos = $statPos)
633: #if ($view == "gamelog" && $paramPos.length() > 0)
634:   #if ($positions.get($paramPos).length() > 0)
635:     #set ($activePos = $positions.get($paramPos))
636:   #end
637: #end
638: 
639: <div class="${class}">
640: 
641: #if ($gamelogsCategoriesLabels)
642: <div class="tab-container secondary clearfix" data-module="amd-tabs">
643:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
644:     <div>
645:     <ul class="clearfix">
646:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
647:       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
648: 
649:       #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
650:         #set($gamelogsCatLabelVal = "Defence")
651:       #end
652: 
653:       <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}">$gamelogsCatLabelVal</a></li>
654:     #end
655:     </ul>
656: 	</div>
657:   </div>
658:   <div class="tab-panels">
659:   #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
660:     #set ($class = "tab-panel clearfix")
661:     #if ($gamelogsCatLabel.key == $activePos)
662:       #set ($class = "tab-panel active clearfix")
663:     #end
664:     <div class="${class}">
665:       <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
666: 	</div>
667:   #end
668:   </div>
669: </div>
670: #else
671:   <div class="stats-wrap clearfix">#gamelogData($pos)</div>
672: #end
673: 
674: </div> ## tab-panel
675: ## GAMELOG
676: 
677: 
678: ## CAREER
679: #if ($showCareer)
680: 
681: #set ($activePos = $statPos)
682: #if ($view == "career" && $paramPos.length() > 0)
683:   #if ($positions.get($paramPos).length() > 0)
684:     #set ($activePos = $positions.get($paramPos))
685:   #end
686: #end
687: 
688: #set ($class = "tab-panel clearfix")
689: #if ($view == "career")
690:   #set ($class = "tab-panel active clearfix")
691: #end
692: 
693: <div class="${class}">
694: 
695: #if ($briefsCategoriesLabels)
696:   #printCategories($briefsCategoriesLabels "career")
697: #else
698:   <div class="stats-wrap clearfix">#careerData($activePos)</div>
699: #end
700: 
701: </div> ## tab-panel
702: #end
703: ## CAREER
704: 
705: ## SPLITS
706: #set ($class = "tab-panel clearfix")
707: #if ($view == "splits")
708: 	#set ($class = "tab-panel active clearfix")
709: #end
710: 
711: #set ($activePos = $statPos)
712: #if ($view == "splits" && $paramPos.length() > 0)
713:   #if ($positions.get($paramPos).length() > 0)
714:     #set ($activePos = $positions.get($paramPos))
715:   #end
716: #end
717: 
718: <div class="${class}">
719: 
720: #if ($briefsCategoriesLabels)
721:   #printCategories($briefsCategoriesLabels "splits")
722: #else
723:   <div class="stats-wrap clearfix">#splitsData($pos)</div>
724: #end
725: 
726: </div> ## tab-panel
727: ## SPLITS
728: 
729: #end
730: ## STATS
731: 
732: ## HTML STATS
733: #if ($hasHTMLStats)
734: 
735: #set ($class = "tab-panel clearfix")
736: #if ($view == "htmlstats")
737:   #set ($class = "tab-panel active clearfix")
738: #end
739: <div class="${class}">
740:   <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
741: </div>
742: 
743: #end
744: ## HTML STATS
745: 
746: ## NEWS
747: #set ($class = "tab-panel clearfix")
748: #if ($view == "news")
749:   #set ($class = "tab-panel active clearfix")
750: #end
751: <div class="bio-news ${class}">
752: 
753: #set ($counter = 0)
754: 
755: #foreach ($article in $releases)
756: #if ($article.title.length() > 0)
757: 
758: #set ($counter = $counter + 1)
759: 
760: #if ($counter == 1)
761:   <div class="row clearfix">
762: #end
763: 
764: <div class="item">
765: <div>
766: #if ($article.thumbnailURL)
767:   <img src="${article.thumbnailURL}?max_width=300" alt="" />
768: #else
769:   <img src="/images/setup/thumbnail_default.jpg" alt="" />
770: #end
771: 
772: <a href="$article.url" class="title">$article.title</a>
773: 
774: </div>
775: </div> ## item
776: 
777: #if ($counter == 3 || $velocityCount == $releases.size())
778:   </div> ## row
779:   #set ($counter = 0)
780: #end
781: 
782: #end
783: #end ## foreach
784: 
785: </div> ## tab-content
786: ## NEWS
787: 
788: </div> ## tab-panels
789: </div> ## tab-container
790: </div> ## body
791: #end
792: 
793: $wiki
794: </div> ## ends bio-wrap

View: Mobile | Desktop