30 Chris Setian
30 Chris Setian
Height: 5-10
Weight: 230
Year: Sr.
Hometown: East Longmeadow, Mass.
High School: Suffield Academy
Position: RB (C)
Major: Kinesiology: Physical Education Pedagogy
gp 14
yds 458
yds/g 32.7
td 8

Personal
The son of Steve and Lisa Setian ... born 11-23-89 in Springfield, Mass.

UNH HIGHLIGHTS | CAREER STATISTICS | PHOTOS

2013
2013 Statistics 
The Bill Bowes Coaches AwardThe senior co-captain Played a tremendous role in 14 games this season... ranked second on the squad with 458 rushing yards (on 90 carries), tied for the team lead with 8 rushing touchdowns, he tacked on 17 receptions for 134 yards averging 7.9 yards/catch with a TD, on special teams he compiled 11 tackles, a forced fumble and a blocked kick... Against Villanova a career-best 88 rushing yards on 12 carries and scored the game-winning 2-point conversion with 14 seconds left in a 29-28 victory... rushed for a season high 2 touchdowns on 10 carries for 54 yards to lead the wildcats to a 41-27 win over Maine in the second round of the NCAA playoffs... named to the CAA Academic All-Conference Team and recieved the Bill Bowes Coaches Award 

2012
2012 Statistics

Named to CAA Academic All-Conference Team and received CAA Commissioner's Academic Award ... played in all 12 games, including eight starts … ranked second on team with 490 rushing yards … carried 83 times for 490 yards and five touchdowns … averaged 5.9 yards/rush and 40.8 rushing yards/game … season-long and career-high rush went for 44 yards (at Rhode Island) … was top receiver out of backfield with 22 receptions for 185 yards and four TDs … average 8.4 yards/catch and 15.4 receiving yards/ game …  made at least one catch in all 12 games … scored TDs in eight games …  season-long catch went for 25 yards at Georgia State (Oct. 6) … carried 12 times for 56 yards and a two-yard TD in win at Holy Cross (Aug. 30); added two catches for 16 yards … carried five times for 33 yards, including five-yard TD rush for team’s lone score, in loss at Minnesota (Sept. 8) … tallied 11 rushes for 81 yards and a TD in win over CCSU (Sept. 15) … carried 10 times for 70 yards at Old Dominion (Sept. 22); added three catches for 28 yards and a TD … amassed career highs with 18 rushes and  83 yards in win at Maine (Oct. 20); added three catches for 21 yards and a TD

2011
2011 Statistics
Received CAA Commissioner's Academic Award ... played in all 12 games ... rushed 80 times for 338 yards (28.2 yards/game; 4.2 yards/carry) ... ran for three TDs and season-long of 27 yards ... caught 15 passes for 125 yards (8.3 yards/catch; 10.4 yards rec./game) and TD ... season-high catch went for 14 yards ... made 11 tackles, nine solo, on special teams ... recovered a fumble (at Montana State) and forced a fumble (at Richmond) ... carried seven times for 31 yards and caught three passes for 16 yards in win over Maine ... rushed nine times for 59 yards and TD (four-yard run) and caught five passes for 49 yards, matching career high with 14-yard catch, in loss at Towson ... rushed eight times for 39 yards, including 26-yard gain, in win vs James Madison ... rushed 10 times for 27 yards and scored on one-yard plunge in win over Rhode Island; also made career-high three tackles ... had six rushes for 21 yards and caught six passes for career-high 56 yards in loss at William & Mary; set career high with 14-yard reception ... rushed eight times for 64 yards and a TD  (one-yarder) in win over Holy Cross; season-high 27-yard rush ... ran seven times for 35 yards and caught two passes for 11 yards, including three-yard TD (first career catch), in loss at Toledo 

2010
2010 Statistics
Received 2010-11 CAA Commissioner's Academic Award ... played in all 13 games ... carried the ball 36 times for 184 yards and one touchdown, averaging 5.1 yards per carry (best among RBs) and 14.2 yards per game rushing ... season-high run was for 24 yards ... only UNH ball carrier with at least 10 carries not to have a rush for negative yardage ... was team's leading rusher with 13 carries for 65 yards and scored his first career TD (five-yard carry) in NCAA D-I second-round victory at No. 13 Bethune-Cookman ... rushed nine times for 32 yards in triumph over Towson ... carried three times for 15 yards in inaugural Colonial Clash victory over UMass at Gillette Stadium ... rushed 10 times for career-high 71 yards, including 24-yard rush, in first collegiate game against Central Connecticut State

2009
Redshirt Season

Career Highs:
Rushing Yards    83, at Maine, 2012
Carries    18, at Maine, 2012
Longest    44, at Rhode Island, 2012
Touchdowns    1, 9x, last at Rhode Island, 2012
Receiving Yards    56, at William & Mary, 2011    
Receptions    6, at William & Mary, 2011
Longest    25(TD), at Georgia St., 2012
Touchdowns    1, five times last at Rhode Island, 2012
Kick Returns Longest: 15, vs Towson, 2012
Fumbles Forced        1, at Richmond, 2011
Fumbles Rec.        1, at Montana State, 2011

