
Height: | 5-9 |
Weight: | 210 |
Year: | Sr. |
Hometown: | Austin, Texas |
High School: | Anderson |
Position: | FB |
Major: | Medical Anthropology (Pre-Med) |
2015: Selected to the All-UAA First Team and as an honorable mention to the All-PAC team… was also the only NCAA Division III offensive player selected to the 2016 Jewish Sports Review All-America Team… played in all 10 games during the year, starting each… ran the ball 72 times for 297 yards and four touchdowns… was third on the team in net rushing yards and rushing touchdowns… also caught eight passes for 50 yards and a touchdown during the year… totaled 347 all-purpose yards… ran for a touchdown in each of the team’s final three games… rushed for a score and caught a pass for a second against St. Vincent on September 19th… ran for a season-high 68 yards during the team’s win over Washington and Jefferson on October 24th… finished his career with 516 rushing yards and seven touchdowns, with an additional 35 career receptions for 236 yards and nine touchdowns… named to the PAC Fall Academic Honor Roll.
2014: Named to the All-UAA First Team and an honorable mention to the All-PAC Team… appeared in all 10 games, including eight as a starter…led all CWRU players with three rushing touchdowns…finished the year with 290 all-purpose yards, including 30 rushing attempts for 198 yards…added 15 receptions for 86 yards and an additional three touchdowns…had two touchdown games against Saint Vincent on September 20…rushed for a season-high 50 yards, including a season-long 39 yard touchdown against Washington & Jefferson on October 25…notched season-bests with five receptions, 42 yards and a touchdown against Geneva on October 18.
2013: Played in seven games with one start at fullback…recorded five receptions for 57 yards and two touchdowns...posted career-long 20-yard catch-and-run in win versus Trinity on October 26.
2012: Played in all 10 games with eight starts as a freshman fullback…ran for 11 yards on five carries and totaled seven receptions for 43 yards and three touchdowns…posted a season-high 29 all-purpose yards and first two career receiving touchdowns at Hiram on September 8.
Personal: Earned three varsity letters in football as well as four in lacrosse at Anderson High School…named first-team all-district at running back in 2011 and second-team all-district in 2010…Academic All-Texas…academic all-district in both football and lacrosse…member of the National Honor Society...son of Marcelo Hochman and Kelly Martinez.
Recent Games | ||
---|---|---|
Oct 10 | Waynesburg | W, 45-14 |
Oct 17 | at Geneva | W, 20-7 |
Oct 24 | Wash. & Jeff. | W, 35-28 |
Oct 31 | Washington (Mo.) | W, 34-16 |
Nov 7 | Thomas More | L, 36-32 |
Nov 14 | at Carnegie Mellon | L, 52-42 |
Statistics category | Overall | Conf | ||
---|---|---|---|---|
Rushes | 72 | 53 | ||
Yards | 297 | 234 | ||
Yards per game | 29.7 | 29.3 | ||
Yards per rush | 4.1 | 4.4 | ||
Touchdowns | 4 | 3 | ||
Fumbles | 4 | 3 | ||
Fumbles lost | 2 | 1 |
Date | Opponent | Score | comp | att | pct | yds | y/a | td | int | sac | yds |
---|---|---|---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | - | - | - | - | - | - | - | - | - |
Sep 19 | St. Vincent | W, 49-14 | - | - | - | - | - | - | - | - | - |
Sep 26 | at Thiel | W, 41-6 | - | - | - | - | - | - | - | - | - |
Oct 3 | at Bethany (W.V.) | W, 59-20 | - | - | - | - | - | - | - | - | - |
Oct 10 | Waynesburg | W, 45-14 | - | - | - | - | - | - | - | - | - |
Oct 17 | at Geneva | W, 20-7 | - | - | - | - | - | - | - | - | - |
Oct 24 | Wash. & Jeff. | W, 35-28 | - | - | - | - | - | - | - | - | - |
Oct 31 | Washington (Mo.) | W, 34-16 | - | - | - | - | - | - | - | - | - |
Nov 7 | Thomas More | L, 36-32 | - | - | - | - | - | - | - | - | - |
Nov 14 | at Carnegie Mellon | L, 52-42 | - | - | - | - | - | - | - | - | - |
Date | Opponent | Score | rush | yds | y/a | lng | td | fum | lost |
---|---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | 6 | 16 | 2.7 | 9 | 0 | - | - |
Sep 19 | St. Vincent | W, 49-14 | 3 | 11 | 3.7 | 7 | 1 | - | - |
Sep 26 | at Thiel | W, 41-6 | 1 | 18 | 18.0 | 18 | 0 | - | - |
Oct 3 | at Bethany (W.V.) | W, 59-20 | 3 | 6 | 2.0 | 3 | 0 | - | - |
Oct 10 | Waynesburg | W, 45-14 | 8 | 34 | 4.3 | 9 | 0 | 1 | 0 |
Oct 17 | at Geneva | W, 20-7 | 8 | 50 | 6.3 | 31 | 0 | - | - |
Oct 24 | Wash. & Jeff. | W, 35-28 | 14 | 68 | 4.9 | 9 | 0 | - | - |
Oct 31 | Washington (Mo.) | W, 34-16 | 13 | 47 | 3.6 | 9 | 1 | 1 | 1 |
Nov 7 | Thomas More | L, 36-32 | 10 | 26 | 2.6 | 9 | 1 | 1 | 1 |
Nov 14 | at Carnegie Mellon | L, 52-42 | 6 | 21 | 3.5 | 9 | 1 | 1 | 0 |
Date | Opponent | Score | rec | yds | y/r | lng | td | fum | lost |
---|---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | 1 | 6 | 6.0 | 6 | 0 | - | - |
Sep 19 | St. Vincent | W, 49-14 | 1 | 2 | 2.0 | 2 | 1 | - | - |
Sep 26 | at Thiel | W, 41-6 | - | - | - | - | - | - | - |
Oct 3 | at Bethany (W.V.) | W, 59-20 | - | - | - | - | - | - | - |
Oct 10 | Waynesburg | W, 45-14 | - | - | - | - | - | 1 | 0 |
Oct 17 | at Geneva | W, 20-7 | 2 | 9 | 4.5 | 10 | 0 | - | - |
Oct 24 | Wash. & Jeff. | W, 35-28 | 1 | 6 | 6.0 | 6 | 0 | - | - |
Oct 31 | Washington (Mo.) | W, 34-16 | 3 | 27 | 9.0 | 13 | 0 | 1 | 1 |
Nov 7 | Thomas More | L, 36-32 | - | - | - | - | - | 1 | 1 |
Nov 14 | at Carnegie Mellon | L, 52-42 | - | - | - | - | - | 1 | 0 |
Date | Opponent | Score | fgm | fga | lng | xpm | xpa | pts |
---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | - | - | - | - | - | 0 |
Sep 19 | St. Vincent | W, 49-14 | - | - | - | - | - | 0 |
Sep 26 | at Thiel | W, 41-6 | - | - | - | - | - | 0 |
Oct 3 | at Bethany (W.V.) | W, 59-20 | - | - | - | - | - | 0 |
Oct 10 | Waynesburg | W, 45-14 | - | - | - | - | - | 0 |
Oct 17 | at Geneva | W, 20-7 | - | - | - | - | - | 0 |
Oct 24 | Wash. & Jeff. | W, 35-28 | - | - | - | - | - | 0 |
Oct 31 | Washington (Mo.) | W, 34-16 | - | - | - | - | - | 0 |
Nov 7 | Thomas More | L, 36-32 | - | - | - | - | - | 0 |
Nov 14 | at Carnegie Mellon | L, 52-42 | - | - | - | 0 | 0 | 0 |
Date | Opponent | Score | punt | yds | avg | long | in20 | fc | tb | blk |
---|---|---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | - | - | - | - | - | - | - | - |
Sep 19 | St. Vincent | W, 49-14 | - | - | - | - | - | - | - | - |
Sep 26 | at Thiel | W, 41-6 | - | - | - | - | - | - | - | - |
Oct 3 | at Bethany (W.V.) | W, 59-20 | - | - | - | - | - | - | - | - |
Oct 10 | Waynesburg | W, 45-14 | - | - | - | - | - | - | - | - |
Oct 17 | at Geneva | W, 20-7 | - | - | - | - | - | - | - | - |
Oct 24 | Wash. & Jeff. | W, 35-28 | - | - | - | - | - | - | - | - |
Oct 31 | Washington (Mo.) | W, 34-16 | - | - | - | - | - | - | - | - |
Nov 7 | Thomas More | L, 36-32 | - | - | - | - | - | - | - | - |
Nov 14 | at Carnegie Mellon | L, 52-42 | - | - | - | - | - | - | - | - |
Date | Opponent | Score | kr | yds | avg | lng | td | pr | yds | avg | lng | td |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | - | - | - | - | - | - | - | - | - | - |
Sep 19 | St. Vincent | W, 49-14 | - | - | - | - | - | - | - | - | - | - |
Sep 26 | at Thiel | W, 41-6 | - | - | - | - | - | - | - | - | - | - |
Oct 3 | at Bethany (W.V.) | W, 59-20 | - | - | - | - | - | - | - | - | - | - |
Oct 10 | Waynesburg | W, 45-14 | - | - | - | - | - | - | - | - | - | - |
Oct 17 | at Geneva | W, 20-7 | - | - | - | - | - | - | - | - | - | - |
Oct 24 | Wash. & Jeff. | W, 35-28 | - | - | - | - | - | - | - | - | - | - |
Oct 31 | Washington (Mo.) | W, 34-16 | - | - | - | - | - | - | - | - | - | - |
Nov 7 | Thomas More | L, 36-32 | - | - | - | - | - | - | - | - | - | - |
Nov 14 | at Carnegie Mellon | L, 52-42 | - | - | - | - | - | - | - | - | - | - |
Date | Opponent | Score | gp | rush | rcv | pr | kr | yds |
---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | 1 | 16 | 6 | - | - | 22 |
Sep 19 | St. Vincent | W, 49-14 | 1 | 11 | 2 | - | - | 13 |
Sep 26 | at Thiel | W, 41-6 | 1 | 18 | - | - | - | 18 |
Oct 3 | at Bethany (W.V.) | W, 59-20 | 1 | 6 | - | - | - | 6 |
Oct 10 | Waynesburg | W, 45-14 | 1 | 34 | - | - | - | 34 |
Oct 17 | at Geneva | W, 20-7 | 1 | 50 | 9 | - | - | 59 |
Oct 24 | Wash. & Jeff. | W, 35-28 | 1 | 68 | 6 | - | - | 74 |
Oct 31 | Washington (Mo.) | W, 34-16 | 1 | 47 | 27 | - | - | 74 |
Nov 7 | Thomas More | L, 36-32 | 1 | 26 | - | - | - | 26 |
Nov 14 | at Carnegie Mellon | L, 52-42 | 1 | 21 | - | - | - | 21 |
Date | Opponent | Score | pts | rush | rec | kr | pr | int | fum | xpm | fgm | saf | misc | 2pt |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | 0 | 0 | 0 | - | - | - | - | - | - | - | 0 | - |
Sep 19 | St. Vincent | W, 49-14 | 12 | 1 | 1 | - | - | - | - | - | - | - | 0 | - |
Sep 26 | at Thiel | W, 41-6 | 0 | 0 | - | - | - | - | - | - | - | - | 0 | - |
Oct 3 | at Bethany (W.V.) | W, 59-20 | 0 | 0 | - | - | - | - | - | - | - | - | 0 | - |
Oct 10 | Waynesburg | W, 45-14 | 0 | 0 | - | - | - | - | - | - | - | - | 0 | - |
Oct 17 | at Geneva | W, 20-7 | 0 | 0 | 0 | - | - | - | - | - | - | - | 0 | - |
Oct 24 | Wash. & Jeff. | W, 35-28 | 0 | 0 | 0 | - | - | - | - | - | - | - | 0 | - |
Oct 31 | Washington (Mo.) | W, 34-16 | 6 | 1 | 0 | - | - | - | - | - | - | - | 0 | - |
Nov 7 | Thomas More | L, 36-32 | 6 | 1 | - | - | - | - | - | - | - | - | 0 | - |
Nov 14 | at Carnegie Mellon | L, 52-42 | 8 | 1 | - | - | - | - | - | 0 | - | - | 0 | 1 |
Date | Opponent | Score | tack | ast | tot | sack | lost | tfl | yds | ff | fr | td | int | yds | td | brup | blk | saf |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sep 5 | at Chicago | L, 31-30 | 1 | 0 | 1.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Sep 19 | St. Vincent | W, 49-14 | 0 | 1 | 1.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Sep 26 | at Thiel | W, 41-6 | - | - | 0.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Oct 3 | at Bethany (W.V.) | W, 59-20 | - | - | 0.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Oct 10 | Waynesburg | W, 45-14 | - | - | 0.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Oct 17 | at Geneva | W, 20-7 | - | - | 0.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Oct 24 | Wash. & Jeff. | W, 35-28 | - | - | 0.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Oct 31 | Washington (Mo.) | W, 34-16 | 0 | 1 | 1.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Nov 7 | Thomas More | L, 36-32 | - | - | 0.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
Nov 14 | at Carnegie Mellon | L, 52-42 | - | - | 0.0 | - | - | 0 | - | - | - | - | - | - | - | - | - | - |
gp | comp | att | pct | yds | y/g | y/a | td | int | lg | effic | |
---|---|---|---|---|---|---|---|---|---|---|---|
Total | 10 | - | - | - | - | - | - | - | - | - | 0.0 |
Conference | 8 | - | - | - | - | - | - | - | - | - | 0.0 |
Exhibition | - | - | - | - | - | - | - | - | - | - | 0.0 |
- | |||||||||||
Home | 5 | - | - | - | - | - | - | - | - | - | 0.0 |
Away | 5 | - | - | - | - | - | - | - | - | - | 0.0 |
Neutral | - | - | - | - | - | - | - | - | - | - | 0.0 |
- | |||||||||||
Wins | 7 | - | - | - | - | - | - | - | - | - | 0.0 |
Losses | 3 | - | - | - | - | - | - | - | - | - | 0.0 |
- | |||||||||||
September | 3 | - | - | - | - | - | - | - | - | - | 0.0 |
October | 5 | - | - | - | - | - | - | - | - | - | 0.0 |
November | 2 | - | - | - | - | - | - | - | - | - | 0.0 |
gp | rush | yds | y/g | avg | td | lg | fum | lost | |
---|---|---|---|---|---|---|---|---|---|
Total | 10 | 72 | 297 | 29.7 | 4.1 | 4 | 31 | 4 | 2 |
Conference | 8 | 53 | 234 | 29.3 | 4.4 | 3 | 31 | 3 | 1 |
There was a problem with a Velocity script | |
Page | bio-template |
Error | VM #split: too few arguments to macro. Wanted 5 got 3 at bio-template[line 295, column 1] |
Page source: |
1: $website.addCss($website.cdn("/info/photo-gallery.css")) 2: <script src="${website.cdn("/info/klass.min.js")}"></script> 3: <script src="${website.cdn("/info/code.photoswipe.jquery-3.0.5.min.js")}"></script> 4: <script src="${website.cdn("/info/masonry.pkgd.min.js")}"></script> 5: <script src="${website.cdn("/info/imagesloaded.pkgd.min.js")}"></script> 6: <script src="${website.cdn("/info/photogallery/photogallery.js")}"></script> 7: 8: ## PICK UP OPTIONS 9: $website.include("options") 10: #set ($options = $request.getAttribute("options")) 11: #set ($locale = "en_us") 12: #set ($locale = $options.get("locale")) 13: 14: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE 15: #set ($bioObject = $page.getDataAsObject()) 16: #set ($statsURL = $bioObject.statsURL) 17: 18: #if ($statsURL.length() > 0) 19: $website.includeAgain("${statsURL}?tmpl=bio-stats-template") 20: ## various settings to get the variables set 21: #set ($events = $request.getAttribute("bio_events")) 22: #set ($seasons = $request.getAttribute("bio_seasons")) 23: #set ($career = $request.getAttribute("bio_career")) 24: #set ($labels = $request.getAttribute("bio_labels")) 25: #set ($briefs = $request.getAttribute("bio_briefs")) 26: #set ($gamelogs = $request.getAttribute("bio_gamelogs")) 27: #set ($splits = $request.getAttribute("bio_splits")) 28: #set ($statPosition = $request.getAttribute("bio_position")) 29: #set ($positions = $request.getAttribute("bio_positions")) 30: #set ($playerId = $request.getAttribute("bio_player_id")) 31: #set ($highlights = $request.getAttribute("bio_highlights")) 32: #set ($formats = $request.getAttribute("bio_formats")) 33: #set ($gamelogsCategoriesLabels = $request.getAttribute("bio_gamelogs_labels")) 34: #set ($briefsCategoriesLabels = $request.getAttribute("bio_briefs_labels")) 35: #set ($gamesResults = $request.getAttribute("bio_games_results")) 36: #set ($monthsPlayed = $request.getAttribute("bio_months_played")) 37: #end 38: 39: #set ($pos = "") 40: #set ($pos = $attributes.get("position")) 41: #set ($pos = $statPosition) 42: #set ($posVec = $pos.split("/")) 43: #set ($pos = $posVec[0]) 44: #set ($pos = $pos.toLowerCase()) 45: #set ($statPos = $positions.get($pos)) 46: #set ($paramPos = $request.getParameter("pos")) 47: 48: #set ($playerId = $attributes.get("playerId")) 49: #set ($stats = $splits.overall) 50: #set ($highlights = $highlights.get($statPos)) 51: 52: #set ($showHighlights = true) 53: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false) 54: #set ($showHighlights = false) 55: #end 56: 57: #set ($enhancedLayout = false) 58: #if (($options.get("bio_enhanced_layout") == "yes") || ($request.getParameter("bio_enhanced_layout") == true)) 59: #set ($enhancedLayout = true) 60: $website.addCss($website.cdn("/info/bio-styles-enhanced.css")) 61: #end 62: 63: #set ($showActionShots = true) 64: #if ($options.get("bio_show_action_shots") && $options.get("bio_show_action_shots") == false) 65: #set ($showActionShots = false) 66: #end 67: 68: #set ($actionShotsLimit = 5) 69: #set ($actionShotsLimit = $tool.math.toInteger($options.get("bio_action_shots_limit"))) 70: 71: #set ($showCareer = $wiki.valid() && $seasons) 72: #if ("yes" == $options.get("stats_show_career") && $seasons) 73: #set ($showCareer = true) 74: #end 75: 76: #set ($hasEvents = $events.size() > 0) 77: #set ($hasSynopsis = $synopsis.trim().length() > 0) 78: #set ($htmlStatsURL = "${page.url}-stats") 79: #set ($hasHTMLStats = $website.exists($htmlStatsURL)) 80: #set ($bioBriefURL = "${page.url}-brief") 81: #set ($hasBioBrief = $website.exists("$bioBriefURL")) 82: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1)) 83: #if ($options.get("bio_hide_roster") == true) 84: #set ($showRoster = false) 85: #end 86: 87: #set ($view = "") 88: #if ($hasSynopsis || $hasBioBrief) 89: #set ($view = "bio") 90: #elseif ($statsURL.length() > 0) 91: #set ($view = "profile") 92: #elseif ($hasHTMLStats) 93: #set ($view = "htmlstats") 94: #elseif ($releases.size() > 0) 95: #set ($view = "news") 96: #elseif ($playerPhotos.size() > 0) 97: #set ($view = "photos") 98: #elseif ($playerVideos.size() > 0) 99: #set ($view = "videos") 100: #end 101: 102: #if ($options.get("bio_default_view").length() > 0) 103: #set ($checkView = $options.get("bio_default_view")) 104: #end 105: 106: #if ($request.getParameter("view")) 107: #set ($checkView = $request.getParameter("view")) 108: #end 109: 110: #if ($checkView == "profile" && $statsURL.length() > 0) 111: #set ($view = "profile") 112: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief)) 113: #set ($view = "bio") 114: #elseif ($checkView == "gamelog" && $statsURL.length() > 0) 115: #set ($view = "gamelog") 116: #elseif ($checkView == "career" && $showCareer) 117: #set ($view = "career") 118: #elseif ($checkView == "splits" && $statsURL.length() > 0) 119: #set ($view = "splits") 120: #elseif ($checkView == "htmlstats" && $hasHTMLStats) 121: #set ($view = "htmlstats") 122: #elseif ($checkView == "news" && $releases.size() > 0) 123: #set ($view = "news") 124: #elseif ($checkView == "photos" && $playerPhotos.size() > 0) 125: #set ($view = "photos") 126: #elseif ($checkView == "videos" && $playerVideos.size() > 0) 127: #set ($view = "videos") 128: #end 129: 130: #macro (printResultAriaLabel $event) 131: #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}") 132: #if ($event.neutralSite.length() > 0 || $event.home) 133: #set ($ariaLabel = "${ariaLabel} vs.") 134: #else 135: #set ($ariaLabel = "${ariaLabel} at") 136: #end 137: #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:") 138: #if ($event.neutralSite.length() > 0) 139: #set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:") 140: #end 141: #set ($ariaLabel = "${ariaLabel} Box Score") 142: aria-label="$ariaLabel" 143: #end 144: 145: #macro (printGrid $items $type) 146: <div class="news-layout grid"> 147: <div class="stories"> 148: <ul> 149: #foreach ($item in $items) 150: #if ($item.title.length() > 0) 151: 152: <li class="story ${type}"> 153: <div class="clearfix"> 154: <a href="$item.url" class="title-box"> 155: <span class="thumb"> 156: #if ($item.thumbnailURL) 157: <img src="$website.cdn("/info/images/spacer.gif")" data-src="${item.thumbnailURL}?max_width=300" alt="" class="lazyload" /> 158: #elseif ($item.contentType == "loki/youtube") 159: <img src="$website.cdn("/info/images/spacer.gif")" data-src="http://img.youtube.com/vi/${item.dataAsString}/0.jpg" alt="" class="lazyload" /> 160: #else 161: <img src="$website.cdn("/info/images/spacer.gif")" data-src="/images/setup/thumbnail_default.jpg?max_width=300" alt="" class="lazyload" /> 162: #end 163: </span> 164: <span class="title">$item.title</span> 165: </a> 166: </div> 167: </li> 168: #end 169: #end ## foreach 170: </ul> 171: </div> 172: </div> 173: #end ## ends macro 174: 175: #macro (gamelogData $p) 176: 177: #set ($p = $positions.get($p)) 178: #set ($gamelogs = $gamelogs.get($p)) 179: 180: #if ($hasEvents) 181: <div class="stats-box full clearfix"> 182: <div class="scrollable"> 183: <div> 184: <table> 185: <tr class="thead"> 186: <th class="text">Date</th> 187: <th class="pinned-col text">Opponent</th> 188: <th>Score</th> 189: #foreach ($gamelog in $gamelogs) 190: <th>$gamelog</th> 191: #end 192: </tr> 193: #foreach ($event in $events) 194: <tr> 195: <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td> 196: <td class="pinned-col text"> 197: #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end 198: $event.event.opponent.name 199: </td> 200: <td> 201: #if ($event.event.statusCode >= 0) 202: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0) 203: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a> 204: #else 205: ${event.event.APResult} 206: #end 207: #else #end 208: </td> 209: #foreach ($gamelog in $gamelogs.keySet()) 210: #set ($value = "-") 211: #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog))) 212: <td>$value</td> 213: #end 214: </tr> 215: #end 216: </table> 217: </div> 218: </div> ## scrollable 219: </div> ## stats-box 220: #end 221: 222: #end ## macro gamelogData 223: 224: #macro (split $statPosBriefs $label $stats) 225: <tr> 226: <td class="pinned-col text">${label}</td> 227: #foreach ($brief in $statPosBriefs.keySet()) 228: #set ($value = "-") 229: #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief))) 230: <td>#if ($value.length() > 0) $value #else - #end</td> 231: #end 232: </tr> 233: #end 234: 235: #macro (careerData $p) 236: #set ($p = $positions.get($p)) 237: #set ($statPosBriefs = $briefs.get($p)) 238: 239: <div class="stats-box full clearfix"> 240: <div class="scrollable"> 241: <div> 242: <table> 243: <tr class="thead"> 244: <th class="pinned-col"> </th> 245: #foreach ($brief in $statPosBriefs) 246: <th>$brief</th> 247: #end 248: </tr> 249: 250: #set ($careerTotals = $request.getAttribute("careerTotals")) 251: #set ($careerMap = $request.getAttribute("careerMap")) 252: 253: #foreach ($season in $seasons) 254: ## Check if we did not get stats for this season 255: #if ($careerMap.get($season.seasonName)) 256: #set ($label = "<a href='${season.path}?view=profile'>$season.seasonName</a>") 257: #split($statPosBriefs, $label, $careerMap[$season.seasonName]) 258: #elseif ($wiki.valid()) 259: <tr> 260: <td class="text">${season.seasonName}</td> 261: <td colspan="${statPosBriefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td> 262: </tr> 263: #end 264: #end 265: 266: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall) 267: 268: </table> 269: </div> 270: </div> ## scrollable 271: </div> ## stats-box 272: 273: #end ## macro careerData 274: 275: #macro (splitsData $p) 276: 277: #set ($p = $positions.get($p)) 278: #set ($statPosBriefs = $briefs.get($p)) 279: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1)) 280: 281: #if ($statPosBriefs.size() > 0) 282: <div class="stats-box full clearfix"> 283: <div class="scrollable"> 284: <div> 285: <table> 286: <tr> 287: <th class="pinned-col"> </th> 288: #foreach ($brief in $statPosBriefs) 289: <th>$brief</th> 290: #end 291: </tr> 292: 293: #split($statPosBriefs, "Total", $splits.overall) 294: #split($statPosBriefs, "Conference", $splits.conference) 295: #split($statPosBriefs, "Exhibition", $splits.exhibition) 296: 297: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr> 298: 299: #split($statPosBriefs, "Home", $splits.home) 300: #split($statPosBriefs, "Away", $splits.away) 301: #split($statPosBriefs, "Neutral", $splits.neutral) 302: 303: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr> 304: 305: #foreach($gameResult in $gamesResults.entrySet()) 306: #if ($gameResult.key == "wins") 307: #set ($splitGameResult = $splits.inWins) 308: #elseif ($gameResult.key == "losses") 309: #set ($splitGameResult = $splits.inLosses) 310: #elseif ($gameResult.key == "ties") 311: #set ($splitGameResult = $splits.inTies) 312: #end 313: 314: #split($statPosBriefs, $gameResult.value, $splitGameResult) 315: #end 316: 317: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr> 318: 319: #if ($monthsPlayed and $monthsPlayed.size() > 0) 320: #foreach($month in $monthsPlayed) 321: #if ($month == 'January') 322: #set ($splitMonth = $splits.january) 323: #elseif ($month == 'February') 324: #set ($splitMonth = $splits.february) 325: #elseif ($month == 'March') 326: #set($splitMonth = $splits.march) 327: #elseif ($month == 'April') 328: #set($splitMonth = $splits.april) 329: #elseif ($month == 'May') 330: #set ($splitMonth = $splits.may) 331: #elseif ($month == 'June') 332: #set ($splitMonth = $splits.june) 333: #elseif ($month == 'July') 334: #set($splitMonth = $splits.july) 335: #elseif ($month == 'August') 336: #set ($splitMonth = $splits.august) 337: #elseif ($month == 'September') 338: #set($splitMonth = $splits.september) 339: #elseif ($month == 'October') 340: #set($splitMonth = $splits.october) 341: #elseif ($month == 'November') 342: #set ($splitMonth = $splits.november) 343: #elseif ($month == 'December') 344: #set($splitMonth = $splits.december) 345: #end 346: 347: #split($statPosBriefs, $month, $splitMonth) 348: #end ## foreach 349: #end 350: </table> 351: </div> 352: </div> ## scrollable 353: </div> ## srollable-table 354: #end 355: 356: #end ## macro splitsData 357: 358: #macro (printRecentGames) 359: #if ($hasEvents) 360: <table> 361: <tr class="thead accent-bg"><th colspan="3">Recent Games</th></tr> 362: 363: #set ($eventEnd = -1) 364: #foreach ($event in $events) 365: #if ($event.event.result.resolved) 366: #set ($eventEnd = $velocityCount) 367: #end 368: #end 369: 370: #set ($eventStart = $eventEnd - 5) 371: #if ($eventStart < 0) #set ($eventStart = 0) #end 372: 373: #foreach ($event in $events) 374: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd) 375: <tr> 376: <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td> 377: <td class="text"> 378: #if ($event.event.neutralSite.length() > 0) vs. 379: #elseif (!$event.event.home) at 380: #else ## nothing for a home game 381: #end 382: $event.event.opponent.name 383: </td> 384: <td class="text"> 385: #if ($event.event.statusCode >= 0) 386: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0) 387: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a> 388: #else 389: ${event.event.APResult} 390: #end 391: #end 392: </td> 393: </tr> 394: #end ## if 395: #end 396: </table> 397: #end 398: #end ## macro printRecentGames 399: 400: #macro (printCategories $briefCategoryLabels $v $ariaLabel) 401: 402: <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary"> 403: <div class="tab-nav" data-module="jscroll" data-momentum="false"> 404: <div> 405: <ul class="clearfix"> 406: #foreach($briefCat in $briefCategoryLabels.entrySet()) 407: #set ($briefCatLabel = $briefCat.value) 408: #set ($briefCatKey = $briefCat.key) 409: 410: #if ($locale == "en_gb" && $briefCatLabel == "Defense") 411: #set ($briefCatLabel = "Defence") 412: #end 413: 414: <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}" role="button" aria-label="${ariaLabel}: ${briefCatLabel}">$briefCatLabel</a></li> 415: #end 416: </ul> 417: </div> 418: </div> 419: <div class="tab-panels"> 420: #foreach ($briefCat in $briefCategoryLabels.entrySet()) 421: #set ($class = "tab-panel clearfix") 422: #if ($briefCat.key == $activePos) 423: #set ($class = "tab-panel active clearfix") 424: #end 425: <div class="$class"> 426: <div class="stats-wrap clearfix"> 427: #if ($v == "splits") 428: #splitsData($briefCat.key) 429: #elseif ($v == "career") 430: #careerData($briefCat.key) 431: #end 432: </div> 433: </div> 434: #end 435: </div> 436: </div> ## tab-container 437: 438: #end ## macro printCategories 439: 440: #macro (printHeadshot) 441: #if ($enhancedLayout) 442: 443: #if ($headshot.url) 444: <img src="$headshot.url?max_width=300&max_height=400" alt="$fullName" /> 445: #else 446: #if ($website.exists("/images/setup/headshot_default.jpg")) 447: <img src="/images/setup/headshot_default.jpg?max_width=300&max_height=400" alt="$fullName" /> 448: #else 449: <img src="$website.cdn("/info/images/default_headshot.jpg?max_width=300&max_height=400")" alt="$fullName" /> 450: #end 451: #end 452: 453: #else 454: 455: #if ($!attributes.get("number").length() > 0)<span class="number">$!attributes.get("number")</span>#end 456: 457: #if ($headshot.url) 458: <img src="$headshot.url?max_width=160&max_height=210" alt="$fullName" /> 459: #else 460: #if ($website.exists("/images/setup/headshot_default.jpg")) 461: <img src="/images/setup/headshot_default.jpg?max_width=160&max_height=210" alt="" /> 462: #else 463: <img src="$website.cdn("/info/images/default_headshot.jpg?max_width=160&max_height=210")" alt="" /> 464: #end 465: #end 466: 467: #end ## ## enhancedLayout check 468: #end ## macro printHeadshot 469: 470: #macro (printBioInfo) 471: #if ($enhancedLayout) 472: 473: <h2 class="player-heading"> 474: #if ($!attributes.get("number").length() > 0)<span class="number accent-bg">$!attributes.get("number")</span>#end 475: <span class="name">$fullName</span> 476: </h2> 477: 478: <ul> 479: #foreach ($i in [1..10]) 480: #set ($stickyKey = "bio_custom${i}_sticky") 481: #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0) 482: <li> 483: <dl> 484: <dt class="label">$options.get($stickyKey): </dt> 485: <dd class="value">$!attributes.get("custom${i}")</dd> 486: </dl> 487: </li> 488: #end 489: #end 490: 491: #foreach ($field in $fields) 492: #if (!$field.key.startsWith("custom")) 493: #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name")) 494: #if ($field.key == "phone1" || $field.key == "phone2") 495: <li> 496: <dl> 497: <dt class="label">Phone: </dt> 498: <dd class="value">$!attributes.get($field.key)</dd> 499: </dl> 500: </li> 501: #elseif ($field.key == "email_address") 502: #set ($emailAdd = $attributes.get($field.key)) 503: <li> 504: <dl> 505: <dt class="label">Email: </dt> 506: <dd class="value"><a href="mailto:${emailAdd}">$emailAdd</a></dd> 507: </dl> 508: </li> 509: #elseif ($field.key == "weight_class") 510: <li> 511: <dl> 512: <dt class="label">Class: </dt> 513: <dd class="value">$!attributes.get($field.key)</dd> 514: </dl> 515: </li> 516: #elseif ($field.key != "position_abbr") 517: <li> 518: <dl> 519: <dt class="label">$field.value: </dt> 520: <dd class="value">$!attributes.get($field.key)</dd> 521: </dl> 522: </li> 523: #end 524: #end 525: #end 526: #end 527: 528: #foreach ($i in [1..10]) 529: #set ($customKey = "bio_custom${i}") 530: #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}")) 531: <li> 532: <dl> 533: <dt class="label">$options.get($customKey): </dt> 534: <dd class="value">$!attributes.get("custom${i}")</dd> 535: </dl> 536: </li> 537: #end 538: #end 539: </ul> 540: 541: #else 542: ## default layout 543: 544: <div class="player-name"> 545: #if ($!attributes.get("number").length() > 0)<span class="number">$!attributes.get("number")</span><span class="sep"> - </span>#end 546: <span class="name">$fullName</span> 547: </div> 548: 549: <table role="presentation"> 550: #foreach ($i in [1..10]) 551: #set ($stickyKey = "bio_custom${i}_sticky") 552: #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0) 553: <tr> 554: <td class="label">$options.get($stickyKey): </td> 555: <td class="value">$!attributes.get("custom${i}")</td> 556: </tr> 557: #end 558: #end 559: 560: #foreach ($field in $fields) 561: #if (!$field.key.startsWith("custom")) 562: #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name")) 563: #if ($field.key == "phone1" || $field.key == "phone2") 564: <tr> 565: <td class="label">Phone: </td> 566: <td class="value">$!attributes.get($field.key)</td> 567: </tr> 568: #elseif ($field.key == "email_address") 569: #set ($emailAdd = $attributes.get($field.key)) 570: <tr> 571: <td class="label">Email: </td> 572: <td class="value"><a href="mailto:${emailAdd}">$emailAdd</a></td> 573: </tr> 574: #elseif ($field.key == "weight_class") 575: <tr> 576: <td class="label">Class: </td> 577: <td class="value">$!attributes.get($field.key)</td> 578: </tr> 579: #elseif ($field.key != "position_abbr") 580: <tr> 581: <td class="label">$field.value: </td> 582: <td class="value">$!attributes.get($field.key)</td> 583: </tr> 584: #end 585: #end 586: #end 587: #end 588: 589: #foreach ($i in [1..10]) 590: #set ($customKey = "bio_custom${i}") 591: #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}")) 592: <tr> 593: <td class="label">$options.get($customKey): </td> 594: <td class="value">$!attributes.get("custom${i}")</td> 595: </tr> 596: #end 597: #end 598: </table> 599: #end ## enhancedLayout check 600: #end ## macro printBioInfo 601: 602: #macro (printActionShots) 603: #if ($showActionShots) 604: ## BANNERS SLIDER 605: #set ($slickSettings = { 606: "autoplay": true, 607: "fade": true, 608: "arrows": false, 609: "slidesToShow": 1, 610: "slidesToScroll": 1, 611: "lazyLoad": "ondemand", 612: "responsive": "none" 613: }) 614: #set ($slickSettings = $slickSettings.toString().replace("=", ":")) 615: <div class="action-shots clearfix"> 616: <div class="slider" data-module="slick-slider-init" data-slick-settings="$slickSettings"> 617: #foreach ($photo in $playerPhotos) 618: #if ($velocityCount <= $actionShotsLimit) 619: #set ($imgAlt = "") 620: #if (!$image.altText.equals($image.title)) 621: #set ($imgAlt = $image.altText) 622: #elseif( $image.title.length() == 0 ) 623: #set ($imgAlt = "Action shot for $page.title image $velocityCount") 624: #end 625: <div class="image"> 626: <img data-lazy="$photo.url" alt="$imgAlt" /> 627: </div> 628: #end 629: #end 630: </div> 631: </div> 632: #end 633: #end ## macro printActionShots 634: 635: #macro (printHighlights) 636: #if ($highlights && $showHighlights) 637: <div class="highlights #if ($enhancedLayout) highlights-bio-enhanced #else highlights-bio #end clearfix"> 638: #foreach ($highlight in $highlights.keySet()) 639: #set ($value = "-") 640: #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight))) 641: <div class="stat clearfix"> 642: <span class="stat-title">$!highlights.get($highlight)</span> 643: <span class="stat-value">$value</span> 644: </div> 645: #end 646: </div> 647: #end 648: #end ## macro printHighlights 649: #macro (printRoster) 650: #if ($enhancedLayout) 651: $website.includeAgain("${page.url}?tmpl=roster-switcher-template&id=roster-list") 652: #else 653: #if ($page.contentType == "loki/bio") 654: #set ($headlinesFeaturedSize = 0) 655: #foreach ($featuredPage in $page.headlinesFeatured) 656: #if ($featuredPage.contentType == "loki/headlines") 657: #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1) 658: #end 659: #end 660: #if ($headlinesFeaturedSize > 0) 661: <select class="roster-select-list" aria-label="Select a player to view its full bio from the list of options below."> 662: <option selected="selected">Related Bios</option> 663: #foreach ($featuredPage in $page.headlinesFeatured) 664: #if ($featuredPage.contentType == "loki/headlines") 665: $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template¤t_url=${page.url}") 666: #end 667: #end 668: </select> 669: #end 670: #elseif ($page.contentType == "loki/bio-network") 671: #set ($relatedPlayers = $page.sectionPage.children) 672: #set ($teamNames = {}) 673: #foreach ($relatedPlayer in $relatedPlayers) 674: #if ($relatedPlayer.contentType == "loki/bio-network") 675: #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes()) 676: #set ($teamName = $relatedPlayerObj.get("team")) 677: #if ($teamName.length() > 0) 678: #if (!$teamNames.containsValue($teamName)) 679: $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName) 680: #end 681: #end 682: #end 683: #end 684: 685: <select class="roster-select-list" aria-label="Select a player to view its full bio from the list of options below."> 686: #foreach ($i in [1..$teamNames.size()]) 687: #if ($teamNames.size() > 1) 688: <optgroup label="$teamNames.get($i)"> 689: #end 690: 691: #foreach ($relatedPlayer in $relatedPlayers) 692: #if ($relatedPlayer.contentType == "loki/bio-network") 693: #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes()) 694: #set ($teamName = $relatedPlayerObj.get("team")) 695: #if ($teamName.length() > 0 && $teamName == $teamNames.get($i)) 696: #set ($playerFirstName = $relatedPlayerObj.get("first_name")) 697: #set ($playerLastName = $relatedPlayerObj.get("last_name")) 698: #if ($page.url == $relatedPlayer.url) 699: <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option> 700: #else 701: <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option> 702: #end 703: #end 704: #end 705: #end 706: 707: #if ($teamNames.size() > 1) 708: </optgroup> 709: #end 710: #end 711: </select> 712: #end 713: #end ## enhancedLayout check 714: #end ## macro printRoster 715: 716: ################################################## END MACROS ############################################################# 717: 718: #if ($attributes.get("full_name").length() > 0) 719: #set ($fullName = $attributes.get("full_name")) 720: #else 721: #set ($firstName = $!attributes.get("first_name")) 722: #set ($lastName = $!attributes.get("last_name")) 723: #set ($fullName = "${firstName} ${lastName}") 724: #end 725: 726: #set ($actionShots = false) 727: #if ($enhancedLayout && $playerPhotos.size() > 0) 728: #set ($actionShots = true) 729: #end 730: 731: #if ($enhancedLayout) 732: #set ($rootClass = "bio-enhanced") 733: #if ($actionShots && $showActionShots) 734: #set ($rootClass = "${rootClass} action") 735: #else 736: #set ($rootClass = "${rootClass} plain") 737: #end 738: #else 739: #set ($rootClass = "bio-wrap") 740: #end 741: 742: ## FULL ROSTER 743: <div class="${rootClass} #if ($highlights) bio-wrap-has-highlights #end clearfix" data-module="stats/responsive-container"> 744: 745: ## RELATED BIOS 746: #if ($showRoster) 747: <div class="related-bios clearfix">#printRoster</div> 748: #end 749: 750: #if ($actionShots) 751: #printActionShots 752: #end 753: 754: <div class="head clearfix"> 755: <div class="clearfix"> 756: 757: <div class="player-about clearfix"> 758: <div class="player-headshot">#printHeadshot</div> 759: <div class="player-info">#printBioInfo</div> 760: </div> 761: 762: #printHighlights 763: 764: </div> 765: </div> ## head 766: 767: #if ($view.length() > 0) 768: <div class="body clearfix"> 769: 770: <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary"> 771: <div class="tab-nav" data-module="jscroll" data-momentum="false"> 772: <div> 773: <ul class="clearfix"> 774: #if ($hasSynopsis || $hasBioBrief) 775: <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li> 776: #end 777: 778: #if ($statsURL.length() > 0) 779: <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li> 780: <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li> 781: #if ($showCareer) 782: <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li> 783: #end 784: <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li> 785: #end 786: 787: #if ($hasHTMLStats) 788: <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li> 789: #end 790: 791: #if ($releases.size() > 0) 792: <li #if ($view == "news") class="active" #end><a href="${page.url}?view=news">News</a></li> 793: #end 794: 795: #if ($playerPhotos.size() > 0) 796: <li #if ($view == "photos") class="active" #end><a href="${page.url}?view=photos">Photos</a></li> 797: #end 798: 799: #if ($playerVideos.size() > 0) 800: <li #if ($view == "videos") class="active" #end><a href="${page.url}?view=videos">Videos</a></li> 801: #end 802: </ul> 803: </div> 804: </div> ## tab-nav 805: 806: <div class="tab-panels clearfix"> 807: 808: ## BIO 809: #if ($hasSynopsis || $hasBioBrief) 810: 811: #set ($class = "tab-panel clearfix") 812: #if ($view == "bio") 813: #set ($class = "tab-panel active clearfix") 814: #end 815: <div class="${class}"> 816: 817: <div class="synopsis clearfix"> 818: #if ($hasSynopsis) 819: $synopsis 820: #elseif ($hasBioBrief) 821: $website.include("$bioBriefURL") 822: #end 823: </div> 824: 825: </div> ## tab-panel 826: #end 827: ## BIO 828: 829: ## STATS 830: #if ($statsURL.length() > 0) 831: 832: ## PROFILE 833: #set ($class = "tab-panel clearfix") 834: #if ($view == "profile") 835: #set ($class = "tab-panel active clearfix") 836: #end 837: <div class="${class}"> 838: <div class="stats-wrap clearfix"> 839: 840: ## LAST SIX GAMES 841: <div class="stats-box half"> 842: #printRecentGames() 843: </div> 844: 845: ## RANKING 846: <div class="stats-box half"> 847: #if ($statPos.length() > 0) 848: $website.include("players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}") 849: #end 850: </div> 851: 852: </div> ## stats-wrap 853: </div> ## tab-content 854: ## PROFILE 855: 856: ## GAMELOG 857: #set ($class = "tab-panel clearfix") 858: #if ($view == "gamelog") 859: #set ($class = "tab-panel active clearfix") 860: #end 861: 862: #set ($activePos = $statPos) 863: #if ($view == "gamelog" && $paramPos.length() > 0) 864: #if ($positions.get($paramPos).length() > 0) 865: #set ($activePos = $positions.get($paramPos)) 866: #end 867: #end 868: 869: <div class="${class}"> 870: 871: #if ($gamelogsCategoriesLabels) 872: <div class="tab-container clearfix secondary" data-module="stats/tabs" data-type="secondary"> 873: <div class="tab-nav" data-module="jscroll" data-momentum="false"> 874: <div> 875: <ul class="clearfix"> 876: #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet()) 877: #set($gamelogsCatLabelVal = $gamelogsCatLabel.value) 878: 879: #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense") 880: #set($gamelogsCatLabelVal = "Defence") 881: #end 882: 883: <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}" role="button" aria-label="Game Log: ${gamelogsCatLabelVal}">$gamelogsCatLabelVal</a></li> 884: #end 885: </ul> 886: </div> 887: </div> 888: <div class="tab-panels"> 889: #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet()) 890: #set ($class = "tab-panel clearfix") 891: #if ($gamelogsCatLabel.key == $activePos) 892: #set ($class = "tab-panel active clearfix") 893: #end 894: <div class="${class}"> 895: <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div> 896: </div> 897: #end 898: </div> 899: </div> 900: #else 901: <div class="stats-wrap clearfix">#gamelogData($pos)</div> 902: #end 903: 904: </div> ## tab-panel 905: ## GAMELOG 906: 907: 908: ## CAREER 909: #if ($showCareer) 910: 911: #set ($activePos = $statPos) 912: #if ($view == "career" && $paramPos.length() > 0) 913: #if ($positions.get($paramPos).length() > 0) 914: #set ($activePos = $positions.get($paramPos)) 915: #end 916: #end 917: 918: #set ($class = "tab-panel clearfix") 919: #if ($view == "career") 920: #set ($class = "tab-panel active clearfix") 921: #end 922: 923: <div class="${class}"> 924: 925: #if ($briefsCategoriesLabels) 926: #printCategories($briefsCategoriesLabels "career" "Career Stats") 927: #else 928: <div class="stats-wrap clearfix">#careerData($activePos)</div> 929: #end 930: 931: </div> ## tab-panel 932: #end 933: ## CAREER 934: 935: ## SPLITS 936: #set ($class = "tab-panel clearfix") 937: #if ($view == "splits") 938: #set ($class = "tab-panel active clearfix") 939: #end 940: 941: #set ($activePos = $statPos) 942: #if ($view == "splits" && $paramPos.length() > 0) 943: #if ($positions.get($paramPos).length() > 0) 944: #set ($activePos = $positions.get($paramPos)) 945: #end 946: #end 947: 948: <div class="${class}"> 949: 950: #if ($briefsCategoriesLabels) 951: #printCategories($briefsCategoriesLabels "splits" "Splits Stats") 952: #else 953: <div class="stats-wrap clearfix">#splitsData($pos)</div> 954: #end 955: 956: </div> ## tab-panel 957: ## SPLITS 958: 959: #end 960: ## STATS 961: 962: ## HTML STATS 963: #if ($hasHTMLStats) 964: 965: #set ($class = "tab-panel clearfix") 966: #if ($view == "htmlstats") 967: #set ($class = "tab-panel active clearfix") 968: #end 969: <div class="${class}"> 970: <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a> 971: </div> 972: 973: #end 974: ## HTML STATS 975: 976: ## NEWS 977: #if ($releases.size() > 0) 978: #set ($class = "tab-panel clearfix") 979: #if ($view == "news") 980: #set ($class = "tab-panel active clearfix") 981: #end 982: <div class="${class}"> 983: #printGrid($releases, "article") 984: </div> ## tab-content 985: #end 986: ## NEWS 987: 988: ## PHOTOS 989: #if ($playerPhotos.size() > 0) 990: #set ($class = "tab-panel clearfix") 991: #if ($view == "photos") 992: #set ($class = "tab-panel active clearfix") 993: #end 994: <div class="${class}"> 995: $website.includeAgain("${page.url}?tmpl=bio-photos-template") 996: </div> ## tab-content 997: #end 998: ## PHOTOS 999: 1000: ## VIDEOS 1001: #if ($playerVideos.size() > 0) 1002: #set ($class = "tab-panel clearfix") 1003: #if ($view == "videos") 1004: #set ($class = "tab-panel active clearfix") 1005: #end 1006: <div class="${class}"> 1007: #printGrid($playerVideos, "video") 1008: </div> ## tab-content 1009: #end 1010: ## VIDEOS 1011: 1012: </div> ## tab-panels 1013: </div> ## tab-container 1014: </div> ## body 1015: #end 1016: 1017: $wiki 1018: </div> ## ends bio-wrap 1019: 1020: ## GLOBAL ADS SERVER 1021: #if ($website.ads.isAdvertisingEnabled('BIOS')) 1022: $website.includeAgain("global-adserver-slots?adSlot=bios") 1023: #end |