Page source: |
1: ##COMMON FUNCTIONS
2: #macro (printPdfHeader $title)
3: <div class="stats-fullbox clearfix">
4: <table>
5: <tr>
6: <td class="align-center"><h4>$title</h4></td>
7: </tr>
8: </table>
9: </div>
10: #end
11: ##
12:
13: #if($stats.view != "pdf" )
14: $website.decorate("printer-decorator")
15: #end
16:
17: #set ($sportCode = $document.getRootElement().valueOf("network/@sportCode"))
18: #if ($sportCode == "")
19: #set ($sportCode = $sport)
20: #end
21: #set ($menLacrosseSportCode = 6)
22: #set ($womenLacrosseSportCode = 10)
23:
24: #if ($sportCode == $menLacrosseSportCode)
25: #set ($gender = 'M')
26: #else
27: #set ($gender = 'F')
28: #end
29: #set ($periodRule = $tool.math.toInteger($document.valueOf("lcgame/venue/rules/@prds")))
30:
31: #macro (period $p)
32: #set ($p = $tool.math.toInteger($p))
33: #if($p <= $periodRule)
34:
35: #if ($p == 1)1st
36: #elseif ($p == 2)2nd
37: #elseif ($p == 3)3rd
38: #elseif ($p == 4)4th
39: #end
40: #else
41: #set($ot = $p - $periodRule)
42: #if ($ot > 1)
43: ${ot}OT
44: #else
45: OT
46: #end
47: #end
48:
49: #end
50:
51: #set ($home = $document.valueOf("lcgame/team[@vh='H']/@name"))
52: #set ($visitor = $document.valueOf("lcgame/team[@vh='V']/@name"))
53: #set ($status = $tool.math.toInteger($document.valueOf("lcgame/status/@period")))
54: #set ($clock = $document.valueOf("lcgame/status/@clock"))
55:
56: #set ($periods = $document.numberValueOf("lcgame/team[@vh='V']/linescore/@periods"))
57: #set ($periods = $tool.math.toInteger($periods))
58: #set ($periodRange = [1..$periods])
59:
60: #set ($linkPlayers = $stats.linkPlayers)
61: #set ($linkPlayersBase = $stats.linkPlayersBase)
62: #set ($linkTeams = $stats.linkTeams)
63: #set ($linkTeamsBase = $stats.linkTeamsBase)
64:
65: #set ($shootoutScores = {"V" : 0, "H" : 0})
66: #set ($hasPlayByPlay = $document.selectNodes("lcgame/plays/period").size() > 0)
67: #set ($isNeutralGame = $documnt.valueOf("lcgame/venue/@neutralgame"))
68: #if ($isNeutralGame.length() > 0 && $isNeutralGame.equals("Y"))
69: #set ($isNeutralGame = true)
70: #else
71: #set ($isNeutralGame = false)
72: #end
73:
74: #if ($stats.pageUrl.length() > 0 && !$stats.pageUrl.contains("?"))
75: #set ($paramSep = "?")
76: #else
77: #set ($paramSep = "&")
78: #end
79:
80: #set ($visname = $document.valueOf("lcgame/venue/@visname"))
81: #set ($homename = $document.valueOf("lcgame/venue/@homename"))
82: #set ($visid = $document.valueOf("lcgame/venue/@visid"))
83: #set ($homeid = $document.valueOf("lcgame/venue/@homeid"))
84: #set ($location = $document.valueOf("lcgame/venue/@location"))
85: #set ($stadium = $document.valueOf("lcgame/venue/@stadium"))
86: #set ($date = $document.valueOf("lcgame/venue/@date"))
87: #set ($time = $document.valueOf("lcgame/venue/@start"))
88: #set ($schedNote = $document.valueOf("lcgame/venue/@schednote"))
89:
90: ## SORT GOALIES BY GOALIECHANGES NODE https://prestosports.jira.com/browse/PS-5828
91: #set ($visitorGoaliesOrder = [])
92: #set ($visitorCount = 1)
93:
94: #set ($homeGoaliesOrder = [])
95: #set ($homeCount = 1)
96:
97: #foreach ($node in $document.selectNodes("lcgame/goaliechanges/goaliechange"))
98: #if ($node.attributeValue('vh') == 'V')
99: #if ($!visitorGoaliesOrder.add($node.attributeValue('uni')))#end
100: #set($visitorCount = $visitorCount + 1)
101: #else
102: #if ($!homeGoaliesOrder.add($node.attributeValue('uni')))#end
103: #set($homeCount = $homeCount + 1)
104: #end
105: #end
106:
107: #macro (printPlayerName $node $link)
108: #if ($node.valueOf("../@playerId").length() > 0 && $linkPlayers && $link)
109: <a href="$!linkPlayersBase?id=${stat.valueOf("../@playerId")}">
110: #end
111: $node.valueOf("../@name")
112: #if ($node.valueOf("../@playerId").length() > 0 && $linkPlayers && $link)
113: </a>
114: #end
115: #end
116:
117: #macro (listGoalies $nodes $pos)
118: #foreach ($stat in $nodes)
119: #if ($pos == $stat.valueOf("../@uni") || ! $pos)
120: <div class="row goalies">
121: <div class="toggle clearfix">
122: <div class="data">$!stat.valueOf("../@uni")</div>
123: <div class="name">#printPlayerName($stat, false)</div>
124: #set ($ga = $stat.numberValueOf("@ga"))
125: <div class="data">$!formatter.formatNumber($ga, "#")</div>
126: <div class="data">$!stat.valueOf("@minutes")</div>
127: <div class="data">$!stat.valueOf("@saves")</div>
128: <div class="data">#shots($stat.valueOf("@ga") $stat.valueOf("@saves"))</div>
129: </div>
130: </div>
131: #end
132: #end
133: #end
134:
135: #macro (printGoalies $team)
136: #set ($nodes = $team.selectNodes("player/goalie"))
137: #if ($team.attributeValue('vh') == 'V')
138: #set($order = $visitorGoaliesOrder)
139: #else
140: #set($order = $homeGoaliesOrder)
141: #end
142:
143: #set ($printedUNIS = [])
144:
145: #if ($order.size() > 0)
146: #foreach($uni in $order)
147:
148: #set ($printAllowed = true)
149:
150: #foreach($printedUNI in $printedUNIS)
151: #if ($uni == $printedUNI)
152: #set ($printAllowed = false)
153: #end
154: #end
155:
156: #if ($printAllowed)
157: #listGoalies($nodes, $uni)
158: #set ($addResult = $printedUNIS.add($uni))
159: #end
160: #end
161: #else
162: #listGoalies($nodes, false)
163: #end
164: #end
165:
166: ## GOALIE SHOTS
167: #macro (shots $ga $saves)
168: #if ($saves.length() > 0)
169: $tool.math.add($ga, $saves)
170: #else
171:
172: #end
173: #end
174:
175: ## POWER PLAY PERCENTAGE
176: #macro (pp $ppg $ppopp)
177: #if ($ppopp.length() > 0)
178: $formatter.formatNumber($tool.math.div($ppopp, $ppg), 3)
179: #else
180:
181: #end
182: #end
183:
184: ## SHOOTOUT
185: #macro (shootout $shootouts $t)
186: #foreach ($shot in $shootouts)
187: #if ($shot.valueOf("@vh") == $t)
188: #if ($shot.valueOf("@result") == "MADE")
189: #set ($score = $shootoutScores.get($t))
190: #set ($score = $tool.math.add($score, 1))
191: #set ($score = $shootoutScores.put($t, $score))
192: Goal
193: #else
194: No Goal
195: #end
196: - #${shot.valueOf("@uni")} ${shot.valueOf("@name")}<br />
197: #end ## if
198: #end ## foreach
199: #end
200:
201: #macro (printPeriodHeadCoach)
202: #set ($ot = 0)
203: #foreach ($i in $periodRange)
204: #if ($i > $periodRule)
205: #set ($ot = $ot + 1)
206: #if ($ot > 1)
207: <th style="width:40px;" class="align-left">${ot}OT</th>
208: #else
209: <th style="width:40px;" class="align-left">OT</th>
210: #end
211: #else
212: <th style="width:40px;" class="align-left">$i</th>
213: #end
214: #end
215:
216: #end
217:
218: ## CALCULATE FACEOFF
219: #macro (calculateFaceoff $pVal $period $team)
220: #if ($team.attributeValue("name") == $visitor)
221: #set ($otherTeam = $document.selectSingleNode("lcgame/team[@vh='H']"))
222: #else
223: #set ($otherTeam = $document.selectSingleNode("lcgame/team[@vh='V']"))
224: #end
225: #set($add1 = $team.valueOf("linescore/lineprd[$period]/@fowon"))
226: #set($add2 = $otherTeam.valueOf("linescore/lineprd[$period]/@fowon"))
227: #if ($add1.length() > 0 && $add2.length() > 0)
228: ${pVal}-$tool.math.add($add1, $add2)
229: #end
230: #end
231:
232:
233: #macro (playerstatsCoach $team)
234: <table>
235: <tr><td class="align-left"><h4>$team.valueOf("@name")</h4></td></tr>
236: </table>
237: <table>
238: <tr>
239: <th>POS</th>
240: <th class="align-left">#</th>
241: <th class="align-left">PLAYER</th>
242: <th>G</th>
243: <th>A</th>
244: <th>Pts</th>
245: <th>Sh</th>
246: <th>SOG</th>
247: <th>GB</th>
248: #if ($gender == 'M')<th>Face</th>#elseif ($gender == 'F')<th>DC</th>#end
249: #if ($gender == 'F')<th>FPS</th>#end
250: <th>T/O</th>
251: <th>CT</th>
252: #if ($gender == 'M')<th>Pen-Min</th>#elseif ($gender == 'F')<th>Fouls</th>#end
253: </tr>
254:
255: #foreach ($stat in $team.selectNodes("player/shots"))
256: #if ($velocityCount % 2 == 0)
257: #set ($row = "even")
258: #else
259: #set ($row = "odd")
260: #end
261:
262: <tr class="$row">
263: <td class="align-left">$stat.valueOf("../@pos")</td>
264: <td>$!stat.valueOf("../@uni")</td>
265: <td class="nowrap">
266: #if ($stat.valueOf("../@playerId").length() > 0 and $linkPlayers)
267: <a href="$!linkPlayersBase?id=${stat.valueOf("../@playerId")}">
268: #end
269: $stat.valueOf("../@name")
270: #if ($stat.valueOf("../@playerId").length() > 0 and $linkPlayers)
271: </a>
272: #end
273: #if($stat.valueOf("../@gs").length() > 0)*#end
274: </td>
275:
276: <td class="align-center">$!stat.valueOf("@g")</td>
277: <td class="align-center">$!stat.valueOf("@a")</td>
278: <td class="align-center">$tool.math.add($!stat.valueOf("@g"),$!stat.valueOf("@a"))</td> ## PTS
279: <td class="align-center">$!stat.valueOf("@sh")</td>
280: <td class="align-center">$!stat.valueOf("@sog")</td>
281: <td class="align-center">$!stat.valueOf("../misc/@gb")</td>
282: #if ($gender == 'M')
283: <td class="align-center">$!stat.valueOf("../misc/@facewon")-$!tool.math.add($!stat.valueOf("../misc/@facewon"),$!stat.valueOf("../misc/@facelost"))</td> ## FACEOFFS
284: #elseif ($gender == 'F')
285: <td class="align-center">$!stat.valueOf("../misc/@dc")</td> ## DRAW CONTROLS
286: #end
287: #if ($gender == 'F')<td class="align-center">$!stat.valueOf("../shots/@freepos")</td>#end ## FREE POSITION
288: <td class="align-center">$!stat.valueOf("../misc/@turnover")</td>
289: <td class="align-center">$!stat.valueOf("../misc/@ct")</td>
290: #if ($gender == 'M')
291: <td class="align-center">$!stat.valueOf("../penalty/@count")-$!stat.valueOf("../penalty/@seconds")</td> ## PEN MIN
292: #elseif ($gender == 'F')
293: <td class="align-center">$!stat.valueOf("../penalty/@foul")</td> ## FOULS
294: #end
295: </tr>
296: #end
297: <tr class="totals">
298: <td colspan="3">Totals</td>
299: <td class="align-center">$team.valueOf("totals/shots/@g")</td>
300: <td class="align-center">$team.valueOf("totals/shots/@a")</td>
301: <td class="align-center">$tool.math.add($!team.valueOf("totals/shots/@g"),$!team.valueOf("totals/shots/@a"))</td> ## PTS
302: <td class="align-center">$team.valueOf("totals/shots/@sh")</td>
303: <td class="align-center">$team.valueOf("totals/shots/@sog")</td>
304: <td class="align-center">$team.valueOf("totals/misc/@gb")</td>
305: #if ($gender == 'M')
306: <td class="align-center">$team.valueOf("totals/misc/@facewon")-$!tool.math.add($!team.valueOf("totals/misc/@facewon"),$!team.valueOf("totals/misc/@facelost"))</td> ## FACEOFFS
307: #elseif ($gender == 'F')
308: <td class="align-center">$!team.valueOf("totals/misc/@dc")</td> ## DRAW CONTROLS
309: #end
310: #if ($gender == 'F')<td class="align-center">$!team.valueOf("totals/shots/@freepos")</td>#end ## FREE POSITION
311: <td class="align-center">$team.valueOf("totals/misc/@turnover")</td>
312: <td class="align-center">$team.valueOf("totals/misc/@ct")</td>
313: #if ($gender == 'M')
314: <td class="align-center">$!team.valueOf("totals/penalty/@count")-$!team.valueOf("totals/penalty/@seconds")</td> ## PEN MIN
315: #elseif ($gender == 'F')
316: <td class="align-center">$!team.valueOf("totals/penalty/@foul")</td> ## FOULS
317: #end
318: </tr>
319: </table>
320:
321: #if ($team.selectNodes("player/goalie").size() >= 1)
322: <br />
323: <table>
324: <tr>
325: <th class="align-left">#</th>
326: <th class="align-left">GOALIES</th>
327: <th>Min</th>
328: <th>GA</th>
329: <th>W/L</th>
330: <th>Saves</th>
331: </tr>
332: #foreach ($stat in $team.selectNodes("player/goalie"))
333: #if ($stat.valueOf("@minutes") != "0:00")
334: #if ($velocityCount % 2 == 0)
335: #set ($row = "even")
336: #else
337: #set ($row = "odd")
338: #end
339:
340: <tr class="$row">
341: <td>$!stat.valueOf("../@uni")</td>
342: <td class="nowrap">#printPlayerName($stat, false)</td>
343: #set ($ga = $stat.numberValueOf("@ga"))
344: <td class="align-center">$!stat.valueOf("@minutes")</td>
345: <td class="align-center">$!formatter.formatNumber($ga, "#")</td>
346: #set ($winLoss = " ")
347: #if ($stat.valueOf("@win").length() > 0)
348: #set ($winLoss = "W")
349: #elseif ($stat.valueOf("@loss").length() > 0)
350: #set ($winLoss = "L")
351: #end
352: <td class="align-center">$winLoss</td>
353: <td class="align-center">$!stat.valueOf("@saves")</td>
354: </tr>
355: #end
356: #end
357: </table>
358: #end
359:
360: #end ##macro
361:
362: #macro (capitalize $name)
363: $name.substring(0,1).toUpperCase()$name.substring(1).toLowerCase()
364: #end
365:
366: ## CAPITALIZE NAMES
367: #macro (printScoringName $name)
368: #set ($name = $name.toLowerCase())
369: ##$name[0] <br />
370: ##$name.get(0) <br />
371: ##$name.get(1) <br />
372: #set ($comaIndex = $name.indexOf(','))
373: #set ($comaIndexNext = $comaIndex + 1)
374: #if ($comaIndex > -1)
375: <span>#capitalize($name.substring($comaIndexNext)) #capitalize($name.substring(0, $comaIndex))</span>##
376: #else
377: #capitalize($name)
378: #end
379: #end
380:
381: #macro (printScoring $team)
382: <div class="align-left">
383: $team.valueOf("@name") SCORING: GOALS:
384: #set ($playerShown = false)##
385: #foreach ($stat in $team.selectNodes("player/shots[@g]"))##
386: #if ($stat.numberValueOf("@g") > 0)##
387: #if ($playerShown); #end##
388: #set ($playerShown = true)##
389: #printScoringName($stat.valueOf('../@checkname')) $stat.valueOf('@g')##
390: #end##
391: #end##
392: .
393:
394: <br /> ASSISTS:
395: #set ($playerShown = false)
396: #foreach ($stat in $team.selectNodes("player/shots[@a]"))##
397: #if ($stat.numberValueOf("@a") > 0)##
398: #if ($playerShown); #end##
399: #set ($playerShown = true)##
400: #printScoringName($stat.valueOf('../@checkname')) $stat.valueOf('@a')##
401: #end##
402: #end##
403: .
404: </div>
405: #end ##macro
406:
407: <div class="monostats clearfix">
408:
409: <hr />
410: ## GAME INFORMATION
411: <div class="align-left bold">
412: #if($gender == 'M')Men's #elseif($gender == 'F') Women's #end Lacrosse Box Score #if ($stats.final)(Final)#end <br />
413: #if ($page.title.length() > 0)$!page.title <br />#end
414: $visname #if($isNeutralGame)vs.#else at #end $homename <br />
415: (#if($date.length() > 0)$date #if($time.length() > 0)at $time#end#end #if($location.length() > 0)at $location #if($stadium.length() > 0)($stadium)#end#end)
416: </div>
417: <br />
418:
419: ## SCORING
420: <div class="clearfix">
421: <div class="monostats-halfbox-left">
422: <table>
423: <tr><td valign="top">
424: #foreach ($team in $document.selectNodes("lcgame/team"))
425: #set ($teamRecord = $team.valueOf("@record"))
426: $team.attributeValue("name") #if($teamRecord.length() > 0)($teamRecord)#end
427: #if ($velocityCount == 1)
428: #if($isNeutralGame)vs.#else at #end <br />
429: #end
430: #end
431: #if($date.length() > 0)<br /> Date: $date, #end
432: Attendance: $document.valueOf("lcgame/venue/@attend")
433: </td>
434: </tr></table>
435: </div>
436:
437: ## TEAM SCORES
438: <div class="monostats-halfbox-right">
439: <table>
440: <tr>
441: <th class="align-left" style="padding-right:10px;">SCORE BY PERIOD</th>
442: #printPeriodHeadCoach()
443: <th style="width:40px" class="align-left">#if($stats.final)FINAL#else#period($status)#if($clock.length() > 0) - $clock#end#end</th>
444: </tr>
445: #if ($stats.view != "pdf")
446: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
447: #end
448:
449: #foreach ($team in $document.selectNodes("lcgame/team"))
450: <tr>
451: <td>$team.attributeValue("name")</td>
452: #foreach ($i in $periodRange)
453: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@score")</td>
454: #end
455: <td class="align-left">$team.valueOf("linescore/@score")</td>
456: </tr>
457: #end
458: </table>
459: </div>
460: </div>
461: <br />
462:
463: ## SCORING BY TEAM
464: #if($stats.view == "pdf")
465: <br /><br />
466: #end
467: #printScoring($document.selectSingleNode("lcgame/team[@vh='V']"))
468: <br />
469: #printScoring($document.selectSingleNode("lcgame/team[@vh='H']"))
470: <br />
471:
472: ## TEAM STATS
473: ## SHOTS BY PERIOD
474: <div class="monostats-halfbox-left">
475: <table>
476: <tr>
477: <th class="align-left" style="width:150px">SHOTS BY PERIOD</th>
478: #printPeriodHeadCoach()
479: <th style="width:50px" class="align-left">TOTAL</th>
480: </tr>
481:
482: #if ($stats.view != "pdf")
483: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
484: #end
485:
486: ## TEAM SHOTS
487: #foreach ($team in $document.selectNodes("lcgame/team"))
488: <tr>
489: <td class="nowrap">$team.attributeValue("name")</td>
490: #foreach ($i in $periodRange)
491: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@shots")</td>
492: #end
493: <td class="align-left">$team.valueOf("linescore/@shots")</td>
494: </tr>
495: #end
496: </table>
497: </div>
498: <div class="clear"></div>
499: <br />
500:
501: ## GROUND BALLS
502: <div class="monostats-halfbox-left">
503: <table>
504: <tr>
505: <th class="align-left" style="width:150px">GROUND BALLS BY PRD</th>
506: #printPeriodHeadCoach()
507: <th style="width:50px" class="align-left">TOTAL</th>
508: </tr>
509:
510: #if ($stats.view != "pdf")
511: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
512: #end
513:
514: #foreach ($team in $document.selectNodes("lcgame/team"))
515: <tr>
516: <td class="nowrap">$team.attributeValue("name")</td>
517: #foreach ($i in $periodRange)
518: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@gb")</td>
519: #end
520: <td class="align-left">$team.valueOf("totals/misc/@gb")</td>
521: </tr>
522: #end
523: </table>
524: </div>
525: <div class="clear"></div>
526: <br />
527:
528: #if ($gender == 'M')
529: ## FACE OFFS
530: <div class="monostats-halfbox-left">
531: <table>
532: <tr>
533: <th class="align-left" style="width:150px">FACE-OFFS BY PRD</th>
534: #printPeriodHeadCoach()
535: <th style="width:50px" class="align-left">TOTAL</th>
536: </tr>
537:
538: #if ($stats.view != "pdf")
539: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
540: #end
541:
542: #foreach ($team in $document.selectNodes("lcgame/team"))
543: <tr>
544: <td class="nowrap">$team.attributeValue("name")</td>
545: #foreach ($i in $periodRange)
546: #set ($tfo = $team.valueOf("linescore/lineprd[$i]/@fowon"))
547: <td class="align-left">#calculateFaceoff($tfo $i $team)</td>
548: #end
549: <td class="align-left">$team.valueOf("totals/misc/@facewon")-$tool.math.add($team.valueOf("totals/misc/@facewon"),$team.valueOf("totals/misc/@facelost"))</td>
550: </tr>
551: #end
552: </table>
553: </div>
554: <div class="clear"></div>
555: <br />
556: #elseif ($gender == 'F')
557: <div class="monostats-halfbox-left">
558: <table>
559: <tr>
560: <th class="align-left" style="width:150px">DRAW CONTROLS BY PRD</th>
561: #printPeriodHeadCoach()
562: <th style="width:50px" class="align-left">TOTAL</th>
563: </tr>
564: #if ($stats.view != "pdf")
565: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
566: #end
567: #foreach ($team in $document.selectNodes("lcgame/team"))
568: <tr>
569: <td class="nowrap">$team.attributeValue("name")</td>
570: #foreach ($i in $periodRange)
571: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@dc")</td>
572: #end
573: <td class="align-left">$team.valueOf("totals/misc/@dc")</td>
574: </tr>
575: #end
576: </table>
577: </div>
578: <div class="clear"></div>
579: <br />
580:
581: #end
582:
583: ## CLEARS
584: <div class="monostats-halfbox-left">
585: <table>
586: <tr>
587: <th class="align-left" style="width:150px">CLEARS</th>
588: #printPeriodHeadCoach()
589: <th class="align-left" style="width:50px">TOTAL</th>
590: </tr>
591:
592: #if ($stats.view != "pdf")
593: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
594: #end
595:
596: #foreach ($team in $document.selectNodes("lcgame/team"))
597: <tr>
598: <td class="nowrap">$team.attributeValue("name")</td>
599: #foreach ($i in $periodRange)
600: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@clearm")-$team.valueOf("linescore/lineprd[$i]/@cleara")</td>
601: #end
602: <td class="align-left">$team.valueOf("totals/clear/@clearm")-$team.valueOf("totals/clear/@cleara")</td>
603: </tr>
604: #end
605: </table>
606: </div>
607: <div class="clear"></div>
608: <br />
609:
610: #if ($gender == 'M')
611: ## MAN ADVANTAGE
612: <div class="monostats-halfbox-left">
613: <table>
614: <tr>
615: <th class="align-left" style="width:150px">EXTRA-MAN OPPS</th>
616: #printPeriodHeadCoach()
617: <th>TOTAL</th>
618: </tr>
619:
620: #if ($stats.view != "pdf")
621: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
622: #end
623: #foreach ($team in $document.selectNodes("lcgame/team"))
624: <tr>
625: <td class="nowrap">$team.attributeValue("name")</td>
626: #foreach ($i in $periodRange)
627: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@ppg")-$team.valueOf("linescore/lineprd[$i]/@ppatt")</td>
628: #end
629: <td class="align-left">$team.valueOf("totals/powerplay/@ppg")-$team.valueOf("totals/powerplay/@ppopp")</td>
630: </tr>
631: #end
632: </table>
633: </div>
634: <div class="clear"></div>
635: <br />
636:
637: #elseif ($gender == 'F')
638: ## FREE POSITION SHOTS
639: <div class="monostats-halfbox-left">
640: <table>
641: <tr>
642: <th class="align-left" style="width:150px">FREE-POSITION SHOTS</th>
643: #printPeriodHeadCoach()
644: <th class="align-left" style="width:50px">TOTAL</th>
645: </tr>
646: #if ($stats.view != "pdf")
647: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
648: #end
649: #foreach ($team in $document.selectNodes("lcgame/team"))
650: <tr>
651: <td class="nowrap">$team.attributeValue("name")</td>
652: #foreach ($i in $periodRange)
653: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@fpg")-$team.valueOf("linescore/lineprd[$i]/@fps")</td>
654: #end
655: <td class="align-left">$team.valueOf("totals/goaltype/@freepos")-$team.valueOf("totals/shots/@freepos")</td>
656: </tr>
657: #end
658: </table>
659: </div>
660: <div class="clear"></div>
661: <br />
662: #end
663:
664: ## SAVES
665: <div class="monostats-halfbox-left">
666: <table>
667: <tr>
668: <th class="align-left" style="width:150px">SAVES BY PERIOD</th>
669: #printPeriodHeadCoach()
670: <th style="width:50px" class="align-left">TOTAL</th>
671: </tr>
672: #if ($stats.view != "pdf")
673: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
674: #end
675: #foreach ($team in $document.selectNodes("lcgame/team"))
676: <tr>
677: <td class="nowrap">$team.attributeValue("name")</td>
678: #foreach ($i in $periodRange)
679: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@saves")</td>
680: #end
681: <td class="align-left">$team.valueOf("totals/goalie/@saves")</td>
682: </tr>
683: #end
684: </table>
685: </div>
686: <div class="clear"></div>
687: <br />
688:
689:
690: #if ($gender == 'F')
691: ## FOULS
692: <div class="monostats-halfbox-left">
693: <table>
694: <tr>
695: <th class="align-left" style="width:150px">FOULS BY PRD</th>
696: #printPeriodHeadCoach()
697: <th style="width:50px" class="align-left">TOTAL</th>
698: </tr>
699: #if ($stats.view != "pdf")
700: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
701: #end
702: #foreach ($team in $document.selectNodes("lcgame/team"))
703: <tr>
704: <td class="nowrap">$team.attributeValue("name")</td>
705: #set ($foulTotal = 0)
706: #foreach ($i in $periodRange)
707: #set ($foulVal = $team.valueOf("linescore/lineprd[$i]/@fouls"))
708: #if ($foulVal.length() > 0)
709: #set ($foulTotal = $tool.math.add($foulTotal, $foulVal))
710: <td class="align-left">$foulVal</td>
711: #else
712: <td> </td>
713: #end
714: #end
715: <td class="align-left">$foulTotal</td>
716: </tr>
717: #end
718: </table>
719: </div>
720: <div class="clear"></div>
721: <br />
722: #end
723:
724:
725:
726: ## TURNOVERS
727: <div class="monostats-halfbox-left">
728: <table>
729: <tr>
730: <th class="align-left" style="width:150px">TURNOVERS BY PRD</th>
731: #printPeriodHeadCoach()
732: <th style="width:50px" class="align-left">TOTAL</th>
733: </tr>
734: #if ($stats.view != "pdf")
735: <tr><td colspan="$tool.math.add($periods, 2)" class="hr"> </td></tr>
736: #end
737: #foreach ($team in $document.selectNodes("lcgame/team"))
738: <tr>
739: <td class="nowrap">$team.attributeValue("name")</td>
740: #foreach ($i in $periodRange)
741: <td class="align-left">$team.valueOf("linescore/lineprd[$i]/@turnover")</td>
742: #end
743: <td class="align-left">$team.valueOf("totals/misc/@turnover")</td>
744: </tr>
745: #end
746: </table>
747: </div>
748: <div class="clear"></div>
749: <br />
750:
751: #if($stats.view == "pdf")
752: </div>
753: <p class="pagebreak"> </p>
754: #printPdfHeader("Visitor Individual Statistics")
755: <div class="monostats clearfix">
756: #else
757: <span class="pagebreak"></span>
758: #end
759:
760: ## VISITOR STATISTICS
761: <div class="monostats-fullbox">#playerstatsCoach($document.selectSingleNode("lcgame/team[@vh='V']"))</div>
762: <br />
763: #if($stats.view == "pdf")
764: </div>
765: <p class="pagebreak"> </p>
766: #printPdfHeader("Home Individual Statistics")
767: <div class="monostats clearfix">
768: #end
769: ## HOME STATISTICS
770: <div class="monostats-fullbox">#playerstatsCoach($document.selectSingleNode("lcgame/team[@vh='H']"))</div>
771:
772: #if($stats.view == "pdf")
773: </div>
774: <p class="pagebreak"> </p>
775: #printPdfHeader("Scoring/Penalty Summary")
776: <div class="monostats clearfix">
777: #else
778: <span class="pagebreak"></span>
779: #end
780:
781: ## SCORING SUMMARY
782: <div class="monostats-fullbox clearfix">
783: <table style="width:100%">
784: <tr><th #if($hasPlayByPlay)colspan="8"#else colspan="7"
785: #end class="align-left">SCORING
786: SUMMARY</th></tr>
787: <tr>
788: <th> </th>
789: <th class="align-left">Prd</th>
790: <th class="align-left">Time</th>
791: <th class="align-left">Team</th>
792: <th class="align-left">Type</th>
793: <th class="align-left" style="width:30%">Goal Scorer</th>
794: <th class="align-left" style="width:30%">Assists</th>
795: #if ($hasPlayByPlay)
796: <th class="align-left">H-V</th>
797: #end
798: </tr>
799:
800: ## #foreach ($pd in $periodRange)
801: ## #set ($shownStats = "")
802:
803: ## <th class="align-center">-- <span class="bold">#period($pd)</span> -- </th>
804: ## #if ($hasPlayByPlay)
805: ## <td class="align-center"><span class="bold">$visitor</span></td>
806: ## <td class="align-center"><span class="bold">$home</span></td>
807: ## #end
808:
809: #set ($currentPeriod = '')
810: #set ($currentscoreNodes = $document.selectNodes("//currentscore"))
811: #foreach ($score in $document.selectNodes("lcgame/scores/score"))
812: #set ($pd = $score.valueOf("@prd"))
813: #set ($shownStats = "y")
814: #set ($type = $score.valueOf("@type"))
815:
816: <tr>
817: <td>$velocityCount.</td>
818: <td>#if ($currentPeriod != $pd) #period($pd) #set ($currentPeriod = $pd) #else   #end</td>
819: <td>$score.valueOf("@time")</td>
820: <td>
821: #if($score.valueOf("@vh") == 'H') $homeid #end
822: #if($score.valueOf("@vh") == 'V') $visid #end
823: </td>
824:
825: ## TYPE
826: <td>
827: #if ($type == 'PP')
828: UP
829: #elseif ($type == 'SH')
830: DN
831: #else
832: $!type
833: #end
834: </td>
835: <td>
836: #if ($score.valueOf("@playerId").length() > 0 and $linkPlayers)
837: <a href="$!linkPlayersBase?id=${score.valueOf("@playerId")}">
838: #end
839: $score.valueOf("@name")
840: #if ($score.valueOf("@playerId").length() > 0 and $linkPlayers)
841: </a>
842: #end
843: </td>
844: <td>
845: #if($score.valueOf("@assist1").length() > 0)
846: #if ($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)
847: <a href="$!linkPlayersBase?id=${score.valueOf("@assist1Id")}">
848: #end
849: $score.valueOf("@assist1")
850: #if ($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)
851: </a>
852: #end
853: #else
854: #if ($hasPlayByPlay && $gender == 'F')
855: #set ($scoreTime = $score.valueOf("@time"))
856: #set ($fpsFlag = false)
857:
858: #foreach ($fpsNode in $document.selectNodes("//play[@action='FPS']"))
859: #if ($fpsNode.valueOf("@clock") == $scoreTime)
860: #set ($fpsFlag = true)
861: #end
862: #end
863:
864: #if ($fpsFlag)
865: Free position shot
866: #else
867: unassisted
868: #end
869: #else
870: unassisted
871: #end
872: #end
873: #if($score.valueOf("@assist2").length() > 0)
874: &
875: #if ($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)
876: <a href="$!linkPlayersBase?id=${score.valueOf("@assist2Id")}">
877: #end
878: $score.valueOf("@assist2")
879: #if ($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)
880: </a>
881: #end
882: #end
883: </td>
884: #if ($hasPlayByPlay && $currentscoreNodes.size() >($tool.math.sub($velocityCount, 1)))
885: #set ($currentScore = $currentscoreNodes.get($tool.math.sub($velocityCount, 1)))
886: <td>$currentScore.valueOf("@hscore")-$currentScore.valueOf("@vscore")</td>
887: #end
888: </tr>
889: #end ## scoring foreach
890:
891: #if ($shownStats == "") <tr><td #if($hasPlayByPlay)colspan="8"#else colspan="7"#end class="align-center">(no scoring)</td></tr> #end
892:
893: ## #end ## period range
894: </table>
895: </div>
896:
897:
898: ## PENALTY SUMMARY
899: <div class="monostats-fullbox clearfix">
900: <table style="width:100%">
901: <tr><th colspan="6" class="align-left">PENALTY SUMMARY</th></tr>
902: ###foreach ($pd in $periodRange)
903: ## #set ($shownStats = "")
904: ## <tr class="stats-highlight"><td colspan="4" class="align-center">-- <span class="bold">#period($pd)</span> -- </td></tr>
905:
906: <tr>
907: <th class="align-left">Prd</th>
908: <th class="align-left">Time</th>
909: <th class="align-left">Team</th>
910: <th class="align-left" style="width:30%">#-Player</th>
911: <th class="align-left">Min</th>
912: <th class="align-left" style="width:30%">Offence</th>
913: </tr>
914:
915: #foreach ($penalty in $document.selectNodes("lcgame/penalties/pen"))
916: #set ($shownStats = "y")
917: <tr>
918: <td>#period($penalty.valueOf("@prd"))</td>
919: <td>$penalty.valueOf("@time")</td>
920: <td>
921: #if($penalty.valueOf("@vh") == 'H') $homeid #end
922: #if($penalty.valueOf("@vh") == 'V') $visid #end
923: </td>
924: <td>
925: ##$penalty.valueOf("@../uni")-
926: $penalty.valueOf("@name")
927: </td>
928: <td>
929: $!penalty.valueOf("@minutes") $!penalty.valueOf("@type")
930: ## #if ($penalty.valueOf("@type") == 'PP')PP#end
931: ## #if ($penalty.valueOf("@type") == 'SH')SH#end
932: </td>
933: <td>
934: $!penalty.valueOf("@desc")
935: </td></tr>
936: #end ## penalty foreach
937:
938: #if ($shownStats == "")
939: <tr><td colspan="6" class="align-center">(no penalties)</td></tr>
940: #end
941:
942: #if ($gender == 'M')
943: ## penalty minutes
944: ## MEN ONLY
945: <tr><th colspan="6" class="align-left"><br /> PENALTY TOTALS</th></tr>
946: <tr>
947: <td colspan="6">
948:
949: <table>
950: <tr>
951: #foreach ($team in $document.selectNodes("lcgame/team"))
952: #set ($penaltySeconds = $team.valueOf("totals/penalty/@seconds"))
953: #set ($penaltyCount = $team.valueOf("totals/penalty/@count"))
954: #if ($penaltySeconds.length() > 0 && $penaltyCount.length() > 0)
955: #set ($penaltySeconds = $tool.math.toInteger($penaltySeconds))
956: #set ($remainder = 0)
957: #set ($remainder = $penaltySeconds % 60)
958: #set ($penaltyMinutes = $tool.math.toInteger($tool.math.div($penaltySeconds, 60)))
959: #if ($penaltyMinutes > 1)
960: #set ($minString = "${penaltyMinutes} minutes")
961: #else
962: #set ($minString = "${penaltyMinutes} minute")
963: #end
964: #set ($secString = "")
965: #if ($remainder > 0)
966: #if ($remainder > 1)
967: #set ($secString = "${remainder} seconds")
968: #else
969: #set ($secString = "${remainder} second")
970: #end
971: #end
972: <td><span class="bold">$team.attributeValue("name")</span>: $minString $secString on $penaltyCount infraction(s)</td>
973: #else
974: <td> </td>
975: #end
976: #end
977: </tr>
978: </table>
979:
980: </td>
981: </tr>
982: #end
983: </table>
984: </div>
985: </div>
986:
987: #if($stats.view != "pdf" )
988: $wiki.su
989: #end
|