Before UNH
Carried the ball 174 times for 1,529 yards and 23 TDs at Suffield Academy (Conn.) in 2008 for coach Drew Gamere ... helped guide Suffield to 2008 Super Bowl Championship ... received the J. Edward Tryon Award as the outstanding football player of the year ... also lettered in wrestling and lacrosse at Suffield ... ran for 2,023 yards and scored 29 TDs at East Longmeadow H.S. for coach Scott Raymond ... also made eight receptions for 58 yards and a TD and notched 95 tackles with three INTs, including two TD returns ... also lettered in lacrosse and basketball at East Longmeadow ... as lacrosse player, notched 44 goals and 26 assists in final season

Recent Games
Nov 16 at Albany (N.Y.) W, 37-20
Nov 23 Maine W, 24-3
Nov 30 Lafayette W, 45-7
Dec 7 at Maine W, 41-27
Dec 14 at Southeastern La. W, 20-17
Dec 20 at North Dakota St. L, 52-14
Statistics category Overall Conf
Rushes 90 61
Yards 458 293
Yards per game 32.7 36.6
Yards per rush 5.1 4.8
Touchdowns 8 3
Fumbles 1 1
Fumbles lost 1 1
Date Opponent Score comp att pct yds y/a td int sac yds
Sep 7 at Central Mich. L, 24-21 - - - - - - - - -
Sep 14 Colgate W, 53-23 - - - - - - - - -
Sep 28 at Lehigh L, 34-27 - - - - - - - - -
Oct 5 at Towson L, 44-28 - - - - - - - - -
Oct 12 Rhode Island W, 59-19 - - - - - - - - -
Oct 19 Villanova W, 29-28 - - - - - - - - -
Oct 26 at Stony Brook W, 31-13 - - - - - - - - -
Nov 2 at William & Mary L, 17-0 - - - - - - - - -
Nov 9 James Madison W, 33-17 - - - - - - - - -
Nov 16 at Albany (N.Y.) W, 37-20 - - - - - - - - -
Nov 23 Maine W, 24-3 - - - - - - - - -
Nov 30 Lafayette W, 45-7 - - - - - - - - -
Dec 7 at Maine W, 41-27 - - - - - - - - -
Dec 14 at Southeastern La. W, 20-17 - - - - - - - - -
Dec 20 at North Dakota St. L, 52-14 - - - - - - - - -
Date Opponent Score rush yds y/a lng td fum lost
Sep 7 at Central Mich. L, 24-21 2 3 1.5 4 0 - -
Sep 14 Colgate W, 53-23 - - - - - - -
Sep 28 at Lehigh L, 34-27 4 35 8.8 21 1 - -
Oct 5 at Towson L, 44-28 8 39 4.9 14 0 1 1
Oct 12 Rhode Island W, 59-19 3 9 3.0 3 1 - -
Oct 19 Villanova W, 29-28 12 88 7.3 17 0 - -
Oct 26 at Stony Brook W, 31-13 6 23 3.8 7 1 - -
Nov 2 at William & Mary L, 17-0 4 13 3.3 5 0 - -
Nov 9 James Madison W, 33-17 9 24 2.7 10 1 - -
Nov 16 at Albany (N.Y.) W, 37-20 10 69 6.9 15 0 - -
Nov 23 Maine W, 24-3 9 28 3.1 15 0 - -
Nov 30 Lafayette W, 45-7 4 46 11.5 28 1 - -
Dec 7 at Maine W, 41-27 10 54 5.4 12 2 - -
Dec 14 at Southeastern La. W, 20-17 5 20 4.0 7 0 - -
Dec 20 at North Dakota St. L, 52-14 4 7 1.8 4 1 - -
Date Opponent Score rec yds y/r lng td fum lost
Sep 7 at Central Mich. L, 24-21 1 10 10.0 10 0 - -
Sep 14 Colgate W, 53-23 - - - - - - -
Sep 28 at Lehigh L, 34-27 1 5 5.0 5 1 - -
Oct 5 at Towson L, 44-28 3 21 7.0 8 0 1 1
Oct 12 Rhode Island W, 59-19 1 1 1.0 1 0 - -
Oct 19 Villanova W, 29-28 3 28 9.3 14 0 - -
Oct 26 at Stony Brook W, 31-13 - - - - - - -
Nov 2 at William & Mary L, 17-0 2 13 6.5 14 0 - -
Nov 9 James Madison W, 33-17 2 20 10.0 11 0 - -
Nov 16 at Albany (N.Y.) W, 37-20 - - - - - - -
Nov 23 Maine W, 24-3 1 -1 -1.0 0 0 - -
Nov 30 Lafayette W, 45-7 1 15 15.0 15 0 - -
Dec 7 at Maine W, 41-27 - - - - - - -
Dec 14 at Southeastern La. W, 20-17 - - - - - - -
Dec 20 at North Dakota St. L, 52-14 2 22 11.0 13 0 - -
Date Opponent Score fgm fga lng xpm xpa pts
Sep 7 at Central Mich. L, 24-21 - - - 0 0 0
Sep 14 Colgate W, 53-23 - - - - - -
Sep 28 at Lehigh L, 34-27 - - - 0 0 0
Oct 5 at Towson L, 44-28 - - - 0 0 0
Oct 12 Rhode Island W, 59-19 - - - - - 0
Oct 19 Villanova W, 29-28 - - - 0 0 0
Oct 26 at Stony Brook W, 31-13 - - - - - 0
Nov 2 at William & Mary L, 17-0 - - - - - 0
Nov 9 James Madison W, 33-17 - - - - - 0
Nov 16 at Albany (N.Y.) W, 37-20 - - - - - 0
Nov 23 Maine W, 24-3 - - - - - 0
Nov 30 Lafayette W, 45-7 - - - - - 0
Dec 7 at Maine W, 41-27 - - - - - 0
Dec 14 at Southeastern La. W, 20-17 - - - - - 0
Dec 20 at North Dakota St. L, 52-14 - - - - - 0
Date Opponent Score punt yds avg long in20 fc tb blk
Sep 7 at Central Mich. L, 24-21 - - - - - - - -
Sep 14 Colgate W, 53-23 - - - - - - - -
Sep 28 at Lehigh L, 34-27 - - - - - - - -
Oct 5 at Towson L, 44-28 - - - - - - - -
Oct 12 Rhode Island W, 59-19 - - - - - - - -
Oct 19 Villanova W, 29-28 - - - - - - - -
Oct 26 at Stony Brook W, 31-13 - - - - - - - -
Nov 2 at William & Mary L, 17-0 - - - - - - - -
Nov 9 James Madison W, 33-17 - - - - - - - -
Nov 16 at Albany (N.Y.) W, 37-20 - - - - - - - -
Nov 23 Maine W, 24-3 - - - - - - - -
Nov 30 Lafayette W, 45-7 - - - - - - - -
Dec 7 at Maine W, 41-27 - - - - - - - -
Dec 14 at Southeastern La. W, 20-17 - - - - - - - -
Dec 20 at North Dakota St. L, 52-14 - - - - - - - -
Date Opponent Score kr yds avg lng td pr yds avg lng td
Sep 7 at Central Mich. L, 24-21 - - - - - - - - - -
Sep 14 Colgate W, 53-23 - - - - - - - - - -
Sep 28 at Lehigh L, 34-27 - - - - - - - - - -
Oct 5 at Towson L, 44-28 - - - - - - - - - -
Oct 12 Rhode Island W, 59-19 - - - - - - - - - -
Oct 19 Villanova W, 29-28 - - - - - - - - - -
Oct 26 at Stony Brook W, 31-13 - - - - - - - - - -
Nov 2 at William & Mary L, 17-0 - - - - - - - - - -
Nov 9 James Madison W, 33-17 1 20 20.0 20 0 - - - - -
Nov 16 at Albany (N.Y.) W, 37-20 - - - - - - - - - -
Nov 23 Maine W, 24-3 - - - - - - - - - -
Nov 30 Lafayette W, 45-7 - - - - - - - - - -
Dec 7 at Maine W, 41-27 1 14 14.0 14 0 - - - - -
Dec 14 at Southeastern La. W, 20-17 1 6 6.0 6 0 - - - - -
Dec 20 at North Dakota St. L, 52-14 2 20 10.0 12 0 - - - - -
Date Opponent Score gp rush rcv pr kr yds
Sep 7 at Central Mich. L, 24-21 1 3 10 - - 13
Sep 14 Colgate W, 53-23 - - - - - -
Sep 28 at Lehigh L, 34-27 1 35 5 - - 40
Oct 5 at Towson L, 44-28 1 39 21 - - 60
Oct 12 Rhode Island W, 59-19 1 9 1 - - 10
Oct 19 Villanova W, 29-28 1 88 28 - - 116
Oct 26 at Stony Brook W, 31-13 1 23 - - - 23
Nov 2 at William & Mary L, 17-0 1 13 13 - - 26
Nov 9 James Madison W, 33-17 1 24 20 - 20 64
Nov 16 at Albany (N.Y.) W, 37-20 1 69 - - - 69
Nov 23 Maine W, 24-3 1 28 -1 - - 27
Nov 30 Lafayette W, 45-7 1 46 15 - - 61
Dec 7 at Maine W, 41-27 1 54 - - 14 68
Dec 14 at Southeastern La. W, 20-17 1 20 - - 6 26
Dec 20 at North Dakota St. L, 52-14 1 7 22 - 20 49
Date Opponent Score pts rush rec kr pr int fum xpm fgm saf misc 2pt
Sep 7 at Central Mich. L, 24-21 0 0 0 - - - - 0 - - 0 0
Sep 14 Colgate W, 53-23 - - - - - - - - - - - -
Sep 28 at Lehigh L, 34-27 14 1 1 - - - - 0 - - 0 1
Oct 5 at Towson L, 44-28 2 0 0 - - - - 0 - - 0 1
Oct 12 Rhode Island W, 59-19 6 1 0 - - - - - - - - -
Oct 19 Villanova W, 29-28 2 0 0 - - - - 0 - - 0 1
Oct 26 at Stony Brook W, 31-13 6 1 - - - - - - - - - -
Nov 2 at William & Mary L, 17-0 0 0 0 - - - - - - - - -
Nov 9 James Madison W, 33-17 6 1 0 0 - - - - - - - -
Nov 16 at Albany (N.Y.) W, 37-20 0 0 - - - - - - - - - -
Nov 23 Maine W, 24-3 0 0 0 - - - - - - - - -
Nov 30 Lafayette W, 45-7 6 1 0 - - - - - - - - -
Dec 7 at Maine W, 41-27 12 2 - 0 - - - - - - - -
Dec 14 at Southeastern La. W, 20-17 0 0 - 0 - - - - - - - -
Dec 20 at North Dakota St. L, 52-14 6 1 0 0 - - - - - - - -
Date Opponent Score tack ast tot sack lost tfl yds ff fr td int yds td brup blk saf
Sep 7 at Central Mich. L, 24-21 - - 0 - - 0 - - - - - - - - - -
Sep 14 Colgate W, 53-23 - - - - - - - - - - - - - - - -
Sep 28 at Lehigh L, 34-27 - - 0 - - 0 - - - - - - - - - -
Oct 5 at Towson L, 44-28 2 1 3 - - 0 - - - - - - - - - -
Oct 12 Rhode Island W, 59-19 - - 0 - - 0 - - - - - - - - - -
Oct 19 Villanova W, 29-28 - - 0 - - 0 - - - - - - - - - -
Oct 26 at Stony Brook W, 31-13 0 1 1 - - 0 - - - - - - - - 1 -
Nov 2 at William & Mary L, 17-0 1 0 1 - - 0 - - - - - - - - - -
Nov 9 James Madison W, 33-17 2 0 2 - - 0 - - - - - - - - - -
Nov 16 at Albany (N.Y.) W, 37-20 1 0 1 - - 0 - - - - - - - - - -
Nov 23 Maine W, 24-3 0 1 1 - - 0 - - - - - - - - - -
Nov 30 Lafayette W, 45-7 0 1 1 - - 0 - - - - - - - - - -
Dec 7 at Maine W, 41-27 - - 0 - - 0 - - - - - - - - - -
Dec 14 at Southeastern La. W, 20-17 1 0 1 - - 0 - 1 - - - - - - - -
Dec 20 at North Dakota St. L, 52-14 - - 0 - - 0 - - - - - - - - - -
  gp comp att pct yds y/g y/a td int lg
