Page source: |
1: ## DEFAULT PARAMETERS
2: #set ($currentDate = $now)
3: #set ($autoplay = false)
4: #set ($hideExhibition = true)
5: #set ($hideVsAt = false)
6: #set ($includeTimeZone = false)
7: #set ($resultFormat = "AP1")
8: #set ($restrictLinks = true)
9: #set ($showTeamLogo = true)
10: #set ($dateFormat = "EEE. MMMM dd")
11: #set ($showOpponent = true)
12: #set ($showLinkIcons = false)
13: #set ($abbreviatedLinks = false)
14: #set ($showPlayPause = false)
15: #set ($excludeLinksWhenEventIsLive = ["DI", "TI", "PR"])
16: #set ($excludeLinksWhenEventIsFinished = ["LS", "DI", "TI", "PR"])
17: #set ($linksOrder = ["RC", "BS", "RE", "GA", "AU", "VI", "LS", "DI", "TI", "PR", "LI"])
18: #set ($linksAbbreviations = { "Preview": "PR", "Box Score": "BX", "Results": "RE", "Recap": "RC", "Live stats": "LS", "Video": "V", "Audio": "A", "Photos": "PH", "Tickets": "T", "Directions": "DR" })
19:
20: ## PICK UP OPTIONS
21: $website.include("options")
22: #set ($options = $request.getAttribute("options"))
23:
24: #set ($dateFormat = $options.get("mod_scoreboard_date_format"))
25: #set ($hideExhibition = $options.get("schedule_hide_exhibition_events"))
26: #set ($hideVsAt = $options.get("schedule_hide_vs_at"))
27: #set ($includeTimeZone = $options.get("calendarIncludeTimeZone").toLowerCase())
28: #set ($restrictLinks = $options.get("schedule_restrict_links"))
29: #if ($options.get("schedule_result_format").equals("L, 1-2"))
30: #set ($resultFormat = "AP2")
31: #end
32:
33: ## PARAMETERS
34: #set ($hideExhibition = $request.getParameter("hideExhibition"))
35: #set ($showTeamLogo = $request.getParameter("showTeamLogo"))
36: #set ($showLinkIcons = $request.getParameter("showLinkIcons"))
37: #set ($abbreviatedLinks = $request.getParameter("abbreviatedLinks"))
38: #set ($showPlayPause = $request.getParameter("showPlayPause"))
39: #set ($showOpponent = $request.getParameter("showOpponent"))
40:
41: #set ($settingsId = "")
42: #if ($request.getParameter("settingsId"))
43: #set ($settingsId = $request.getParameter("settingsId"))
44: #end
45:
46: ## PLACEHOLDERS
47: #set ($events = [])
48: #foreach ($event in $schedule.events)
49: #set ($obj = {})
50: #if ($event.date && ($event.overall || !$hideExhibition))
51: #set ($eventServerDate = $tool.timeZone.shift($event.date, $event.localTimeZone, $tool.timeZone.systemTimeZone))
52:
53: ## Feed URL
54: #set ($feedURL = $event.feedURL) ## in the form http://www.somedomain.com/sports/mbkb/2014-15/schedule?tmpl=sfs-template
55: #if ($feedURL.indexOf("://") >= 0)
56: #set ($feedURL = $feedURL.split("//").get(1)) ## remove the http:// bit from the URL
57: #end
58: #set ($startIndex = $feedURL.indexOf("/"))
59: #if($startIndex < 0)
60: #set ($startIndex = 0)
61: #end
62: #set ($endIndex = $feedURL.length())
63: #if ($feedURL.lastIndexOf("?") >= 0)
64: #set ($endIndex = $feedURL.lastIndexOf("?"))
65: #end
66: ##set ($feedURL = $feedURL.substring($startIndex, $endIndex)) ## remove the domain and tmpl parts
67:
68: ## Event Type
69: #set ($eventClass = "event-box")
70: #if ($eventServerDate.before($currentDate))
71: #set ($eventClass = "${eventClass} finished")
72: #else
73: #set ($eventClass = "${eventClass} upcoming")
74: #end
75: #if ($event.inProgress)
76: #set ($eventClass = "${eventClass} inprogress")
77: #end
78:
79: #if ($event.neutralSite.length() > 0)
80: #set ($eventClass = "${eventClass} neutral")
81: #elseif ($event.home)
82: #set ($eventClass = "${eventClass} home")
83: #else
84: #set ($eventClass = "${eventClass} away")
85: #end
86:
87: #if ($event.teams.size() == 2)
88: #set ($eventClass = "${eventClass} h2h")
89: #else
90: #set ($eventClass = "${eventClass} meet")
91: #end
92:
93: ## Check Weather Network Schedule is Head To Head or Tournament
94: #set ($isTeamSchedule = false)
95: #if ($event.scheduleTeamId.length() > 0)
96: #set ($isTeamSchedule = true)
97: #end
98:
99: ## Event Original Values
100: #set ($val = $obj.put("event", $event))
101: #set ($val = $obj.put("vsAt", $vsAt))
102: #set ($val = $obj.put("feedURL", $feedURL))
103: #set ($val = $obj.put("eventClass", $eventClass))
104: #set ($val = $obj.put("isTeamSchedule", $isTeamSchedule))
105:
106: #set ($val = $events.add($obj))
107: #end
108: #end
109:
110: #set ($linksOrder = ["RC", "BS", "RE", "GA", "AU", "VI", "LS", "DI", "TI", "PR", "LI"])
111: #set ($excludeLinksWhenEventIsFinished = ["LS", "DI", "TI", "PR"])
112: #set ($excludeLinksWhenEventIsLive = ["DI", "TI", "PR"])
113: #set ($linksAbbreviations = { "Preview": "PR", "Box Score": "BX", "Results": "RE", "Recap": "RC", "Live stats": "LS", "Video": "V", "Audio": "A", "Photos": "PH", "Tickets": "T", "Directions": "DR" })
114:
115: #*
116: ## overwrite default settings if $settingsId is available
117: $website.include("slick-slider-settings")
118: #set ($slickSettings = {})
119: #if ($request.getAttribute($settingsId))
120: #set ($slickSettings = $request.getAttribute($settingsId))
121: #end
122:
123: ## convert hashmap into json format
124: #set ($slickSettings = $slickSettings.toString().replace("=", ":"))
125: *#
126:
127: ########################## MACROS ##########################
128:
129: #macro (printLinkAriaLabel $event $link $linkTypeCounter)
130: #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
131: #if ($event.neutralSite.length() > 0 || $event.home)
132: #set ($vsOrAt = "vs.")
133: #else
134: #set ($vsOrAt = "at")
135: #end
136: #if ($event.teams.size() > 1)
137: #set ($ariaLabel = "${ariaLabel} ${event.teams.get(0).name} ${vsOrAt} ${event.teams.get(1).name}:")
138: #elseif ($event.teams.size() == 1)
139: #set ($ariaLabel = "${ariaLabel} ${event.teams.get(0).name}:")
140: #end
141: #if ($event.neutralSite.length() > 0)
142: #set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
143: #end
144: #set ($ariaLabel = "${ariaLabel} ${link.name}")
145: #if ($linkTypeCounter > 1)
146: #set ($ariaLabel = "${ariaLabel} link ${linkTypeCounter}")
147: #end
148: aria-label="$ariaLabel"
149: #end
150:
151: #macro (printEventLinks $event)
152: #set ($eventLinks = [])
153:
154: #set ($isFinished = false)
155: #if ($event.statusCode >= 0 || ($event.statusCode == -3 && $now.time >= ($event.date.time + (1000*60*60*24)))) ## -3 is reported for event sports
156: #set ($isFinished = true)
157: #end
158:
159: #if ($restrictLinks && ($event.inProgress || $isFinished))
160: #foreach ($link in $event.links)
161: #if ($event.inProgress && !$excludeLinksWhenEventIsLive.contains($link.mapType))
162: #set ($ignoreme = $eventLinks.add($link))
163: #elseif ($isFinished && !$excludeLinksWhenEventIsFinished.contains($link.mapType))
164: #set ($ignoreme = $eventLinks.add($link))
165: #end
166: #end
167: #else
168: #set ($eventLinks = $event.links)
169: #end
170:
171: #foreach ($mapType in $linksOrder)
172: #set ($linkTypeCounter = 0)
173: #foreach ($link in $eventLinks)
174: #if ($mapType == $link.mapType)
175: #set ($linkTypeCounter = $linkTypeCounter + 1)
176: #if ($linkTypeCounter <= 1)
177: #set ($linkText = $link.name)
178: #if ($abbreviatedLinks)
179: #if ($link.mapType == "LI" || "$!link.siteCustomSettings.abbreviatedTitle" != "")
180: #set ($linkText = "LI")
181: #if("$!link.siteCustomSettings.abbreviatedTitle" != "")
182: #set ($linkText = $link.siteCustomSettings.abbreviatedTitle)
183: #end
184: #else
185: #foreach ($l in $linksAbbreviations.entrySet())
186: #if ($link.name.equalsIgnoreCase($l.key))
187: #set ($linkText = $l.value)
188: #end
189: #end
190: #end
191: #end
192: <a #printLinkAriaLabel($event, $link, $linkTypeCounter) href="$link.url" #if ($website.isExternalLink($link.url)) target="_blank" #end>
193: #if ($showLinkIcons)
194: <span class="icon gicon-${link.mapType.toLowerCase()}" title="$link.name"></span>
195: #end
196: <span class="text">$linkText</span>
197: </a>
198: #end
199: #end
200: #end
201: #end
202: #end ## printEventLinks
203:
204: #macro (printSport $event)
205: #set ($sport = $event.sport.replace("Men's", "M.").replace("Women's", "W.").replace("Division", "Div."))
206:
207: #if ($event.feedURL.length() > 0)
208: <a href="$event.feedURL">$event.sport</a>
209: #else
210: <span>$event.sport</span>
211: #end
212: #end
213:
214: #macro (printResult $event)
215: #set ($formattedResult = "")
216: #if ($event.inProgress)
217: #if ($event.result.toString().length() > 0)
218: #set ($formattedResult = $event.result)
219: #end
220: #else
221: #if ($resultFormat.equals("AP1"))
222: #set ($formattedResult = $event.APResult)
223: #elseif ($resultFormat.equals("AP2"))
224: #set ($formattedResult = $event.AP2Result)
225: #end
226: #end
227: $formattedResult
228: #end
229:
230: #macro (printStatus $event)
231: ## Status
232: #set ($formattedStatus = $formatter.formatStatus($event))
233: #if ($includeTimeZone)
234: #if ($includeTimeZone.contains("local"))
235: #set ($formattedStatus = $formatter.formatStatus($event).setTimeFormat("h:mm a z").useEventTimeZone())
236: #elseif ($includeTimeZone.contains("site"))
237: #set ($formattedStatus = $formatter.formatStatus($event).setTimeFormat("h:mm a z"))
238: #end
239: #end
240: $formattedStatus
241: #end
242:
243: #macro (printVsAt $event)
244: #if ($event.teams.size() == 2)
245: #if ($event.neutralSite.length() > 0 || $event.home)
246: vs.
247: #else
248: at
249: #end
250: #end
251: #end
252:
253: #macro (printTeamLogo $team)
254: #if ($team.teamId)
255: #set ($logoUrl = $website.teamLogo($team.teamId))
256: #set ($logoUrl = $logoUrl.replace("cdn-black-widow.ps-scracth.us", "cdn.prestosports.com"))
257: <div class="team-logo"><img src="$logoUrl" alt="$team.name" class="img-fluid" /></div>
258: #end
259: #end
260:
261: #macro (printLogos $event)
262: <div class="row">
263: #foreach ($team in $event.teams)
264: #if ($velocityCount == 2)
265: <div class="col-auto align-self-center"><span class="va">#printVsAt($event)</span></div>
266: #end
267: <div class="col">#printTeamLogo($team)</div>
268: #end
269: </div>
270: #end
271:
272: #macro (printTeams $event)
273: #if ($showTeamLogo && $event.teams.get(0).teamId.length() > 0 && $event.teams.get(1).teamId.length() > 0)
274: #printLogos($event)
275: #end
276: #foreach ($team in $event.teams)
277: #set ($teamClass = "team")
278: #if ($event.winner.name == $team.name)
279: #set ($teamClass = "${teamClass} winner")
280: #end
281: <div class="row ${teamClass}">
282: <div class="col team-name">$team.name</div>
283: <div class="col-auto team-score">$team.result</div>
284: </div>
285: #end
286: #end
287:
288: #macro (printTeam $team)
289: #if ($showTeamLogo && $team.teamId.length() > 0)
290: #printTeamLogo($team)
291: #end
292: <div class="opponent">
293: #printVsAt($event)
294: <span class="name">$team.name</span>
295: </div>
296: #end
297: ########################## END MACROS ##########################
298:
299: <div class="scoreboard" data-module="modules/js/mod-scoreboard-slider" data-slick-settings="{}">
300: <button aria-label="move to previous slide" class="btn prev"><span class="fas fa-chevron-left"></span><span class="sr-only">Previous</span></button>
301: <button aria-label="move to next slide" class="btn next"><span class="fas fa-chevron-right"></span><span class="sr-only">Next</span></button>
302: #if ($showPlayPause == true)
303: #set ($ppClass = "pp play")
304: #set ($ppAriaLabel = "start slide rotation")
305: #if ($autoplay)
306: #set ($ppClass = "pp pause")
307: #set ($ppAriaLabel = "stop slide rotation")
308: #end
309: <button aria-label="$ppAriaLabel" class="${ppClass}"> <span class="text sr-only">Play/Pause</span></button>
310: #end
311: <div class="slider">
312: #foreach ($obj in $events)
313: <div class="$obj.eventClass">
314: <div class="inner">
315: ## SPORTS
316: #if ($obj.event.sport)<div class="sport">#printSport($obj.event)</div>#end
317:
318: ## DATE
319: <div class="date">$formatter.formatDate($obj.event.date, $dateFormat)</div>
320:
321: ## STATUS
322: <div class="status">#printStatus($obj.event)</div>
323:
324: ## TEAM(s)
325: #if ($obj.event.teams.size() == 1)
326: #printTeam($obj.event.teams.get(0))
327: <div class="result">#printResult($event)</div>
328: #elseif ($showOpponent && $obj.isTeamSchedule)
329: #printTeam($obj.event.opponent)
330: <div class="result">#printResult($event)</div>
331: #else
332: #printTeams($obj.event)
333: #end
334:
335: ## LINKS
336: <div class="links">#printEventLinks($obj.event)</div>
337: </div>
338: </div>
339: #end ## event loop
340: </div>
341: </div>
342:
343: $wiki
|