Meraki

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> AsturiasMascotas.NumeroMaximoRestaurante  [in template "37703#37743#1558495" at line 595, column 78]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if AsturiasMascotas.NumeroMaximoRest...  [in template "37703#37743#1558495" at line 595, column 73]
----
1<#-- Services --> 
2<#assign assetEntryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign journalArticleResourceServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")/> 
5 
6<#-- Reserved vbles --> 
7<#assign title = .vars['reserved-article-title'].data> 
8<#assign articleId=.vars["reserved-article-id"].data /> 
9<#assign description=.vars["reserved-article-description"].data /> 
10<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data /> 
11<#assign date=.vars["reserved-article-display-date"].data /> 
12<#assign request = .vars['request']> 
13 
14<#-- Init --> 
15<#assign assetEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)> 
16<#assign journalArticle = journalTool.getJournalArticleByAssetEntry(assetEntry)> 
17<#assign articleURL = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()> 
18<#assign articleSocialBookmarks = themeDisplay.getThemeSetting("article-social-bookmarks")!> 
19<#assign layoutSetBannerPath = layoutTool.getLayoutSetBannerPath(groupId, themeDisplay.getLayout().isPrivateLayout())!> 
20<#assign articleMainImageThumbnail3 = dlTool.getThumbnail(smallImageUrl, "3", layoutSetBannerPath)! /> 
21<#assign articleMainImageThumbnail1 = dlTool.getThumbnail(smallImageUrl, "1")! /> 
22 
23<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" /> 
24 
25<#-- Build --> 
26<#if Nombre.data?has_content> 
27	<#assign title = Nombre.data> 
28</#if> 
29 
30<article class="template ${ddmStructureNameNormalize}" role="article" itemscope itemtype="http://schema.org/Restaurant"> 
31	 
32	<header class="article-header-wrapper row no-gutters"> 
33	     
34		<div class="article-header-container article-header-container-static"> 
35			<div class="container"> 
36				<div class="row no-gutters"> 
37					<div class="col-md-6"> 
38						<div class="article-image" style="background-image: url('${articleMainImageThumbnail3}')"> 
39							<img class="sr-only" src="${articleMainImageThumbnail3}" alt="${languageUtil.format(request,'go-to-x','image')} ${title}" itemprop="image"/> 
40						</div> 
41					</div> 
42					<div class="article-info-wrapper col-md-6"> 
43						<div class="article-info"> 
44							<div class="article-title" itemprop="name">${title}</div> 
45							<div class="article-list-wrapper"> 
46															 
47								<ul class="article-list list-unstyled article-list-info"> 
48									 
49									<#if validator.isNotNull(InformacionEspecifica.IconoCategoria.getData())> 
50										<li class="article-list-item"> 
51											<span class="fas fa-tag"> 
52												<span class="hide-accessible">${languageUtil.get(request,"category")}</span> 
53											</span> 
54											<span class="field-wrapper"> 
55												<span class="field">${languageUtil.get(request, "category")}:</span> 
56												<#assign icono = stringUtil.toLowerCase(stringUtil.replace(InformacionEspecifica.IconoCategoria.getData(), " ", "-")) /> 
57												<#assign icono = "restaurante-${icono} text-indent-image" /> 
58												<span class="text ${icono}"><span>${InformacionEspecifica.IconoCategoria.getData()}</span></span> 
59											</span> 
60										</li> 
61									</#if> 
62									 
63									<#if getterUtil.getBoolean(Informacion.AbiertoTodoAno.getData()) || validator.isNotNull(Informacion.FechasCierre.getData())> 
64										<li class="article-list-item time hide"> 
65											<span class="fas fa-clock"> 
66												<span class="hide-accessible">${languageUtil.get(request,"infoasturias-fechas-de-cierre")}</span> 
67											</span> 
68											<span class="field-wrapper"> 
69												<span class="field">${languageUtil.get(request,"infoasturias-fechas-de-cierre")}:</span> 
70												<span class="text"> 
71													<#if getterUtil.getBoolean(Informacion.AbiertoTodoAno.getData())> 
72														${languageUtil.get(request,"infoasturias-abierto-todo-anio")} 
73													<#else> 
74														<#if validator.isNotNull(Informacion.FechasCierre.getData())> 
75															${Informacion.FechasCierre.getData()} 
76														</#if> 
77													</#if> 
78												</span> 
79											</span> 
80										</li> 
81									</#if> 
82									 
83									<#if Contacto.Plazas.data?has_content> 
84										<li class="article-list-item web"> 
85											<span class="fas fa-user-friends"> 
86												<span class="hide-accessible">${languageUtil.get(request,"infoasturias-dondercomer-plazas")}</span> 
87											</span> 
88											<span class="field-wrapper"> 
89												<span class="field">${languageUtil.get(request,"infoasturias-dondercomer-plazas")}:</span> 
90												<span class="text">${Contacto.Plazas.getData()}</span> 
91											</span> 
92										</li> 
93									</#if> 
94									 
95									<li class="article-list-item separator"><!--separator --></li> 
96 
97										<li class="article-list-item mb-4"> 
98											<span class="fas fa-map-marker-alt"> 
99												<span class="hide-accessible">${languageUtil.get(request,"address")}</span> 
100											</span>											 
101											<span class="field-wrapper" itemprop="address"> 
102												<#if Contacto.Concejo.data?has_content> 
103													<span class="important">${Contacto.Concejo.data}</span> 
104												<#else> 
105													<span class="important">${title}</span> 
106												</#if> 
107												<#if Contacto.Zona.data?has_content> 
108													<span class="text d-block">${Contacto.Zona.data}</span> 
109												</#if> 
110												 
111											</span> 
112										</li> 
113										<#if Contacto.Direccion.data?has_content> 
114											<li class="article-list-item"> 
115												<span class="far fa-address-card"> 
116													<span class="hide-accessible">${languageUtil.get(request,"address")}</span> 
117												</span> 
118												<span class="field-wrapper"> 
119													<span class="field">${languageUtil.get(request, "address")}:</span> 
120													<span class="text">${Contacto.Direccion.data}</span> 
121													<span class="text"> ■ ${Contacto.CP.data} - ${Contacto.Localidad.data}</span> 
122												</span> 
123											</li> 
124										</#if> 
125 
126										<#if Contacto.Telefono.data?has_content> 
127											<li class="article-list-item"> 
128												<span class="fas fa-phone-alt"> 
129													<span class="hide-accessible">${languageUtil.get(request,"phone")}</span> 
130												</span> 
131												<span class="field-wrapper"> 
132													<span class="field">${languageUtil.get(request, "phone")}:</span> 
133													<span class="text" itemprop="telephone">${Contacto.Telefono.data}</span> 
134												</span> 
135											</li> 
136										</#if> 
137 
138										<#if Contacto.Email.data?has_content> 
139											<li class="article-list-item"> 
140												<span class="far fa-envelope"> 
141													<span class="hide-accessible">${languageUtil.get(request,"email")}</span> 
142												</span> 
143												<span class="field-wrapper"> 
144													<span class="field">${languageUtil.get(request, "email")}:</span> 
145													<#list Contacto.Email.getSiblings() as email> 
146													<span class="text"> 
147														<a class="" href="mailto:${email.data}" title="${languageUtil.format(request,'send-email-to-x', 'email')}" itemprop="email">${email.data}</a> 
148														<#if !email?is_last>|</#if> 
149													</span> 
150													</#list> 
151												</span> 
152											</li> 
153										</#if> 
154 
155										<#if Contacto.Web.data?has_content> 
156											<li class="article-list-item web"> 
157												<span class="fas fa-link"> 
158													<span class="hide-accessible">${languageUtil.get(request,"site")}</span> 
159												</span> 
160												<span class="field-wrapper"> 
161													<span class="field">${languageUtil.get(request, "site")}:</span> 
162													<span class="text"> 
163														<#assign linkURL = Contacto.Web.data/> 
164														 
165														<#if !stringUtil.startsWith(linkURL, "http")> 
166															<#assign linkURL = "https://${Contacto.Web.data}"/> 
167														</#if> 
168														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}" itemprop="url">${Contacto.Web.data}</a> 
169													</span> 
170												</span> 
171											</li> 
172										</#if>	 
173 
174										<#if Descargas ??> 
175											<#if validator.isNotNull(Descargas.Archivo.data)> 
176												<#if validator.isNotNull(Descargas.Archivo.data)> 
177												<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Descargas.Archivo.data) /> 
178													<#if validator.isNotNull(dlFileEntry)> 
179														<#assign ext = dlFileEntry.getExtension()!/> 
180														<li class="article-list-item document document-${ext}"> 
181															<span class="fas fa-file"> 
182																<span class="hide-accessible">${languageUtil.get(request,"related-documents")}</span> 
183															</span> 
184															<span class="field-wrapper"> 
185																<span class="field">${languageUtil.get(request, "related-documents")}:</span> 
186																<span class="text"> 
187																	<#list Descargas.Archivo.getSiblings() as Item> 
188																		<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Item.data) /> 
189																		<#assign downloadURL = "/documents/${groupId}/${dlFileEntry.getUuid()}" /> 
190																		<#if validator.isNotNull(dlFileEntry)> 
191																			<#if Item.ArchivoTitulo.data?has_content> 
192																				<a href="${downloadURL}" title='${languageUtil.get(request, "${Item.ArchivoTitulo.data}")} ${htmlUtil.escape(title)}' class="">${Item.ArchivoTitulo.data}</a>	 
193																				<#if Item_has_next>, </#if> 
194																			<#else> 
195																				<a href="${downloadURL}" title='${languageUtil.get(request, "${dlFileEntry.getTitle()}")} ${htmlUtil.escape(title)}' class="">${dlFileEntry.getTitle()}</a>	 
196																				<#if Item_has_next>, </#if> 
197																			</#if> 
198																		</#if> 
199																	</#list> 
200																</span> 
201															</span>		 
202														</li> 
203													</#if> 
204												</#if> 
205											</#if> 
206										</#if> 
207								</ul> 
208							</div> 
209							 
210							<#if validator.isNotNull(Contacto.Facebook.data) || validator.isNotNull(Contacto.Twitter.data) || validator.isNotNull(Contacto.Youtube.data) || validator.isNotNull(Contacto.GooglePlus.data) || validator.isNotNull(Contacto.Pinterest.data) || validator.isNotNull(Contacto.Instagram.data)> 
211								<div class="article-socials-wrapper mt-4"> 
212									<div class="socials-wrapper"> 
213										<div class="socials"> 
214											<ul class="list-inline items socials"> 
215												<#if Contacto.Facebook.data?has_content> 
216													<#assign linkURL = Contacto.Facebook.data/> 
217																											 
218													<#if !stringUtil.startsWith(linkURL, "http")> 
219														<#assign linkURL = "https://${Contacto.Facebook.data}"/> 
220													</#if> 
221													<li class="list-inline-item item facebook"> 
222														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'"> 
223															<span class="fab fa-facebook-f"> 
224																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span> 
225															</span> 
226														</a> 
227													</li> 
228												</#if> 
229												<#if Contacto.Twitter.data?has_content> 
230													<#assign linkURL = Contacto.Twitter.data/> 
231																											 
232													<#if !stringUtil.startsWith(linkURL, "http")> 
233														<#assign linkURL = "https://${Contacto.Twitter.data}"/> 
234													</#if> 
235													<li class="list-inline-item item twitter"> 
236														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'"> 
237															<span class="fab fa-twitter"> 
238																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span> 
239															</span> 
240														</a> 
241													</li> 
242												</#if> 
243												<#if Contacto.Youtube.data?has_content> 
244													<#assign linkURL = Contacto.Youtube.data/> 
245																											 
246													<#if !stringUtil.startsWith(linkURL, "http")> 
247														<#assign linkURL = "https://${Contacto.Youtube.data}"/> 
248													</#if> 
249													<li class="list-inline-item item youtube"> 
250														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'"> 
251															<span class="fab fa-youtube"> 
252																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span> 
253															</span> 
254														</a> 
255													</li> 
256												</#if> 
257												<#if Contacto.Pinterest.data?has_content> 
258													<#assign linkURL = Contacto.Pinterest.data/> 
259																											 
260													<#if !stringUtil.startsWith(linkURL, "http")> 
261														<#assign linkURL = "https://${Contacto.Pinterest.data}"/> 
262													</#if> 
263													<li class="list-inline-item item pinterest"> 
264														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'"> 
265															<span class="fab fa-pinterest-p"> 
266																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span> 
267															</span> 
268														</a> 
269													</li> 
270												</#if> 
271												<#if Contacto.Instagram.data?has_content> 
272													<#assign linkURL = Contacto.Instagram.data/> 
273																											 
274													<#if !stringUtil.startsWith(linkURL, "http")> 
275														<#assign linkURL = "https://${Contacto.Instagram.data}"/> 
276													</#if> 
277													<li class="list-inline-item item instagram"> 
278														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'"> 
279															<span class="fab fa-instagram"> 
280																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span> 
281															</span> 
282														</a> 
283													</li> 
284												</#if> 
285											</ul> 
286										</div> 
287									</div> 
288								</div> 
289							</#if> 
290							<#if getterUtil.getBoolean(Informacion.MesasAsturias.getData()) || 
291									 getterUtil.getBoolean(Informacion.SidreriaAsturias.getData()) || 
292									 getterUtil.getBoolean(Informacion.EstrellaMichelin.getData()) || 
293									 getterUtil.getBoolean(Informacion.QdeCalidadTuristica.getData()) || 
294									 getterUtil.getBoolean(Informacion.MenuCeliacos.getData())|| 
295									 getterUtil.getBoolean(Informacion.AbiertoTodoAno.getData())> 
296									<div class="article-info-table"> 
297										<ul class="article-list article-list-characteristics article-info-border"> 
298 
299										<#if getterUtil.getBoolean(Informacion.MesasAsturias.getData())> 
300											<li class="list-inline-item"> 
301												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/mesas.png" data-toggle="tooltip" data-placement="bottom" alt="${languageUtil.get(request, 'infoasturias-qcalidad')}" title="${languageUtil.get(request, 'infoasturias-mesas')}"/></li> 
302											</li> 
303										</#if>	 
304										<#if getterUtil.getBoolean(Informacion.SidreriaAsturias.getData())> 
305											<li class="list-inline-item"> 
306												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/sidrerias.png" data-toggle="tooltip" data-placement="bottom" alt="${languageUtil.get(request, 'infoasturias-sidrerias')}" title="${languageUtil.get(request, 'infoasturias-sidrerias')}"/></li> 
307											</li> 
308										</#if>	 
309										<#if getterUtil.getBoolean(Informacion.EstrellaMichelin.getData())> 
310											<li class="list-inline-item"> 
311												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/michelin.png" data-toggle="tooltip" data-placement="bottom" alt="${languageUtil.get(request, 'infoasturias-michelin')}" title="${languageUtil.get(request, 'infoasturias-michelin')}"/></li> 
312											</li> 
313										</#if>	 
314										<#if getterUtil.getBoolean(Informacion.QdeCalidadTuristica.getData())> 
315											<li class="list-inline-item"> 
316												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/qturistica.png" data-toggle="tooltip" data-placement="bottom" alt="${languageUtil.get(request, 'infoasturias-qcalidad')}" title="${languageUtil.get(request, 'infoasturias-qcalidad')}"/></li> 
317											</li> 
318										</#if>	 
319										<#if getterUtil.getBoolean(Informacion.MenuCeliacos.getData())> 
320											<li class="list-inline-item"> 
321												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/celiacos.png" data-toggle="tooltip" data-placement="bottom" alt="${languageUtil.get(request, 'infoasturias-celiacos')}" title="${languageUtil.get(request, 'infoasturias-celiacos')}"/></li> 
322											</li> 
323										</#if>	 
324										 
325										</ul> 
326									</div> 
327							</#if> 
328							 
329							 
330						</div> 
331					</div> 
332				</div> 
333			</div> 
334		</div>  
335	</header> 
336	 
337	<div class="sheet sheet-lg"> 
338	 
339		<#if Informacion.Titulo.data?has_content> 
340			<div class="article-great"> 
341				${Informacion.Titulo.data} 
342			</div>	 
343		</#if> 
344		 
345		<#assign hasTab1 = Informacion.Texto.data?has_content> 
346		<#assign hasTab2 = Geolocalizacion.Coordenadas.data?has_content> 
347		<#assign hasTab3 = Especialidades.data?has_content> 
348		<#assign hasTab4 = Servicios.data?has_content> 
349		<#assign hasTab5 = Recetas.data?has_content> 
350		<#assign hasTab6 = AsturiasMascotas?? &&  AsturiasMascotas.LimitacionPeso?? && AsturiasMascotas.LimitacionPeso.data?has_content> 
351		<#assign showFirstTab = true> 
352		 
353		<div class="article-accordion accordion"> 
354 
355			<#if Visualizador.Slide.getData()?has_content> 
356				<div class="slick article-slick article-section <#if Visualizador.Slide.getSiblings()?size==1>hide</#if>"> 
357					<#list Visualizador.Slide.getSiblings() as Slide> 
358						<#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! /> 
359						<#assign slideThumbnail2 = dlTool.getThumbnailByJSON(Slide.data, "2")! /> 
360						<#assign slidePath = dlTool.getPathByJSON(Slide.data, themeDisplay.getScopeGroupId())! /> 
361						<#assign slideUrl = Slide.SlideUrl.data /> 
362						<#assign dataMap = "" /> 
363 
364						<#if slideUrl?has_content> 
365 
366							<#assign slideTitle = "${languageUtil.get(request, 'video')} ${Slide?index}" /> 
367							<#if Slide.SlideTitulo.data?has_content> 
368								<#assign slideTitle = Slide.SlideTitulo.data />   
369							</#if> 
370 
371							<#-- Youtube --> 
372							<#assign slideUrl = stringUtil.replace(slideUrl, 'watch?v=', 'embed/') /> 
373							<#assign slideThumbnail2 = stringUtil.replace(slideUrl, 'www', 'img') /> 
374							<#assign slideThumbnail2 = stringUtil.replace(slideThumbnail2, 'embed', 'vi') /> 
375							<#assign slideThumbnail2 = '${slideThumbnail2}/mqdefault.jpg' /> 
376 
377							<#-- Vimeo --> 
378							<#if slideUrl?contains("vimeo")> 
379								<#assign slideUrl = stringUtil.replace(slideUrl, 'http://vimeo.com/', 'https://player.vimeo.com/video/') /> 
380								<#assign slideVimeoId = stringUtil.extractLast(slideUrl, 'https://player.vimeo.com/video/') /> 
381								<#if slideVimeoId?has_content> 
382									<#assign slideVimeoJsonPath = 'http://vimeo.com/api/v2/video/${slideVimeoId}.json' /> 
383									<#assign slideVimeoJsonContent = getUrlContent.getContent(slideVimeoJsonPath)! /> 
384									<#if slideVimeoJsonContent?has_content> 
385										<#assign slideVimeoJsonArray = jsonFactoryUtil.createJSONArray(slideVimeoJsonContent) /> 
386										<#assign slideVimeoJsonItem = slideVimeoJsonArray.get(0) /> 
387										<#assign slideThumbnail2 = slideVimeoJsonItem.thumbnail_medium /> 
388									</#if> 
389								</#if> 
390							</#if> 
391 
392							<div id="slide-${Slide?index}" class="slide"> 
393								<a class="card card-simple card-video" href="#" onclick="javascript: event.preventDefault(); showDialogIframe('${slideUrl}', '${slideTitle}', 800, 600, 'videoPopup', 'videoPopupIframe');" title="${slideTitle}"> 
394									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
395									<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
396								</a> 
397							</div> 
398						<#else> 
399 
400							<#assign slideTitle = "${languageUtil.get(request, 'image')} ${Slide?index}" /> 
401							<#if Slide.SlideTitulo.data?has_content> 
402								<#assign slideTitle = Slide.SlideTitulo.data />   
403							</#if> 
404 
405							<div class="slide"> 
406								<a class="card card-simple lightbox" href="${slidePath}" title="${slideTitle}"> 
407									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
408									<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
409								</a> 
410							</div> 
411						</#if> 
412					</#list> 
413				</div> 
414			</#if> 
415		 
416			<#if hasTab1> 
417				<div id="tab1" class="article-section accordion-item"> 
418					<a href="#tabContent1" id="tabHeading" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>" aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent1" role="button"> 
419							${languageUtil.get(request,'info')} 
420					</a> 
421					<div id="tabContent1" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading"> 
422						<#if Informacion.Texto.data?has_content> 
423							${Informacion.Texto.data} 
424						</#if> 
425						<#if InfoMascotas ??> 
426						<#if InfoMascotas.data?has_content>						 
427							<div class="h4 mt-5">${languageUtil.get(request,'infoasturias-info-mascotas')}</div> 
428							${InfoMascotas.data} 
429						</#if> 
430						</#if> 
431						 
432					</div> 
433				</div> 
434				<#assign showFirstTab = false> 
435			</#if> 
436			 
437			<#if hasTab2> 
438				<#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) /> 
439				<div id="tab2" class="article-section accordion-item"> 
440					<a href="#tabContent2" id="tabHeading2" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent2" role="button"> 
441					${languageUtil.get(request,'map')} 
442					</a> 
443					<div id="tabContent2" class="article-section-content accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2"> 
444						<div id="article-map-wrapper-${articleId}" class="article-map-wrapper">  
445							<div id="article-map-content-${articleId}" style="width: 100%; height: 388px; z-index:1"><!-- MAP --></div> 
446							<div class="article-map-form">  
447								<div class="name important">${title}</div> 
448								<div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div> 
449								<form action="https://maps.google.es/maps" method="get" target="_blank"> 
450									<input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}"> 
451									<label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label> 
452									<input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
453									<input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
454									<button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} &raquo;</button> 
455								</form> 
456							</div> 
457						</div> 
458						<script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script> 
459						<script type="text/javascript"> 
460							AUI().ready('aui-base', function(A){ 
461								var lat = ${coordenadas[0]}, 
462									lng = ${coordenadas[1]}, 
463									zoom = 16; 
464								mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 16}); 
465 
466								//Marker 
467								var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png'; 
468								var defaultIcon = L.icon({ 
469									iconUrl: defaultIconTheme, 
470									iconSize:     [36, 53], 
471									iconAnchor:   [18, 53], 
472									iconShadow:   [0,0], 
473									popupAnchor:  [0, -30] 
474								}); 
475								var marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent); 
476								 
477								var contentString = '<div class="row">'; 
478								contentString += '<div class="col-12">'; 
479								contentString += '<div class="h4">${htmlUtil.escape(title)}</div>'; 
480								contentString += '</div>'; 
481								contentString += '</div>'; 
482								 
483								contentString += '<div class="row">'; 
484								contentString += '<div class="col-12">'; 
485								<#if validator.isNotNull(articleMainImageThumbnail1)> 
486									contentString += '<img class="pull-right mb-2 ml-2" src="${articleMainImageThumbnail1}" alt="$title"/>'; 
487								</#if> 
488								contentString += '<dl class="mb-0">'; 
489								<#if address?has_content> 
490									contentString += '<dt>${languageUtil.get(request,'address')}</dt>'; 
491									contentString += '<dd>${htmlUtil.escape(address)}</dd>'; 
492								</#if> 
493								<#if Contacto.Telefono.data?has_content> 
494									contentString += '<dt>${languageUtil.get(request,'phone')}</dt>'; 
495									contentString += '<dd>${Contacto.Telefono.data}</dd>'; 
496								</#if> 
497								<#if Contacto.Email.getData()?has_content> 
498									contentString += '<dt>${languageUtil.get(request,'email')}</dt>'; 
499									<#list Contacto.Email.getSiblings() as Item> 
500										contentString += '<dd><a href="mailto:${Item.data}" title="${languageUtil.format(request,'go-to-x', 'email')}">${Item.data}</a></dd>'; 
501									</#list> 
502								</#if> 
503								<#if Contacto.Web.data?has_content> 
504									<#assign linkURL = Contacto.Web.data/>																										 
505									<#if !stringUtil.startsWith(linkURL, "http")> 
506										<#assign linkURL = "https://${Contacto.Web.data}"/> 
507									</#if> 
508									contentString += '<dt>${languageUtil.get(request,'site')}</dt>'; 
509									contentString += '<dd><a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}">${Contacto.Web.data}</a></dd'; 
510								</#if> 
511								contentString += '</dl>'; 
512								contentString += '</div>'; 
513								contentString += '</div>'; 
514								<#if validator.isNotNull(description)> 
515									contentString += '<div class="row"><div class="col-12">${htmlUtil.escape(description)}</div></div>'; 
516								</#if> 
517								marker.bindPopup(contentString); 
518 
519								//Contributor 
520								L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
521									attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.' 
522								}).addTo(mapContent); 
523								 
524							}); //AUI.ready 
525						</script> 
526					</div> 
527				</div> 
528				<#assign showFirstTab = false> 
529			</#if> 
530			 
531			<#if hasTab3> 
532				<div id="tab3" class="article-section accordion-item"> 
533					<a href="#tabContent3" id="tabHeading3" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent3" role="button">${languageUtil.get(request,'infoasturias-especialidades')}</a> 
534					<div id="tabContent3" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading3"> 
535						<#if Especialidades.data?has_content> 
536							${Especialidades.data} 
537						</#if> 
538					</div> 
539				</div> 
540				<#assign showFirstTab = false> 
541			</#if>	 
542 
543			<#if hasTab4> 
544				<div id="tab4" class="article-section accordion-item"> 
545					<a href="#tabContent4" id="tabHeading4" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent4" role="button">${languageUtil.get(request,'infoasturias-servicios')}</a> 
546					<div id="tabContent4" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading4"> 
547						<#if Servicios.data?has_content> 
548							${Servicios.data} 
549						</#if> 
550					</div> 
551				</div> 
552				<#assign showFirstTab = false> 
553			</#if> 
554			 
555			<#if hasTab5> 
556				<div id="tab5" class="article-section accordion-item"> 
557					<a href="#tabContent5" id="tabHeading5" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent5" role="button">${languageUtil.get(request,'infoasturias-recetas')}</a> 
558					<div id="tabContent5" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading5"> 
559						<#if Recetas.data?has_content> 
560							${Recetas.data} 
561						</#if> 
562					</div> 
563				</div> 
564				<#assign showFirstTab = false> 
565			</#if> 
566			<#if hasTab6> 
567				<div id="tab6" class="article-section accordion-item"> 
568					<a href="#tabContent6" id="tabHeading6" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent6" role="button">${languageUtil.get(request,'infoasturias-info-mascotas')}</a> 
569					<div id="tabContent6" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading6"> 
570						<#if AsturiasMascotas.LimitacionPeso?? && AsturiasMascotas.LimitacionPeso.data?has_content || AsturiasMascotas.AdmitePPP?? && AsturiasMascotas.AdmitePPP.data?has_content || 
571							AsturiasMascotas.NumeroMaximoReserva?? && AsturiasMascotas.NumeroMaximoReserva.data?has_content || AsturiasMascotas.NumeroMaximoRestaurante?? && AsturiasMascotas.NumeroMaximoRestaurante.data?has_content || AsturiasMascotas.AccesoInterior?? && AsturiasMascotas.AccesoInterior.data?has_content || AsturiasMascotas.AccesoTerraza?? && AsturiasMascotas.AccesoTerraza.data?has_content || AsturiasMascotas.TerrazaCalefactada?? && AsturiasMascotas.TerrazaCalefactada.data?has_content || AsturiasMascotas.DetalleNormas?? && AsturiasMascotas.DetalleNormas.data?has_content> 
572							<ul class="list-unstyled"> 
573								<div class="list-iconos">							 
574									<#if AsturiasMascotas.LimitacionPeso.data?has_content> 
575										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono">	 
576											<#assign LimitacionPesoKey = journalTool.getDDMStructureSelectKeyByJournalArticle(journalArticle, "LimitacionPeso", AsturiasMascotas.LimitacionPeso.getData(), locale)/> 
577											<#assign LimitacionPesoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Limitación de tamaño")/> 
578											<#if AsturiasMascotas.LimitacionPeso.getData() != ""> 
579												<div><img src="${LimitacionPesoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-peso')}"/><span class="value">${LimitacionPesoKey}</span></div> 
580												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-peso')}</span>							 
581											</#if>									 
582										</div> 
583									</#if> 
584									<#if AsturiasMascotas.NumeroMaximoReserva.data?has_content> 
585										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
586											<#assign NumeroMaximoKey = journalTool.getDDMStructureSelectKeyByJournalArticle(journalArticle, "NumeroMaximoReserva", AsturiasMascotas.NumeroMaximoReserva.getData(), locale)/> 
587											<#assign NumeroMaximoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Número máximo de perros por reserva")/> 
588											<#if AsturiasMascotas.NumeroMaximoReserva.getData() != ""> 
589												<div><img src="${NumeroMaximoImage[0]}" alt="${languageUtil.get(request,'infoasturias-maximo-persona')}"/><span class="value-icono">${NumeroMaximoKey}</span></div> 
590												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-maximo-persona')}</span>	 
591																					 
592											</#if>									 
593										</div> 
594									</#if>	 
595									<#if AsturiasMascotas.NumeroMaximoRestaurante.data?has_content> 
596										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
597											<#assign NumeroMaximoresrauranteImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Número máximo de perros en restaurante")/> 
598											<div><img src="${NumeroMaximoresrauranteImage[0]}" alt="${languageUtil.get(request,'infoasturias-maximo-restaurante')}"/><span class="value-icono">${AsturiasMascotas.NumeroMaximoRestaurante.data}</span></div> 
599											<span class="text-value">${languageUtil.get(request,'infoasturias-maximo-restaurante')}</span>																	 
600										</div> 
601									</#if> 
602									<#if AsturiasMascotas.AccesoInterior.data?has_content> 
603										<#assign AccesoInteriorImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Accesso al interior")/>	 
604										<#assign SinAccesoInteriorImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Sin acceso interior")/> 
605										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
606											<#if AsturiasMascotas.AccesoInterior.getData() == "Si"> 
607												<div ><img src="${AccesoInteriorImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-interior')}"/></div> 
608												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-interior')}</span>											 
609											<#else> 
610												<div><img src="${SinAccesoInteriorImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-no-interior')}"/></div> 
611												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-no-interior')}</span>														 
612											</#if>	 
613										</div> 
614									</#if>										 
615								</div>									 
616								<div class="article-info-table">	 
617									<div class="mb-4 title-normas article-info-border">${languageUtil.get(request,'infoasturias-normas-mascotas')}</div>	 
618									<ul class="list-unstyled"> 
619										<#if AsturiasMascotas.AdmitePPP.data?has_content> 
620											<li class="fas d-block track">									 
621												<#if AsturiasMascotas.AdmitePPP.getData() == "Si"> 
622													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-ppp')}.</span>	 
623												<#else> 
624													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-ppp')}.</span> 
625												</#if>										 
626											</li> 
627										</#if> 
628										<#if AsturiasMascotas.AccesoTerraza.data?has_content> 
629											<li class="fas d-block track">									 
630												<#if AsturiasMascotas.AccesoTerraza.getData() == "Si"> 
631													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-terraza')}.</span>	 
632													<#if AsturiasMascotas.TerrazaCalefactada.getData() == "Si"> 
633														<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-terraza-calefactada')}</span>	 
634													<#else> 
635														<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-terraza-calefactada')}</span>														 
636													</#if>														 
637												<#else> 
638													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-terraza')}.</span> 
639												</#if>										 
640											</li> 
641										</#if>																									 
642										<#if AsturiasMascotas.OtrasMascotas?? && AsturiasMascotas.OtrasMascotas.data?has_content || AsturiasMascotas.OtrosAnimales?? && AsturiasMascotas.OtrosAnimales.data?has_content> 
643											<li class="fas d-block track">									 
644												<#if AsturiasMascotas.OtrasMascotas.getData() == "Si"> 
645													<span class="text-rule">${languageUtil.get(request,'infoasturias-otras-mascotas')}:</span> 
646													<span class="text-rule">${AsturiasMascotas.OtrosAnimales.data}</span> 
647												<#else> 
648													<span class="text-rule">${languageUtil.get(request,'infoasturias-no-otras-mascotas')}</span> 
649												</#if>										 
650											</li> 
651										</#if>														 
652										<#if AsturiasMascotas.DetalleNormas.data?has_content>						 
653											<li class="fas d-block track"> 
654												<span class="text-rule">${AsturiasMascotas.DetalleNormas.data}</span> 
655											</li> 
656										</#if> 
657									</ul> 
658								</div>	 
659							</ul> 
660						</#if> 
661					</div> 
662				</div> 
663				<#assign showFirstTab = false> 
664			</#if> 
665		</div> 
666		 
667		<div class="article-border"> 
668			<#if Observaciones.Observacion.data?has_content> 
669				${Observaciones.Observacion.data} 
670			</#if> 
671			 
672			<#if stringUtil.matches(Observaciones.MasInformacion.data, "//") && Contacto.MasInformacion?? > 
673				<a class="" href="${Contacto.MasInformacion.data}" title="${languageUtil.format(request,'go-to-x', 'link')}">${Contacto.MasInformacion.data} 
674			<#else> 
675				<span class="">${Observaciones.MasInformacion.data}</span> 
676			</#if> 
677 
678			<#if OtrosDatos.DatosFacilitadosPor?has_content> 
679				<div class="mt-4"> 
680					<span class="important mr-1">${languageUtil.get(request,'infoasturias-datos-facilitados-por')}:</span><span class="text-wrapper">${OtrosDatos.DatosFacilitadosPor.data}.</span> 
681				</div> 
682			</#if> 
683			 
684			<#if CodigoDGT.data?has_content> 
685				<div> 
686					<span class="text-wrapper mr-1">${languageUtil.get(request,'infoasturias-establecimiento-inscrito-en-registro')} </span><span class="important">${CodigoDGT.data}.</span> 
687				</div> 
688			</#if> 
689			<div class="text-wrapper">${languageUtil.get(request,'infoasturias-precios-orientativos')}.</div> 
690		</div> 
691		<div class="row mt-5"> 
692			<div class="col-12 mb-3"> 
693				<div class="text-center"> 
694					<#if Contacto.Email.data?has_content> 
695						<a href="mailto:${Contacto.Email.data}?Subject=${title}:%20${languageUtil.get(request,'infoasturias-more-info')}" class="btn btn-default text-center text-uppercase"> 
696							<span class="far fa-envelope mr-2"> 
697								<span class="hide-accessible">${languageUtil.get(request,"email")}</span> 
698							</span> 
699							${languageUtil.get(request,'infoasturias-more-info')} 
700						</a> 
701					</#if>					 
702				</div>	 
703			</div> 
704		</div> 
705	 
706	<#-- Related --> 
707	<#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/> 
708	<#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0> 
709		<div class="article-related portlet-background-grey-container"> 
710			<div class="container"> 
711				<h3 class="title-section">${languageUtil.get(request,'related-assets')}</h3> 
712				<div class="slick article-related-slick"> 
713					<#list relatedJournalArticles as currentJournalArticle> 
714						<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
715							<div class="slide"> 
716								<a class="card background card-background-9-14"  href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
717									<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
718										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
719										<span class="card-body"> 
720											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
721										</span> 
722									</span> 
723								</a> 
724							</div> 
725					</#list> 
726				</div> 
727			</div> 
728		</div> 
729	</#if> 
730	 
731	<#-- Nearby --> 
732	<#assign classTypeIds = [598853,582814,625593,623117,609431,593783]> 
733	<#assign assetsNearJournalArticles = assetNearTool.getNearJournalArticles(themeDisplay.getScopeGroupId(), assetEntry.getEntryId(), 50.0, classTypeIds, 25)! /> 
734	<#if validator.isNotNull(assetsNearJournalArticles) && assetsNearJournalArticles?size gt 0> 
735		<div class="article-nearby portlet-container-margin"> 
736			<div class="container"> 
737				<div class="article-nearby-container"> 
738					<h3 class="title-section">${languageUtil.get(request,'infoasturias-near-here')}</h3> 
739					<div class="slick article-nearby-slick"> 
740						<#list assetsNearJournalArticles as currentJournalArticle> 
741							<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
742							<div class="slide"> 
743								<a class="card" href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
744									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
745										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
746										<span class="card-hover"> 
747											<span class="card-text">${currentJournalArticle.getDescription(locale)}</span> 
748										</span> 
749									</span> 
750									<span class="card-body"> 
751										<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
752										<span class="card-subtitle"> 
753											<span class="d-block">${currentJournalArticle.getVersion()} Kms</span> 
754											<span class="d-block">${journalTool.getCategoriesNames(groupId, currentJournalArticle.getArticleId(), locale, ["Concejos"])}</span> 
755										</span> 
756									</span> 
757								</a> 
758							</div> 
759						</#list> 
760					</div> 
761				</div> 
762			</div> 
763		</div> 
764	</#if> 
765	 
766</article>