2010-11 12 - - - - - - - - -
2011-12 12 - - - - - - - - -
2012-13 12 - - - - - - - - -
2013-14 14 - - - - - - - - -
Total 50 - - - - - - - - -
  gp rush yds y/g avg td lg fum lost
2010-11 12 36 184 15.3 5.1 1 24 1 1
2011-12 12 80 338 28.2 4.2 3 27 1 1
2012-13 12 83 490 40.8 5.9 5 44 3 1
2013-14 14 90 458 32.7 5.1 8 28 1 1
Total 50 289 1470 29.4 5.1 17 44 6 4
  gp rec rec/g yds y/g avg td lg
2010-11 12 - - - - - - -
2011-12 12 15 1.3 125 10.4 8.3 1 14
2012-13 12 22 1.8 185 15.4 8.4 4 25
2013-14 14 17 1.2 134 9.6 7.9 1 15
Total 50 54 1.1 444 8.9 8.2 6 25
  gp fgm fga pct lg xpm xpa pct pts
2010-11 12 - - - - - - - 0
2011-12 12 - - - - - - - 0
2012-13 12 - - - - 0 0 - 0
2013-14 14 - - - - 0 0 - 0
Total 50 - - - - 0 0 - 0
  gp punt yds avg lg in20 fc tb blk
