3/20/2024 at 7:00 PM — Bethlehem, Pa. (John Makuvek Field)
Attendance: 237 • Records: DeSales University (4-4) • Moravian University (3-4)
| Team | 1 | 2 | 3 | 4 | Final |
|---|---|---|---|---|---|
| DeSales University | 6 | 2 | 3 | 3 | 14 |
| Moravian University | 2 | 2 | 2 | 3 | 9 |
| There was a problem with a Velocity script | |
| Page | sports/mlax/2023-24/boxscores/lcxml-monospace-template |
| Error | Invocation of method 'substring' in class java.lang.String threw exception java.lang.StringIndexOutOfBoundsException: String index out of range: 1 at u0aa111by51s7w5ssports/mlax/2023-24/boxscores/lcxml-monospace-template[line 158, column 11] |
| Page source: |
1: ## LACROSSE BOX SCORE
2:
3: ## Resolve the view: start from $stats.view, allow URL param override for 'pdf'
4: #set ($view = $stats.view)
5: #set ($viewParam = $request.getParameter("view"))
6: #if ($viewParam == 'pdf')
7: #set ($view = $viewParam)
8: #end
9:
10: #if ($view != "pdf")
11: $website.decorate("printer-decorator")
12: #end
13:
14: ## ============================================================
15: ## VARIABLES
16: ## ============================================================
17:
18: #set ($sportCode = $document.getRootElement().valueOf("network/@sportCode"))
19: #if ($sportCode == "")
20: #set ($sportCode = $sport)
21: #end
22: #set ($menLacrosseSportCode = 6)
23: #set ($womenLacrosseSportCode = 10)
24:
25: #if ($sportCode == $menLacrosseSportCode)
26: #set ($gender = 'M')
27: #else
28: #set ($gender = 'F')
29: #end
30:
31: #set ($periodRule = $tool.math.toInteger($document.valueOf("lcgame/venue/rules/@prds")))
32:
33: #set ($home = $document.valueOf("lcgame/team[@vh='H']/@name"))
34: #set ($visitor = $document.valueOf("lcgame/team[@vh='V']/@name"))
35: #set ($status = $tool.math.toInteger($document.valueOf("lcgame/status/@period")))
36: #set ($clock = $document.valueOf("lcgame/status/@clock"))
37:
38: #set ($periods = $document.numberValueOf("lcgame/team[@vh='V']/linescore/@periods"))
39: #set ($periods = $tool.math.toInteger($periods))
40: #set ($periodRange = [1..$periods])
41:
42: #set ($linkPlayers = $stats.linkPlayers)
43: #set ($linkPlayersBase = $stats.linkPlayersBase)
44: #set ($linkTeams = $stats.linkTeams)
45: #set ($linkTeamsBase = $stats.linkTeamsBase)
46:
47: #set ($shootoutScores = {"V" : 0, "H" : 0})
48: #set ($hasPlayByPlay = $document.selectNodes("lcgame/plays/period").size() > 0)
49:
50: #set ($isNeutralGame = $document.valueOf("lcgame/venue/@neutralgame"))
51: #if ($isNeutralGame.length() > 0 && $isNeutralGame.equals("Y"))
52: #set ($isNeutralGame = true)
53: #else
54: #set ($isNeutralGame = false)
55: #end
56:
57: #if ($stats.pageUrl.length() > 0 && !$stats.pageUrl.contains("?"))
58: #set ($paramSep = "?")
59: #else
60: #set ($paramSep = "&")
61: #end
62:
63: #set ($visname = $document.valueOf("lcgame/venue/@visname"))
64: #set ($homename = $document.valueOf("lcgame/venue/@homename"))
65: #set ($visid = $document.valueOf("lcgame/venue/@visid"))
66: #set ($homeid = $document.valueOf("lcgame/venue/@homeid"))
67: #set ($location = $document.valueOf("lcgame/venue/@location"))
68: #set ($stadium = $document.valueOf("lcgame/venue/@stadium"))
69: #set ($date = $document.valueOf("lcgame/venue/@date"))
70: #set ($time = $document.valueOf("lcgame/venue/@start"))
71: #set ($attend = $document.valueOf("lcgame/venue/@attend"))
72: #set ($schedNote = $document.valueOf("lcgame/venue/@schednote"))
73:
74: ## SORT GOALIES BY GOALIECHANGES NODE
75: #set ($visitorGoaliesOrder = [])
76: #set ($homeGoaliesOrder = [])
77:
78: #foreach ($node in $document.selectNodes("lcgame/goaliechanges/goaliechange"))
79: #if ($node.attributeValue('vh') == 'V')
80: #if ($!visitorGoaliesOrder.add($node.attributeValue('uni')))#end
81: #else
82: #if ($!homeGoaliesOrder.add($node.attributeValue('uni')))#end
83: #end
84: #end
85:
86: ## ============================================================
87: ## MACROS
88: ## ============================================================
89:
90: #macro (period $p)
91: #set ($p = $tool.math.toInteger($p))
92: #if ($p <= $periodRule)
93: #if ($p == 1)1st
94: #elseif ($p == 2)2nd
95: #elseif ($p == 3)3rd
96: #elseif ($p == 4)4th
97: #end
98: #else
99: #set ($ot = $p - $periodRule)
100: #if ($ot > 1)${ot}OT#else OT#end
101: #end
102: #end
103:
104: #macro (printPeriodHeadCoach)
105: #set ($ot = 0)
106: #foreach ($i in $periodRange)
107: #if (($gender == 'M' && $i > 4) || ($gender == 'F' && $i > 2))
108: #set ($ot = $ot + 1)
109: #if ($ot > 1)<th>${ot}OT</th>#else<th>OT</th>#end
110: #else
111: <th>$i</th>
112: #end
113: #end
114: #end
115:
116: #macro (shots $ga $saves)
117: #if ($saves.length() > 0)
118: $tool.math.add($ga, $saves)
119: #end
120: #end
121:
122: #macro (pp $ppg $ppopp)
123: #if ($ppopp.length() > 0)
124: $formatter.formatNumber($tool.math.div($ppopp, $ppg), 3)
125: #end
126: #end
127:
128: #macro (shootout $shootouts $t)
129: #foreach ($shot in $shootouts)
130: #if ($shot.valueOf("@vh") == $t)
131: #if ($shot.valueOf("@result") == "MADE")
132: #set ($score = $shootoutScores.get($t))
133: #set ($score = $tool.math.add($score, 1))
134: #set ($score = $shootoutScores.put($t, $score))
135: Goal
136: #else
137: No Goal
138: #end
139: - #${shot.valueOf("@uni")} ${shot.valueOf("@name")}<br />
140: #end
141: #end
142: #end
143:
144: #macro (calculateFaceoff $pVal $period $team)
145: #if ($team.attributeValue("name") == $visitor)
146: #set ($otherTeam = $document.selectSingleNode("lcgame/team[@vh='H']"))
147: #else
148: #set ($otherTeam = $document.selectSingleNode("lcgame/team[@vh='V']"))
149: #end
150: #set ($add1 = $team.valueOf("linescore/lineprd[$period]/@fowon"))
151: #set ($add2 = $otherTeam.valueOf("linescore/lineprd[$period]/@fowon"))
152: #if ($add1.length() > 0 && $add2.length() > 0)
153: ${pVal}-$tool.math.add($add1, $add2)
154: #end
155: #end
156:
157: #macro (capitalize $name)
158: $name.substring(0,1).toUpperCase()$name.substring(1).toLowerCase()
159: #end
160:
161: #macro (printScoringName $name)
162: #set ($name = $name.toLowerCase())
163: #set ($comaIndex = $name.indexOf(','))
164: #set ($comaIndexNext = $comaIndex + 1)
165: #if ($comaIndex > -1)
166: #capitalize($name.substring($comaIndexNext)) #capitalize($name.substring(0, $comaIndex))
167: #else
168: #capitalize($name)
169: #end
170: #end
171:
172: #macro (printScoring $team)
173: <strong>$team.valueOf("@name") — Goals:</strong>
174: #set ($playerShown = false)
175: #foreach ($stat in $team.selectNodes("player/shots[@g]"))
176: #if ($stat.numberValueOf("@g") > 0)
177: #if ($playerShown); #end
178: #set ($playerShown = true)
179: #printScoringName($stat.valueOf('../@checkname')) $stat.valueOf('@g')
180: #end
181: #end
182: .
183: <strong>Assists:</strong>
184: #set ($playerShown = false)
185: #foreach ($stat in $team.selectNodes("player/shots[@a]"))
186: #if ($stat.numberValueOf("@a") > 0)
187: #if ($playerShown); #end
188: #set ($playerShown = true)
189: #printScoringName($stat.valueOf('../@checkname')) $stat.valueOf('@a')
190: #end
191: #end
192: .
193: #end
194:
195: ## PLAYER STATS TABLE
196: #macro (playerstatsCoach $team)
197: <table>
198: <thead>
199: <tr>
200: <th class="align-left">POS</th>
201: <th class="align-left col-num">#</th>
202: <th class="align-left">Player</th>
203: <th>G</th>
204: <th>A</th>
205: <th>Pts</th>
206: <th>Sh</th>
207: <th>SOG</th>
208: <th>GB</th>
209: #if ($gender == 'M')<th>Face</th>#elseif ($gender == 'F')<th>DC</th>#end
210: #if ($gender == 'F')<th>FPS</th>#end
211: <th>T/O</th>
212: <th>CT</th>
213: #if ($gender == 'M')<th>Pen-Min</th>#elseif ($gender == 'F')<th>Fouls</th>#end
214: </tr>
215: </thead>
216: <tbody>
217: #foreach ($stat in $team.selectNodes("player/shots"))
218: #if ($velocityCount % 2 == 0)
219: #set ($row = "even")
220: #else
221: #set ($row = "odd")
222: #end
223: <tr class="$row">
224: <td class="align-left">$stat.valueOf("../@pos")</td>
225: <td>$!stat.valueOf("../@uni")</td>
226: <td class="align-left">
227: #if($stat.valueOf("../@playerId").length() > 0 and $linkPlayers)
228: <a href="$!linkPlayersBase?id=${stat.valueOf("../@playerId")}">
229: #end
230: $stat.valueOf("../@name")
231: #if($stat.valueOf("../@playerId").length() > 0 and $linkPlayers)</a>#end
232: #if($stat.valueOf("../@gs").length() > 0)*#end
233: </td>
234: <td>$!stat.valueOf("@g")</td>
235: <td>$!stat.valueOf("@a")</td>
236: <td>$tool.math.add($!stat.valueOf("@g"), $!stat.valueOf("@a"))</td>
237: <td>$!stat.valueOf("@sh")</td>
238: <td>$!stat.valueOf("@sog")</td>
239: <td>$!stat.valueOf("../misc/@gb")</td>
240: #if ($gender == 'M')<td>$!stat.valueOf("../misc/@facewon")-$!tool.math.add($!stat.valueOf("../misc/@facewon"), $!stat.valueOf("../misc/@facelost"))</td>
241: #elseif ($gender == 'F')<td>$!stat.valueOf("../misc/@dc")</td>#end
242: #if ($gender == 'F')<td>$!stat.valueOf("../shots/@freepos")</td>#end
243: <td>$!stat.valueOf("../misc/@turnover")</td>
244: <td>$!stat.valueOf("../misc/@ct")</td>
245: #if ($gender == 'M')<td>$!stat.valueOf("../penalty/@count")-$!stat.valueOf("../penalty/@seconds")</td>
246: #elseif ($gender == 'F')<td>$!stat.valueOf("../penalty/@foul")</td>#end
247: </tr>
248: #end
249: <tr class="totals">
250: <td colspan="3" class="align-left">Totals</td>
251: <td>$team.valueOf("totals/shots/@g")</td>
252: <td>$team.valueOf("totals/shots/@a")</td>
253: <td>$tool.math.add($!team.valueOf("totals/shots/@g"), $!team.valueOf("totals/shots/@a"))</td>
254: <td>$team.valueOf("totals/shots/@sh")</td>
255: <td>$team.valueOf("totals/shots/@sog")</td>
256: <td>$team.valueOf("totals/misc/@gb")</td>
257: #if ($gender == 'M')<td>$team.valueOf("totals/misc/@facewon")-$!tool.math.add($!team.valueOf("totals/misc/@facewon"), $!team.valueOf("totals/misc/@facelost"))</td>
258: #elseif ($gender == 'F')<td>$!team.valueOf("totals/misc/@dc")</td>#end
259: #if ($gender == 'F')<td>$!team.valueOf("totals/shots/@freepos")</td>#end
260: <td>$team.valueOf("totals/misc/@turnover")</td>
261: <td>$team.valueOf("totals/misc/@ct")</td>
262: #if ($gender == 'M')<td>$!team.valueOf("totals/penalty/@count")-$!team.valueOf("totals/penalty/@seconds")</td>
263: #elseif ($gender == 'F')<td>$!team.valueOf("totals/penalty/@foul")</td>#end
264: </tr>
265: </tbody>
266: </table>
267:
268: #if ($team.selectNodes("player/goalie").size() >= 1)
269: <table>
270: <thead>
271: <tr>
272: <th class="align-left col-num">#</th>
273: <th class="align-left">Goalies</th>
274: <th>Min</th>
275: <th>GA</th>
276: <th>W/L</th>
277: <th>Saves</th>
278: </tr>
279: </thead>
280: <tbody>
281: #foreach ($stat in $team.selectNodes("player/goalie"))
282: #if ($stat.valueOf("@minutes") != "0:00")
283: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
284: #set ($ga = $stat.numberValueOf("@ga"))
285: #set ($winLoss = " ")
286: #if($stat.valueOf("@win").length() > 0)#set ($winLoss = "W")
287: #elseif($stat.valueOf("@loss").length() > 0)#set ($winLoss = "L")
288: #end
289: <tr class="$row">
290: <td class="align-left">$!stat.valueOf("../@uni")</td>
291: <td class="align-left">$stat.valueOf("../@name")</td>
292: <td>$!stat.valueOf("@minutes")</td>
293: <td>$!formatter.formatNumber($ga, "#")</td>
294: <td>$winLoss</td>
295: <td>$!stat.valueOf("@saves")</td>
296: </tr>
297: #end
298: #end
299: </tbody>
300: </table>
301: #end
302: #end ##macro
303:
304: ## TEAM STAT PERIOD TABLE
305: #macro (teamStatPeriodTable $title $xpath $total)
306: <table class="period-stat-table">
307: <thead>
308: <tr>
309: <th class="align-left">$title</th>
310: #printPeriodHeadCoach()
311: <th>Total</th>
312: </tr>
313: </thead>
314: <tbody>
315: #foreach ($team in $document.selectNodes("lcgame/team"))
316: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
317: <tr class="$row">
318: <td class="align-left">$team.attributeValue("name")</td>
319: #foreach ($i in $periodRange)
320: <td>$team.valueOf("linescore/lineprd[$i]/$xpath")</td>
321: #end
322: <td>$team.valueOf($total)</td>
323: </tr>
324: #end
325: </tbody>
326: </table>
327: #end
328:
329: ## ============================================================
330: ## PAGE OUTPUT
331: ## ============================================================
332:
333: <head>
334: <title>$visname #if($isNeutralGame)vs.#else at #end $homename | #if($gender == 'M')Men's#else Women's#end Lacrosse Box Score#if($date.length() > 0) | $date#end</title>
335: <link rel="stylesheet" href="https://theme-assets.prestosports.com/theme-assets/generic/assets/css/xml-monospace.css">
336: </head>
337:
338: <div class="mono-print-page clearfix">
339:
340: #set ($visitorTeamId = $document.valueOf("lcgame/team[@vh='V']/@teamId"))
341: #set ($homeTeamId = $document.valueOf("lcgame/team[@vh='H']/@teamId"))
342:
343: <!-- PAGE HEADER -->
344: <div class="mono-print-header">
345: <div class="mono-header-inner">
346: <div class="mono-header-logo">
347: #if ($visitorTeamId.length() > 0)
348: <div class="mono-team-logo" style="background-image: url('$website.teamLogo($!visitorTeamId)')" role="img" aria-label="$visname"></div>
349: #end
350: </div>
351: <div class="mono-header-center">
352: <div class="mono-pre-header">Official #if($gender == 'M')Men's#elseif($gender == 'F')Women's#end Lacrosse Box Score</div>
353: <h1>$visname vs. $homename</h1>
354: <p class="game-info game-info-primary">
355: $date#if($time.length() > 0) at $time#end#if($location.length() > 0) — $location#if($stadium.length() > 0) ($stadium)#end#end
356: </p>
357: #set ($hasRecords = false)
358: #foreach ($team in $document.selectNodes("lcgame/team"))
359: #if ($team.valueOf("@record").length() > 0)#set ($hasRecords = true)#end
360: #end
361: #set ($sep = "")
362: <p class="game-info">
363: #if ($schedNote.length() > 0)${sep}$schedNote#set ($sep = " • ")#end
364: #if ($attend.length() > 0)${sep}<span class="game-info-item"><strong>Attendance:</strong> $attend</span>#set ($sep = " • ")#end
365: #if ($hasRecords)${sep}<span class="game-info-item"><strong>Records:</strong> #set ($recSep = "")#foreach ($team in $document.selectNodes("lcgame/team"))#if ($team.valueOf("@record").length() > 0)${recSep}$team.attributeValue("name") ($team.valueOf("@record"))#set ($recSep = " • ")#end#end</span>#set ($sep = " • ")#end
366: </p>
367: </div>
368: <div class="mono-header-logo">
369: #if ($homeTeamId.length() > 0)
370: <div class="mono-team-logo" style="background-image: url('$website.teamLogo($!homeTeamId)')" role="img" aria-label="$homename"></div>
371: #end
372: </div>
373: </div>
374: </div>
375:
376: <!-- CONTENT -->
377: <div class="mono-print-content">
378:
379: <!-- SCORE BY PERIOD -->
380: <div class="mono-score-wrap">
381: <div class="mono-section-label">Score by Period</div>
382: <table class="period-stat-table">
383: <thead>
384: <tr>
385: <th class="align-left">Team</th>
386: #printPeriodHeadCoach()
387: <th>#if($stats.final)Final#else#period($status)#if($clock.length() > 0) $clock#end#end</th>
388: </tr>
389: </thead>
390: <tbody>
391: #foreach ($team in $document.selectNodes("lcgame/team"))
392: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
393: <tr class="$row">
394: <td class="align-left">$team.attributeValue("name")</td>
395: #foreach ($i in $periodRange)
396: <td>$team.valueOf("linescore/lineprd[$i]/@score")</td>
397: #end
398: <td>$team.valueOf("linescore/@score")</td>
399: </tr>
400: #end
401: </tbody>
402: </table>
403: </div>
404:
405: <!-- SCORING BY TEAM -->
406: <div class="mono-section-label">Scoring</div>
407: <div class="mono-summary">
408: #printScoring($document.selectSingleNode("lcgame/team[@vh='V']"))
409: <br />
410: #printScoring($document.selectSingleNode("lcgame/team[@vh='H']"))
411: </div>
412:
413: <!-- TEAM STATISTICS BY PERIOD -->
414: <div class="mono-section-label">Team Statistics</div>
415:
416: <!-- ROW 1: SHOTS + GROUND BALLS -->
417: <div class="mono-halfbox-left">
418: #teamStatPeriodTable("Shots by Period", "@shots", "linescore/@shots")
419: </div>
420: <div class="mono-halfbox-right">
421: #teamStatPeriodTable("Ground Balls by Prd", "@gb", "totals/misc/@gb")
422: </div>
423: <div class="clear"></div>
424:
425: <!-- ROW 2: FACE-OFFS (M) / DRAW CONTROLS (F) + CLEARS -->
426: #if ($gender == 'M')
427: <div class="mono-halfbox-left">
428: <table class="period-stat-table">
429: <thead>
430: <tr>
431: <th class="align-left">Face-offs by Prd</th>
432: #printPeriodHeadCoach()
433: <th>Total</th>
434: </tr>
435: </thead>
436: <tbody>
437: #foreach ($team in $document.selectNodes("lcgame/team"))
438: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
439: <tr class="$row">
440: <td class="align-left">$team.attributeValue("name")</td>
441: #foreach ($i in $periodRange)
442: #set ($tfo = $team.valueOf("linescore/lineprd[$i]/@fowon"))
443: <td>#calculateFaceoff($tfo $i $team)</td>
444: #end
445: <td>$team.valueOf("totals/misc/@facewon")-$tool.math.add($team.valueOf("totals/misc/@facewon"), $team.valueOf("totals/misc/@facelost"))</td>
446: </tr>
447: #end
448: </tbody>
449: </table>
450: </div>
451: #elseif ($gender == 'F')
452: <div class="mono-halfbox-left">
453: #teamStatPeriodTable("Draw Controls by Prd", "@dc", "totals/misc/@dc")
454: </div>
455: #end
456: <div class="mono-halfbox-right">
457: <table class="period-stat-table">
458: <thead>
459: <tr>
460: <th class="align-left">Clears</th>
461: #printPeriodHeadCoach()
462: <th>Total</th>
463: </tr>
464: </thead>
465: <tbody>
466: #foreach ($team in $document.selectNodes("lcgame/team"))
467: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
468: <tr class="$row">
469: <td class="align-left">$team.attributeValue("name")</td>
470: #foreach ($i in $periodRange)
471: <td>$team.valueOf("linescore/lineprd[$i]/@clearm")-$team.valueOf("linescore/lineprd[$i]/@cleara")</td>
472: #end
473: <td>$team.valueOf("totals/clear/@clearm")-$team.valueOf("totals/clear/@cleara")</td>
474: </tr>
475: #end
476: </tbody>
477: </table>
478: </div>
479: <div class="clear"></div>
480:
481: <!-- ROW 3: EXTRA-MAN (M) / FREE POSITION SHOTS (F) + SAVES -->
482: #if ($gender == 'M')
483: <div class="mono-halfbox-left">
484: <table class="period-stat-table">
485: <thead>
486: <tr>
487: <th class="align-left">Extra-Man Opps</th>
488: #printPeriodHeadCoach()
489: <th>Total</th>
490: </tr>
491: </thead>
492: <tbody>
493: #foreach ($team in $document.selectNodes("lcgame/team"))
494: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
495: <tr class="$row">
496: <td class="align-left">$team.attributeValue("name")</td>
497: #foreach ($i in $periodRange)
498: <td>$team.valueOf("linescore/lineprd[$i]/@ppg")-$team.valueOf("linescore/lineprd[$i]/@ppatt")</td>
499: #end
500: <td>$team.valueOf("totals/powerplay/@ppg")-$team.valueOf("totals/powerplay/@ppopp")</td>
501: </tr>
502: #end
503: </tbody>
504: </table>
505: </div>
506: #elseif ($gender == 'F')
507: <div class="mono-halfbox-left">
508: <table class="period-stat-table">
509: <thead>
510: <tr>
511: <th class="align-left">Free Position Shots</th>
512: #printPeriodHeadCoach()
513: <th>Total</th>
514: </tr>
515: </thead>
516: <tbody>
517: #foreach ($team in $document.selectNodes("lcgame/team"))
518: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
519: <tr class="$row">
520: <td class="align-left">$team.attributeValue("name")</td>
521: #foreach ($i in $periodRange)
522: <td>$team.valueOf("linescore/lineprd[$i]/@fpg")-$team.valueOf("linescore/lineprd[$i]/@fps")</td>
523: #end
524: <td>$team.valueOf("totals/goaltype/@freepos")-$team.valueOf("totals/shots/@freepos")</td>
525: </tr>
526: #end
527: </tbody>
528: </table>
529: </div>
530: #end
531: <div class="mono-halfbox-right">
532: #teamStatPeriodTable("Saves by Period", "@saves", "totals/goalie/@saves")
533: </div>
534: <div class="clear"></div>
535:
536: <!-- ROW 4: FOULS (F) + TURNOVERS / TURNOVERS only (M) -->
537: #if ($gender == 'F')
538: <div class="mono-halfbox-left">
539: <table class="period-stat-table">
540: <thead>
541: <tr>
542: <th class="align-left">Fouls by Prd</th>
543: #printPeriodHeadCoach()
544: <th>Total</th>
545: </tr>
546: </thead>
547: <tbody>
548: #foreach ($team in $document.selectNodes("lcgame/team"))
549: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
550: #set ($foulTotal = 0)
551: <tr class="$row">
552: <td class="align-left">$team.attributeValue("name")</td>
553: #foreach ($i in $periodRange)
554: #set ($foulVal = $team.valueOf("linescore/lineprd[$i]/@fouls"))
555: #if ($foulVal.length() > 0)
556: #set ($foulTotal = $tool.math.add($foulTotal, $foulVal))
557: <td>$foulVal</td>
558: #else
559: <td></td>
560: #end
561: #end
562: <td>$foulTotal</td>
563: </tr>
564: #end
565: </tbody>
566: </table>
567: </div>
568: <div class="mono-halfbox-right">
569: #teamStatPeriodTable("Turnovers by Prd", "@turnover", "totals/misc/@turnover")
570: </div>
571: <div class="clear"></div>
572: #else
573: <div class="mono-halfbox-left">
574: #teamStatPeriodTable("Turnovers by Prd", "@turnover", "totals/misc/@turnover")
575: </div>
576: <div class="clear"></div>
577: #end
578:
579: <!-- SCORING SUMMARY -->
580: <div class="mono-section-label">Scoring Summary</div>
581: <div class="mono-fullbox">
582: <table>
583: <thead>
584: <tr>
585: <th class="align-left"></th>
586: <th class="align-left">Prd</th>
587: <th class="align-left">Time</th>
588: <th class="align-left">Team</th>
589: <th class="align-left">Type</th>
590: <th class="align-left">Goal Scorer</th>
591: <th class="align-left">Assists</th>
592: #if ($hasPlayByPlay)<th class="align-left">H-V</th>#end
593: </tr>
594: </thead>
595: <tbody>
596: #set ($currentPeriod = '')
597: #set ($currentscoreNodes = $document.selectNodes("//currentscore"))
598: #set ($shownStats = "")
599: #foreach ($score in $document.selectNodes("lcgame/scores/score"))
600: #set ($pd = $score.valueOf("@prd"))
601: #set ($type = $score.valueOf("@type"))
602: #set ($shownStats = "y")
603: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
604: <tr class="$row">
605: <td class="align-left">$velocityCount.</td>
606: <td class="align-left">#if($currentPeriod != $pd)#period($pd)#set($currentPeriod = $pd)#else  #end</td>
607: <td class="align-left">$score.valueOf("@time")</td>
608: <td class="align-left">
609: #if($score.valueOf("@vh") == 'H')$homeid#end
610: #if($score.valueOf("@vh") == 'V')$visid#end
611: </td>
612: <td class="align-left">
613: #if($type == 'PP')UP
614: #elseif($type == 'SH')DN
615: #else $!type
616: #end
617: </td>
618: <td class="align-left">
619: #if($score.valueOf("@playerId").length() > 0 and $linkPlayers)
620: <a href="$!linkPlayersBase?id=${score.valueOf("@playerId")}">
621: #end
622: $score.valueOf("@name")
623: #if($score.valueOf("@playerId").length() > 0 and $linkPlayers)</a>#end
624: </td>
625: <td class="align-left">
626: #if($score.valueOf("@assist1").length() > 0)
627: #if($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)<a href="$!linkPlayersBase?id=${score.valueOf("@assist1Id")}">#end
628: $score.valueOf("@assist1")
629: #if($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)</a>#end
630: #else
631: #if($hasPlayByPlay && $gender == 'F')
632: #set ($scoreTime = $score.valueOf("@time"))
633: #set ($fpsFlag = false)
634: #foreach ($fpsNode in $document.selectNodes("//play[@action='FPS']"))
635: #if($fpsNode.valueOf("@clock") == $scoreTime)#set($fpsFlag = true)#end
636: #end
637: #if($fpsFlag)Free position shot#else unassisted#end
638: #else
639: unassisted
640: #end
641: #end
642: #if($score.valueOf("@assist2").length() > 0)
643: &
644: #if($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)<a href="$!linkPlayersBase?id=${score.valueOf("@assist2Id")}">#end
645: $score.valueOf("@assist2")
646: #if($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)</a>#end
647: #end
648: </td>
649: #if($hasPlayByPlay && $currentscoreNodes.size() > $tool.math.sub($velocityCount, 1))
650: #set ($currentScore = $currentscoreNodes.get($tool.math.sub($velocityCount, 1)))
651: <td class="align-left">$currentScore.valueOf("@hscore")-$currentScore.valueOf("@vscore")</td>
652: #end
653: </tr>
654: #end
655: #if ($shownStats == "")
656: <tr><td colspan="7" class="align-left">(no scoring)</td></tr>
657: #end
658: </tbody>
659: </table>
660: </div>
661:
662: <!-- VISITOR INDIVIDUAL STATISTICS -->
663: <div class="mono-section-label">$visname — Individual Statistics</div>
664: <div class="mono-fullbox">
665: #playerstatsCoach($document.selectSingleNode("lcgame/team[@vh='V']"))
666: </div>
667:
668: <!-- HOME INDIVIDUAL STATISTICS -->
669: <div class="mono-section-label">$homename — Individual Statistics</div>
670: <div class="mono-fullbox">
671: #playerstatsCoach($document.selectSingleNode("lcgame/team[@vh='H']"))
672: </div>
673:
674: #if ($document.selectNodes("lcgame/team/player[@gs]").size() > 0)
675: <div class="mono-summary">* = Starter</div>
676: #end
677:
678: <!-- PENALTY SUMMARY -->
679: <div class="mono-section-label">Penalty Summary</div>
680: <div class="mono-fullbox">
681: <table>
682: <thead>
683: <tr>
684: <th class="align-left">Prd</th>
685: <th class="align-left">Time</th>
686: <th class="align-left">Team</th>
687: <th class="align-left">Player</th>
688: <th class="align-left">Min</th>
689: <th class="align-left">Offence</th>
690: </tr>
691: </thead>
692: <tbody>
693: #set ($shownStats = "")
694: #foreach ($penalty in $document.selectNodes("lcgame/penalties/pen"))
695: #set ($shownStats = "y")
696: #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
697: <tr class="$row">
698: <td class="align-left">#period($penalty.valueOf("@prd"))</td>
699: <td class="align-left">$penalty.valueOf("@time")</td>
700: <td class="align-left">
701: #if($penalty.valueOf("@vh") == 'H')$homeid#end
702: #if($penalty.valueOf("@vh") == 'V')$visid#end
703: </td>
704: <td class="align-left">$penalty.valueOf("@name")</td>
705: <td class="align-left">$!penalty.valueOf("@minutes") $!penalty.valueOf("@type")</td>
706: <td class="align-left">$!penalty.valueOf("@desc")</td>
707: </tr>
708: #end
709: #if ($shownStats == "")
710: <tr><td colspan="6" class="align-left">(no penalties)</td></tr>
711: #end
712: #if ($gender == 'M')
713: <tr>
714: <td colspan="6" class="align-left">
715: <strong>Penalty Totals:</strong>
716: #foreach ($team in $document.selectNodes("lcgame/team"))
717: #set ($penaltySeconds = $team.valueOf("totals/penalty/@seconds"))
718: #set ($penaltyCount = $team.valueOf("totals/penalty/@count"))
719: #if ($penaltySeconds.length() > 0 && $penaltyCount.length() > 0)
720: #set ($penaltySeconds = $tool.math.toInteger($penaltySeconds))
721: #set ($remainder = $penaltySeconds % 60)
722: #set ($penaltyMinutes = $tool.math.toInteger($tool.math.div($penaltySeconds, 60)))
723: #if ($penaltyMinutes > 1)#set ($minString = "${penaltyMinutes} minutes")#else#set ($minString = "${penaltyMinutes} minute")#end
724: #set ($secString = "")
725: #if ($remainder > 0)
726: #if ($remainder > 1)#set ($secString = "${remainder} seconds")#else#set ($secString = "${remainder} second")#end
727: #end
728: <strong>$team.attributeValue("name"):</strong> $minString $secString on $penaltyCount infraction(s)
729: #if ($foreach.hasNext); #end
730: #end
731: #end
732: </td>
733: </tr>
734: #end
735: </tbody>
736: </table>
737: </div>
738:
739:
740: </div><!-- /.mono-print-content -->
741:
742: <!-- PAGE FOOTER -->
743: $website.include("statxml-footer-template")
744:
745: </div><!-- /.mono-print-page -->
|