Buscador de contenidos
An error occurred while processing the template.
Multiple compatible overloaded variations were found with the same priority.
The FTL type of the argument values were: Null.
The Java type of the argument values were: Null.
The matching overload was searched among these members:
    com.liferay.portal.kernel.util.Validator_IW.isNotNull(String),
    com.liferay.portal.kernel.util.Validator_IW.isNotNull(Long),
    com.liferay.portal.kernel.util.Validator_IW.isNotNull(Object)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if validator.isNotNull(calendarBooki...  [in template "37703#37743#40319" at line 294, column 41]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
2<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")> 
3<#assign journalArticleLocalServiceUtil= serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
4<#assign localizationUtil= serviceLocator.findService("com.liferay.portal.kernel.util.LocalizationUtil")> 
5<#assign namespace = renderResponse.getNamespace()/> 
6<#assign changePortletTitle = portletTool.getPreference(request, "changePortletTitle")> 
7 
8<#if entries?has_content> 
9	<#list entries as calendarBooking> 
10 
11		<#assign inicio = calendarBookingTool.format(calendarBooking.getStartTime(), "EEEE, dd MMMM yyyy" ,locale, timezone)/> 
12		<#assign fin = calendarBookingTool.format(calendarBooking.getEndTime(), "EEEE, dd MMMM yyyy" ,locale, timezone)/> 
13		<#assign expDate = calendarBookingTool.format(calendarBooking.getEndTime(), "yyyy-MM-dd'T'HH:mm:ssXXX" ,locale, timezone)/> 
14		<#assign calendarData = ADTUtil.getCalendarData(calendarBooking)> 
15		<#assign title = calendarBooking.getTitle(locale)> 
16		 
17		<#if validator.isNotNull(expDate)> 
18			<@liferay_util["html-top"] outputKey="robots_unavailable_after_${calendarBooking.getCalendarBookingId()}"> 
19				<meta name="robots" content="index, follow, unavailable_after: ${expDate}"> 
20			</@> 
21		</#if> 
22		 
23		<div id="${namespace}calendar-booking-detail-view" itemscope itemtype="http://schema.org/Event"> 
24		 
25		<#if validator.isNotNull(changePortletTitle)> 
26			<#if changePortletTitle=="false"> 
27				<div class="title-wrapper"> 
28					<div class="title h3" itemprop="name">${title}</div> 
29				</div> 
30			</#if> 
31		<#else> 
32			<div class="title-wrapper"> 
33				<div class="title h3" itemprop="name">${title}</div> 
34			</div> 
35		</#if> 
36		 
37		<#if validator.isNotNull(calendarData)> 
38			<#assign calendarDataProperties = typeSettingsTool.getUnicodeProperties(calendarData.getTypeSettings())!> 
39			<#if validator.isNotNull(calendarDataProperties)> 
40				<div class="d-block d-sm-none mb-4"> 
41					<#assign ticketsURL = calendarDataProperties.getProperty("ticketsURL")!> 
42					 
43					<#if validator.isNotNull(ticketsURL)> 
44						<#assign ticketsLabelXML = calendarDataProperties.getProperty("ticketsLabelXML")!> 
45						<#assign ticketsPrice = calendarDataProperties.getProperty("ticketsPrice")!> 
46						 
47						<#assign ticketsLabel = localizationTool.getLocalization(ticketsLabelXML, themeDisplay.getLanguageId(), true, "")!> 
48						<#if validator.isNull(ticketsLabel)> 
49							<#assign ticketsLabel = languageUtil.get(locale, "tickets")!> 
50						</#if> 
51						<a class="btn-block btn btn-secondary" href="${ticketsURL}" data-senna-off="true" onclick='this.target="_blank"'> 
52							<span class="fas fa-ticket-alt"></span>&nbsp;${ticketsLabel} 
53						</a> 
54						 
55					</#if> 
56				</div> 
57			</#if> 
58		</#if> 
59		 
60			<div class="row gx-30 flex-row-reverse">			 
61						 
62				<div class="col-lg-4 side-bar"> 
63				 
64					<#assign imagePath = ADTUtil.getImagePath(calendarData.getImageUuid(), 3, calendarBooking.getGroupId() ,themeDisplay) > 
65					<#assign imagePath1 = ADTUtil.getImagePath(calendarData.getImageUuid(), 1, calendarBooking.getGroupId() ,themeDisplay) > 
66					<#if validator.isNotNull(calendarData) && validator.isNotNull(imagePath)> 
67						<a href="${imagePath}" class="d-block image-wrapper image-wrapper-style mb-4 aspect-ratio-bg-cover aspect-ratio-4-to-3 lightbox" style="background-image: url(${imagePath}); background-size: cover;" itemprop="url"> 
68							<img class="sr-only" src="${imagePath1}" alt="${languageUtil.get(locale, 'image')} ${title}" itemprop="image"/> 
69						</a> 
70					</#if> 
71					 
72					<#if validator.isNotNull(calendarData)> 
73						<#assign calendarDataProperties = typeSettingsTool.getUnicodeProperties(calendarData.getTypeSettings())!> 
74						<#if validator.isNotNull(calendarDataProperties)> 
75							<div class="d-none d-sm-block"> 
76								<#assign ticketsURL = calendarDataProperties.getProperty("ticketsURL")!> 
77								 
78								<#if validator.isNotNull(ticketsURL)> 
79									<#assign ticketsLabelXML = calendarDataProperties.getProperty("ticketsLabelXML")!> 
80									<#assign ticketsPrice = calendarDataProperties.getProperty("ticketsPrice")!> 
81									 
82									<#assign ticketsLabel = localizationTool.getLocalization(ticketsLabelXML, themeDisplay.getLanguageId(), true, "")!> 
83									<#if validator.isNull(ticketsLabel)> 
84										<#assign ticketsLabel = languageUtil.get(locale, "tickets")!> 
85									</#if> 
86									<a class="btn-block btn btn-secondary" href="${ticketsURL}" data-senna-off="true" onclick='this.target="_blank"'> 
87										<span class="fas fa-ticket-alt"></span>&nbsp;${ticketsLabel} 
88									</a> 
89									 
90								</#if> 
91							</div> 
92						</#if> 
93					</#if> 
94					 
95					<div class="card card-dates mt-3"> 							 
96						<div class="card-header"><span class="fas fa-calendar" style="margin-right: 5px;"></span>${languageUtil.get(request, "date")}</div> 
97						<div class="card-body"> 
98							 
99							<div class="start"> 									 
100								<span class="start-date d-block" itemprop="startDate"> 
101									<span class="icon-calendar color"><span class="hide-accessible">Calendario</span></span>  
102									${inicio}										 
103								</span> 
104								 
105							</div>  
106							<div class="end">  
107								<#if inicio != fin> 
108									<span class="end-date d-block" itemprop="endDate">  
109										<span class="icon-calendar color"><span class="hide-accessible">Calendario</span></span>  
110										${fin} 
111									</span>									 
112								</#if> 
113							</div>							 
114							 
115							<#if calendarBooking.isRecurring()> 
116								<#assign recurringCalendarBookings = ADTUtil.getRecurringCalendarBookings(calendarBooking)! > 
117								<#if recurringCalendarBookings?has_content> 
118									<span class="separator"><!--  separator--></span> 
119												 
120									<span class="mt-2 d-block">${languageUtil.get(request, "infoasturias-upcoming-dates")}: </span> 
121									<ul class="list-styled"> 
122										<#list recurringCalendarBookings as recurringCalendarBooking> 
123											<#assign recurringDateFormat = ADTUtil.formatDate(recurringCalendarBooking.getStartTime(), "EEEE, dd MMMM YYYY" ,themeDisplay)> 
124											<#if recurringDateFormat!=inicio> 
125												<li>${recurringDateFormat}</li> 
126											</#if> 
127										</#list> 
128									</ul> 
129								</#if> 
130							</#if> 
131							 
132						</div>  
133					</div> 
134					 
135					<div class="card card-schedule"> 							 
136						<div class="card-header"><span class="fas fa-clock"></span> ${languageUtil.get(request, "infoasturias-horario")}</div> 
137						<div class="card-body"> 
138							<#if validator.isNotNull(calendarData.getSchedule(locale))> 
139								${calendarData.getSchedule(locale)} 
140							<#else> 
141							 
142								<#if calendarBooking.getAllDay()> 
143									<span class="start-time d-block"> 										 
144										<span class="icon-time color"><span class="hide-accessible">Tiempo</span></span>  
145										${languageUtil.format(locale, 'all-day',calendarBooking.getAllDay())} 
146									</span> 
147								<#else> 
148									<#if ADTUtil.isSameDay(calendarBooking.getStartTime(), calendarBooking.getEndTime())> 
149										<span class="start-time"> 										 
150											<span class="icon-time color"><span class="hide-accessible">Tiempo</span></span>  
151											<#assign hour = ADTUtil.formatDate(calendarBooking.getStartTime(), "HH:mm" ,locale, timezone)> 
152											<#assign hourend = ADTUtil.formatDate(calendarBooking.getEndTime(), "HH:mm" ,locale, timezone)>	 
153											${hour} <#if inicio == fin> - ${hourend}</#if> 
154										</span> 
155										 
156										<span class="end-time"> 
157											<#assign hour = ADTUtil.formatDate(calendarBooking.getEndTime(), "HH:mm" ,locale, timezone)>											 
158											<#if inicio != fin> 
159											&nbsp;&#45;&nbsp; 
160											${hour} 
161											</#if> 
162										</span> 
163									<#else> 
164										<span class="start-time d-block"> 										 
165											<span class="icon-time color"><span class="hide-accessible">Tiempo</span></span>  
166											<#assign hour = calendarBookingTool.format(calendarBooking.getStartTime(), "HH:mm" ,locale, timezone)/> 
167											<#assign hourend = calendarBookingTool.format(calendarBooking.getEndTime(), "HH:mm" ,locale, timezone)/> 
168											${hour} <#if inicio == fin> - ${hourend}</#if> 
169										</span> 
170										 
171										<#if inicio != fin>									 
172											<span class="end-time d-block"> 
173												<span class="icon-time color"><span class="hide-accessible">Tiempo</span></span>  
174												<#assign hour = calendarBookingTool.format(calendarBooking.getEndTime(), "HH:mm" ,locale, timezone)/>										 
175												${hour} 
176											</span>  
177										</#if> 
178									</#if> 
179								</#if> 
180							</#if> 
181						</div> 
182					</div> 
183							 
184					<#assign locationdata = validator.isNotNull(calendarData.getAddress()) || validator.isNotNull(calendarData.getAddressName()) || validator.isNotNull(calendarData.getAddressDescription())>											 
185					<#if (calendarData.getLatitude()?has_content && calendarData.getLongitude()?has_content) || locationdata>						 
186							<div class="card card card-location"> 
187								<div class="card-header"> 
188									<span class="fas fa-globe-europe" style="margin-right: 5px;"></span> Localización 
189								</div> 
190								 
191								<#if (calendarData.getLatitude()?has_content && calendarData.getLongitude()?has_content) && (calendarData.getLatitude()!="0" && calendarData.getLongitude()!="0")>							 
192									<link crossorigin="" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" rel="stylesheet" /> 
193									<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script> 
194									<div id="map-${calendarBooking.getCalendarBookingId()}" style="height: 250px; ">&nbsp;</div> 
195									<script type="text/javascript"> 
196										AUI().ready('aui-base', function(A){ 
197											var lat = ${calendarData.getLatitude()}; 
198											var lng = ${calendarData.getLongitude()}; 
199											var map = new L.Map("map-${calendarBooking.getCalendarBookingId()}", { 
200												center: [lat,lng], 
201												zoom: 15, 
202												layers: new L.TileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png") 
203											}); 
204											var marker = L.marker([lat,lng]).addTo(map); 
205											<#if validator.isNotNull(calendarData.getAddress())> 
206												marker.bindPopup("<b>${calendarData.getAddress()}</b>").openPopup(); 
207											</#if>								 
208										}); 
209									</script> 
210								</#if> 
211								<div class="card-body"> 
212									<#if validator.isNotNull(calendarData.getAddress())> 
213										<p class="card-text address-default"> 
214											<span class="fas fa-map-marker-alt" style="margin-right: 5px;"></span>${calendarData.getAddress()} 
215										</p> 
216									</#if> 
217									<#if validator.isNotNull(calendarData.getAddressName())> 
218										<p class="card-subtitle address-name" itemprop="address"> 
219											${calendarData.getAddressName()} 
220										</p> 
221									</#if> 
222									<#if validator.isNotNull(calendarData.getAddressDescription())> 
223										<div class="card-text address-description"> 
224											${calendarData.getAddressDescription()} 
225										</div> 
226									</#if>								 
227								</div>							 
228							</div>							 
229					<#else> 
230						<#assign assetEntry = assetEntryLocalService.fetchEntry(calendarBooking.getModelClassName(),calendarBooking.getCalendarBookingId())>				 
231						<#assign assetEntryLinks = assetLinkLocalService.getLinks(getterUtil.getLong(assetEntry.getClassNameId()), getterUtil.getLong(assetEntry.getClassPK())) !> 
232						 
233						<#list assetEntryLinks as assetEntryLink>	 
234							<#if assetEntry.getEntryId() == assetEntryLink.getEntryId1()> 
235							<#else>						 
236								<#assign assetEntryRel = assetEntryLocalService.fetchEntry(assetEntryLink.getEntryId1())> 
237								<#assign assetRenderer = assetEntryRel.getAssetRenderer() > 
238								<#assign journal = journalArticleLocalServiceUtil.getLatestArticle(getterUtil.getLong(assetEntryRel.getClassPK()))> 
239								 
240								<#assign Coordenadas = assetTool.getFieldValue(assetRenderer, "Coordenadas") /> 
241								<#assign Direccion = assetTool.getFieldValue(assetRenderer, "Direccion") /> 
242								<#assign Observaciones = assetTool.getFieldValue(assetRenderer, "Observaciones") /> 
243								 
244								<#if Coordenadas?has_content> 
245									<#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(Coordenadas)> 
246									<#assign latitude = geolocationJSONObject.getDouble("latitude")> 
247									<#assign longitude = geolocationJSONObject.getDouble("longitude")> 
248																		 
249									<div class="card "> 
250										<div class="card-header"> 
251											<span class="fas fa-globe-europe" style="margin-right: 5px;"></span> Localización 
252										</div> 
253										<link crossorigin="" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" rel="stylesheet" /> 
254										<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script> 
255										<div id="map-${calendarBooking.getCalendarBookingId()}" style="height: 250px; ">&nbsp;</div> 
256										<script type="text/javascript"> 
257											AUI().ready('aui-base', function(A){ 
258												var lat = ${latitude}; 
259												var lng = ${longitude}; 
260												 
261												var map = new L.Map("map-${calendarBooking.getCalendarBookingId()}", { 
262													center: [lat,lng], 
263													zoom: 15, 
264													layers: new L.TileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png") 
265												}); 
266												var marker = L.marker([lat,lng]).addTo(map); 
267												<#if validator.isNotNull(journal.getTitle(locale))> 
268													marker.bindPopup("<b>${journal.getTitle(locale)}</b>").openPopup(); 
269												</#if>								 
270											}); 
271										</script> 
272										<div class="card-body"> 
273											<#if validator.isNotNull(journal.getTitle(locale))> 
274												<p class="card-subtitle"> 
275													<span class="fas fa-map-marker-alt" style="margin-right: 5px;"></span>${journal.getTitle(locale)} 
276												</p> 
277											</#if> 
278											<#if validator.isNotNull(Direccion)> 
279												<p class="card-subtitle"> 
280													<span class="fas fa-map-marker-alt" style="margin-right: 5px;"></span>${Direccion} 
281												</p> 
282											</#if>																	 
283										</div>							 
284									</div> 
285								</#if> 
286							</#if> 
287						</#list> 
288					</#if>	 
289				</div> 
290				<div class="col-lg-8"> 
291					<#if validator.isNotNull(calendarData.getSummary(locale))> 
292						<div class="text-summary mb-3">${calendarData.getSummary(locale)}</div> 
293					</#if> 
294					<#if validator.isNotNull(calendarBooking.getDescription(locale))> 
295						<div class="text" itemprop="description"> 
296							${calendarBooking.getDescription(locale)} 
297						</div> 
298					</#if>	 
299					 
300					<#if validator.isNotNull(calendarData)> 
301						<#assign imgs = ADTUtil.getGalleryTool(calendarData, themeDisplay)> 
302						<#assign docs = ADTUtil.getDocumentsTool(calendarData, themeDisplay)> 
303					</#if> 
304					 
305					<div class="article-accordion accordion"> 
306					 
307						<#if imgs?has_content> 
308							<div class="card-accordion-item"> 
309								<div class="card-header"> 
310									<a id="tabGalleryHeading" href="#tabGalleryContent" class="h3 accordion-header collapsed" aria-expanded="false" data-toggle="liferay-collapse" aria-controls="tabGalleryContent" role="button">${languageUtil.get(locale, 'image-gallery')}</a> 
311								</div> 
312								<div id="tabGalleryContent" class="card-body accordion-collapse collapse" aria-labelledby="tabGalleryHeading"> 
313									${imgs} 
314								</div> 
315							</div> 
316						</#if> 
317						 
318						<#if docs?has_content> 
319							<div class="article-section accordion-item"> 
320								<a id="tabDocumentsHeading" href="#tabDocumentsContent" class="h3 accordion-header collapsed" aria-expanded="false" data-toggle="liferay-collapse" aria-controls="tabDocumentsContent" role="button">${languageUtil.get(locale, 'documents')}</a> 
321								<div id="tabDocumentsContent" class="article-section-content article-section-info accordion-collapse collapse" aria-labelledby="tabDocumentsHeading"> ${docs} </div> 
322							</div> 
323						</#if> 
324					</div> 
325				</div> 
326			</div> 
327		</div> 
328	</#list> 
329</#if>