2010-11 12 - - - - - - - -
2011-12 12 - - - - - - - -
2012-13 12 - - - - - - - -
2013-14 14 - - - - - - - -
Total 50 - - - - - - - -
  kr yds avg td lg pr yds avg td lg
2010-11 - - - - - - - - - -
2011-12 - - - - - - - - - -
2012-13 2 27 13.5 0 15 - - - - -
2013-14 5 60 12.0 0 20 - - - - -
Total 7 87 12.4 0 20 - - - - -
  gp rush rcv pr kr yds ypg
2010-11 12 184 - - - 184 15.3
2011-12 12 338 125 - - 463 38.6
2012-13 12 490 185 - 27 702 58.5
2013-14 14 458 134 - 60 652 46.6
Total 50 1470 444 - 87 2001 40.0
  pts pts/g rush rec kr pr int fum xpm fgm 2pt misc
2010-11 6 0.5 1 - - - - - - - - -
2011-12 26 2.2 3 1 - - - - - - 1 -
2012-13 56 4.7 5 4 0 - - - 0 - 1 0
2013-14 60 4.3 8 1 0 - - - 0 - 3 0
Total 148 3.0 17 6 0 - - - 0 - 5 0
  gp tkl ast tot tkl/g sck yds tfl yds ff fr yds int yds brup blk
2010-11 12 2 0 2 .2 - - 0 - - - - - - - -
2011-12 12 9 2 11 .9 - - 0 - 1 1 0 - - - -
2012-13 12 7 0 7 .6 - - 0 - - - - - - - -
2013-14 14 7 4 11 .8 - - 0 - 1 - - - - - 1
Total 50 25 6 31 .6 - - 0 - 2 1 0 - - - 1
  gp comp att pct yds y/g y/a td int lg
