Sat. September 01
8 am.
There was a problem with a Velocity script
Page/httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/scoreboard-slider-template
ErrorInvocation of method 'get' in class java.util.Vector threw exception java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0 at /httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/scoreboard-slider-template[line 273, column 44]
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