Page source: |
1: #if ($stats.view == "pt")
2: $website.include("options")
3:
4: ## This is for testability purposes.
5: #set ($pregame = $stats.pregame)
6: #set ($startTime = $document.getRootElement().valueOf("network/@startTime"))
7: #if ($document.getRootElement().valueOf("network/@tba") == 'Y')
8: #set ($tba = true)
9: #else
10: #set ($tba = false)
11: #end
12: #set ($location = $document.getRootElement().valueOf("network/@location"))
13: #set ($localDate = $document.getRootElement().valueOf("network/@localDate"))
14: #set ($localTime = $document.getRootElement().valueOf("network/@localTime"))
15: #set ($hasVideo = false)
16: #if ($document.getRootElement().valueOf("primetime/@videoProvider").length() > 0 && $document.getRootElement().valueOf("primetime/@videoProvider") != "none")
17: #set ($hasVideo = true)
18: #end
19: #if ($location != '')
20: #set ($neutral = true)
21: #else
22: #set ($neutral = false)
23: #end
24: #if ($request.getParameter("paused") == 'y')
25: #set ($paused = true)
26: #else
27: #set ($paused = false)
28: #end
29:
30: #if ($pregame)
31: #set ($visitorTeamId = $document.getRootElement().valueOf("team[@vh='V']/@teamId"))
32: #set ($homeTeamId = $document.getRootElement().valueOf("team[@vh='H']/@teamId"))
33:
34: #if ($!options.get("primetime_preview_hide").equalsIgnoreCase("hide"))
35: #set ($shouldStatsShow = false)
36: #else
37: #set ($shouldStatsShow = $preview.shouldStatsShow($homeTeamId,$visitorTeamId))
38: #end
39: #end
40:
41: <head>
42: <script type="text/javascript" src='$website.cdn("/info/jquery-2.1.1.js")'></script>
43: <script type="text/javascript" src='$website.cdn("/info/notifications/jquery.noty.packaged.min.js")'></script>
44: <script type="text/javascript" src='$website.cdn("/info/dataTables/js/jquery.dataTables.js")'></script>
45: <script type="text/javascript" src='$website.cdn("/info/momentjs/moment.js")'></script>
46: <script type="text/javascript" src='$website.cdn("/info/primetime3/js/full_screen_api.js")'></script>
47: <script type="text/javascript" src='$website.cdn("/info/primetime3/js/flipclock.min.js")'></script>
48:
49: $website.addCss($website.cdn("/info/dataTables/css/jquery.dataTables.css"))
50: $website.addCss($website.cdn("/info/primetime3/css/flipclock.css"))
51:
52: <script type="text/javascript" src="/info/primetime3/js/pt3-embed.js"></script>
53:
54: <script type="text/javascript">var jQuery_2_1 = $.noConflict(true);</script>
55: <script type="text/javascript" src="/info/primetime3/js/add-ons.js"></script>
56: <script type="text/javascript" src="/info/primetime3/js/pt3-util.js"></script>
57:
58: <script src="/info/primetime3/js/highcharts.js"></script>
59: <script src="/info/primetime3/js/highcharts-more.js"></script>
60: <script src="/info/primetime3/js/solid-gauge.js"></script>
61:
62: <script type="text/javascript" src="/info/primetime3/js/pt3-preview-charts.js"></script>
63:
64: $website.addCss("/info/primetime3/css/pt3-styles.css")
65: $website.addCss("/info/primetime3/css/pt3-soccer-icons.css")
66: $website.addCss("/info/primetime3/css/pt3-field-hockey-icons.css")
67:
68: $website.addCss("/info/primetime3/css/pt3-responsive.css")
69:
70: <script type="text/javascript" src="/info/primetime3/js/restive.js"></script>
71: <script type="text/javascript" src="/info/primetime3/js/pt3-restive.js"></script>
72:
73: <script type="text/javascript">
74: var conf = new Object();
75: conf.locale = '${locale}';
76: conf.videoProvider = '${videoProvider}';
77: conf.videoId = '${videoId}';
78: conf.eventId = '$document.valueOf("sogame/network/@eventId")';
79: conf.eventIdHashCode = '$eventIdHashCode';
80: conf.visitorTeamLogo = '$stats.visitorTeamLogo';
81: conf.homeTeamLogo = '$stats.homeTeamLogo';
82: conf.visitorTeamColor = '#121212';
83: conf.homeTeamColor = '#6D6D6D';
84: conf.startTime = '$startTime';
85: conf.pregame = $pregame;
86: conf.tba = $tba;
87: conf.localDate = '$localDate';
88: conf.localTime = '$localTime';
89: conf.visitor = '${tool.esc.javascript($document.getRootElement().valueOf("team[@vh='V']/@name"))}';
90: conf.home = '${tool.esc.javascript($document.getRootElement().valueOf("team[@vh='H']/@name"))}';
91: conf.currentDate = new Date();
92: conf.statusFinal = $stats.final;
93: conf.neutral = $neutral;
94: conf.paused = $paused;
95: conf.gamedayServiceEntryPointUrl = '$gamedayServiceEntryPointUrl';
96:
97: conf.visitorTeamLighterColor = $.fn.increase_brightness(conf.visitorTeamColor, 30);
98: conf.homeTeamLighterColor = $.fn.increase_brightness(conf.homeTeamColor, 30);
99: </script>
100:
101: <script type="text/javascript" src="/info/primetime3/js/pt3-boxscore-client.js"></script>
102: <script type="text/javascript" src="/info/primetime3/js/pt3-soc-template.js"></script>
103: </head>
104:
105: #if ($pregame && !$shouldStatsShow)
106: <div id="primetime-wrapper" class="primetime-pre-game primetime-soccer primetime-wrapper clearfix">
107: <div class="primetime-overflow clearfix">
108: <div id="primetime-header" class="grid-row">
109: <div class="grid-col grid-col-hdr">
110:
111: <div class="pt-header clearfix">
112: <div class="pt-team pt-team-away visitor-team-color" style="background: $document.getRootElement().valueOf("team[@vh='V']/@color")">
113: <img src="$stats.visitorTeamLogo" alt="" class="team-logo visitor-team-logo" />
114: <h3 class="team-name visitor-team-name">$document.getRootElement().valueOf("team[@vh='V']/@name")</h3>
115: </div>
116:
117: <div class="pt-team pt-team-home home-team-color" style="background: $document.getRootElement().valueOf("team[@vh='H']/@color")">
118: <img src="$stats.homeTeamLogo" alt="" class="team-logo home-team-logo" />
119: <h3 class="team-name home-team-name">$document.getRootElement().valueOf("team[@vh='H']/@name")</h3>
120: </div>
121:
122: <div class="pt-match-scoreboard clearfix">
123: <div class="pt-mtach-info pt-pregame">
124: <center>
125: <div>
126: $localDate <br>
127: #if ($tba)
128: TBA
129: #else
130: $localTime
131: #end
132: </div>
133: </center>
134: </div>
135: </div>
136: </div>
137: </div>
138: </div>
139: <div class="grid-row-container clearfix">
140: <div class="grid-row">
141: <div class="content">
142: <div class="pt-last-play clearfix" style="display: none">
143: <span class="pt-label clearfix" style="text-align: center !important; width: 100% ">
144: This event doesn't have a set start time, but PrimeTime will be available once the event begins.
145: </span>
146: </div>
147: <div class="text">
148: <h3>
149: Live statistics will be available at the start of the event in:
150: </h3>
151: <center>
152: <div class="clock"></div><br/>
153: #if ($tba)
154: Days
155: #end
156: </center>
157: </div>
158: </div>
159: </div>
160: <div class="pt-game-info grid-row clearfix">
161: <div class="pt-tabs-panes clearfix">
162: <div id="stats-tabs" class="pt-tabs-pane clearfix">
163: <div id="divGameInformation" class="grid-row">
164: <div class="grid-col grid-col-gi grid-col1">
165: <h3 class="grid-title">
166: Game Information
167: </h3>
168: <div class="grid-content clearfix">
169: <div class="pt-game-information clearfix">
170: <div class="pt-row clearfix">
171: <center>
172: <div class="game-location pt-col">
173: <span class="date">
174: $localDate<br />
175: #if ($tba)
176: TBA
177: #else
178: $localTime
179: #end
180: </span>
181: <h3>Date & Time</h3>
182: </div>
183: #if ($location != '')
184: <div class="game-venue pt-col">
185: <span class="venue">
186: $location<br />
187: (Neutral)
188: </span>
189: <h3>Location</h3>
190: </div>
191: #end
192: </center>
193: </div>
194: </div>
195: </div>
196: </div>
197: </div>
198: </div>
199: </div>
200: </div>
201: </div>
202:
203: ## FOOTER
204: $website.include("primetime-footer")
205: </div>
206: ## GENERAL INFORMATION
207: </div>
208: #elseif ($pregame && $shouldStatsShow)
209: #set ($visitorTeamId = $document.getRootElement().valueOf("team[@vh='V']/@teamId"))
210: #set ($homeTeamId = $document.getRootElement().valueOf("team[@vh='H']/@teamId"))
211:
212: #set ($teamStats = ["sha", "sogpt", "svpg", "svpt", "gfa", "gaa"])
213: #set ($teamStatsLabels = {"sha": "Shots-per Game", "sogpt": "SOG percentage", "svpg": "Saves per game", "svpt": "Save percentage", "gfa":"GPG", "gaa": "GAA"})
214: #set ($topStats = ["p", "g", "a", "gaa"])
215:
216: #set ($visitorStats = $preview.getTeam($visitorTeamId).setTeamStats($teamStats).setTopStats($topStats).calculate())
217: #set ($homeStats = $preview.getTeam($homeTeamId).setTeamStats($teamStats).setTopStats($topStats).calculate())
218:
219: <div id="primetime-wrapper" class="primetime-pre-game primetime-soccer clearfix">
220: <div class="primetime-overflow clearfix">
221: <div id="primetime-header" class="grid-row">
222: <div class="grid-col grid-col-hdr">
223: <div class="pt-header clearfix">
224: <div class="pt-team pt-team-away visitor-team-color" style="background: $document.getRootElement().valueOf("team[@vh='V']/@color")">
225: <img src="$stats.visitorTeamLogo" alt="" class="team-logo visitor-team-logo" />
226: <h3 class="team-name visitor-team-name">$document.getRootElement().valueOf("team[@vh='V']/@name")</h3>
227: </div>
228:
229: <div class="pt-team pt-team-home home-team-color" style="background: $document.getRootElement().valueOf("team[@vh='H']/@color")">
230: <img src="$stats.homeTeamLogo" alt="" class="team-logo home-team-logo" />
231: <h3 class="team-name home-team-name">$document.getRootElement().valueOf("team[@vh='H']/@name")</h3>
232: </div>
233:
234: <div class="pt-match-scoreboard clearfix">
235: <div class="pt-mtach-info pt-pregame">
236: <center>
237: <div>
238: $localDate <br>
239: #if ($tba)
240: TBA
241: #else
242: $localTime
243: #end
244: </div>
245: </center>
246: </div>
247: </div>
248: </div>
249: </div>
250: </div>
251: <div class="grid-row-container clearfix">
252: <div class="grid-row preview">
253: <div class="content">
254: <div class="pt-last-play clearfix" style="display: none">
255: <span class="pt-label clearfix" style="text-align: center !important; width: 100% ">
256: This event doesn't have a set start time, but PrimeTime will be available once the event begins.
257: </span>
258: </div>
259: <div class="text">
260: <h3>
261: Live statistics will be available at the start of the event in:
262: </h3>
263: <center>
264: <div class="clock"></div><br/>
265: #if ($tba)
266: Days
267: #end
268: </center>
269: </div>
270: </div>
271: </div>
272:
273: <!-- Team Overview -->
274: <div class="grid-row pt-overview">
275: <h2>Overview</h2>
276: <div class="grid-col grid-col-e grid-col2 background-black">
277: <h3>$document.getRootElement().valueOf("team[@vh='V']/@name")</h3>
278: <div class="container clearfix pt-live-action p-0">
279: <div class="table-responsive"> <table class="table ">
280: <thead>
281: <tr>
282: <th>Team Record</th>
283: <th>Conf. Record</th>
284: <th>Last Game</th>
285: </tr>
286: </thead>
287: <tbody>
288: <tr>
289: <td>${visitorStats.overallRecord}</td>
290: <td>${visitorStats.conferenceRecord}</td>
291: <td style="text-align: center">
292: ${visitorStats.lastGame.APResult}
293: <span>
294: #if ($visitorStats.lastGame.neutralSite.length() > 0 || $visitorStats.lastGame.home)
295: vs.
296: #else
297: at
298: #end
299: ${visitorStats.lastGame.opponent.name}
300: </span>
301: </td>
302: </tr>
303: </tbody>
304: </table></div>
305: </div>
306: <br />
307: </div>
308: <div class="grid-col grid-col-e grid-col2 background-gray">
309: <h3>$document.getRootElement().valueOf("team[@vh='H']/@name")</h3>
310: <div class="pt-live-action">
311: <div class="table-responsive"> <table class="table ">
312: <thead>
313: <tr>
314: <th>Team Record</th>
315: <th>Conf. Record</th>
316: <th>Last Game</th>
317: </tr>
318: </thead>
319: <tbody>
320: <tr>
321: <td>${homeStats.overallRecord}</td>
322: <td>${homeStats.conferenceRecord}</td>
323: <td style="text-align: center">
324: ${homeStats.lastGame.APResult}
325: <span>
326: #if ($homeStats.lastGame.neutralSite.length() > 0 || $homeStats.lastGame.home)
327: vs.
328: #else
329: at
330: #end
331: ${homeStats.lastGame.opponent.name}
332: </span>
333: </td>
334: </tr>
335: </tbody>
336: </table></div>
337: </div>
338: <br />
339: </div>
340: </div>
341:
342: <!-- Team Comaprison -->
343: <div class="grid-row">
344: <div class="grid-col team-compare">
345: <h2>Team Comparison</h2>
346:
347: <div class="charts-line">
348: <div class="charts-inner">
349: #foreach ($i in [0..3])
350: #set ($key = $teamStats[$i])
351: <div class="chart-container">
352: <h3>${teamStatsLabels[$key]}</h3>
353: <div class="stats-chart ts-$key"></div>
354: <div class="stats-values">
355: #set ($visValue = ${formatter.formatNumber($visitorStats.teamStats[$key], $formats.get($key))})
356: #set ($homeValue = ${formatter.formatNumber($homeStats.teamStats[$key], $formats.get($key))})
357: <div class="stats-value visitor">$visValue</div>
358: <div class="stats-value home">$homeValue</div>
359: </div>
360: </div>
361: #end
362: </div>
363: </div>
364:
365: <br/>
366:
367: <div class="game-leaders">
368: <div class="top">
369: <div class="charts">
370: #foreach ($i in [4..5])
371: #set ($key = $teamStats[$i])
372: #set ($visValue = ${formatter.formatNumber($visitorStats.teamStats[$key], $formats.get($key))})
373: #set ($homeValue = ${formatter.formatNumber($homeStats.teamStats[$key], $formats.get($key))})
374: <div class="chart">
375: <div class="stats-chart visitor $key"></div>
376: <div class="label"><span>$visValue</span><span class="title">${teamStatsLabels[$key]}</span><span>$homeValue</span></div>
377: <div class="stats-chart home $key"></div>
378: </div>
379: #end
380: </div>
381: </div>
382: </div>
383: <div class="legend grid-col clearfix">
384: <div class="stats-value visitor">$document.getRootElement().valueOf("team[@vh='V']/@name") (based on ${visitorStats.gamesPlayed} games)</div>
385: <div class="stats-value home">$document.getRootElement().valueOf("team[@vh='H']/@name") (based on ${homeStats.gamesPlayed} games)</div>
386: </div>
387: </div>
388: </div>
389:
390: <!-- Key Contributors -->
391: <div class="grid-row">
392: <div class="grid-col grid-col1 game-leaders grid-col">
393: <h2>Key Contributors</h2>
394: #macro (gameLeaders $category $label $visitorPlayers $homePlayers $quantityPlayers $displayFormat)
395: #set ($quantityPlayers = $quantityPlayers - 1)
396: <div class="game-leaders">
397: <br/>
398: <h3>$label</h3>
399: <div class="grid-col top1">
400: <div class="grid-col charts">
401: #foreach ($i in [0..$quantityPlayers])
402: #set ($visitorTopPlayer = $visitorPlayers[$i])
403: #set ($homeTopPlayer = $homePlayers[$i])
404: <div class="grid-col chart">
405: <div class="stats-player visitor">
406: <div class="player-name">${visitorTopPlayer.firstName} ${visitorTopPlayer.lastName}</div>
407: <div class="stats-chart visitor ${category}-top${i}"></div>
408: </div>
409: <!-- Using the format '#' directly since the wyg has set 0.0 as format on the stats metadata object -->
410: <div class="label"><span>${formatter.formatNumber($visitorTopPlayer.stats[$category], $displayFormat)}</span><span class="title"></span><span>${formatter.formatNumber($homeTopPlayer.stats[$category], $displayFormat)}</span></div>
411: <div class="stats-player home">
412: <div class="player-name">${homeTopPlayer.firstName} ${homeTopPlayer.lastName}</div>
413: <div class="stats-chart home ${category}-top${i}"></div>
414: </div>
415: </div>
416: #end
417: </div>
418: </div>
419: </div>
420: #end
421:
422: #gameLeaders('p' 'Points' $visitorStats.topStats['p'] $homeStats.topStats['p'] 2 $formats.get('p'))
423: #gameLeaders('g' 'Goals' $visitorStats.topStats['g'] $homeStats.topStats['g'] 2 $formats.get('g'))
424: #gameLeaders('a' 'Assists' $visitorStats.topStats['a'] $homeStats.topStats['a'] 2 $formats.get('a'))
425: #gameLeaders('gaa' 'Goals Against Average' $visitorStats.topStats['gaa'] $homeStats.topStats['gaa'] 1 $formats.get('gaa'))
426:
427: <div class="legend grid-col clearfix">
428: <div class="stats-value visitor">$document.getRootElement().valueOf("team[@vh='V']/@name") (based on ${visitorStats.gamesPlayed} games)</div>
429: <div class="stats-value home">$document.getRootElement().valueOf("team[@vh='H']/@name") (based on ${homeStats.gamesPlayed} games)</div>
430: </div>
431: </div>
432: </div>
433:
434: <!-- Game Information -->
435: <div class="pt-game-info grid-row clearfix">
436: <div class="pt-tabs-panes clearfix">
437: <div id="stats-tabs" class="pt-tabs-pane clearfix">
438: <div id="divGameInformation" class="grid-row">
439: <div class="grid-col grid-col-gi grid-col1">
440: <h2 class="grid-title">
441: Game Information
442: </h2>
443: <div class="grid-content clearfix">
444: <div class="pt-game-information clearfix">
445: <div class="pt-row clearfix">
446: <center>
447: <div class="game-location pt-col">
448: <span class="date">
449: $localDate<br />
450: #if ($tba)
451: TBA
452: #else
453: $localTime
454: #end
455: </span>
456: <h3>Date & Time</h3>
457: </div>
458: #if ($location != '')
459: <div class="game-venue pt-col">
460: <span class="venue">
461: $location<br />
462: (Neutral)
463: </span>
464: <h3>Location</h3>
465: </div>
466: #end
467: </center>
468: </div>
469: </div>
470: </div>
471: </div>
472: </div>
473: </div>
474: </div>
475: </div>
476: </div>
477:
478: ## FOOTER
479: $website.include("primetime-footer")
480: </div>
481: <script type="text/javascript">
482: (function($) {
483: $(document).ready(function() {
484: Highcharts.setOptions({
485: colors: [conf.homeTeamColor, conf.visitorTeamColor]
486: });
487:
488: #foreach ($i in [0..3])
489: #set ($key = $teamStats[$i])
490: #set ($visValue = ${visitorStats.teamStats[$key]})
491: #set ($homeValue = ${homeStats.teamStats[$key]})
492: $.fn.buildDonutChart('.stats-chart.ts-$key', $visValue, $homeValue);
493: #end
494:
495: #foreach ($i in [4..5])
496: #set ($key = $teamStats[$i])
497: #set ($visValue = ${visitorStats.teamStats[$key]})
498: #set ($homeValue = ${homeStats.teamStats[$key]})
499: $.fn.buildVisitorBarChart('.top .visitor.$key', $visValue, 4.0, conf.visitorTeamLighterColor);
500: $.fn.buildHomeBarChart('.top .home.$key', $homeValue, 4.0, conf.homeTeamLighterColor);
501: #end
502:
503: // Key Contributors
504: #macro (playerStatsScript $category $visitorPlayers $homePlayers $visitorLimit $homeLimit $playersLimit)
505: #set ($playersLimit = $playersLimit - 1)
506: #foreach ($i in [0..$playersLimit])
507: #set ($visitorTopPlayer = $visitorPlayers[$i])
508: #set ($homeTopPlayer = $homePlayers[$i])
509: $.fn.buildVisitorBarChart('.${category}-top${i}.visitor', ${visitorTopPlayer.stats[$category]}, $visitorLimit, conf.visitorTeamLighterColor);
510: $.fn.buildHomeBarChart('.${category}-top${i}.home', ${homeTopPlayer.stats[$category]}, $homeLimit, conf.homeTeamLighterColor);
511: #end
512: #end
513:
514: #playerStatsScript('p' $visitorStats.topStats['p'] $homeStats.topStats['p'] 55 55 2)
515: #playerStatsScript('g' $visitorStats.topStats['g'] $homeStats.topStats['g'] 25 25 2)
516: #playerStatsScript('a' $visitorStats.topStats['a'] $homeStats.topStats['a'] 25 25 2)
517: #playerStatsScript('gaa' $visitorStats.topStats['gaa'] $homeStats.topStats['gaa'] 15 15 1)
518:
519: $('.stats-value.visitor').css("background-color", conf.visitorTeamColor);
520: $('.stats-value.visitor.light').css("background-color", conf.visitorTeamLighterColor);
521: $('.stats-value.home').css("background-color", conf.homeTeamColor);
522: $('.stats-value.home.light').css("background-color", conf.homeTeamLighterColor);
523: });
524: })(jQuery);
525: </script>
526: </div>
527: #else
528: <div id="primetime-wrapper" class="primetime-soccer primetime-wrapper clearfix">
529:
530: <div class="primetime-overflow clearfix">
531: ## HEADER
532: <div id="primetime-header" class="grid-row">
533: <div class="grid-col grid-col-hdr">
534:
535: <div class="primetime-screen-controls clearfix">
536: <a href="#" class="full-screen-button pt-icon-resize-full"><span class="text">Switch</span></a>
537: <a href="#" class="normal-screen-button pt-icon-resize-small"><span class="text">Switch</span></a>
538: <a href="#" class="expand-button pt-icon-link-ext"><span class="text">Switch</span></a>
539: </div>
540:
541: <div class="pt-header clearfix">
542:
543: <div class="pt-team pt-team-away visitor-team-color"><img src="$stats.visitorTeamLogo" alt="" class="team-logo visitor-team-logo" /><span
544: class="team-record visitor-team-record"></span>
545: <h3 class="team-name visitor-team-name"></h3>
546: </div>
547:
548: <div class="pt-team pt-team-home home-team-color">
549: <span class="team-record home-team-record"></span>
550: <img src="$stats.homeTeamLogo" alt="" class="team-logo home-team-logo" />
551: <h3 class="team-name home-team-name"></h3>
552: </div>
553:
554: <div class="pt-match-scoreboard clearfix">
555: <p class="team-score visitor-team-score"></p>
556: <p class="team-score home-team-score"></p>
557:
558: <div class="pt-mtach-info">
559: <span class="time scoreboard-time"></span><br />
560: <span class="period scoreboard-period" style="width: 100%"></span>
561: </div>
562:
563: </div>
564:
565: <div id="pt-page-nav" class="pt-page-nav">
566: <a href="#" class="pt-menu">Menu</a>
567: <ul class="clearfix">
568: <li><a href="#live-action-title" data-stroke="1" data-id="#live-action-title">Live Action</a></li>
569: <li><a href="#line-score-title" data-stroke="2" data-id="#line-score-title">Line Score</a></li>
570: ## <li><a href="#social-sharing-title" data-id="social-sharing-title">Social Sharing</a></li>
571: <li><a href="#scoring-plays-title" data-stroke="3" data-id="#scoring-plays-title" data-tab-id="#stats-tabs">Scoring Plays</a></li>
572: <li><a href="#team-comparison-title" data-stroke="4" data-id="#team-comparison-title" data-tab-id="#stats-tabs">Team Comparison</a></li>
573: <li><a href="#individual-stats-title" data-stroke="5" data-id="#individual-stats-title" data-tab-id="#stats-tabs">Individual Stats</a></li>
574: <li><a href="#game-info-title" data-stroke="6" data-id="#game-info-title" data-tab-id="#stats-tabs">Game Information</a></li>
575: <li><a href="#play-by-play-title" data-stroke="7" data-id="#play-by-play-title" data-tab-id="#pbp-tabs">Play by Play</a></li>
576: </ul>
577: </div>
578:
579: </div>
580:
581: </div>
582: </div>
583: ## PRIMETIME HEADER
584:
585: ## GRID ROW CONTAINER
586: <div class="grid-row-container clearfix">
587:
588: ## GRID ROW
589: #set ($gridRowClass = "grid-row no-video")
590: #if ($hasVideo)
591: #set ($gridRowClass = "grid-row")
592: #end
593:
594: <div id="firstPanelRow" class="$gridRowClass">
595:
596: #set ($gridCounter = 0)
597:
598: #if ($hasVideo)
599: #set ($gridCounter = $gridCounter + 1)
600: <div class="grid-col grid-col-v grid-col${gridCounter}">
601: <h3 id="video-field-title" class="grid-title">Broadcast<span class="close">x</span></h3>
602: <div class="grid-content clearfix">
603: <div class='embed-container'>
604:
605: </div>
606: </div>
607: ## GRID CONTENT
608: </div>
609: ## VIDEO COL
610: #end
611:
612: #set ($gridCounter = $gridCounter + 1)
613: <div class="grid-col grid-col-cd grid-col${gridCounter}">
614: <h3 id="live-action-title" class="grid-title">
615: Live Action<span class="close">x</span>
616: </h3>
617: <div class="grid-content clearfix">
618: <div class="clearfix">
619: <div class="container clearfix pt-live-action p-0">
620: <div class="table-responsive"> <table class="table ">
621: <thead>
622: <tr>
623: <th>Time</th>
624: <th>Action</th>
625: <th>Plays</th>
626: </tr>
627: </thead>
628: <tbody>
629: </tbody>
630: </table></div>
631: </div>
632: </div>
633: </div>
634: </div>
635: </div>
636:
637: ## COMMENT THE TIMELINE AND TIMEPLAY CODE
638: #*
639: <div class="grid-row">
640: <div class="grid-col pt-timeline grid-col-tl grid-col3">
641: <h3 id="timeline-title" class="grid-title">
642: Timeline<span class="close">x</span>
643: </h3>
644: <div class="grid-content clearfix ">
645: <div class="pt-timeline-logos">
646: <img class="team-logo visitor-team-logo" /><br />
647: <img class="team-logo home-team-logo" />
648: </div>
649: <div class="pt-timeline-times">
650: </div>
651: </div>
652: </div>
653: </div>
654:
655: <div class="grid-row">
656: <div class="grid-col pt-timeline-plays grid-col-tp grid-col4">
657: <h3 id="timeline-plays-title" class="grid-title">
658: Timeline Plays<span class="close">x</span>
659: </h3>
660: <div class="grid-content clearfix">
661: </div>
662: </div>
663: </div>
664: *#
665: <div class="grid-row">
666: #set ($gridCounter = $gridCounter + 1)
667: <div class="grid-col grid-col-bs grid-col${gridCounter}">
668: <h3 id="line-score-title" class="grid-title">
669: Line Score<span class="close">x</span>
670: </h3>
671: <div class="grid-content clearfix">
672: <div class="pt-line-score clearfix">
673: <div class="table-responsive"> <table class="table " id="scoreByPeriod">
674: <thead>
675: <tr>
676: <th></th>
677: </tr>
678: </thead>
679: <tbody>
680: <tr class="visitor">
681: <td><img src="" alt=""
682: class="team-logo visitor-team-logo" />
683: <span class="team-name visitor-team-name"></span></td>
684: </tr>
685: <tr class="home">
686: <td><img src="" alt=""
687: class="team-logo home-team-logo" />
688: <span class="team-name home-team-name"></span></td>
689: </tr>
690: </tbody>
691: </table></div>
692:
693: </div>
694: </div>
695: ## GRID CONTENT
696: </div>
697: ## LINE SCORE
698:
699: ## SOCIAL
700: #*
701: #set ($gridCounter = $gridCounter + 1)
702: <div class="grid-col grid-col-ls grid-col${gridCounter}">
703: <h3 id="social-sharing-title" class="grid-title">
704: Social Sharing<span class="close">x</span>
705: </h3>
706: <div class="grid-content clearfix">
707: <div class="pt-last-score clearfix">
708:
709: </div>
710: </div>
711: ## GRID CONTENT
712: </div>
713: *#
714: ## SOCIAL
715: </div>
716: ## GRID ROW ## TABS
717: <div class="pt-game-info clearfix">
718:
719: <ul class="pt-tabs clearfix">
720: <li class="current"><a href="#stats-tabs">Statistics</a></li>
721: <li><a href="#pbp-tabs">Play By Play</a></li>
722: </ul>
723:
724: <div class="pt-tabs-panes clearfix">
725: <div id="stats-tabs" class="pt-tabs-pane clearfix">
726:
727: ## GRID ROW
728: <div class="grid-row">
729: #set ($gridCounter = $gridCounter + 1)
730: <div class="grid-col grid-col-sp grid-col${gridCounter}">
731: <h3 id="scoring-plays-title" class="grid-title">
732: Scoring Plays<span class="close">x</span>
733: </h3>
734: <div class="grid-content clearfix">
735: <div id="scoringPlayList" class="pt-scoring-plays clearfix">
736: </div>
737: </div>
738: ## GRID CONTENT
739:
740: </div>
741: ## SCRING PLAY
742: </div>
743: ## GRID ROW ##GRID ROW
744: <div class="grid-row">
745: #set ($gridCounter = $gridCounter + 1)
746: <div class="grid-col grid-col-tc grid-col${gridCounter}">
747: <h3 id="team-comparison-title" class="grid-title">
748: Team Comparison<span class="close">x</span>
749: </h3>
750: <div class="grid-content clearfix">
751: <div class="pt-team-compare clearfix">
752: <div class="table-responsive"> <table class="table " id="teamCompare">
753: <thead>
754: <tr>
755: <th><img src="" alt="" class="team-logo visitor-team-logo" /><br />
756: <span class="team-name visitor-team-name"></span></th>
757: <th> <span></span></th>
758: <th><img src="" alt="" class="team-logo home-team-logo" /><br />
759: <span class="team-name home-team-name"></span></th>
760: </tr>
761: </thead>
762:
763: <tbody>
764: <tr class="stats-shots">
765: <td></td>
766: <td class="stats-cat">Shots</td>
767: <td></td>
768: </tr>
769:
770: <tr class="stats-sog">
771: <td></td>
772: <td class="stats-cat">SOG</td>
773: <td></td>
774: </tr>
775:
776: <tr class="stats-saves">
777: <td></td>
778: <td class="stats-cat">Saves</td>
779: <td></td>
780: </tr>
781:
782: <tr class="stats-corners">
783: <td></td>
784: <td class="stats-cat">Corners</td>
785: <td></td>
786: </tr>
787:
788: <tr class="stats-offsides">
789: <td></td>
790: <td class="stats-cat">Offsides</td>
791: <td></td>
792: </tr>
793:
794: <tr class="stats-fouls">
795: <td></td>
796: <td class="stats-cat">Fouls</td>
797: <td></td>
798: </tr>
799:
800: <tr class="stats-yc">
801: <td></td>
802: <td class="stats-cat">YC</td>
803: <td></td>
804: </tr>
805:
806: <tr class="stats-rc">
807: <td></td>
808: <td class="stats-cat">RC</td>
809: <td></td>
810: </tr>
811: </tbody>
812:
813: </table></div>
814: </div>
815: </div>
816: ## GRID CONTENT
817: </div>
818: ## TEAM COMPARE
819: </div>
820: ## GRID ROW ## GRID ROW
821: <div class="grid-row">
822: #set ($gridCounter = $gridCounter + 1)
823: <div class="grid-col grid-col-is grid-col${gridCounter}">
824: <h3 id="individual-stats-title" class="grid-title">
825: Individual Stats<span class="close">x</span>
826: </h3>
827: <div class="grid-content clearfix">
828: <div class="pt-team-stats clearfix">
829:
830: <div id="visitorTeamIndividualStats"
831: class="pt-team-col pt-stats-team active clearfix">
832:
833: <div class="pt-team clearfix">
834: <img src="" alt=""
835: class="team-logo visitor-team-logo active" />
836: <h3 class="team-name visitor-team-name"></h3>
837: </div>
838:
839: <div class="pt-stats-tabs clearfix">
840: <div class="pt-panes clearfix">
841: <div id="vOffenseTab" class="pt-pane pt-pane1 clearfix">
842:
843: <div class="pt-row">
844: <div class="table-responsive"> <table class="table goalieStats display"> <!-- goalies -->
845: <thead>
846: <tr>
847: <th>#</th>
848: <th>Goalkeepers</th>
849: <th>SOG</th>
850: <th>GA</th>
851: <th>SV</th>
852: <th>MIN</th>
853: </tr>
854: </thead>
855: <tbody>
856:
857: </tbody>
858: </table></div>
859: </div>
860:
861: <div class="pt-row">
862: <div class="table-responsive"> <table class="table startersStats display"> <!-- starters -->
863: <thead>
864: <tr>
865: <th>#</th>
866: <th>Starters</th>
867: <th>Pos</th>
868: <th>Sh</th>
869: <th>Sog</th>
870: <th>G</th>
871: <th>A</th>
872: <th class="dsCell">DS</th>
873: </tr>
874: </thead>
875: <tbody>
876:
877: </tbody>
878: </table></div>
879: </div>
880: <div class="pt-row">
881: <div class="table-responsive"> <table class="table substitutesStats display"> <!-- substitutes -->
882: <thead>
883: <tr>
884: <th>#</th>
885: <th>Substitutes</th>
886: <th>Pos</th>
887: <th>Sh</th>
888: <th>Sog</th>
889: <th>G</th>
890: <th>A</th>
891: <th class="dsCell">DS</th>
892: </tr>
893: </thead>
894: <tbody>
895:
896: </tbody>
897: </table></div>
898: </div>
899: </div>
900: </div>
901: </div>
902: </div>
903:
904: <div id="homeTeamIndividualStats" class="pt-team-col pt-stats-team clearfix">
905:
906: <div class="pt-team clearfix">
907: <img src="" alt=""
908: class="team-logo home-team-logo active" />
909: <h3 class="team-name home-team-name"></h3>
910: </div>
911:
912: <div class="pt-stats-tabs clearfix">
913:
914: <div class="pt-panes clearfix">
915: <div class="pt-pane clearfix">
916:
917: <div class="pt-row">
918: <div class="table-responsive"> <table class="table goalieStats display"> <!-- goalies -->
919: <thead>
920: <tr>
921: <th>#</th>
922: <th>Goalkeepers</th>
923: <th>SOG</th>
924: <th>GA</th>
925: <th>SV</th>
926: <th>MIN</th>
927: </tr>
928: </thead>
929: <tbody>
930:
931: </tbody>
932: </table></div>
933: </div>
934:
935: <div class="pt-row">
936: <div class="table-responsive"> <table class="table startersStats display"> <!-- starters -->
937: <thead>
938: <tr>
939: <th>#</th>
940: <th>Starters</th>
941: <th>Pos</th>
942: <th>Sh</th>
943: <th>Sog</th>
944: <th>G</th>
945: <th>A</th>
946: <th class="dsCell">DS</th>
947: </tr>
948: </thead>
949: <tbody>
950:
951: </tbody>
952: </table></div>
953: </div>
954: <div class="pt-row">
955: <div class="table-responsive"> <table class="table substitutesStats display"> <!-- substitutes -->
956: <thead>
957: <tr>
958: <th>#</th>
959: <th>Substitutes</th>
960: <th>Pos</th>
961: <th>Sh</th>
962: <th>Sog</th>
963: <th>G</th>
964: <th>A</th>
965: <th class="dsCell">DS</th>
966: </tr>
967: </thead>
968: <tbody>
969: </tbody>
970: </table></div>
971: </div>
972:
973: </div>
974: </div>
975: </div>
976: </div>
977:
978: </div>
979: </div>
980: ## GRID CONTENT
981: </div>
982: ## INDIVISUAL STATS
983: </div>
984: ## GRID ROW ## GRID ROW
985: <div class="grid-row">
986: #set ($gridCounter = $gridCounter + 1)
987: <div class="grid-col grid-col-gi grid-col${gridCounter}">
988: <h3 id="game-info-title" class="grid-title">
989: Game Information<span class="close">x</span>
990: </h3>
991: <div class="grid-content clearfix">
992: <div class="pt-game-information clearfix">
993:
994: <div class="pt-row clearfix">
995: <center>
996: <div class="date-time pt-col">
997: <span id="gameInformationDate" class="date"></span>
998: <span id="gameInformationTime" class="time"></span>
999: <h3>Date & Time</h3>
1000: </div>
1001:
1002: <div class="game-location pt-col">
1003: <span id="gameInformationLocation" class="location"></span>
1004: <h3>Location</h3>
1005: </div>
1006:
1007: <div class="game-venue pt-col">
1008: <span id="gameInformationVenue" class="venue"></span>
1009: <h3>Venue</h3>
1010: </div>
1011:
1012: <div class="weather pt-col">
1013:
1014: <div class="weather-condition">
1015: <span id="gameInformationTemperature"
1016: class="temp"></span>
1017: <span id="gameInformationCondition" class="condition"></span>
1018: </div>
1019: <h3>Weather</h3>
1020: </div>
1021: </center>
1022: </div>
1023:
1024: </div>
1025: </div>
1026: ## GRID CONTENT
1027: </div>
1028: ## GENERAL INFORMATION
1029: </div>
1030: ## GRID ROW
1031:
1032: </div>
1033:
1034: ## PLAY BY PLAY TABS
1035: <div id="pbp-tabs" class="pt-tabs-pane clearfix">
1036:
1037: ## GRID ROW
1038: <div class="grid-row">
1039: #set ($gridCounter = $gridCounter + 1)
1040: <div class="grid-col grid-col-ds grid-col${gridCounter}">
1041: <h3 id="play-by-play-title" class="grid-title">
1042: Play by Play<span class="close">x</span>
1043: </h3>
1044: <div class="grid-content clearfix">
1045: <div id="playByPlay" class="clearfix">
1046: <select id="filterPeriod" class="dropdownFilter">
1047: <option value="" selected>ALL PERIODS</option>
1048: </select>
1049: <select id="filterTeam" class="dropdownFilter">
1050: <option value="" selected>BOTH TEAMS</option>
1051: <option value="" class="team-name visitor-team-name"></option>
1052: <option value="" class="team-name home-team-name"></option>
1053: </select>
1054: <select id="filterPlayType" class="dropdownFilter">
1055: <option value="" selected>ALL PLAYS</option>
1056: <option value="GOAL">Goal</option>
1057: <option value="SHOT">Shot</option>
1058: <option id="headerOption" value="HDR">Header</option>
1059: <option id="cornerOption" value="CORNER">Corner</option>
1060: <option value="FOUL">Foul</option>
1061: <option id="offsideOption" value="OFFSIDE">Offside</option>
1062: <option value="YC">Yellow Card</option>
1063: <option value="RC">Red Card</option>
1064: <option id="greenCardOption" value="GC">Green Card</option>
1065: <option value="SUB">Substitution</option>
1066: </select>
1067: </div>
1068: <div class="pt-play-by-play clearfix">
1069: <div class="table-responsive"> <table class="table ">
1070: <thead>
1071: <tr>
1072: <th><span class="team-name visitor-team-name"></span><span> PLAYS</span></th>
1073: <th>TIME</th>
1074: <th>ACTION</th>
1075: <th><span class="team-name home-team-name"></span><span> PLAYS</span></th>
1076: </tr>
1077: </thead>
1078: <tbody>
1079: </tbody>
1080: </table></div>
1081: </div>
1082: </div>
1083: ## GRID CONTENT
1084: </div>
1085: ## DRIVE SUMMARY
1086: </div>
1087: ## GRID ROW
1088:
1089: </div>
1090: ## PLAY BY PLAY TABS
1091: </div>
1092: ## PT TABS PANES
1093: </div>
1094: ## PRIME TIME GAME INFO
1095:
1096: </div>
1097: ## GRID ROW CONTAINER
1098:
1099: ## FOOTER
1100: $website.include("primetime-footer")
1101:
1102: </div>
1103: ## PRIMTE TIME OVERFLOW
1104: </div>
1105: ## PRIME TIME WRAPPER
1106: #end
1107:
1108: #set ($showWiki = true)
1109: #set ($showWiki = $showWikiVar)
1110: #if ($showWiki == true)
1111: $wiki.su
1112: #end
1113: ## END OF PRIMETIME
1114:
1115: #else
1116: ## SOCCER BOX SCORE
1117:
1118: ## DEFAULT VALUES
1119: #set ($showPlayerMin = false)
1120:
1121: ## PICK UP OPTIONS
1122: #if ($website && $stats.view != "pdf")
1123: $website.include("options")
1124: #end
1125: #set ($options = $request.getAttribute("options"))
1126:
1127: ## SET VARIABLES FROM OPTIONS
1128: #set ($showPlayerMin = $options.get("boxscore_so_player_min"))
1129: #if ($showPlayerMin == "show")
1130: #set ($showPlayerMin = true)
1131: #end
1132:
1133: #set ($hasScoringSummary = false)
1134: #if ($document.selectNodes("sogame/scores/score").size() > 0)
1135: #set ($hasScoringSummary = true)
1136: #end
1137:
1138: #set ($showWiki = true)
1139: #set ($showWiki = $showWikiVar)
1140:
1141: #if ($showWiki == true)
1142: $!wiki.su
1143: #end
1144:
1145: #if ($document.valueOf("sogame/@source") == 'DakStats Soccer')
1146: #set ($isDakStats = true)
1147: #else
1148: #set ($isDakStats = false)
1149: #end
1150:
1151: #set ($showGoalDesc = $document.valueOf("sogame/venue/show/@goaldesc") == "1")
1152: #set ($showFieldHockey = $document.valueOf("sogame/venue/show/@fhk") == "1")
1153: #set ($shootoutScores = {"V" : 0, "H" : 0})
1154: #set ($shootouts = $document.selectNodes("sogame/shootouts/shootout"))
1155: #set ($penalties = $document.selectNodes("sogame/penalties/pen"))
1156:
1157: #set ($linkPlayers = $stats.linkPlayers)
1158: #set ($linkPlayersBase = $stats.linkPlayersBase)
1159: #set ($linkTeams = $stats.linkTeams)
1160: #set ($linkTeamsBase = $stats.linkTeamsBase)
1161:
1162: #set ($home = $document.valueOf("sogame/team[@vh='H']/@name"))
1163: #set ($visitor = $document.valueOf("sogame/team[@vh='V']/@name"))
1164: #set ($homeNode = $document.selectSingleNode("sogame/team[@vh='H']"))
1165: #set ($visitorNode = $document.selectSingleNode("sogame/team[@vh='V']"))
1166:
1167: ## RULES
1168: #set ($periodRule = $document.valueOf("sogame/venue/rules/@prds"))
1169: #set ($periodLength = $document.valueOf("sogame/venue/rules/@minutes"))
1170: #set ($otPeriodLength = $document.valueOf("sogame/venue/rules/@minutesot"))
1171: #set ($otPeriodRule = 2)
1172:
1173: ## STATUS
1174: #set ($status = $document.valueOf("sogame/status/@period"))
1175: #set ($clock = $document.valueOf("sogame/status/@clock"))
1176: #set ($compClock = $document.valueOf("sogame/status/@complementClock"))
1177:
1178: ## FOULS
1179: #set ($showFouls = false)
1180: #if($showFieldHockey)
1181: #set ($homeFouls = $tool.math.toInteger($document.valueOf("sogame/team[@vh='H']/totals/penalty/@fouls")))
1182: #set ($visitorFouls = $tool.math.toInteger($document.valueOf("sogame/team[@vh='V']/totals/penalty/@fouls")))
1183:
1184: #if($homeFouls > 0 || $visitorFouls > 0)
1185: #set ($showFouls = true)
1186: #end
1187: #else
1188: #set ($showFouls = true) ## ALWAYS SHOW FOR SOCCER
1189: #end
1190:
1191: #set ($periodRange = [1..$document.selectNodes("sogame/team[1]/linescore/lineprd").size()])
1192: #set ($isNeutralGame = $documnt.valueOf("sogame/venue/@neutralgame"))
1193: #if ($isNeutralGame.length() > 0 && $isNeutralGame.equals("Y"))
1194: #set ($isNeutralGame = true)
1195: #else
1196: #set ($isNeutralGame = false)
1197: #end
1198:
1199: #set ($hasPeriods = $document.selectNodes("sogame/plays/period").size() > 0)
1200:
1201: #set ($homeTeam = $homeNode.valueOf("@name"))
1202: #set ($homeScore = $tool.math.toInteger($homeNode.valueOf("linescore/@score")))
1203: #set ($homename = $homeTeam)
1204: #set ($visitorTeam = $visitorNode.valueOf("@name"))
1205: #set ($visScore = $tool.math.toInteger($visitorNode.valueOf("linescore/@score")))
1206: #set ($visname = $visitorTeam)
1207: #set ($location = $document.valueOf("sogame/venue/@location"))
1208: #set ($stadium = $document.valueOf("sogame/venue/@stadium"))
1209: #set ($dateVal = $document.valueOf("sogame/venue/@date"))
1210: #set ($date = $tool.date.toDate("MM/dd/yyyy", $dateVal))
1211: #set ($time = $document.valueOf("sogame/venue/@time"))
1212: #if ($time.length() == 0)
1213: #set ($time = $document.valueOf("sogame/venue/@start"))
1214: #end
1215:
1216: #set ($duration = $document.valueOf("sogame/venue/@duration"))
1217: #set ($schedNote = $document.valueOf("sogame/venue/@schednote"))
1218: #set ($attendance = $document.valueOf("sogame/venue/@attend"))
1219: #set ($homeTotals = $homeNode.selectSingleNode("totals"))
1220: #set ($visitorTotals = $visitorNode.selectSingleNode("totals"))
1221:
1222: #if ($stats.pageUrl.length() > 0 && !$stats.pageUrl.contains("?"))
1223: #set ($paramSep = "?")
1224: #else
1225: #set ($paramSep = "&")
1226: #end
1227:
1228: #set ($showWiki = true)
1229: #set ($showWiki = $showWikiVar)
1230:
1231: ## MACROS
1232: #macro (printPdfHeader $title)
1233: <div class="stats-fullbox clearfix">
1234: <div class="table-responsive"> <table class="table ">
1235: <tr>
1236: <td class="align-center"><h4>$title</h4></td>
1237: </tr>
1238: </table></div>
1239: </div>
1240: #end
1241:
1242: #macro (printPeriods $attr)
1243: #foreach ($prd in $document.selectNodes("sogame/team[1]/linescore/lineprd"))
1244: <th scope="col" $attr>
1245: #if ($velocityCount > $tool.math.toInteger($periodRule))
1246: #set ($otPeriods = $tool.math.sub($velocityCount, $periodRule))
1247: #if ($otPeriods == 1)
1248: OT
1249: #elseif ($otPeriods > $otPeriodRule)
1250: SO
1251: #else
1252: ${otPeriods}OT
1253: #end
1254: #else
1255: $!velocityCount
1256: #end
1257: </th>
1258: #end
1259: #end
1260:
1261: #macro (shootout $shootouts $t)
1262: #set ($printVal = "")
1263: #foreach ($shot in $shootouts)
1264: #if ($shot.valueOf("@vh") == $t)
1265: #set ($player = $shot.valueOf("@name"))
1266: #set ($shotResult = ${shot.valueOf("@result")})
1267: #set ($singlePrintVal = "$player - $shotResult")
1268: #if ($shot.valueOf("@result") == "MADE")
1269: #set ($score = $shootoutScores.get($t))
1270: #set ($score = $tool.math.add($score, 1))
1271: #set ($score = $shootoutScores.put($t, $score))
1272: #end ## result
1273: #if ($printVal.length() > 0) #set ($printVal = "${printVal}; ") #end
1274: #set ($printVal = "${printVal} ${singlePrintVal}")
1275: #end ## if
1276: #end ## foreach
1277: $printVal
1278: #end
1279:
1280: #macro (period $p)
1281: #set ($printVal = "")
1282: #if ($tool.math.toInteger($p) <= $tool.math.toInteger($periodRule))
1283: #if ($p == 1)
1284: #set ($printVal = "1st")
1285: #elseif ($p == 2)
1286: #set ($printVal = "2nd")
1287: #elseif ($p == 3)
1288: #set ($printVal = "3rd")
1289: #else
1290: #set ($printVal = "${p}th")
1291: #end
1292: #else
1293: #set ($otPeriods = $tool.math.sub($p, $periodRule))
1294: #if ($otPeriods == 1)
1295: #set ($printVal = "OT")
1296: #elseif ($otPeriods > $otPeriodRule)
1297: #set ($printVal = "SO")
1298: #else
1299: #set ($printVal = "${otPeriods}OT")
1300: #end
1301: #end
1302: $printVal
1303: #end
1304:
1305: #macro (showTeam $team)
1306: #if ($team.attributeValue("link").length() > 0 && $linkTeams)
1307: <a href="$!linkTeamsBase?id=${team.attributeValue('teamId')}">$team.attributeValue("name")</a>
1308: #else
1309: $team.attributeValue("name")
1310: #end
1311: #end
1312:
1313: ## GOALIE SHOTS
1314: #macro (shots $ga $saves)
1315: #if ($saves.length() > 0)
1316: $tool.math.add($ga, $saves)
1317: #end
1318: #end
1319:
1320: ## PLAY BY PLAY
1321: #macro (printPlayByPlay)
1322: <div class="stats-wrap clearfix">
1323: <div class="stats-box full">
1324: #if ($stats.view != "pdf")
1325: <div class="periods-links clearfix">
1326: <span class="label">Periods:</span>
1327: <ul>
1328: #foreach ($p in [1..$document.selectNodes("sogame/plays/period").size()])
1329: <li><a href="#prd${p}">#period($p)</a></li>
1330: #end
1331: </ul>
1332: </div>
1333: #end
1334: #set ($vscore = 0)
1335: #set ($hscore = 0)
1336: #foreach ($playPeriod in $document.selectNodes("sogame/plays/period"))
1337: #set ($prdCount = $playPeriod.valueOf("@number"))
1338: <div class="table-responsive"> <table class="table " role="presentation">
1339: <caption class="caption">
1340: <h2><span id="prd${velocityCount}">#period($velocityCount)</span></h2>
1341: </caption>
1342: #set ($score = "")
1343: #set ($playNodes = $playPeriod.selectNodes("*"))
1344: #foreach ($play in $playNodes)
1345: #set ($nodeName = $play.getName())
1346: #set ($rowClass = "row")
1347: #set ($playText = "")
1348: #set ($isVisitorPlay = $play.valueOf('@vh') == "V")
1349: #set ($isHomePlay = $play.valueOf('@vh') == "H")
1350: #set ($playAction = $play.valueOf("@action"))
1351: #set ($playTime = $play.valueOf("@clock"))
1352:
1353: #if ($nodeName == "play" && !$playAction.equalsIgnoreCase("goalmsg"))
1354: #if ($playAction.equalsIgnoreCase("foul"))
1355: #set ($rowClass = "${rowClass} foul")
1356: #end
1357: #if ($playAction.equalsIgnoreCase("goal"))
1358: #set ($rowClass = "${rowClass} goal accent-bg")
1359: #set ($playText = "<span class='action-title'>Goal!</span>${play.valueOf('@text')}")
1360: #if ($isVisitorPlay)
1361: #set ($vscore = $play.valueOf("@vscore"))
1362: #else
1363: #set ($hscore = $play.valueOf("@hscore"))
1364: #end
1365: #set ($score = "<span class='v-score'>${vscore}</span><span class='sep'> - </span><span class='h-score'>${hscore}</span>")
1366: #if ($playNodes.size() > $tool.math.add($velocityCount, 1) && $playNodes.get($tool.math.add($velocityCount, 1)).valueOf("@action").equalsIgnoreCase("goalmsg"))
1367: #set ($goalMsg = $playNodes.get($tool.math.add($velocityCount, 1)).valueOf("@text"))
1368: #set ($playText = "${playText} ${goalMsg}")
1369: #end
1370: #set ($score = "<span class='v-score'>${vscore}</span><span class='sep'> - </span><span class='h-score'>${hscore}</span>")
1371: #set ($playText = "${playText} <br/> <strong>( ${score} )</strong>")
1372: #elseif ($playAction.equalsIgnoreCase("shootout"))
1373: #set ($playText = $play.valueOf("@text"))
1374: #if(!$shootoutHeader)
1375: #set ($playText = "<span class='action-title'>Shootout!</span>${playText}")
1376: #set($shootoutHeader = "true")
1377: #end
1378: #elseif ($playAction.equalsIgnoreCase("sub"))
1379: #set ($rowClass = "${rowClass} substitute")
1380: #set ($playText = "<span class='action-title'>Substitution!</span>${play.valueOf('@text')}")
1381: #else
1382: #set ($playText = $play.valueOf("@text"))
1383: #end
1384:
1385: #if($isHomePlay || $isVisitorPlay)
1386: <tr class="$rowClass">
1387: <td class="time">$playTime</td>
1388: <td class="play">$playText</td>
1389: </tr>
1390: #end
1391: #end ## node name check
1392: #end ## play foreach
1393: <tr><td colspan="4" class="bold">-- End of #period($prdCount) Period --</td></tr>
1394: #if ($stats.view != "pdf")
1395: <tr class="back-to-top"><td colspan="4"><a href="#stat-tab-pbp">back to top <span class="fas fa-chevron-up"></span></a></td></tr>
1396: #end
1397: </table></div>
1398: #end ## play period foreach
1399: </div>
1400: </div> ## stats-wrap
1401: #end ## ends printPlayByPlay
1402:
1403: ## PENALTY STATS
1404: #macro (printPenaltyStats)
1405: <div class="table-responsive"> <table class="table table-striped striped">
1406: <caption class="caption"><h2>Penalty Summary</h2></caption>
1407: <thead>
1408: <tr>
1409: <th class="col-head" scope="col">Period</th>
1410: <th class="col-head" scope="col">Time</th>
1411: <th class="col-head text" scope="col">Fouls</th>
1412: </tr>
1413: </thead>
1414: <tbody>
1415: #foreach ($penalty in $document.selectNodes("sogame/penalties/pen"))
1416: <tr>
1417: #set ($vh = $penalty.valueOf("@vh"))
1418: #set ($prd = $penalty.valueOf("@prd"))
1419: <th class="row-head nowrap period" scope="row">
1420: #if ($vh == "V" && $stats.view != "pdf")
1421: #set ($visitorScore = $tool.math.add($visitorScore, 1))
1422: <div class="team-logo" style="background-image:url($stats.visitorTeamLogo)"><span class="offscreen">$teamName</span></div>
1423: #elseif ($vh == "H" && $stats.view != "pdf")
1424: #set ($homeScore = $tool.math.add($homeScore, 1))
1425: <div class="team-logo" style="background-image:url($stats.homeTeamLogo)"><span class="offscreen">$teamName</span></div>
1426: #end
1427: <span class="period">#period($prd)</span>
1428: </th>
1429: <td class="time">$penalty.valueOf("@time")</td>
1430: <td class="text">
1431: #if ($penalty.valueOf("@type").length() > 0)
1432: #if ($penalty.valueOf("@type").contains('GREEN'))<span>Green card - </span>#end
1433: #if ($penalty.valueOf("@type").contains('YELLOW'))<span>Yellow card - </span>#end
1434: #if ($penalty.valueOf("@type").contains('RED'))<span>Red card - </span>#end
1435: #end
1436: $penalty.valueOf("@name")#if ($!penalty.valueOf("@desc").length() > 0): $!penalty.valueOf("@desc")#end
1437: </td>
1438: </tr>
1439: #end
1440: </tbody>
1441: </table></div>
1442: #end
1443:
1444: ## PENALTY SUMMARY
1445: #macro (printPenaltySummary $boxWidth)
1446: #if ($penalties.size() > 0)
1447: #if ($boxWidth == "full")
1448: <div class="stats-wrap">
1449: <div class="stats-box ${boxWidth} penalty-summary clearfix">
1450: #printPenaltyStats
1451: </div>
1452: </div>
1453: #else
1454: <div class="stats-box ${boxWidth} penalty-summary clearfix">
1455: #printPenaltyStats
1456: </div>
1457: #end
1458: #end
1459: #end
1460:
1461: ## SCORING SUMMARY
1462: #macro (printScoringSummary)
1463: <div class="stats-wrap clearfix">
1464: #if ($hasScoringSummary)
1465: <div class="stats-box half scoring-summary clearfix">
1466: #set ($visitorScore = 0)
1467: #set ($homeScore = 0)
1468: <div class="table-responsive"> <table class="table table-striped striped">
1469: <caption class="caption"><h2>Scoring Summary</h2></caption>
1470: <thead>
1471: <tr>
1472: <th class="col-head" scope="col">Period</th>
1473: <th class="col-head" scope="col">Time</th>
1474: <th class="col-head text" scope="col">Play</th>
1475: <th class="col-head" scope="col">V - H</th>
1476: </tr>
1477: </thead>
1478: <tbody>
1479: #foreach ($pd in $periodRange)
1480: #foreach ($score in $document.selectNodes("sogame/scores/score"))
1481: #set ($teamName = "")
1482: #set ($scoreText = "")
1483: #set ($scoreDesc = "")
1484: #set ($scorePlayer = $!score.valueOf("@playerId"))
1485: #set ($scoreTime = $score.valueOf("@time"))
1486: #set ($isVisitorScore = $score.valueOf('@vh') == "V")
1487: #set ($isHomeScore = $score.valueOf('@vh') == "H")
1488:
1489: #if($isVisitorScore)
1490: #set ($teamName = $visitorTeam)
1491: #else
1492: #set ($teamName = $homeTeam)
1493: #end
1494:
1495: #if ($pd == $score.valueOf("@prd"))
1496: #if ($scorePlayer.length() > 0 and $linkPlayers)
1497: #set ($scoreText = "<a href='${!linkPlayersBase}?id=${scorePlayer}'>")
1498: #end
1499: #if($score.valueOf("@name").equalsIgnoreCase("team") && $hasPeriods)
1500: #if($isHomeScore) #set ($scoreText = "${scoreText} ${visitorNode.attributeValue('name')}")#elseif($isVisitorScore) #set ($scoreText = "${scoreText} ${homeNode.attributeValue('name')}")#end
1501: #set ($scoreText = "${scoreText} Own goal")
1502: #else
1503: #set ($scoreText = "${scoreText} ${score.valueOf('@name')}")
1504: #end
1505: #if ($scorePlayer.length() > 0 and $linkPlayers)
1506: #set ($scoreText = "${scoreText} </a>")
1507: #end
1508:
1509: #if ($score.valueOf("@seasong").length() > 0) #set ($scoreText = "${scoreText} (${score.valueOf('@seasong')})") #end
1510:
1511: #if($score.valueOf("@assist1").length() > 0)
1512: #if ($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)#set ($scoreText = "${scoreText} <a href='${!linkPlayersBase}?id=${score.valueOf('@assist1Id')}'>")#end
1513: #if ($score.valueOf("@assist2").length() > 0)
1514: #set ($scoreText = "${scoreText} (${score.valueOf('@assist1')}")
1515: #else
1516: #set ($scoreText = "${scoreText} (${score.valueOf('@assist1')})")
1517: #end
1518: #if ($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)#set ($scoreText = "${scoreText}</a>")#end
1519: #elseif ($score.valueOf("@name") != "Team")
1520: #set ($scoreText = "${scoreText} (unassisted)")
1521: #end
1522: #if($score.valueOf("@assist2").length() > 0)
1523: #set ($scoreText = "${scoreText} &")
1524: #if ($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)#set ($scoreText = "${scoreText} <a href='${!linkPlayersBase}?id=${score.valueOf('@assist2Id')}'>")#end
1525: #set ($scoreText = "${scoreText} ${score.valueOf('@assist2')})")
1526: #if ($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)#set ($scoreText = "${scoreText}</a>")#end
1527: #end
1528:
1529: #if ($showGoalDesc)
1530: #if($!score.valueOf("@desc").length() > 0)
1531: #set ($scoreText = "${scoreText} - $!{score.valueOf('@desc')}")
1532: #else
1533: #foreach ($play in $document.selectNodes("sogame/plays/period/play"))
1534: #if(($play.valueOf("@action") == "PENSHOT") && ($play.valueOf("@clock") == $scoreTime))
1535: #if ($showFieldHockey)
1536: #set ($scoreText = "${scoreText} - Penalty Stroke")
1537: #else
1538: #set ($scoreText = "${scoreText} - Penalty Kick")
1539: #end
1540: #end
1541: #end
1542: #end
1543: #end
1544:
1545: <tr>
1546: <th class="row-head nowrap period" scope="row">
1547: #if ($isVisitorScore && $stats.view != "pdf")
1548: #set ($visitorScore = $tool.math.add($visitorScore, 1))
1549: <div class="team-logo" style="background-image:url($stats.visitorTeamLogo)"><span class="offscreen">$teamName</span></div>
1550: #elseif ($isHomeScore && $stats.view != "pdf")
1551: #set ($homeScore = $tool.math.add($homeScore, 1))
1552: <div class="team-logo" style="background-image:url($stats.homeTeamLogo)"><span class="offscreen">$teamName</span></div>
1553: #end
1554: <span class="period">#period($pd)</span>
1555: </th>
1556: <td class="time">$!scoreTime</td>
1557: <td class="text">$scoreText</td>
1558: <td class="total">$visitorScore - $homeScore</td>
1559: </tr> ## row
1560:
1561: #end ## if
1562: #end ## scoring foreach
1563: #end ## period range
1564: </tbody>
1565: </table></div>
1566: </div> ## stats-box
1567: #end
1568:
1569: ## PENALTY / SCORING SUMMARY
1570: #if ($shootouts.size() > 0)
1571: #printShootoutSummary
1572: #else
1573: #printPenaltySummary("half")
1574: #end
1575:
1576: </div>
1577: #end ## SCORING SUMMARY MACRO END
1578:
1579: #macro(printShootoutSummary)
1580: #set ($visitorPenaltyMade = $document.selectNodes("sogame/shootouts/shootout[@vh='V'][@result='MADE']"))
1581: #set ($homePenaltyMade = $document.selectNodes("sogame/shootouts/shootout[@vh='H'][@result='MADE']"))
1582: <div class="stats-box half shootout-summary clearfix">
1583: <div class="table-responsive"> <table class="table ">
1584: <caption class="caption"><h2>Shootout</h2></caption>
1585: <tr>
1586: <th scope="col" class="col-head" colspan="2">$visitor</th>
1587: <th scope="col" class="col-head" colspan="2">$home</th>
1588: </tr>
1589: #set ($penaltyCount = 0)
1590: #foreach ($shootout in $shootouts)
1591: #if ($velocityCount % 2 != 0)
1592: #set ($visPenaltyShooter = '')
1593: #set ($visPenaltyResult = '')
1594: #set ($homePenaltyShooter = '')
1595: #set ($homePenaltyResult = '')
1596: #end
1597: #if ($shootout.valueOf("@vh") == "V")
1598: #set ($visPenaltyShooter = $shootout.valueOf("@name"))
1599: #set ($visPenaltyResult = $shootout.valueOf("@result"))
1600: #end
1601: #if ($shootout.valueOf("@vh") == "H")
1602: #set ($homePenaltyShooter = $shootout.valueOf("@name"))
1603: #set ($homePenaltyResult = $shootout.valueOf("@result"))
1604: #end
1605: #if ($velocityCount % 2 == 0 || $velocityCount == $shootouts.size())
1606: #set ($penaltyCount = $penaltyCount + 1)
1607: <tr>
1608: <td style="width:43%" #if ($visPenaltyResult == "MISSED") class="visitor shot-missed" #else class="visitor shot-made" #end>
1609: #if ($visPenaltyShooter.length() > 0)
1610: <span class="icon"></span>$visPenaltyShooter
1611: #end
1612: </td>
1613: <th style="width:14%" class="row-head" colspan="2">Pen$penaltyCount</th>
1614: <td style="width:43%" #if ($homePenaltyResult == "MISSED") class="home shot-missed" #else class="home shot-made" #end>
1615: #if ($homePenaltyShooter.length() > 0)
1616: $homePenaltyShooter<span class="icon"></span>
1617: #end
1618: </td>
1619: </tr>
1620: #end
1621: #end
1622: <tr class="totals">
1623: <td colspan="4"><strong>Final:</strong> $visitorPenaltyMade.size() - $homePenaltyMade.size()</td>
1624: </tr>
1625: </table></div>
1626: </div>
1627: #end
1628:
1629: #macro (printPlayerStats $team)
1630: #set ($vh = $team.valueOf("@vh"))
1631: <thead>
1632: <tr>
1633: <th scope="col" class="col-head text">PLAYER</th>
1634: <th scope="col" class="col-head">SH</th>
1635: <th scope="col" class="col-head">SOG</th>
1636: <th scope="col" class="col-head">G</th>
1637: <th scope="col" class="col-head">A</th>
1638: #if ($showFieldHockey)<th scope="col" class="col-head">DS</th>#end
1639: #if ($showPlayerMin == true)<th scope="col" class="col-head">MIN</th>#end
1640: </tr>
1641: </thead>
1642:
1643: <tbody>
1644: #foreach ($statNode in $team.selectNodes("player[@gp='1']/shots"))
1645: <tr>
1646: <th scope="row" class="row-head text">
1647: <span class="uniform">$!statNode.valueOf("../@uni") - </span>
1648:
1649: #if ($statNode.valueOf("../@playerId").length() > 0 && $linkPlayers && $team.attributeValue("link").length() > 0)
1650: <a href="$!linkPlayersBase?id=${statNode.valueOf("../@playerId")}" class="player-name">$statNode.valueOf("../@name")</a>
1651: #else
1652: <span class="player-name">$statNode.valueOf("../@name")</span>
1653: #end
1654:
1655: #if($statNode.valueOf("../@pos").length() > 0)<span class="position" style="text-transform:lowercase"> - $statNode.valueOf("../@pos")</span>#end
1656:
1657: #foreach ($penalty in $document.selectNodes("sogame/penalties/pen[@vh='${vh}']"))
1658: #if ($penalty.valueOf("@checkname").equals($statNode.valueOf("../@checkname")) || $penalty.valueOf("@name").equals($statNode.valueOf("../@name")))
1659: #if ($penalty.valueOf("@type").length() > 0)
1660: #if ($penalty.valueOf("@type").contains('GREEN'))<span class="penalty-card green">- Green card <span class="time">$penalty.valueOf("@time")</span></span>#end
1661: #if ($penalty.valueOf("@type").contains('YELLOW'))<span class="penalty-card yellow">- Yellow card <span class="time">$penalty.valueOf("@time")</span></span>#end
1662: #if ($penalty.valueOf("@type").contains('RED'))<span class="penalty-card red">- Red card <span class="time">$penalty.valueOf("@time")</span></span>#end
1663: #end
1664: #end
1665: #end ## penalty foreach
1666: </th>
1667: <td>$!statNode.valueOf("@sh")</td>
1668: <td>$!statNode.valueOf("@sog")</td>
1669: <td>$!statNode.valueOf("@g")</td>
1670: <td>$!statNode.valueOf("@a")</td>
1671: #if ($showFieldHockey)<td>$!statNode.valueOf("../misc/@dsave")</td>#end
1672: #if ($showPlayerMin == true)<td>$!statNode.valueOf("../misc/@minutes")</td>#end
1673: </tr>
1674: #end
1675: </tbody>
1676:
1677: <tbody>
1678: <tr class="totals">
1679: <th scope="rowgroup" class="row-head text">TOTALS</th>
1680: #set ($statTotals = $team.selectSingleNode("totals/shots"))
1681: <td>$!statTotals.valueOf("@sh")</td>
1682: <td>$!statTotals.valueOf("@sog")</td>
1683: <td>$!statTotals.valueOf("@g")</td>
1684: <td>$!statTotals.valueOf("@a")</td>
1685: #if ($showFieldHockey)<td>$!statTotals.valueOf("../misc/@dsave")</td>#end
1686: #if ($showPlayerMin == true)<td>$!statTotals.valueOf("../misc/@minutes")</td>#end
1687: </tr>
1688: </tbody>
1689: #end ## printPlayerStats
1690:
1691: #macro (printTeamGoalies $team)
1692:
1693: <thead>
1694: <tr>
1695: <th scope="col" class="col-head text" colspan="2">GOALIES</th>
1696: ##<th scope="col" class="col-head"> </th>
1697: ###if ($showPlayerMin == true)<th scope="col" class="col-head"> </th>#end
1698: <th scope="col" class="col-head">SOG</th>
1699: <th scope="col" class="col-head">GA</th>
1700: <th scope="col" class="col-head">SV</th>
1701: #if ($showFieldHockey)<th scope="col" class="col-head"> </th>#end
1702: <th scope="col" class="col-head">Min</th>
1703: </tr>
1704: </thead>
1705:
1706: <tbody>
1707: #foreach ($stat in $team.selectNodes("player/goalie"))
1708: <tr>
1709: <th scope="row" class="row-head text">
1710: <span class="uniform">$!stat.valueOf("../@uni") - </span>
1711:
1712: #if ($stat.valueOf("../@playerId").length() > 0 && $linkPlayers && $team.attributeValue("link").length() > 0)
1713: <a href="$!linkPlayersBase?id=${stat.valueOf("../@playerId")}" class="player-name">$stat.valueOf("../@name")</a>
1714: #else
1715: <span class="player-name">$stat.valueOf("../@name")</span>
1716: #end
1717:
1718: #if ($isDakStats)
1719: #if($tool.math.toInteger($stat.valueOf("@win")) > 0)<span>(W, $stat.valueOf("@win"))</span>#end
1720: #if($tool.math.toInteger($stat.valueOf("@loss")) > 0)<span>(L, $stat.valueOf("@loss"))</span>#end
1721: #if($tool.math.toInteger($stat.valueOf("@tie")) > 0)<span>(T, $stat.valueOf("@tie"))</span>#end
1722: #else
1723: #if($stat.valueOf("@win").length() > 0)<span>(W, $stat.valueOf("@win"))</span>#end
1724: #if($stat.valueOf("@loss").length() > 0)<span>(L, $stat.valueOf("@loss"))</span>#end
1725: #if($stat.valueOf("@tie").length() > 0)<span>(T, $stat.valueOf("@tie"))</span>#end
1726: #end
1727:
1728: </th>
1729: <td>$!formatter.formatNumber($ga, "#")</td>
1730: ###if ($showPlayerMin == true)<td> </td>#end
1731: <td>#shots($stat.valueOf("@ga") $stat.valueOf("@saves"))</td>
1732: <td>$stat.valueOf("@ga")</td>
1733: <td>$!stat.valueOf("@saves")</td>
1734: #if ($showFieldHockey)<td> </td>#end
1735: <td>$!stat.valueOf("@minutes")</td>
1736: </tr>
1737: #end
1738: </tbody>
1739:
1740: <tbody>
1741: #if ($team.selectNodes("player/goalie").size() > 1) ## if more than one goalie appeared show totals
1742: <tr class="totals">
1743: <th scope="rowgroup" class="row-head text">TOTALS</th>
1744: #set ($goalieTotals = $team.selectSingleNode("totals/goalie"))
1745: <td>$!formatter.formatNumber($goalieTotals.valueOf("@ga"), "#")</td>
1746: ###if ($showPlayerMin == true)<td> </td>#end
1747: <td>#shots($goalieTotals.valueOf("@ga") $goalieTotals.valueOf("@saves"))</td>
1748: <td>$!goalieTotals.valueOf("@ga")</td>
1749: <td>$!goalieTotals.valueOf("@saves")</td>
1750: #if ($showFieldHockey)<td> </td>#end
1751: <td>$!goalieTotals.valueOf("@minutes")</td>
1752: </tr>
1753: #end
1754: </tbody>
1755:
1756: #end ## print team goalies
1757:
1758: #macro (printTabControl $teamName $id)
1759: #if ($stats.view != "pdf")
1760: <div class="tab-label" id="$id">$teamName</div>
1761: #end
1762: #end
1763:
1764: ## PRINT BOX SCORE
1765: #macro (printBoxScore)
1766: <div class="tab-labels">
1767: #printTabControl($visitorNode.valueOf("@name"), "team-label-v")
1768: #printTabControl($homeNode.valueOf("@name"), "team-label-h")
1769: </div>
1770: <div class="stats-wrap clearfix">
1771: #foreach ($teamNode in $document.selectNodes("sogame/team"))
1772: #set ($teamName = $teamNode.valueOf("@name"))
1773: #set ($teamId = $teamNode.valueOf("@teamId"))
1774: #set ($vh = $teamNode.valueOf("@vh").toLowerCase())
1775: <div class="stats-box half lineup clearfix" data-panel-for="team-label-${vh}">
1776: <div class="table-responsive"> <table class="table table-striped striped">
1777: <caption class="caption">
1778: <h2><span class="team-name">$teamName</span></h2>
1779: </caption>
1780: #printPlayerStats($teamNode)
1781: </table></div>
1782: </div>
1783: #end
1784: </div> ## stats-wrap
1785: #end ## print box score
1786:
1787: ## PRINT BOX SCORE
1788: #macro (printGoalies)
1789: <div class="stats-wrap clearfix">
1790: #foreach ($teamNode in $document.selectNodes("sogame/team"))
1791: #set ($teamName = $teamNode.valueOf("@name"))
1792: #set ($teamId = $teamNode.valueOf("@teamId"))
1793: #set ($vh = $teamNode.valueOf("@vh").toLowerCase())
1794: <div class="stats-box half lineup clearfix" data-panel-for="team-label-${vh}">
1795: <div class="table-responsive"> <table class="table table-striped striped">
1796: <caption class="caption"><h2>$teamName <span class="offscreen">Goalies</span></h2></caption>
1797: #printTeamGoalies($teamNode)
1798: </table></div>
1799: </div>
1800: #end
1801: </div> ## stats-wrap
1802: #end ## print goalies
1803:
1804: ## TEAM SUMMARY STATISTICS
1805: #macro (printTeamStats)
1806:
1807: <div class="stats-wrap clearfix">
1808: <div class="stats-box full team-stats clearfix">
1809: <div class="table-responsive"> <table class="table striped"><tbody><tr>
1810: <th style="width:33%">#showTeam($visitorNode)</th>
1811: <th style="width:34%">Team Statistics</th>
1812: <th>#showTeam($homeNode)</th>
1813: </tr>
1814: <tr>
1815: <td >$visitorNode.valueOf('totals/shots/@sh')</td>
1816: <td class="totals">SHOTS</td>
1817: <td>$homeNode.valueOf('totals/shots/@sh')</td>
1818: </tr>
1819: <tr>
1820: <td>$visitorNode.valueOf("totals/goalie/@saves")</td>
1821: <td class="totals">SAVES</td>
1822: <td>$homeNode.valueOf("totals/goalie/@saves")</td>
1823: </tr>
1824: <tr>
1825: <td>#totalCorners($visitorNode)</td>
1826: <td class="totals">#if ($showFieldHockey) PENALTY CORNERS #else CORNER KICKS #end</td>
1827: <td>#totalCorners($homeNode)</td>
1828: </tr>
1829: #if ($showFouls)
1830: <tr>
1831: <td>$visitorNode.valueOf("totals/penalty/@fouls")</td>
1832: <td class="totals">FOULS</td>
1833: <td>$homeNode.valueOf("totals/penalty/@fouls")</td>
1834: </tr>
1835: #end
1836: </tbody></table></div>
1837: </div>
1838: </div> ## stats-wrap
1839:
1840: #end ## print team stats
1841:
1842: ## Game Information
1843: #macro (printGameInfo)
1844: <div class="stats-wrap clearfix">
1845: <div class="stats-box game-info">
1846: <div class="table-responsive"> <table class="table table-inline" role="presentation">
1847: <caption class="caption"><h2>Game Information</h2></caption>
1848: #if ($date)<tr><th class="row-head text" scope="row">Date/Time: </th><td class="text">$formatter.formatLongDate($date) #if ($time.length() > 0) - $!time #end</td></tr>#end
1849: #if ($location.length() > 0)<tr><th class="row-head text" scope="row">Location: </th><td class="text">$location</td></tr>#end
1850: #if ($stadium.length() > 0)<tr><th class="row-head text" scope="row">Stadium: </th><td class="text">$document.valueOf("sogame/venue/@stadium")</td></tr>#end
1851: #if ($duration.length() > 0)<tr><th class="row-head text" scope="row">Game Length: </th><td class="text">$document.valueOf("sogame/venue/@duration")</td></tr>#end
1852: #if ($attendance.length() > 0)<tr><th class="row-head text" scope="row">Attendance: </th><td class="text">$document.valueOf("sogame/venue/@attend")</td></tr>#end
1853: #foreach ($official in $document.selectNodes("sogame/venue/officials/official"))
1854: <tr><th class="row-head text" scope="row">$official.valueOf("@title"): </th><td class="text">$official.valueOf("@name")</td></tr>
1855: #end
1856: </table></div>
1857: </div>
1858: </div>
1859: #end ## print game info
1860:
1861: #macro (printStatsBox $colTitle $nodeAttr)
1862: <div class="table-responsive"> <table class="table ">
1863: <tr>
1864: <th scope="col" class="col-head text">$colTitle</th>
1865: #printPeriods('class="col-head" style="width:40px"')
1866: <th scope="col" class="col-head" style="width:50px">TOTAL</th>
1867: </tr>
1868:
1869: #foreach ($team in $document.selectNodes("sogame/team"))
1870: #set ($total = 0)
1871: <tr>
1872: <th scope="row" class="row-head text">$team.valueOf("@name")</th>
1873: #foreach ($prd in $team.selectNodes("linescore/lineprd"))
1874: <td>$prd.valueOf("${nodeAttr}")</td>
1875: #set ($total = $tool.math.add($total, $prd.valueOf("${nodeAttr}")))
1876: #end
1877: <td>$total</td>
1878: </tr>
1879: #end
1880: </table></div>
1881: #end ## print stats box
1882:
1883: #macro (printTabBoxscore)
1884:
1885: <div class=" stats-wrap clearfix">
1886:
1887: ## SHOTS BY PERIOD
1888: <div class="stats-box half team-stats">
1889: #printStatsBox ("SHOTS" "@shots")
1890: </div>
1891:
1892: ## SAVES
1893: <div class="stats-box half team-stats">
1894: #printStatsBox ("SAVES" "@saves")
1895: </div>
1896:
1897: </div> ## stats wrap
1898:
1899: <div class=" stats-wrap clearfix">
1900:
1901: ## PENALTY CORNERS / CORNER KICKS
1902: <div class="stats-box half team-stats">
1903: #if ($showFieldHockey)
1904: #printStatsBox ("PENALTY CORNERS" "@corners")
1905: #else
1906: #printStatsBox ("CORNER KICKS" "@corners")
1907: #end
1908: </div>
1909:
1910: ## FOULS BY PERIOD
1911: #if ($showFouls)
1912: <div class="stats-box half team-stats">
1913: #printStatsBox ("FOULS" "@fouls")
1914: </div>
1915: #end
1916:
1917: </div> ## stats wrap
1918:
1919: #end ## print tab boxscore
1920:
1921: #set ($titleVA = "at")
1922: #if ($isNeutralGame)
1923: #set ($titleVA = "vs.")
1924: #end
1925:
1926: #set ($pageTitle = "$visname $titleVA $homename")
1927:
1928: #if ($date)
1929: #set ($pageTitle = "${pageTitle} - ${formatter.formatLongDate($date)}")
1930: #end
1931:
1932: #if ($time.length() > 0)
1933: #set ($pageTitle = "${pageTitle} - ${time}")
1934: #end
1935: <head>
1936: <title>$pageTitle - Box Score</title>
1937: #if ($stats.inProgress)
1938: <meta http-equiv="refresh" content="60"/>
1939: #end
1940: #if ($stats.view == "pdf")
1941: #include("statcrew-pdf-css-template")
1942: #end
1943: </head>
1944:
1945: #if ($stats.view == "pdf")
1946:
1947: <div class='footer-left'>$visname vs. $homename</div>
1948: <div class='footer-right'><span id="pagenumber"></span> of <span id="pagecount"></span></div>
1949: <div class="stats-wrapper">
1950: #printPdfHeader("Box score")
1951: #parse("soxml-monospace-template")
1952: #if ($hasPeriods)
1953: <p class="pagebreak"> </p>
1954: #printPdfHeader("Play by Play")
1955: <div class="stats-fullbox">#printPlayByPlay()</div>
1956: #end
1957: </div> ## stats-wrapper
1958:
1959: #else
1960: ## FULL BOXSCORE
1961:
1962: #if ($showWiki == true)
1963: $!wiki.su
1964: #end
1965: #if ($page)
1966: $request.setAttribute("relatedLinksContentPage", $page)
1967: $website.includeAgain("related-links-template")
1968: #end
1969:
1970:
1971: <article class="game-boxscore soc-fh clearfix">
1972:
1973: ## BOX SCORE HEADER
1974: <div class="head">
1975: <h1>$visitorTeam #if ($isNeutralGame) vs. #else at #end $homeTeam #if ($dateVal.length() > 0)<span>$formatter.formatLongDate($date)</span>#end</h1>
1976:
1977: #set ($visClass = "")
1978: #set ($homeClass = "")
1979: #if ($visScore && $homeScore)
1980: #if ($visScore > $homeScore)
1981: #set ($visClass = "winner")
1982: #set ($homeClass = "loser")
1983: #elseif ($homeScore > $visScore)
1984: #set ($visClass = "loser")
1985: #set ($homeClass = "winner")
1986: #end
1987: #end
1988:
1989: <div class="teams clearfix">
1990:
1991: #foreach ($teamNode in $document.selectNodes("sogame/team"))
1992: #set ($teamName = $teamNode.valueOf("@name"))
1993: #set ($teamId = $teamNode.valueOf("@teamId"))
1994: #set ($vh = $teamNode.valueOf("@vh"))
1995: #if ($vh == "V")
1996: #set ($teamClass = "visitor ${visClass}")
1997: #set ($teamLogo = $stats.visitorTeamLogo)
1998: #else
1999: #set ($teamClass = "home ${homeClass}")
2000: #set ($teamLogo = $stats.homeTeamLogo)
2001: #end
2002:
2003: <div class="team ${teamClass} clearfix">
2004: <div class="team-logo"><img src="$teamLogo" alt="" /></div>
2005: #if ($teamNode.valueOf("@record").length() > 0)<span class="team-record">($teamNode.valueOf("@record"))</span>#end
2006: <div class="team-score">$teamNode.valueOf("linescore/@score")</div>
2007: </div>
2008:
2009: #end
2010:
2011: ## Mini boxscore
2012: <div class="linescore">
2013: <div class="table-responsive"> <table class="table ">
2014: <tr>
2015: <th scope="col" class="col-head text">
2016: #if ($stats.final)
2017: Final
2018: #elseif ($stats.inProgress)
2019: #period($!status)- $!compClock
2020: #end
2021: </th>
2022: #printPeriods('class="col-head score"')
2023: <th scope="col" class="col-head score total" aria-label="Total">T</th>
2024: </tr>
2025:
2026: ## TEAM SCORES
2027: #foreach ($team in $document.selectNodes("sogame/team"))
2028: <tr #if($velocityCount == 1) class="$visClass" #else class="$homeClass" #end>
2029: <th scope="row" class="name row-head text">#showTeam($team)</th>
2030: #foreach ($prd in $team.selectNodes("linescore/lineprd"))
2031: <td class="score">$prd.valueOf("@score")</td>
2032: #end
2033: <td class="score total">$team.valueOf("linescore/@score")</td>
2034: </tr>
2035: #end
2036: </table></div>
2037: </div> ## linescore
2038: </div> ## teams
2039: </div> ## head
2040:
2041: ## TABS
2042: <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
2043:
2044: <div class="tab-nav" data-module="jscroll" data-momentum="false">
2045: <div class="clearfix">
2046: <ul class="clearfix">
2047: <li #if (!($stats.view.length() > 0) || $stats.view == "boxscore")class="active"#end><a href="${stats.pageUrl}" data-view="boxscore" role="tab" id="stat-tab-boxscore">Box Score</a></li>
2048: #if ($hasPeriods)
2049: <li #if ($stats.view == "plays")class="active"#end><a href="${stats.pageUrl}${paramSep}view=plays" data-view="plays" role="tab" id="stat-tab-pbp">Play by Play</a></li>
2050: #end
2051: #if ($isDakStats)
2052: <li #if ($stats.view == "teamstats")class="active"#end><a href="${stats.pageUrl}${paramSep}view=teamstats" data-view="teamstats" role="tab" id="stat-tab-team-stats">Team Stats</a></li>
2053: #end
2054: <li data-skip="true"><a href="$stats.pageUrl${paramSep}tmpl=soxml-monospace-template" target="_blank">Coach's View</a></li>
2055: </ul>
2056: </div>
2057: </div>
2058: <div class="tab-panels">
2059:
2060: ## FULL BOX SCORE
2061: #set ($class = "tab-panel boxscore clearfix")
2062: #if (!($stats.view.length() > 0) || $stats.view == "boxscore")
2063: #set ($class = "${class} active")
2064: #end
2065: <section class="${class}" role="tabpanel" aria-labelledby="stat-tab-boxscore">
2066: <h1 class="offscreen">Box Score</h1>
2067: <div class="player-stats" data-module="mod-team-tabs">
2068: #printBoxScore
2069: #printGoalies
2070: </div>
2071: #printScoringSummary
2072: #if ($isDakStats)
2073: #printTeamStats
2074: #else
2075: #printTabBoxscore
2076: #end
2077: #if ($shootouts.size() > 0 && $penalties.size() > 0)
2078: #printPenaltySummary("full")
2079: #end
2080: #printGameInfo
2081: </section>
2082:
2083: ## PAY BY PLAY
2084: #if ($hasPeriods)
2085: #set ($class = "tab-panel plays clearfix")
2086: #if ($stats.view == "plays")
2087: #set ($class = "${class} active")
2088: #end
2089: <section class="${class}" role="tabpanel" aria-labelledby="stat-tab-pbp">
2090: <h1 class="offscreen">Play By Play</h1>
2091: #printPlayByPlay
2092: </section>
2093: #end
2094:
2095: ## TEAM STATS
2096: #if ($isDakStats)
2097: #set ($class = "tab-panel team-stats clearfix")
2098: #if ($stats.view == "teamstats")
2099: #set ($class = "${class} active")
2100: #end
2101: <section class="${class}" role="tab-panel" aria-labelledby="stat-tab-team-stats">
2102: <h1 class="offscreen">Team Statistics</h1>
2103: #printTeamStats
2104: </section>
2105: #end
2106: </div> ## tab panels
2107: </div>
2108: ## TABS END
2109:
2110: </article> ## game-boxscore
2111:
2112: #end ## pdf check
2113:
2114: #set ($showWiki = true)
2115: #set ($showWiki = $showWikiVar)
2116:
2117: #if ($showWiki == true)
2118: $!wiki.su
2119: #end
2120:
2121: #end ## pt check
2122:
2123: ## GLOBAL ADS SERVER
2124: #if ($website.ads.isAdvertisingEnabled('BOX_SCORES'))
2125: $website.includeAgain("global-adserver-slots?adSlot=box_scores")
2126: #end
|