Total 14 - - - - - - - - -
Conference 8 - - - - - - - - -
Exhibition - - - - - - - - - -
-
Home 5 - - - - - - - - -
Away 9 - - - - - - - - -
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 222, 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: #end
74: 
75: #if ($options.get("bio_default_view").length() > 0)
76:   #set ($checkView = $options.get("bio_default_view"))
77: #end
78: 
79: #if ($request.getParameter("view"))
80:   #set ($checkView = $request.getParameter("view"))
81: #end
82: 
83: #if ($checkView == "profile" && $statsURL.length() > 0)
84:   #set ($view = "profile")
85: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
86:   #set ($view = "bio")
87: #elseif ($checkView == "gamelog" && $statsURL.length() > 0)
88:   #set ($view = "gamelog")
89: #elseif ($checkView == "career" && $showCareer)
90:   #set ($view = "career")
91: #elseif ($checkView == "splits" && $statsURL.length() > 0)
92:   #set ($view = "splits")
93: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
94:   #set ($view = "htmlstats")
95: #end
96: 
97: #macro (gamelogData $p)
98: 
99: #set ($p = $positions.get($p))
100: #set ($gamelogs = $gamelogs.get($p))
101: 	
102: #if ($hasEvents)
103: <div class="stats-box full clearfix">
104: <div class="scrollable">
105: <div>
106: <table>
107:   <tr class="thead">
108:     <th class="text">Date</th>
109:     <th class="pinned-col text">Opponent</th>
110:     <th>Score</th>
111:     #foreach ($gamelog in $gamelogs)
112:       <th>$gamelog</th>
113:     #end
114:   </tr>
115: #foreach ($event in $events)
116:   <tr>
117:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
118:     <td class="pinned-col text">
119:       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
120:       $event.event.opponent.name
121:     </td>
122:     <td>
123:     #if ($event.event.statusCode >= 0)
124:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
125:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
126:       #else
127:       ${event.event.APResult}
128:       #end
129:     #else &nbsp; #end
130:     </td>
131:     #foreach ($gamelog in $gamelogs.keySet())
132:       #set ($value = "-")
133:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
134:       <td>$value</td>
135:     #end
136:   </tr>
137: #end
138: </table>
139: </div>
140: </div> ## scrollable
141: </div> ## stats-box
142: #end
143: 
144: #end ## macro gamelogData
145: 
146: #macro (split $statPosBriefs $label $stats)
147:   <tr>
148:     <td class="pinned-col text">${label}</td>
149:     #foreach ($brief in $statPosBriefs.keySet())
150:       #set ($value = "-")
151:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
152:       <td>#if ($value.length() > 0) $value #else - #end</td>
153:     #end
154:   </tr>
155: #end
156: 
157: #macro (careerData $p)
158: #set ($p = $positions.get($p))
159: #set ($statPosBriefs = $briefs.get($p))
160: 
161: <div class="stats-box full clearfix">
162: <div class="scrollable">
163: <div>
164: <table>
165: <tr class="thead">
166:   <th class="pinned-col">&nbsp;</th>
167:   #foreach ($brief in $statPosBriefs)
168:     <th>$brief</th>
169:   #end
170: </tr>
171: 
172: #set ($careerTotals = $request.getAttribute("careerTotals"))
173: #set ($careerMap = $request.getAttribute("careerMap"))
174: 
175: #foreach ($season in $seasons)
176:   ## Check if we did not get stats for this season
177:   #if ($careerMap.get($season.seasonName))
178:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName])
179:   #elseif ($wiki.valid())
180:     <tr>
181:       <td class="text">${season.seasonName}</td>
182:       <td colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
183:     </tr>
184:   #end
185: #end
186: 
187: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
188: 
189: </table>
190: </div>
191: </div> ## scrollable
192: </div> ## stats-box
193: 
194: #end ## macro careerData
195: 
196: #macro (splitsData $p)
197: 
198: #set ($p = $positions.get($p))
199: #set ($statPosBriefs = $briefs.get($p))
200: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1))	
201: 	
202: #if ($statPosBriefs.size() > 0)
203: <div class="stats-box full clearfix">
204: <div class="scrollable">
205: <div>
206: <table>
207:   <tr>
208:     <th class="pinned-col">&nbsp;</th>
209:     #foreach ($brief in $statPosBriefs)
210:       <th>$brief</th>
211:     #end
212:   </tr>
213: 
214: #split($statPosBriefs, "Total", $splits.overall)
215: #split($statPosBriefs, "Conference", $splits.conference)
216: #split($statPosBriefs, "Exhibition", $splits.exhibition)
217: 
218: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
219: 
220: #split($statPosBriefs, "Home", $splits.home)
221: #split($statPosBriefs, "Away", $splits.away)
222: #split($statPosBriefs, "Neutral", $splits.neutral)
223: 
224: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
225: 
226: #foreach($gameResult in $gamesResults.entrySet())
227:   #if ($gameResult.key == "wins")
228:     #set ($splitGameResult = $splits.inWins)
229:   #elseif ($gameResult.key == "losses")
230:     #set ($splitGameResult = $splits.inLosses)
231:   #elseif ($gameResult.key == "ties")
232:     #set ($splitGameResult = $splits.inTies)
233:   #end
234: 	
235:   #split($statPosBriefs, $gameResult.value, $splitGameResult)
236: #end
237: 
238: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
239: 
240: #if ($monthsPlayed and $monthsPlayed.size() > 0)
241:   #foreach($month in $monthsPlayed)
242:     #if ($month == 'January')
243:       #set ($splitMonth = $splits.january)
244:     #elseif ($month == 'February')
245:       #set ($splitMonth = $splits.february)
246:     #elseif ($month == 'March')
247:       #set($splitMonth = $splits.march)
248:     #elseif ($month == 'April')
249:       #set($splitMonth = $splits.april)
250:     #elseif ($month == 'May')
251:       #set ($splitMonth = $splits.may)
252:     #elseif ($month == 'June')
253:       #set ($splitMonth = $splits.june)
254:     #elseif ($month == 'July')
255:       #set($splitMonth = $splits.july)
256:     #elseif ($month == 'August')
257:       #set ($splitMonth = $splits.august)
258:     #elseif ($month == 'September')
259:       #set($splitMonth = $splits.september)
260:     #elseif ($month == 'October')
261:       #set($splitMonth = $splits.october)
262:     #elseif ($month == 'November')
263:       #set ($splitMonth = $splits.november)
264:     #elseif ($month == 'December')
265:       #set($splitMonth = $splits.december)
266:     #end
267: 		
268:     #split($statPosBriefs, $month, $splitMonth)
269:   #end ## foreach
270: #end
271: </table>
272: </div>
273: </div> ## scrollable
274: </div> ## srollable-table
275: #end
276: 
277: #end ## macro splitsData
278: 
279: #macro (printRecentGames)
280: #if ($hasEvents)
281: <table>
282:   <tr class="thead"><th colspan="3">Recent Games</th></tr>
283:   
284: #set ($eventEnd = -1)
285: #foreach ($event in $events)
286:   #if ($event.event.result.resolved)
287:     #set ($eventEnd = $velocityCount)
288:   #end
289: #end
290: 
291: #set ($eventStart = $eventEnd - 5)
292: #if ($eventStart < 0) #set ($eventStart = 0) #end
293: 
294: #foreach ($event in $events)
295: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
296:   <tr>
297:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
298:     <td class="text">
299:       #if ($event.event.neutralSite.length() > 0) vs.
300:       #elseif (!$event.event.home) at
301:       #else ## nothing for a home game
302:       #end
303:       $event.event.opponent.name
304:     </td>
305:     <td class="text">
306:     #if ($event.event.statusCode >= 0)
307:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
308:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
309:       #else
310:       ${event.event.APResult}
311:       #end
312: 	#end
313: 	</td>
314:   </tr>
315: #end ## if
316: #end
317: </table>
318: #end
319: #end ## macro printRecentGames
320: 
321: #macro (printCategories $briefCategoryLabels $v)
322: 	
323: <div class="tab-container secondary clearfix">
324: <div class="tab-nav" data-jscroll="true" data-momentum="false">
325: <div>
326: <ul class="clearfix">
327: #foreach($briefCat in $briefCategoryLabels.entrySet())
328:   #set ($briefCatLabel = $briefCat.value)
329:   #set ($briefCatKey = $briefCat.key)
330: 		
331:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
332:     #set ($briefCatLabel = "Defence")
333:   #end	
334: 	
335:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}">$briefCatLabel</a></li>
336: #end
337: </ul>
338: </div>
339: </div>
340: <div class="tab-panels">
341: #foreach ($briefCat in $briefCategoryLabels.entrySet())
342:   #set ($class = "tab-panel clearfix")
343:   #if ($briefCat.key == $activePos)
344:     #set ($class = "tab-panel active clearfix")
345:   #end
346:   <div class="$class">
347:     <div class="stats-wrap clearfix">
348:     #if ($v == "splits")
349:       #splitsData($briefCat.key)
350:     #elseif ($v == "career")
351:       #careerData($briefCat.key)
352:     #end
353:     </div>
354:   </div>
355: #end	
356: </div>
357: </div> ## tab-container
358: 
359: #end ## macro printCategories
360: 	
361: #macro (printHeadshot)
362: 
363: #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
364: 
365: #if ($headshot.url)
366:   <img src="$headshot.url?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
367: #else
368:   #if ($website.exists("/images/setup/headshot_default.jpg"))
369:     <img src="/images/setup/headshot_default.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
370:   #else
371:     <img src="/info/images/default_headshot.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
372:   #end
373: #end
374: #end ## macro printHeadshot
375: 	
376: #macro (printBioInfo)
377: <div class="player-name">
378:   #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
379:   <span class="name">$fullName</span>
380: </div>	
381: 	
382: <table>
383: #foreach ($i in [1..10])
384:   #set ($stickyKey = "bio_custom${i}_sticky")
385:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
386:     <tr>
387:       <td class="label">$options.get($stickyKey): </td>
388:       <td class="value">$!attributes.get("custom${i}")</td>
389:     </tr>
390:   #end
391: #end
392: 
393: #foreach ($field in $fields)
394:   #if (!$field.key.startsWith("custom"))
395:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
396:       #if ($field.key == "phone1" || $field.key == "phone2")
397:         <tr>
398:           <td class="label">Phone: </td>
399:           <td class="value">$!attributes.get($field.key)</td>
400:         </tr>
401:       #elseif ($field.key == "email_address")
402:         #set ($emailAdd = $attributes.get($field.key))
403:         <tr>
404:           <td class="label">Email: </td>
405:           <td class="value"><a href="mailto:${emailAdd}">$emailAdd</a></td>
406:         </tr>
407:       #else
408:         <tr>
409:           <td class="label">$field.value: </td>
410:           <td class="value">$!attributes.get($field.key)</td>
411:         </tr>
412:       #end
413:     #end
414:   #end
415: #end
416: 
417: #foreach ($i in [1..10])
418:   #set ($customKey = "bio_custom${i}")
419:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
420:     <tr>
421:       <td class="label">$options.get($customKey): </td>
422:       <td class="value">$!attributes.get("custom${i}")</td>
423:     </tr>
424:   #end
425: #end
426: </table>
427: #end ## macro printBioInfo
428: 	
429: #macro (printHighlights)
430: #foreach ($highlight in $highlights.keySet())
431:   #set ($value = "-")
432:   #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
433:   <div class="stat clearfix">
434:     <span class="stat-title">$!highlights.get($highlight)</span>
435:     <span class="stat-value">$value</span>
436:   </div>
437: #end
438: #end ## macro printHighlights
439: 	
440: #macro (printRoster)
441: #if ($page.contentType == "loki/bio")
442:   #set ($headlinesFeaturedSize = 0)
443:   #foreach ($featuredPage in $page.headlinesFeatured)
444:     #if ($featuredPage.contentType == "loki/headlines")
445:       #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
446:     #end
447:   #end
448:   #if ($headlinesFeaturedSize > 0)
449:     <select class="roster-select-list">
450:       <option selected="selected">Related Bios</option>
451:       #foreach ($featuredPage in $page.headlinesFeatured)
452:         #if ($featuredPage.contentType == "loki/headlines")
453:           $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
454: 		#end
455: 	  #end
456:     </select>
457:   #end
458: #elseif ($page.contentType == "loki/bio-network")
459:   #set ($relatedPlayers = $page.sectionPage.children)
460:   #set ($teamNames = {})
461:   #foreach ($relatedPlayer in $relatedPlayers)
462:     #if ($relatedPlayer.contentType == "loki/bio-network")
463:       #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
464:       #set ($teamName = $relatedPlayerObj.get("team"))
465:       #if ($teamName.length() > 0)
466:         #if (!$teamNames.containsValue($teamName))
467:           $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
468:         #end
469:       #end
470:     #end
471:   #end
472: 
473:   <select class="roster-select-list">
474:   #foreach ($i in [1..$teamNames.size()])
475:     #if ($teamNames.size() > 1)
476:       <optgroup label="$teamNames.get($i)">
477:     #end
478: 				
479:     #foreach ($relatedPlayer in $relatedPlayers)
480:       #if ($relatedPlayer.contentType == "loki/bio-network")
481:         #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
482:         #set ($teamName = $relatedPlayerObj.get("team"))
483:         #if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
484:           #set ($playerFirstName = $relatedPlayerObj.get("first_name"))
485:           #set ($playerLastName = $relatedPlayerObj.get("last_name"))
486:           #if ($page.url == $relatedPlayer.url)
487:             <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option>
488:           #else
489:             <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
490:           #end
491:         #end
492:       #end
493:     #end
494: 				
495:     #if ($teamNames.size() > 1)
496:       </optgroup>
497:     #end
498:   #end
499:   </select>
500: #end
501: #end ## macro printRoster
502: 	
503: ################################################## END MACROS  #############################################################
504: 
505: #if ($attributes.get("full_name"))
506:   #set ($fullName = $attributes.get("full_name"))
507: #else
508:   #set ($firstName = $!attributes.get("first_name"))
509:   #set ($lastName = $!attributes.get("last_name"))
510:   #set ($fullName = "${firstName} ${lastName}")
511: #end
512: 
513: ## FULL ROSTER
514: <div class="bio-wrap clearfix">
515: 	
516: ## RELATED BIOS
517: #if ($showRoster)
518:   <div class="related-bios clearfix">#printRoster</div>
519: #end
520:   
521: <div class="head clearfix">
522: <div class="clearfix">
523:     
524: <div class="player-about clearfix">
525:   <div class="player-headshot">#printHeadshot</div>
526:   <div class="player-info">#printBioInfo</div>
527: </div>
528: 
529: #if ($highlights && $showHighlights)
530:   <div class="player-highlights clearfix">#printHighlights</div>
531: #end
532: 
533: </div>
534: </div> ## head
535: 
536: #if ($view.length() > 0)
537: <div class="body clearfix">
538:   
539: <div class="tab-container primary clearfix">
540:   
541: <div class="tab-nav" data-jscroll="true" data-momentum="false">
542:   <div>
543:   <ul class="clearfix">
544:   #if ($hasSynopsis || $hasBioBrief)
545:     <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li>
546:   #end
547: 		
548:   #if ($statsURL.length() > 0)
549:     <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li>
550:     <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li>
551:     #if ($showCareer)
552:       <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li>
553:     #end
554:     <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li>
555:   #end
556: 
557:   #if ($hasHTMLStats)
558:     <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li>
559:   #end
560:   </ul>
561:   </div>
562: </div> ## tab-nav
563: 
564: <div class="tab-panels clearfix">
565: 	
566: ## BIO
567: #if ($hasSynopsis || $hasBioBrief)
568: 
569: #set ($class = "tab-panel clearfix")
570: #if ($view == "bio")
571:   #set ($class = "tab-panel active clearfix")
572: #end
573: <div class="${class}">
574: 
575: <div class="synopsis clearfix">
576: #if ($hasSynopsis)
577:   $synopsis
578: #elseif ($hasBioBrief)
579:   $website.include("$bioBriefURL")
580: #end
581: </div>
582: 
583: </div> ## tab-panel
584: #end 
585: ## BIO
586: 
587: ## STATS
588: #if ($statsURL.length() > 0)
589: 
590: ## PROFILE
591: #set ($class = "tab-panel clearfix")
592: #if ($view == "profile")
593:   #set ($class = "tab-panel active clearfix")
594: #end
595: <div class="${class}">
596: <div class="stats-wrap clearfix">
597: 
598: ## LAST SIX GAMES
599: <div class="stats-box half">
600: #printRecentGames()
601: </div>
602: 
603: ## RANKING
604: <div class="stats-box half">
605: #if ($statPos.length() > 0)
606:   $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
607: #end
608: </div>
609: 
610: </div> ## stats-wrap	
611: </div> ## tab-content
612: ## PROFILE
613: 
614: ## GAMELOG
615: #set ($class = "tab-panel clearfix")
616: #if ($view == "gamelog")
617:   #set ($class = "tab-panel active clearfix")
618: #end
619: 
620: #set ($activePos = $statPos)
621: #if ($view == "gamelog" && $paramPos.length() > 0)
622:   #if ($positions.get($paramPos).length() > 0)
623:     #set ($activePos = $positions.get($paramPos))
624:   #end
625: #end
626: 
627: <div class="${class}">
628: 
629: #if ($gamelogsCategoriesLabels)
630: <div class="tab-container secondary clearfix">
631:   <div class="tab-nav" data-jscroll="true" data-momentum="false">
632:     <div>
633:     <ul class="clearfix">
634:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
635:       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
636: 		
637:       #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
638:         #set($gamelogsCatLabelVal = "Defence")
639:       #end
640: 
641:       <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}">$gamelogsCatLabelVal</a></li>
642:     #end
643:     </ul>
644: 	</div>
645:   </div>
646:   <div class="tab-panels">
647:   #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
648:     #set ($class = "tab-panel clearfix")
649:     #if ($gamelogsCatLabel.key == $activePos)
650:       #set ($class = "tab-panel active clearfix")
651:     #end
652:     <div class="${class}">
653:       <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
654: 	</div>
655:   #end   
656:   </div>
657: </div>	
658: #else
659:   <div class="stats-wrap clearfix">#gamelogData($pos)</div>
660: #end
661: 	
662: </div> ## tab-panel
663: ## GAMELOG
664: 
665: 
666: ## CAREER
667: #if ($showCareer)
668: 
669: #set ($activePos = $statPos)
670: #if ($view == "career" && $paramPos.length() > 0)
671:   #if ($positions.get($paramPos).length() > 0)
672:     #set ($activePos = $positions.get($paramPos))
673:   #end
674: #end
675: 
676: #set ($class = "tab-panel clearfix")
677: #if ($view == "career")
678:   #set ($class = "tab-panel active clearfix")
679: #end
680: 
681: <div class="${class}">
682: 
683: #if ($briefsCategoriesLabels)
684:   #printCategories($briefsCategoriesLabels "career")
685: #else
686:   <div class="stats-wrap clearfix">#careerData($activePos)</div>
687: #end		
688: 
689: </div> ## tab-panel
690: #end
691: ## CAREER
692: 
693: ## SPLITS
694: #set ($class = "tab-panel clearfix")
695: #if ($view == "splits")
696: 	#set ($class = "tab-panel active clearfix")
697: #end
698: 
699: #set ($activePos = $statPos)
700: #if ($view == "splits" && $paramPos.length() > 0)
701:   #if ($positions.get($paramPos).length() > 0)
702:     #set ($activePos = $positions.get($paramPos))
703:   #end
704: #end
705: 
706: <div class="${class}">
707: 
708: #if ($briefsCategoriesLabels)
709:   #printCategories($briefsCategoriesLabels "splits")
710: #else
711:   <div class="stats-wrap clearfix">#splitsData($pos)</div>
712: #end		
713: 
714: </div> ## tab-panel
715: ## SPLITS
716: 
717: #end 
718: ## STATS
719: 
720: ## HTML STATS
721: #if ($hasHTMLStats)
722: 
723: #set ($class = "tab-panel clearfix")
724: #if ($view == "htmlstats")
725:   #set ($class = "tab-panel active clearfix")
726: #end
727: <div class="${class}">
728:   <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
729: </div>
730: 
731: #end
732: ## HTML STATS
733: 	
734: </div> ## tab-panels
735: </div> ## tab-container
736: </div> ## body
737: #end
738: 
739: $wiki
740: </div> ## ends bio-wrap

View: Mobile | Desktop