Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> Contacto.Instagram  [in template "37703#37743#1558395" at line 501, column 335]

----
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 validator.isNotNull(Contacto.Face...  [in template "37703#37743#1558395" at line 501, column 57]
----
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<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
6<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
7 
8<#-- Reserved vbles --> 
9<#assign title = .vars['reserved-article-title'].data> 
10<#assign articleId=.vars["reserved-article-id"].data /> 
11<#assign description=.vars["reserved-article-description"].data /> 
12<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data /> 
13<#assign date=.vars["reserved-article-display-date"].data /> 
14<#assign request = .vars['request']> 
15 
16<#-- Init --> 
17<#assign assetEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)> 
18<#assign journalArticle = journalTool.getJournalArticleByAssetEntry(assetEntry)> 
19<#assign articleURL = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()> 
20<#assign articleSocialBookmarks = themeDisplay.getThemeSetting("article-social-bookmarks")!> 
21<#assign layoutSetBannerPath = layoutTool.getLayoutSetBannerPath(groupId, themeDisplay.getLayout().isPrivateLayout())!> 
22<#assign articleMainImageThumbnail3 = dlTool.getThumbnail(smallImageUrl, "3", layoutSetBannerPath)! /> 
23<#assign articleMainImageThumbnail1 = dlTool.getThumbnail(smallImageUrl, "1")! /> 
24<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" /> 
25 
26<#-- Params --> 
27<#assign cmd = paramUtil.getString(request, "p_r_p_cmd") /> 
28 
29<#-- Build --> 
30<#if Nombre.data?has_content> 
31	<#assign title = Nombre.data> 
32</#if> 
33 
34<#assign cssCategoryClass = ""> 
35<#assign categoryAlojamiento = ""> 
36<#assign showNRooms = false> 
37<#assign showApartments = false> 
38<#assign showCampings = false> 
39<#assign showCosts = false> 
40<#assign categoriesDondeDormir = journalTool.getCategories(themeDisplay.getScopeGroupId(), articleId, ["Dónde dormir"])> 
41<#assign caminoCategories = journalTool.getCategories(groupId, journalArticle.getArticleId(), ["Camino"])/> 
42 
43<#list categoriesDondeDormir as categoryDondeDormir> 
44 
45	<#-- Tipo de tipoAlojamiento --> 
46		<#assign categoryAlojamiento = categoryDondeDormir.getTitle(locale)> 
47 
48	<#if categoryDondeDormir.name == "Hotel" || categoryDondeDormir.name == "Pensión" || categoryDondeDormir.name == "Hotel-apartamento" || categoryDondeDormir.name == "Hotel Rural" || categoryDondeDormir.name == "Hostal"> 
49		<#assign cssCategoryClass = "star"> 
50		<#if categoryDondeDormir.name == "Hotel-apartamento"> 
51			<#assign showApartments = true> 
52		<#else> 
53			<#assign showNRooms = true> 
54		</#if>	 
55	<#elseif categoryDondeDormir.name == "Apartamento Turístico" || categoryDondeDormir.name == "Apartamento Rural"> 
56		<#assign cssCategoryClass = "key"> 
57		<#assign showApartments = true> 
58	<#elseif categoryDondeDormir.name == "Casa rural íntegra" || categoryDondeDormir.name == "Casa rural alquiler por habitaciones"> 
59		<#assign cssCategoryClass = "triskel"> 
60		<#assign showNRooms = true> 
61	<#elseif categoryDondeDormir.name == "Camping"> 
62		<#assign cssCategoryClass = "camping"> 
63		<#assign showCampings = true> 
64	<#elseif categoryDondeDormir.name == "Albergue turístico" || categoryDondeDormir.name == "Albergue de peregrinos" || categoryDondeDormir.name == "Albergue juvenil"> 
65		<#assign cssCategoryClass = "hostel"> 
66		<#assign showNRooms = true> 
67	<#elseif categoryDondeDormir.name == "Vivienda Vacacional" || categoryDondeDormir.name == "Vivienda Uso Turístico"> 
68		<#assign showNRooms = true> 
69	<#elseif categoryDondeDormir.name == "Casa de Aldea íntegra" || categoryDondeDormir.name == "Casa rural alquiler por habitaciones" || categoryDondeDormir.name == "Apartamento rural"> 
70		<#assign showCosts = true> 
71	</#if> 
72</#list> 
73<#assign showReservaButton = true/> 
74<#assign hasCategoryImage = false /> 
75<#assign esGratis = false/> 
76<#assign donativo = false/> 
77<#assign precioOrientativo = true/> 
78<article class="template ${ddmStructureNameNormalize}" role="article" itemscope itemtype="http://schema.org/LodgingBusiness"> 
79	 
80	<header class="article-header-wrapper row no-gutters"> 
81	     
82		<div class="article-header-container article-header-container-static"> 
83			<div class="container"> 
84				<div class="row no-gutters"> 
85					<div class="col-md-6"> 
86						<div class="article-image" style="background-image: url('${articleMainImageThumbnail3}')"> 
87							<img class="sr-only" src="${articleMainImageThumbnail3}" alt="${languageUtil.format(request,'go-to-x','image')} ${title}" itemprop="image"/> 
88						</div> 
89					</div> 
90					<div class="article-info-wrapper col-md-6"> 
91						<div class="article-info"> 
92							<h2 class="article-title" itemprop="name">${title}</h2> 
93							<div class="article-list-wrapper"> 
94							 
95								<div class="article-info-table"> 
96									<div class="article-info-table-row"> 
97										<div class="article-info-table-cell"> 
98											<ul class="article-list list-unstyled article-list-info"> 
99												<#if InformacionEspecifica.IconoCategoria.data?has_content> 
100													<#assign icono = "${cssCategoryClass}-${InformacionEspecifica.IconoCategoria.data} text-indent-image" /> 
101													<li class="article-list-item mb-4"> 
102														<span class="fas fa-tag hide" aria-hidden="true"></span> 
103														<span class="hide-accessible">${languageUtil.get(request,"category")}</span> 
104														<span class="field-wrapper"> 
105															<#if categoryAlojamiento?has_content> 
106																<span class="field category-alojamiento important">${categoryAlojamiento}</span> 
107															</#if> 
108															<span class="text ${icono}"><span>${InformacionEspecifica.IconoCategoria.getData()}</span></span> 
109															<#if Cadena ?? && validator.isNotNull(Cadena.data)> 
110																<span class="text d-block">${Cadena.data}</span> 
111															</#if> 
112														</span> 
113													</li> 
114												<#else> 
115													<li class="article-list-item mb-4"> 
116														<span class="field-wrapper"> 
117															<#if categoryAlojamiento?has_content> 
118																<span class="field category-alojamiento important">${categoryAlojamiento}</span> 
119															</#if> 
120														</span> 
121													</li>												 
122												</#if>									 
123												<#if InformacionEspecifica.Plazas.data?has_content> 
124													<li class="article-list-item"> 
125														<span class="fas fa-users" aria-hidden="true"></span> 
126														<span class="hide-accessible">${languageUtil.get(request,"infoasturias-plazas")}</span> 
127														<span class="field-wrapper"> 
128															<span class="field">${languageUtil.get(request, "infoasturias-plazas")}:</span> 
129															<span class="text"> 
130																${InformacionEspecifica.Plazas.data} 
131																<#if InformacionEspecifica.PlazasSupletorias.data?has_content> 
132																	${languageUtil.format(request,'infoasturias-plazas-supletorias', InformacionEspecifica.PlazasSupletorias.data)} 
133																</#if> 
134															</span> 
135														</span> 
136													</li> 
137												</#if> 
138 
139												<#if InformacionEspecifica.NHabitaciones.data?has_content> 
140													<li class="article-list-item"> 
141														<span class="fas fa-bed" aria-hidden="true"></span> 
142														<span class="hide-accessible">${languageUtil.get(request,"infoasturias-habitaciones")}</span> 
143														<span class="field-wrapper"> 
144															<span class="field">${languageUtil.get(request, "infoasturias-habitaciones")}:</span> 
145															<span class="text"> 
146																${InformacionEspecifica.NHabitaciones.data} 
147															</span> 
148														</span> 
149													</li> 
150												</#if> 
151 
152												<#if showNRooms> 
153													<#if InformacionEspecifica.NApartamentos.data?has_content> 
154														<li class="article-list-item"> 
155															<span class="fas fa-bed" aria-hidden="true"></span> 
156															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-habitaciones")}</span> 
157															<span class="field-wrapper"> 
158																<span class="field">${languageUtil.get(request, "infoasturias-habitaciones")}:</span> 
159																<span class="text">${InformacionEspecifica.NApartamentos.data}</span> 
160															</span> 
161														</li> 
162													</#if> 
163													 
164													<#if InformacionEspecifica.CapacidadApartamentos.data?has_content> 
165														<li class="article-list-item"> 
166															<span class="fas fa-building" aria-hidden="true"></span> 
167															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-apartamentos")}</span> 
168															<span class="field-wrapper"> 
169																<span class="field">${languageUtil.get(request, "infoasturias-apartamentos")}:</span> 
170																<span class="text"> 
171																	<#list InformacionEspecifica.CapacidadApartamentos.getSiblings() as capacidadApartamento> 
172																		${capacidadApartamento.data} <#if !capacidadApartamento?is_last>, </#if> 
173																	</#list> 
174																</span> 
175															</span> 
176														</li> 
177													</#if> 
178												</#if> 
179 
180												<#if showApartments> 
181													<#if InformacionEspecifica.NApartamentos.data?has_content> 
182														<li class="article-list-item"> 
183															<span class="fas fa-bed" aria-hidden="true"></span> 
184															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-apartamentos")}</span> 
185															<span class="field-wrapper"> 
186																<span class="field">${languageUtil.get(request, "infoasturias-apartamentos")}:</span> 
187																<span class="text">${InformacionEspecifica.NApartamentos.data}</span> 
188															</span> 
189														</li> 
190													</#if> 
191													 
192													<#if InformacionEspecifica.CapacidadApartamentos.data?has_content> 
193														<li class="article-list-item"> 
194															<span class="fas fa-building" aria-hidden="true"></span> 
195															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-apartamentos")}</span> 
196															<span class="field-wrapper"> 
197																<span class="field">${languageUtil.get(request, "infoasturias-apartamentos-capacidad")}:</span> 
198																<span class="text"> 
199																	<#list InformacionEspecifica.CapacidadApartamentos.getSiblings() as capacidadApartamento> 
200																		${capacidadApartamento.data} <#if !capacidadApartamento?is_last>- </#if> 
201																	</#list> 
202																</span> 
203															</span> 
204														</li> 
205													</#if> 
206												</#if> 
207 
208												<#if showCampings> 
209													<li class="article-list-item"> 
210														<span class="fas fa-warehouse" aria-hidden="true"></span> 
211														<span class="hide-accessible">${languageUtil.get(request,"infoasturias-parcelas")}</span> 
212														<span class="field-wrapper"> 
213															<span class="field">${languageUtil.get(request, "infoasturias-parcelas")}:</span> 
214															<span class="text">${InformacionEspecifica.NParcelas.data}</span> 
215														</span> 
216													</li> 
217												</#if> 
218											</ul> 
219										</div> 
220										<#if Peregrinos ??> 
221											<#if getterUtil.getBoolean(Peregrinos.AdmiteReservas.getData())> 
222												<#assign showReservaButton = false/> 
223											</#if>     
224											<#if Peregrinos.BookingWeb?? && Peregrinos.BookingWeb.data?has_content> 
225												<#assign UrlBooking = Peregrinos.BookingWeb.getData() /> 
226												<#assign isExternalLink = !UrlBooking?starts_with("/") && !UrlBooking?contains(themeDisplay.getPortalURL()) /> 
227												<a href="${htmlUtil.escapeHREF(UrlBooking)}" class="btn btn-primary btn-small text-center text-uppercase" 
228												   <#if isExternalLink> 
229														   target="_blank"  
230														   rel="noopener noreferrer" 
231														   aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')} (${languageUtil.get(request,'opens-new-window')})" 
232												   </#if>> 
233													<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="${languageUtil.format(request,'go-to-x', 'infoasturias-reservar-ahora')}" aria-hidden="true" role="presentation"/> 
234													<span class="btn-text"> 
235														${languageUtil.get(request,'infoasturias-reservar-ahora')} 
236													</span> 
237												</a>                                                 
238												<#assign showReservaButton = false/> 
239											</#if> 
240										</#if> 
241										<#if Contacto.Email.data?has_content || CodigoDGT.data?has_content> 
242											<#if showReservaButton> 
243												<div class="article-info-table-cell align-middle"> 
244													<#if Contacto.Email.data?has_content> 
245														<#assign params = {"displayStyle": "ddmTemplate_441008", "portletId": portletTool.getPortletId(request), "articleId": "${articleId}"}> 
246														<#assign portletURL = portletTool.createURL(request, "as_asac_adtvisor_portlet_AdtVisorDialogPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", params) /> 
247														<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-availability-request" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${portletURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '', '','formularioReserva', 'formularioReservaIframe');" > 
248															<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="" aria-hidden="true" role="presentation"> 
249															${languageUtil.get(request,'infoasturias-reservar-ahora')} 
250														</button> 
251													</#if> 
252													<#if CodigoDGT.data?has_content> 
253														<#assign paramsMap = {"accommodationCode": CodigoDGT.data, "jspPage": "/html/results/accommodation/accommodation.jsp"} /> 
254														<#assign bookingURL = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingResultsPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", paramsMap) /> 
255														<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-accommodation-booking" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${bookingURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '800px', '','formularioReserva', 'formularioReservaIframe');"> 
256															<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="" aria-hidden="true" role="presentation"> 
257															${languageUtil.get(request,'infoasturias-reservar-ahora')} 
258														</button> 
259													</#if> 
260												</div> 
261											</#if> 
262										</#if> 
263									</div> 
264								</div>															 
265								<div class="article-list-wrapper pt-3"> 
266									<ul class="article-list list-unstyled article-list-info"> 
267										<li class="article-list-item mb-2 pl-2">							 
268											<#if caminoCategories?size !=0> 
269												<#if (caminoCategories?size ==2)> 
270													<div class="col-9 d-table-cell align-middle">	 
271														<#list caminoCategories as ctg>													 
272															<#if ctg.getParentCategoryId() == 0> 
273																<#assign imageCategoryUuid = assetCategoryTool.getCategoryProperty(ctg.getCategoryId(), "image")/> 
274																<#if validator.isNotNull(imageCategoryUuid)> 
275																	<#assign imagePath = dlTool.getPathByUuid(imageCategoryUuid, groupId)/>	 
276																	<#if validator.isNotNull(imagePath) && !hasCategoryImage> 
277																		<#assign hasCategoryImage = true /> 
278																		<div class="d-block pull-left mr-3 mb-4"> 
279																			<img alt="Camino de Santiago" src="${imagePath}"> 
280																		</div> 
281																	</#if> 
282																</#if>	 
283																<div class="field-wrapper text-uppercase d-block"> 
284																	<span class="field">${languageUtil.get(request, "infoasturias-itinerario")}:</span> 
285																	<span class="text">${ctg.getTitle(locale)}</span>	 
286																</div> 
287															<#elseif ctg.getParentCategoryId() != 0> 
288																<div class="field-wrapper"> 
289																	<span class="text">${ctg.getTitle(locale)}</span>	 
290																</div> 
291															</#if> 
292														</#list> 
293													</div> 
294												<#elseif (caminoCategories?size gt 2)>		 
295													<div class="col-9 d-table-cell align-middle">													 
296														<#list caminoCategories as ctg>																 
297															<#if ctg.getParentCategoryId() == 0> 
298																<#assign imageCategoryUuid = assetCategoryTool.getCategoryProperty(ctg.getCategoryId(), "image")/> 
299																<#if validator.isNotNull(imageCategoryUuid)> 
300																	<#assign imagePath = dlTool.getPathByUuid(imageCategoryUuid, groupId)/>	 
301																	<#if validator.isNotNull(imagePath) && !hasCategoryImage> 
302																		<#assign hasCategoryImage = true /> 
303																		<div class="d-block pull-left mr-3 mb-4"> 
304																			<img alt="Camino de Santiago" src="${imagePath}"> 
305																		</div> 
306																	</#if> 
307																</#if>	 
308																<div class="field-wrapper text-uppercase d-block"> 
309																	<span class="field">${languageUtil.get(request, "infoasturias-itinerario")}:</span> 
310																	<span class="text">${ctg.getTitle(locale)}</span>	 
311																</div> 
312																<#list caminoCategories as childCtg> 
313																	<#if ctg.getCategoryId() == childCtg.getParentCategoryId()> 
314																		<div class="field-wrapper"> 
315																			<span class="text">${childCtg.getTitle(locale)}</span> 
316																		</div> 
317																	</#if> 
318																</#list> 
319															</#if> 
320														</#list> 
321													</div> 
322												</#if> 
323											</#if> 
324										</li> 
325										<#if Peregrinos ??> 
326											<#if Peregrinos.Exclusivo.data?has_content> 
327												<#assign exclusivoKey = journalTool.getDDMStructureSelectKeyByJournalArticle(journalArticle, "Exclusivo", Peregrinos.Exclusivo.getData(), locale)/> 
328												<#if validator.isNotNull(exclusivoKey)> 
329													<li class="article-list-item mb-4 pl-4 separator-peregrinos">										 
330														<span class="field-wrapper"> 
331															<span class="field">${languageUtil.get(request, "infoasturias-peregrinos-exclusivo")}:</span> 
332															<span class="text">${exclusivoKey} </span> 
333														</span> 
334													</li> 
335												</#if>												 
336											</#if>					 
337										</#if> 
338										<li class="article-list-item mb-4"> 
339											<span class="fas fa-map-marker-alt" aria-hidden="true"></span> 
340											<span class="hide-accessible">${languageUtil.get(request,"address")}</span>										 
341											<span class="field-wrapper" itemprop="address"> 
342												<#if Contacto.Concejo.data?has_content> 
343													<span class="important">${Contacto.Concejo.data}</span> 
344												<#else> 
345													<span class="important">${title}</span> 
346												</#if> 
347												<#if Contacto.Zona.data?has_content> 
348													<span class="text d-block">${Contacto.Zona.data}</span> 
349												</#if> 
350												 
351											</span> 
352										</li> 
353										<#if validator.isNotNull(Contacto.Direccion.data) || validator.isNotNull(Contacto.CP.data) || validator.isNotNull(Contacto.Localidad.data)> 
354											<li class="article-list-item"> 
355												<span class="far fa-address-card" aria-hidden="true"></span> 
356												<span class="hide-accessible">${languageUtil.get(request,"address")}</span> 
357												<span class="field-wrapper"> 
358													<span class="field">${languageUtil.get(request, "address")}:</span> 
359													<span class="text">${Contacto.Direccion.data}</span> 
360													<span class="text"> ■ ${Contacto.CP.data} - ${Contacto.Localidad.data}</span> 
361												</span> 
362											</li> 
363										</#if> 
364 
365										<#if Contacto.Telefono.data?has_content>									 
366											<li class="article-list-item"> 
367												<span class="fas fa-phone-alt" aria-hidden="true"></span> 
368												<span class="hide-accessible">${languageUtil.get(request,"phone")}</span> 
369												<span class="field-wrapper"> 
370													<span class="field">${languageUtil.get(request, "phone")}:</span> 
371													<#list Contacto.Telefono.getSiblings() as telephone> 
372													<#assign numberTelefono = telephone.data?replace(" ", "")/>	 
373													<#assign numberLength = numberTelefono?length/> 
374													<#if numberLength == 9> 
375														<#assign number = "+34${numberTelefono}"/> 
376													<#else> 
377														<#assign number = numberTelefono/> 
378													</#if> 
379													<span class="text"> 
380														<a href="tel:${number}" itemprop="telephone">${telephone.data}</a> 
381														<#if !telephone?is_last>|</#if> 
382													</span> 
383													</#list>													 
384												</span> 
385											</li> 
386										</#if> 
387										<#if Contacto.whatsapp ??> 
388											<#if Contacto.whatsapp.data?has_content> 
389												<#assign numberWhatsapp = Contacto.whatsapp.data?replace(" ", "")/> 
390												<li class="article-list-item"> 
391													<span class="fab fa-whatsapp" aria-hidden="true"></span> 
392													<span class="hide-accessible">WhatsApp</span> 
393													<span class="field-wrapper"> 
394														<span class="field">WhatsApp:</span> 
395														<span class="text" itemprop="telephone"><a href="https://wa.me/34${numberWhatsapp}">${Contacto.whatsapp.data}</a></span> 
396													</span> 
397												</li> 
398											</#if> 
399										</#if> 
400										<#if Contacto.Email.data?has_content> 
401											<li class="article-list-item"> 
402												<span class="far fa-envelope" aria-hidden="true"></span> 
403												<span class="hide-accessible">${languageUtil.get(request,"email")}</span> 
404												<span class="field-wrapper"> 
405													<span class="field">${languageUtil.get(request, "email")}:</span> 
406													<#list Contacto.Email.getSiblings() as email> 
407														<span class="text"> 
408															<a class="" href="mailto:${email.data}" title="${languageUtil.format(request,'send-email-to-x', 'email')}" itemprop="email">${email.data}</a> 
409															<#if !email?is_last>|</#if> 
410														</span> 
411													</#list> 
412												</span> 
413											</li> 
414										</#if> 
415										<#if Contacto.Web.data?has_content> 
416<#if Contacto.Web?? && Contacto.Web.getSiblings()?has_content> 
417    <li class="article-list-item web"> 
418        <span class="fas fa-link" aria-hidden="true"></span> 
419        <span class="field-wrapper"> 
420            <span class="field">${languageUtil.get(request, "site")}:</span> 
421            <#assign webCount = Contacto.Web.getSiblings()?size /> 
422            <#list Contacto.Web.getSiblings() as web> 
423                <#assign linkURL = web.data/> 
424                <#if !stringUtil.startsWith(linkURL, "http")> 
425                    <#assign linkURL = "https://${web.data}"/> 
426                </#if> 
427                <#assign linkNumber = web?index + 1 /> 
428                <a href="${linkURL}"  
429                   target="_blank"  
430                   rel="noopener noreferrer"  
431                   aria-label="${languageUtil.get(request, 'site')} ${linkNumber} - ${title} ${languageUtil.get(request, 'opens-new-window')}"  
432                   class="text" 
433                   itemprop="url"> 
434                    <#if webCount gt 1> 
435                        ${languageUtil.get(request, "visit")} ${linkNumber} 
436                    <#else> 
437                        ${languageUtil.get(request, "visit")} 
438                    </#if> 
439                    <span class="fas fa-external-link-alt" aria-hidden="true"></span> 
440                </a><#if !web?is_last> </#if> 
441            </#list> 
442        </span> 
443    </li> 
444</#if> 
445										</#if>	 
446										<#if Informacion.FechasCierre.data?has_content> 
447											<li class="article-list-item mt-4"> 
448												<span class="fas fa-calendar" aria-hidden="true"></span> 
449												<span class="hide-accessible">${languageUtil.get(request,"infoasturias-fechas-de-cierre")}</span> 
450												<span class="field-wrapper"> 
451													<span class="field">${languageUtil.get(request, "infoasturias-fechas-de-cierre")}:</span> 
452													<span class="text">${Informacion.FechasCierre.data}</span> 
453												</span> 
454											</li> 
455										</#if> 
456										<#if Informacion.AbiertoTodoAno.data?has_content && (Informacion.AbiertoTodoAno.data == "Si" || Informacion.AbiertoTodoAno.data == "Sí" || Informacion.AbiertoTodoAno.data == "SI")> 
457											<li class="article-list-item mt-4"> 
458												<span class="fas fa-door-open" aria-hidden="true"></span> 
459												<span class="hide-accessible">${languageUtil.get(request,"infoasturias-abierto-todo-anio")}</span> 
460												<span class="field-wrapper"> 
461													<span class="text">${languageUtil.get(request, "infoasturias-abierto-todo-anio")}</span> 
462												</span> 
463											</li> 
464										</#if>	 
465										<#if Descargas ??> 
466											<#if validator.isNotNull(Descargas.Archivo.data)> 
467												<#if validator.isNotNull(Descargas.Archivo.data)> 
468												<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Descargas.Archivo.data) /> 
469													<#if validator.isNotNull(dlFileEntry)> 
470														<#assign ext = dlFileEntry.getExtension()!/> 
471														<li class="article-list-item document document-${ext}"> 
472															<span class="fas fa-file" aria-hidden="true"></span> 
473															<span class="hide-accessible">${languageUtil.get(request,"related-documents")}</span> 
474															<span class="field-wrapper"> 
475																<span class="field">${languageUtil.get(request, "related-documents")}:</span> 
476																<span class="text"> 
477																	<#list Descargas.Archivo.getSiblings() as Item> 
478																		<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Item.data) /> 
479																		<#assign downloadURL = "/documents/${groupId}/${dlFileEntry.getUuid()}" /> 
480																		<#if validator.isNotNull(dlFileEntry)> 
481																			<#if Item.ArchivoTitulo.data?has_content> 
482																				<a href="${downloadURL}" title='${languageUtil.get(request, "${Item.ArchivoTitulo.data}")} ${htmlUtil.escape(title)}' class="">${Item.ArchivoTitulo.data}</a>	 
483																				<#if Item_has_next>, </#if> 
484																			<#else> 
485																				<a href="${downloadURL}" title='${languageUtil.get(request, "${dlFileEntry.getTitle()}")} ${htmlUtil.escape(title)}' class="">${dlFileEntry.getTitle()}</a>	 
486																				<#if Item_has_next>, </#if> 
487																			</#if> 
488																		</#if> 
489																	</#list> 
490																</span> 
491															</span>		 
492														</li> 
493													</#if> 
494												</#if> 
495											</#if> 
496										</#if>										 
497									</ul> 
498								</div> 
499							</div> 
500							 
501							<#if validator.isNotNull(Contacto.Facebook.data) || validator.isNotNull(Contacto.Twitter.data) || validator.isNotNull(Contacto.Youtube.data) || Contacto.TikTok?? && validator.isNotNull(Contacto.TikTok.data) || validator.isNotNull(Contacto.Pinterest.data) || validator.isNotNull(Contacto.Instagram.data)> 
502								<div class="article-socials-wrapper mt-4"> 
503									<div class="socials-wrapper"> 
504										<div class="socials"> 
505											<ul class="list-inline items socials"> 
506												<#if Contacto.Facebook.data?has_content> 
507													<#assign linkURL = Contacto.Facebook.data/> 
508														<#if !stringUtil.startsWith(linkURL, "http")> 
509															<#assign linkURL = "https://${Contacto.Facebook.data}"/> 
510														</#if> 
511													<li class="list-inline-item item facebook"> 
512														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'"> 
513															<span class="fab fa-facebook-f"> 
514																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span> 
515															</span> 
516														</a> 
517													</li> 
518												</#if> 
519												<#if Contacto.Twitter.data?has_content> 
520													<#assign linkURL = Contacto.Twitter.data/> 
521														<#if !stringUtil.startsWith(linkURL, "http")> 
522															<#assign linkURL = "https://${Contacto.Twitter.data}"/> 
523														</#if> 
524													<li class="list-inline-item item twitter"> 
525														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'"> 
526															<span class="fa-brands fa-x twitter"> 
527																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span> 
528															</span> 
529														</a> 
530													</li> 
531												</#if> 
532												<#if Contacto.Youtube.data?has_content> 
533													<#assign linkURL = Contacto.Youtube.data/> 
534														<#if !stringUtil.startsWith(linkURL, "http")> 
535															<#assign linkURL = "https://${Contacto.Youtube.data}"/> 
536														</#if> 
537													<li class="list-inline-item item youtube"> 
538														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'"> 
539															<span class="fab fa-youtube"> 
540																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span> 
541															</span> 
542														</a> 
543													</li> 
544												</#if> 
545												<#if Contacto.TikTok??> 
546													<#if Contacto.TikTok.data?has_content> 
547														<#assign linkURL = Contacto.TikTok.data/> 
548														<#if !stringUtil.startsWith(linkURL, "http")> 
549															<#assign linkURL = "https://${Contacto.TikTok.data}"/> 
550														</#if> 
551														<li class="list-inline-item item tiktok"> 
552															<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Tiktok')}" onclick="this.target='_blank'"> 
553																<span class="fab fa-tiktok"> 
554																	<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Tiktok')}</span> 
555																</span> 
556															</a> 
557														</li> 
558													</#if> 
559												</#if> 
560												<#if Contacto.Pinterest.data?has_content> 
561													<#assign linkURL = Contacto.Pinterest.data/> 
562														<#if !stringUtil.startsWith(linkURL, "http")> 
563															<#assign linkURL = "https://${Contacto.Pinterest.data}"/> 
564														</#if> 
565													<li class="list-inline-item item pinterest"> 
566														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'"> 
567															<span class="fab fa-pinterest-p"> 
568																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span> 
569															</span> 
570														</a> 
571													</li> 
572												</#if> 
573												<#if Contacto.Instagram??> 
574													<#if Contacto.Instagram.data?has_content> 
575														<#assign linkURL = Contacto.Instagram.data/> 
576														<#if !stringUtil.startsWith(linkURL, "http")> 
577															<#assign linkURL = "https://${Contacto.Instagram.data}"/> 
578														</#if> 
579														<li class="list-inline-item item instagram"> 
580															<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'"> 
581																<span class="fab fa-instagram"> 
582																	<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span> 
583																</span> 
584															</a> 
585														</li> 
586													</#if> 
587												</#if> 
588											</ul> 
589										</div> 
590									</div> 
591								</div> 
592							</#if> 
593							<#if getterUtil.getBoolean(Informacion.QdeCalidad.getData()) || getterUtil.getBoolean(Informacion.AldeasCalidad.getData()) || getterUtil.getBoolean(Informacion.CalidadCasonasAsturianas.getData())> 
594								<div class="article-info-table"> 
595									<ul class="article-list article-list-characteristics article-info-border"> 
596										<#if getterUtil.getBoolean(Informacion.QdeCalidad.getData())> 
597											<li class="list-inline-item"> 
598												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/qturistica.png" data-toggle="tooltip" data-placement="bottom" title="${languageUtil.get(request, 'infoasturias-qcalidad')}" alt="${languageUtil.get(request, 'infoasturias-qcalidad')}"/></li> 
599										</#if> 
600										<#if getterUtil.getBoolean(Informacion.AldeasCalidad.getData())> 
601											<li class="list-inline-item"> 
602												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/aldeas_asturianas.png" data-toggle="tooltip" data-placement="bottom" title="${languageUtil.get(request, 'infoasturias-aldeas-calidad')}" alt="${languageUtil.get(request, 'infoasturias-aldeas-calidad')}"/></li> 
603										</#if> 
604										<#if getterUtil.getBoolean(Informacion.CalidadCasonasAsturianas.getData())> 
605											<li class="list-inline-item"> 
606												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/casonas_asturianas.png" data-toggle="tooltip" data-placement="bottom" title="${languageUtil.get(request, 'infoasturias-casonas-asturias')}" alt="${languageUtil.get(request, 'infoasturias-casonas-asturianas')}"/></li> 
607										</#if> 
608									</ul> 
609								</div> 
610							</#if>		 
611						</div> 
612					</div> 
613				</div> 
614			</div> 
615		</div>  
616	</header> 
617	 
618	<div class="sheet sheet-lg"> 
619		<#-- as_asac_accommodationbooking_AccommodationBookingResultsPortlet --> 
620		<#assign paramsMap = { 
621			"cmd": cmd, 
622			"startDate": paramUtil.getString(request, "p_r_p_startDate"), 
623			"endDate": paramUtil.getString(request, "p_r_p_endDate"), 
624			"priceMin": paramUtil.getString(request, "p_r_p_priceMin"), 
625			"priceMax": paramUtil.getString(request, "p_r_p_priceMax"), 
626			"rooms": paramUtil.getString(request, "p_r_p_rooms"), 
627			"babys": paramUtil.getString(request, "p_r_p_babys"), 
628			"kids": paramUtil.getString(request, "p_r_p_kids"), 
629			"adults": paramUtil.getString(request, "p_r_p_adults"),	 
630			"accommodationCode": CodigoDGT.data, 
631			"jspPage": "/html/results/accommodation/rooms.jsp" 
632		} /> 
633		<#assign roomsURL  = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingResultsPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "exclusive", paramsMap) /> 
634		<div id="bookings-${articleId}" class="article-border mb-5 hide"> 
635			<!-- box-bookings --> 
636		</div> 
637	 
638		<#if Informacion.Titulo.data?has_content> 
639			<div class="article-great"> 
640				${Informacion.Titulo.data} 
641			</div> 
642		</#if> 
643 
644		<#assign hasTab1 = Informacion.DescripcionLarga.data?has_content> 
645		<#assign hasTab2 = ServiciosEstablecimiento.data?has_content || ServiciosHabitacion.data?has_content || ServiciosComplementarios.data?has_content || SeguridadYSanidad.data?has_content> 
646		<#assign hasTab3 = Contacto.Tarifas.data?has_content || Contacto.Tarifas.Gratis?? && Contacto.Tarifas.Gratis.data?has_content || Contacto.Tarifas.Donativo?? && Contacto.Tarifas.Donativo.data?has_content> 
647		<#assign hasTab4 = Informacion.TemporadaAlta.data?has_content || Informacion.TemporadaMedia.data?has_content || Informacion.TemporadaBaja.data?has_content> 
648		<#assign hasTab5 = Geolocalizacion.Coordenadas.data?has_content> 
649		<#assign hasTab6 = AsturiasMascotas?? && AsturiasMascotas.SuplementoMascota?? && AsturiasMascotas.SuplementoMascota.data?has_content> 
650		<#if Peregrinos ??>	 
651			<#assign hasTab7 = Peregrinos.InfoReservas.data?has_content>	 
652		</#if> 
653		<#assign showFirstTab = true> 
654		 
655		<div class="article-accordion accordion"> 
656			<#if Visualizador.Slide.getData()?has_content> 
657				<div class="slick article-slick article-section <#if Visualizador.Slide.getSiblings()?size==1>hide</#if>"> 
658					<#list Visualizador.Slide.getSiblings() as Slide> 
659						<#if validator.isNotNull(Slide.getData()) || validator.isNotNull(Slide.SlideUrl.getData())> 
660							<#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! /> 
661							<#assign slideThumbnail2 = dlTool.getThumbnailByJSON(Slide.data, "2")! /> 
662							<#assign slidePath = dlTool.getPathByJSON(Slide.data, themeDisplay.getScopeGroupId())! /> 
663							<#assign slideUrl = Slide.SlideUrl.data /> 
664							<#assign dataMap = "" /> 
665 
666							<#if slideUrl?has_content> 
667								<#assign slideTitle = "${languageUtil.get(request, 'video')} ${Slide?index}" /> 
668								<#if Slide.SlideTitulo.data?has_content> 
669									<#assign slideTitle = Slide.SlideTitulo.data />   
670								</#if> 
671 
672								<#-- Youtube --> 
673								<#assign slideUrl = stringUtil.replace(slideUrl, 'watch?v=', 'embed/') /> 
674								<#assign slideThumbnail2 = stringUtil.replace(slideUrl, 'www', 'img') /> 
675								<#assign slideThumbnail2 = stringUtil.replace(slideThumbnail2, 'embed', 'vi') /> 
676								<#assign slideThumbnail2 = '${slideThumbnail2}/mqdefault.jpg' /> 
677 
678								<#-- Vimeo --> 
679								<#if slideUrl?contains("vimeo")> 
680									<#assign slideUrl = stringUtil.replace(slideUrl, 'http://vimeo.com/', 'https://player.vimeo.com/video/') /> 
681									<#assign slideVimeoId = stringUtil.extractLast(slideUrl, 'https://player.vimeo.com/video/') /> 
682									<#if slideVimeoId?has_content> 
683										<#assign slideVimeoJsonPath = 'http://vimeo.com/api/v2/video/${slideVimeoId}.json' /> 
684										<#assign slideVimeoJsonContent = getUrlContent.getContent(slideVimeoJsonPath)! /> 
685										<#if slideVimeoJsonContent?has_content> 
686											<#assign slideVimeoJsonArray = jsonFactoryUtil.createJSONArray(slideVimeoJsonContent) /> 
687											<#assign slideVimeoJsonItem = slideVimeoJsonArray.get(0) /> 
688											<#assign slideThumbnail2 = slideVimeoJsonItem.thumbnail_medium /> 
689										</#if> 
690									</#if> 
691								</#if> 
692								<div id="slide-${Slide?index}" class="slide"> 
693									<a class="card card-simple card-video" href="#" onclick="javascript: event.preventDefault(); showDialogIframe('${slideUrl}', '${slideTitle}', 800, 600, 'videoPopup', 'videoPopupIframe');" title="${slideTitle}"> 
694										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
695										<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
696									</span></a> 
697								</div> 
698							<#else> 
699								<#assign slideTitle = "${languageUtil.get(request, 'image')} ${Slide?index}" /> 
700								<#if Slide.SlideTitulo.data?has_content> 
701									<#assign slideTitle = Slide.SlideTitulo.data />   
702								</#if> 
703								<div class="slide"> 
704									<a class="card card-simple lightbox" href="${slidePath}" title="${slideTitle}"> 
705										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
706										<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
707									</span></a> 
708								</div> 
709							</#if> 
710						</#if> 
711					</#list> 
712				</div> 
713			</#if> 
714		 
715			<#if hasTab1> 
716				<div id="tab1" class="article-section accordion-item"> 
717					<a href="#tabContent1" id="tabHeading1" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent1" data-toggle="liferay-collapse" data-target="#tabContent1"> 
718						<h3 class="h3 accordion-header">${languageUtil.get(request,'info')}</h3> 
719					</a> 
720					<div id="tabContent1" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading1"> 
721						<#if Informacion.DescripcionLarga.data?has_content> 
722							${Informacion.DescripcionLarga.data} 
723						</#if> 
724					</div> 
725				</div> 
726				<#assign showFirstTab = false> 
727			</#if> 
728			 
729			<#if hasTab2> 
730				<div id="tab2" class="article-section accordion-item"> 
731					<a href="#tabContent2" id="tabHeading2" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent2" data-toggle="liferay-collapse" data-target="#tabContent2"> 
732						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-servicios-establecimiento')}</h3> 
733					</a> 
734					<div id="tabContent2" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2"> 
735						<#function getServiceIcon serviceName> 
736							<#assign iconMap = { 
737								"Acceso a internet": "fas fa-network-wired", 
738								"Actividades para niños": "fas fa-child", 
739								"Admite animales": "fas fa-paw", 
740								"Admite caravanas": "fas fa-caravan", 
741								"Admite tarjetas": "fas fa-credit-card", 
742								"Agroturismo": "fas fa-tractor", 
743								"Agua caliente en duchas": "fas fa-shower", 
744								"Agua y desagüe caravanas": "fas fa-water", 
745								"Aire acondicionado": "fas fa-snowflake", 
746								"Almacenamiento seguro para bicicletas": "fas fa-bicycle", 
747								"Almohadas": "fas fa-mattress-pillow", 
748								"Alquiler de caravanas": "fas fa-caravan", 
749								"Alquiler material de camping": "fas fa-campground", 
750								"Aparcamiento": "fas fa-parking", 
751								"Aseo": "fas fa-restroom", 
752								"Balneario/Aguas termales": "fas fa-hot-tub", 
753								"Baño interior/exterior": "fas fa-bath", 
754								"Bar/Cafetería": "fas fa-mug-saucer", 
755								"Barbacoa": "fas fa-fire", 
756								"Botella de gas": "fas fa-bottle-water", 
757								"Botiquín": "fas fa-first-aid", 
758								"Bungalows": "fas fa-home", 
759								"Buzón de correos": "fas fa-envelope", 
760								"Caja fuerte": "fas fa-vault", 
761								"Calefacción": "fas fa-temperature-high", 
762								"Chanclas": "fas fa-shoe-prints", 
763								"Chimenea": "fas fa-fire-alt", 
764								"Chimenea en habitación": "fas fa-fire-alt", 
765								"Cocina": "fas fa-kitchen-set", 
766								"Colchones": "fas fa-bed", 
767								"Comedor": "fas fa-utensils", 
768								"Encargada servicios higiénicos": "fas fa-user", 
769								"Enfermería": "fas fa-user-nurse", 
770								"Equipo respiración artificial": "fas fa-lungs", 
771								"Espacio para lavado de bicicletas": "fas fa-bicycle", 
772								"Estación de esquí < 30 Km": "fas fa-skiing", 
773								"Estufa de leña": "fas fa-fire", 
774								"Extintores de incendio": "fas fa-fire-extinguisher", 
775								"Gimnasio": "fas fa-dumbbell", 
776								"Imprescindible saco de dormir": "fas fa-bed", 
777								"Información sobre rutas": "fas fa-map-marked-alt", 
778								"Jacuzzi en habitación": "fas fa-hot-tub", 
779								"Jacuzzi/Hidromasaje": "fas fa-hot-tub", 
780								"Jardín": "fas fa-tree", 
781								"Lavadora": "fas fa-soap", 
782								"Lavavajillas": "fas fa-sink", 
783								"Luces de emergencia": "fas fa-lightbulb", 
784								"Médico": "fas fa-user-doctor", 
785								"Minibar": "fas fa-martini-glass", 
786								"Muebles de jardín": "fas fa-couch", 
787								"Nórdicos/Mantas": "fas fa-rug", 
788								"Parque infantil": "fas fa-child-reaching", 
789								"Piscina exterior": "fas fa-swimming-pool", 
790								"Piscina climatizada": "fas fa-person-swimming", 
791								"Radio - socorro": "fas fa-broadcast-tower", 
792								"Restaurante": "fas fa-utensils", 
793								"Saco de dormir": "fas fa-campground", 
794								"Sala de audiovisuales": "fas fa-video", 
795								"Salas de reuniones": "fas fa-users-line", 
796								"Salón con TV": "fas fa-tv", 
797								"Sauna": "fas fa-spa", 
798								"Servicio de desayunos": "fas fa-bread-slice", 
799								"Servicio de cenas": "fas fa-bowl-rice", 
800								"Servicio de comidas": "fas fa-bowl-food", 
801								"Servicio de cuna": "fas fa-baby", 
802								"Servicio de habitaciones": "fas fa-bed", 
803								"Servicio de habitaciones 24 hrs.": "fas fa-clock", 
804								"Servicio de lavandería": "fas fa-tshirt", 
805								"Servicio de limpieza": "fas fa-spray-can-sparkles", 
806								"Servicio de recepción": "fas fa-concierge-bell", 
807								"Socorrista": "fas fa-life-ring", 
808								"Spa": "fas fa-spa", 
809								"Supermercado": "fas fa-shopping-basket", 
810								"Teléfono": "fas fa-phone", 
811								"Televisión en habitación": "fas fa-tv", 
812								"Toma de aguas incendios": "fas fa-fire-flame-simple", 
813								"Transporte público < 500 m": "fas fa-bus", 
814								"Wifi": "fas fa-wifi", 
815								"Zona de acampada": "fas fa-campground", 
816								"Zona de taller con herramientas": "fas fa-screwdriver-wrench", 
817								"Zona de taquillas": "fas fa-lock" 
818							} /> 
819							<#if iconMap[serviceName]??> 
820								<#return iconMap[serviceName]> 
821							</#if> 
822							<#return "fas fa-check-circle"> 
823						</#function> 
824 
825						<#assign className = "com.liferay.journal.model.JournalArticle" /> 
826						<#assign classPK = 0 /> 
827						<#if (assetEntry??)> 
828								<#assign classPK = assetEntry.getClassPK()?long /> 
829							<#elseif (journalArticle??)> 
830								<#assign classPK = journalArticle.getResourcePrimKey()?long /> 
831							<#elseif (.vars["reserved-article-resource-prim-key"]??)> 
832								<#assign classPK = .vars["reserved-article-resource-prim-key"].data?number /> 
833							<#elseif (request.getAttribute("articleResourcePrimKey")??)> 
834								<#assign classPK = request.getAttribute("articleResourcePrimKey")?number /> 
835						</#if> 
836 
837						<#assign todasCategorias = [] /> 
838						<#if classPK?number gt 0> 
839							<#attempt> 
840								<#assign todasCategorias = assetCategoryLocalService.getCategories(className, classPK) /> 
841								<#recover> 
842							</#attempt> 
843						</#if> 
844 
845						<#assign NAME_TURISMO_RURAL = "Dónde dormir - Turismo rural" /> 
846						<#assign NAME_ALOJAMIENTOS  = "Dónde dormir - Alojamientos" /> 
847						<#assign NAME_COMUNES       = "Dónde dormir - Categorías Comunes" /> 
848						<#function canonSpaces s> 
849							<#if !s??><#return "" /></#if> 
850							<#assign t = s?string /> 
851							<#assign t = t?replace(" ", " ") /> 
852							<#assign t = t?replace("\\s+", " ", "r") /> 
853							<#assign t = t?trim /> 
854							<#return t /> 
855						</#function> 
856 
857						<#function isVocabName v targetName> 
858							<#return (canonSpaces(v.getName())?lower_case == canonSpaces(targetName)?lower_case) || (canonSpaces(v.getTitle(locale))?lower_case == canonSpaces(targetName)?lower_case) /> 
859						</#function> 
860 
861						<#assign excludedTitles = { 
862						  "1 Estrella": true, "2 Estrellas": true, "3 Estrellas": true, "4 Estrellas": true, "5 Estrellas": true, 
863						  "1 trisquel": true, "2 trisqueles": true, "3 trisqueles": true, 
864						  "1 Llave": true, "2 Llaves": true, "3 Llaves": true, "4 Llaves": true, 
865						  "Primera": true, "Superior": true, "Turísticos": true, "Peregrinos": true, "Juveniles": true, 
866						  "1 Tienda": true, "2 Tiendas": true, "3 Tiendas": true 
867						} /> 
868						<#assign serviciosMap = {} /> 
869						<#assign serviciosList = [] /> 
870 
871						<#list todasCategorias as cat> 
872							<#attempt> 
873								<#assign voc = assetVocabularyLocalService.getVocabulary(cat.getVocabularyId()) /> 
874								<#assign tituloCat = cat.getTitle(locale) /> 
875								<#if isVocabName(voc, NAME_TURISMO_RURAL) || isVocabName(voc, NAME_ALOJAMIENTOS)> 
876									<#if (cat.getParentCategoryId()?number gt 0) && (!excludedTitles[tituloCat]??)> 
877										<#assign cid = cat.getCategoryId()?c /> 
878										<#if !serviciosMap[cid]??> 
879											<#assign serviciosMap = serviciosMap + { cid : true } /> 
880											<#assign serviciosList = serviciosList + [{"id": cid, "title": tituloCat, "category": cat}] /> 
881										</#if> 
882									</#if> 
883								<#elseif isVocabName(voc, NAME_COMUNES)> 
884									<#assign cid = cat.getCategoryId()?c /> 
885									<#if !serviciosMap[cid]??> 
886										<#assign serviciosMap = serviciosMap + { cid : true } /> 
887										<#assign serviciosList = serviciosList + [{"id": cid, "title": tituloCat, "category": cat}] /> 
888									</#if> 
889								</#if> 
890								<#recover> 
891							</#attempt> 
892						</#list> 
893 
894						<#assign serviciosOrdenados = serviciosList?sort_by("title") /> 
895						<#if serviciosOrdenados?has_content> 
896							<div class="servicios-iconos-wrapper"> 
897								<div class="servicios-grid"> 
898									<ul class="list-unstyled servicios-iconos-list" role="list"> 
899										<#list serviciosOrdenados as item> 
900											<#assign servicioNombre = item.title /> 
901											<#assign iconClass = getServiceIcon(servicioNombre) /> 
902											<li class="servicio-item"> 
903												<div class="servicio-icono-container"> 
904													<span class="${iconClass} servicio-icono" aria-hidden="true"></span> 
905													<span class="servicio-nombre">${servicioNombre}</span> 
906												</div> 
907											</li> 
908										</#list> 
909									</ul> 
910								</div> 
911							</div> 
912						</#if> 
913						<style> 
914						.servicios-iconos-wrapper { 
915							margin: 2rem 0; 
916
917						.servicios-grid { 
918							margin-top: 1.5rem; 
919
920						.servicios-iconos-list { 
921							display: grid; 
922							grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); 
923							gap: 1rem; 
924							padding: 0; 
925							margin: 0; 
926
927						.servicio-item { 
928							list-style: none; 
929
930						.servicio-icono-container { 
931							display: flex; 
932							flex-direction: column; 
933							align-items: center; 
934							text-align: center; 
935							padding: 0.5rem 0.6rem; 
936							border-radius: 10px; 
937							transition: all 0.3s ease; 
938							background-color: #fff; 
939							border: 1px solid #e8e8e8; 
940							height: 100%; 
941							min-height: 90px; 
942
943						.servicio-icono { 
944							font-size: 1.5rem; 
945							color: #36a53e !important; 
946							margin-bottom: 0.75rem; 
947							transition: all 0.3s ease; 
948
949						.servicio-nombre { 
950							font-size: 0.85rem; 
951							font-weight: 500; 
952							color: #333; 
953							line-height: 1.3; 
954							display: block; 
955							word-break: break-word; 
956
957 
958						@media (max-width: 768px) { 
959							.servicios-iconos-list { 
960								grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); 
961								gap: 0.5rem; 
962							}  
963							.servicio-icono { 
964								font-size: 2rem; 
965
966							.servicio-nombre { 
967								font-size: 0.8rem; 
968
969
970						@media (max-width: 480px) { 
971							.servicios-iconos-list { 
972								grid-template-columns: repeat(2, 1fr); 
973
974
975						</style> 
976					</div> 
977				</div> 
978				<#assign showFirstTab = false> 
979			</#if> 
980			<#if Peregrinos ??>	 
981				<#if hasTab7>					 
982					<div id="tab7" class="article-section accordion-item"> 
983						<a href="#tabContent7" id="tabHeading7" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent7" data-toggle="liferay-collapse" data-target="#tabContent7"> 
984							<h3 class="h3 accordion-header">${languageUtil.get(request, "infoasturias-peregrinos-info-reservas")}</h3> 
985						</a> 
986						<div id="tabContent7" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading7"> 
987							<#if Peregrinos.InfoReservas.data?has_content> 
988								${Peregrinos.InfoReservas.data} 
989							</#if> 
990						</div> 
991					</div> 
992					<#assign showFirstTab = false> 
993				</#if> 
994			</#if>			 
995			<#if hasTab3> 
996				<div id="tab3" class="article-section accordion-item"> 
997					<a href="#tabContent3" id="tabHeading3" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent3" data-toggle="liferay-collapse" data-target="#tabContent3"> 
998						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-tarifas')}</h3> 
999					</a> 
1000					<div id="tabContent3" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading3"> 
1001						<#if Contacto.Tarifas.Gratis ?? || Contacto.Tarifas.Donativo ??> 
1002							<#if getterUtil.getBoolean(Contacto.Tarifas.Gratis.getData())>							 
1003								<#assign esGratis = true/> 
1004								<#assign precioOrientativo = false/> 
1005							</#if> 
1006							<#if getterUtil.getBoolean(Contacto.Tarifas.Donativo.getData())>							 
1007								<#assign donativo = true/> 
1008								<#assign precioOrientativo = false/>								 
1009							</#if> 
1010						</#if> 
1011							<#if esGratis> 
1012								<span>${languageUtil.get(request,"infoasturias-albergues-gratuito")}</span> 
1013							</#if> 
1014							<#if donativo> 
1015								<span>${languageUtil.get(request,"infoasturias-albergues-donativo")}</span> 
1016							</#if> 
1017						<#if Contacto.Tarifas.data?has_content> 
1018							${Contacto.Tarifas.data} 
1019						</#if>						 
1020						<ul class="article-list list-unstyled article-list-info mt-4"> 
1021							<#if Contacto.DesayunoIncluido.data?has_content && Contacto.DesayunoIncluido.data != "Desayuno no incluido"> 
1022								<li class="article-list-item"> 
1023									<span class="fas fa-coffee" aria-hidden="true"></span> 
1024									<span class="hide-accessible">${languageUtil.get(request,"breakfast")}</span> 
1025									<span class="field-wrapper"> 
1026										<span class="field">${languageUtil.get(request, "breakfast")}:</span> 
1027										<span class="text">${Contacto.DesayunoIncluido.data}</span> 
1028									</span> 
1029								</li> 
1030							</#if> 
1031							 
1032							<#if Contacto.LimpiezaIncluida.data?has_content && Contacto.LimpiezaIncluida.data != "Limpieza no incluida"> 
1033								<li class="article-list-item"> 
1034									<span class="fas fa-broom" aria-hidden="true"></span> 
1035									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-clean")}</span> 
1036									<span class="field-wrapper"> 
1037										<span class="field">${languageUtil.get(request, "infoasturias-clean")}:</span> 
1038										<span class="text">${Contacto.LimpiezaIncluida.data}</span> 
1039									</span> 
1040								</li> 
1041							</#if> 
1042							 
1043							<#if Contacto.SabanasIncluidas.data?has_content && Contacto.DesayunoIncluido.data != "Sabanas no incluidas"> 
1044								<li class="article-list-item"> 
1045									<span class="fas fa-bed" aria-hidden="true"></span> 
1046									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-sabanas")}</span> 
1047									<span class="field-wrapper"> 
1048										<span class="field">${languageUtil.get(request, "infoasturias-sabanas")}:</span> 
1049										<span class="text">${Contacto.SabanasIncluidas.data}</span> 
1050									</span> 
1051								</li> 
1052							</#if> 
1053 
1054							<#if Informacion.FechasCierre.data?has_content> 
1055								<li class="article-list-item hide"> 
1056									<span class="fas fa-calendar" aria-hidden="true"></span> 
1057									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-fechas-de-cierre")}</span> 
1058									<span class="field-wrapper"> 
1059										<span class="field">${languageUtil.get(request, "infoasturias-fechas-de-cierre")}:</span> 
1060										<span class="text">${Informacion.FechasCierre.data}</span> 
1061									</span> 
1062								</li> 
1063							</#if> 
1064							 
1065							<#if Informacion.AbiertoTodoAno.data?has_content && (Informacion.AbiertoTodoAno.data == "Si" || Informacion.AbiertoTodoAno.data == "Sí" || Informacion.AbiertoTodoAno.data == "SI")> 
1066								<li class="article-list-item hide"> 
1067									<span class="fas fa-door-open" aria-hidden="true"></span> 
1068									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-abierto-todo-anio")}</span> 
1069									<span class="field-wrapper"> 
1070										<span class="text">${languageUtil.get(request, "infoasturias-abierto-todo-anio")}</span> 
1071									</span> 
1072								</li> 
1073							</#if>				 
1074						</ul> 
1075					</div> 
1076				</div> 
1077				<#assign showFirstTab = false> 
1078			</#if>	 
1079 
1080			<#if hasTab4> 
1081				<div id="tab4" class="article-section accordion-item"> 
1082					<a href="#tabContent4" id="tabHeading4" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent4" data-toggle="liferay-collapse" data-target="#tabContent4"> 
1083						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-temporadas')}</h3> 
1084					</a> 
1085					<div id="tabContent4" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading4"> 
1086						<#if Informacion.TemporadaAlta.data?has_content || Informacion.TemporadaMedia.data?has_content || Informacion.TemporadaBaja.data?has_content> 
1087							<#if Informacion.TemporadaAlta.data?has_content> 
1088								<span class="field-wrapper d-block"> 
1089									<span class="field">${languageUtil.get(request, "infoasturias-temporada-alta")}:</span> 
1090									<span class="text">${Informacion.TemporadaAlta.data}</span> 
1091								</span> 
1092							</#if> 
1093 
1094							<#if Informacion.TemporadaMedia.data?has_content> 
1095								<span class="field-wrapper d-block"> 
1096									<span class="field">${languageUtil.get(request, "infoasturias-temporada-media")}:</span> 
1097									<span class="text">${Informacion.TemporadaMedia.data}</span> 
1098								</span> 
1099							</#if> 
1100 
1101							<#if Informacion.TemporadaBaja.data?has_content> 
1102								<span class="field-wrapper d-block"> 
1103									<span class="field">${languageUtil.get(request, "infoasturias-temporada-baja")}:</span> 
1104									<span class="text">${Informacion.TemporadaBaja.data}</span> 
1105								</span> 
1106							</#if> 
1107						</#if> 
1108					</div> 
1109				</div> 
1110				<#assign showFirstTab = false> 
1111			</#if> 
1112			 
1113			<#if hasTab5> 
1114				<#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) /> 
1115				<div id="tab5" class="article-section article-section-map accordion-item"> 
1116					<a href="#tabContent5" id="tabHeading5" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent5" data-toggle="liferay-collapse" data-target="#tabContent5"> 
1117						<h3 class="h3 accordion-header">${languageUtil.get(request,'map')}</h3> 
1118					</a> 
1119					<div id="tabContent5" class="article-section-content accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading5"> 
1120						<div id="article-map-wrapper-${articleId}" class="article-map-wrapper">  
1121							<h4 class="hide-accessible">${languageUtil.get(request,'map')}</h4> 
1122							<div id="article-map-content-${articleId}" style="width: 100%; height: 500px; z-index:1" role="application" aria-label="${languageUtil.format(request,'infoasturias-mapa-de', title)}"> 
1123								<!-- MAP --> 
1124							</div> 
1125							<div class="hide-accessible" aria-live="polite"> 
1126								<p>${languageUtil.get(request,'first-name')}: ${title}</p> 
1127								<p>GPS: ${Geolocalizacion.Coordenadas.data}</p> 
1128								<#if Contacto.Direccion.data?has_content> 
1129									<p>${languageUtil.get(request,'address')}: ${Contacto.Direccion.data} ■ ${Contacto.CP.data} - ${Contacto.Localidad.data}</p> 
1130								</#if> 
1131							</div>							 
1132							<div class="article-map-form">  
1133								<div class="name important">${title}</div> 
1134								<div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div> 
1135								<form action="https://maps.google.es/maps" method="get" target="_blank" aria-label="${languageUtil.get(request,'infoasturias-como-llegar')}"> 
1136									<input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}"> 
1137									<label for="saddr_${articleId}" class="label"> 
1138										${languageUtil.get(request,'infoasturias-from')}: 
1139									</label> 
1140									<input class="form-control" type="text" maxlength="40" name="saddr" id="saddr_${articleId}" value=""  placeholder="${languageUtil.get(request,'infoasturias-insert-from')}" aria-required="true"> 
1141									<button class="btn btn-text" type="submit" aria-label="${languageUtil.get(request,'infoasturias-como-llegar')} (${languageUtil.get(request,'opens-new-window')})"> 
1142										${languageUtil.get(request,'infoasturias-como-llegar')}  
1143										<span aria-hidden="true">&raquo;</span> 
1144									</button> 
1145								</form> 
1146							</div> 
1147						</div> 
1148						<script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script> 
1149						<script type="text/javascript"> 
1150							AUI().ready('aui-base', function(A){ 
1151								var lat = ${coordenadas[0]}, 
1152									lng = ${coordenadas[1]}, 
1153									zoom = 16; 
1154								mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 16}); 
1155 
1156								//Marker 
1157								var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png'; 
1158								var defaultIcon = L.icon({ 
1159									iconUrl: defaultIconTheme, 
1160									iconSize:     [36, 53], 
1161									iconAnchor:   [18, 53], 
1162									iconShadow:   [0,0], 
1163									popupAnchor:  [0, -30] 
1164								}); 
1165								var marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent); 
1166								 
1167								var contentString = '<div class="row">'; 
1168								contentString += '<div class="col-12">'; 
1169								contentString += '<div class="h4">${htmlUtil.escape(title)}</div>'; 
1170								contentString += '</div>'; 
1171								contentString += '</div>'; 
1172								 
1173								contentString += '<div class="row">'; 
1174								contentString += '<div class="col-12">'; 
1175								<#if validator.isNotNull(articleMainImageThumbnail1)> 
1176									contentString += '<img class="pull-right mb-2 ml-2" style="max-width:80px;" src="${articleMainImageThumbnail1}" alt="${htmlUtil.escape(title)}"/>'; 
1177								</#if> 
1178								contentString += '<dl class="mb-0">'; 
1179								<#if address?has_content> 
1180									contentString += '<dt>${languageUtil.get(request,'address')}</dt>'; 
1181									contentString += '<dd>${htmlUtil.escape(address)}</dd>'; 
1182								</#if> 
1183								<#if Contacto.Telefono.data?has_content> 
1184									contentString += '<dt>${languageUtil.get(request,'phone')}</dt>'; 
1185									contentString += '<dd>${Contacto.Telefono.data}</dd>'; 
1186								</#if> 
1187								<#if Contacto.Email.getData()?has_content> 
1188									contentString += '<dt>${languageUtil.get(request,'email')}</dt>'; 
1189									<#list Contacto.Email.getSiblings() as Item> 
1190										contentString += '<dd><a href="mailto:${Item.data}" title="${languageUtil.format(request,'go-to-x', 'email')}">${Item.data}</a></dd>'; 
1191									</#list> 
1192								</#if> 
1193								<#if Contacto.Web.data?has_content> 
1194									<#assign linkURL = Contacto.Web.data/>	 
1195									<#if !stringUtil.startsWith(linkURL, "http")> 
1196										<#assign linkURL = "https://${Contacto.Web.data}"/> 
1197									</#if> 
1198									contentString += '<dt>${languageUtil.get(request,'site')}</dt>'; 
1199									contentString += '<dd><a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}">${Contacto.Web.data}</a></dd'; 
1200								</#if> 
1201								contentString += '</dl>'; 
1202								contentString += '</div>'; 
1203								contentString += '</div>'; 
1204								marker.bindPopup(contentString); 
1205 
1206								//Contributor 
1207								L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
1208									attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.' 
1209								}).addTo(mapContent); 
1210								 
1211							}); //AUI.ready 
1212						</script> 
1213					</div> 
1214				</div> 
1215				<#assign showFirstTab = false> 
1216			</#if>			 
1217			<#if hasTab6> 
1218				<div id="tab6" class="article-section accordion-item"> 
1219					<a href="#tabContent6" id="tabHeading6" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent6" data-toggle="liferay-collapse" data-target="#tabContent6"> 
1220						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-info-mascotas')}</h3> 
1221					</a> 
1222					<div id="tabContent6" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading6"> 
1223						<#if AsturiasMascotas.SuplementoMascota?? && AsturiasMascotas.SuplementoMascota.data?has_content || AsturiasMascotas.LimitacionPeso?? && AsturiasMascotas.LimitacionPeso.data?has_content || 			  AsturiasMascotas.AdmitePPP?? && AsturiasMascotas.AdmitePPP.data?has_content || AsturiasMascotas.NumeroMaximo?? && AsturiasMascotas.NumeroMaximo.data?has_content || AsturiasMascotas.NumeroMaximoAlojamiento?? && AsturiasMascotas.NumeroMaximoAlojamiento.data?has_content || AsturiasMascotas.SolosHabitacion?? && AsturiasMascotas.SolosHabitacion.data?has_content || AsturiasMascotas.AccesoInterior?? && AsturiasMascotas.AccesoInterior.data?has_content || AsturiasMascotas.Cama?? && AsturiasMascotas.Cama.data?has_content || AsturiasMascotas.Comedero?? && AsturiasMascotas.Comedero.data?has_content || AsturiasMascotas.ZonasComunes?? && AsturiasMascotas.ZonasComunes.data?has_content || AsturiasMascotas.ZonasComunesDetalle?? && AsturiasMascotas.ZonasComunesDetalle.data?has_content || AsturiasMascotas.Guarderia?? && AsturiasMascotas.Guarderia.data?has_content || AsturiasMascotas.OtrasMascotas?? && AsturiasMascotas.OtrasMascotas.data?has_content || AsturiasMascotas.OtrosAnimales?? && AsturiasMascotas.OtrosAnimales.data?has_content || AsturiasMascotas.DetalleNormas?? && AsturiasMascotas.DetalleNormas.data?has_content> 
1224							<div class="list-unstyled"> 
1225								<div class="list-iconos"> 
1226									<#if AsturiasMascotas.SuplementoMascota.data?has_content>									 
1227										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono">										 
1228											<#if AsturiasMascotas.SuplementoMascota.getData() == "Si"> 
1229												<#assign SuplementoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Suplemento por mascota")/>	 
1230												<div ><img src="${SuplementoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-con-suplemento')}"/></div> 
1231												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-con-suplemento')}</span>											 
1232											<#elseif AsturiasMascotas.SuplementoMascota.getData() == "No"> 
1233												<#assign SinSuplementoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Sin suplemento por mascota")/>	 
1234												<div ><img src="${SinSuplementoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-no-suplemento')}"/></div> 
1235												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-no-suplemento')}</span>														 
1236											</#if>									 
1237										</div>									 
1238									</#if>	 
1239									<#if AsturiasMascotas.LimitacionPeso.data?has_content> 
1240										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
1241											<#assign LimitacionPesoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Limitación de tamaño")/> 
1242											<div><img src="${LimitacionPesoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-peso')}"/><span class="value">${AsturiasMascotas.LimitacionPeso.data}</span></div> 
1243											<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-peso')}</span>																	 
1244										</div> 
1245									</#if>	 
1246									<#if AsturiasMascotas.NumeroMaximoAlojamiento??> 
1247										<#if AsturiasMascotas.NumeroMaximoAlojamiento.data?has_content> 
1248											<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
1249												<#assign NumeroMaximoAlojamientoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Número máximo de perros en el alojamiento")/> 
1250												<div><img src="${NumeroMaximoAlojamientoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-maximo-establecimiento')}"/><span class="value-icono">${AsturiasMascotas.NumeroMaximoAlojamiento.data}</span></div> 
1251												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-maximo-establecimiento')}</span>																	 
1252											</div> 
1253										</#if> 
1254									</#if> 
1255									<#if AsturiasMascotas.NumeroMaximo.data?has_content> 
1256										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
1257											<#assign NumeroMaximoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Número máximo de perros por reserva")/> 
1258											<div><img src="${NumeroMaximoImage[0]}" alt="${languageUtil.get(request,'infoasturias-maximo-habitacion')}"/><span class="value-icono">${AsturiasMascotas.NumeroMaximo.data}</span></div> 
1259											<span class="text-value">${languageUtil.get(request,'infoasturias-maximo-habitacion')}</span>																	 
1260										</div> 
1261									</#if>															 
1262									<#if AsturiasMascotas.SolosHabitacion.data?has_content>									 
1263										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono">										 
1264											<#if AsturiasMascotas.SolosHabitacion.getData() == "Si"> 
1265												<#assign SolosHabitacionImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Se permite dejar el perro solo en la habitación")/>	 
1266												<div ><img src="${SolosHabitacionImage[0]}" alt="${languageUtil.get(request,'infoasturias-solas-habitacion')}"/></div> 
1267												<span class="text-value">${languageUtil.get(request,'infoasturias-solas-habitacion')}</span>											 
1268											<#else> 
1269												<#assign NoSolosHabitacionImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "No se permite dejar el perro solo en la habitación")/>	 
1270												<div><img src="${NoSolosHabitacionImage[0]}" alt="${languageUtil.get(request,'infoasturias-no-solas-habitacion')}"/></div> 
1271												<span class="text-value">${languageUtil.get(request,'infoasturias-no-solas-habitacion')}</span>														 
1272											</#if>									 
1273										</div>									 
1274									</#if>	 
1275								</div> 
1276								<div class="article-info-table">	 
1277									<div class="mb-4 title-normas article-info-border">${languageUtil.get(request,'infoasturias-normas-mascotas')}</div>	 
1278									<ul class="list-unstyled"> 
1279										<#if AsturiasMascotas.AdmitePPP.data?has_content> 
1280											<li class="fas d-block track">									 
1281												<#if AsturiasMascotas.AdmitePPP.getData() == "Si"> 
1282													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-ppp')}.</span>	 
1283												<#else> 
1284													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-ppp')}.</span> 
1285												</#if>										 
1286											</li> 
1287										</#if>	 
1288										<#if AsturiasMascotas.ZonasComunesDetalle ??>										 
1289											<#if AsturiasMascotas.ZonasComunes?? && AsturiasMascotas.ZonasComunes.data?has_content || AsturiasMascotas.ZonasComunesDetalle?? && AsturiasMascotas.ZonasComunesDetalle.data?has_content> 
1290																				 
1291												<#if AsturiasMascotas.ZonasComunes.getData() == "Si"> 
1292													<li class="fas d-block track">	 
1293														<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-zonas-comunes')}.</span> 
1294													</li> 
1295												<#elseif AsturiasMascotas.ZonasComunes.getData() == "No"> 
1296													<li class="fas d-block track">	 
1297														<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-zonas-comunes')}.</span> 
1298													</li> 
1299												<#elseif validator.isNotNull(AsturiasMascotas.ZonasComunesDetalle.data)> 
1300													<li class="fas d-block track">	 
1301														<span class="text-rule">${AsturiasMascotas.ZonasComunesDetalle.data}</span>	 
1302													</li> 
1303												</#if> 
1304											 
1305											</#if>	 
1306										</#if>										 
1307										<#if AsturiasMascotas.Cama.data?has_content> 
1308											<li class="fas d-block track">									 
1309												<#if AsturiasMascotas.Cama.getData() == "Si"> 
1310													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-cama')}.</span>	 
1311												<#else> 
1312													<span class="text-rule">${languageUtil.get(request,'infoasturias-no-mascotas-cama')}.</span>												 
1313												</#if>										 
1314											</li> 
1315										</#if>								 
1316										<#if AsturiasMascotas.Comedero.data?has_content> 
1317											<li class="fas d-block track">									 
1318												<#if AsturiasMascotas.Comedero.getData() == "Si"> 
1319													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-comedero')}.</span>	 
1320												<#else> 
1321													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-comedero')}.</span>												 
1322												</#if>											 
1323											</li> 
1324										</#if>			 
1325										<#if AsturiasMascotas.Guarderia.data?has_content> 
1326											<li class="fas d-block track">									 
1327												<#if AsturiasMascotas.Guarderia.getData() == "Si"> 
1328													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-guarderia')}.</span>	 
1329												<#else> 
1330													<span class="text-rule">${languageUtil.get(request,'infoasturias-no-mascotas-guarderia')}.</span>												 
1331												</#if>									 
1332											</li> 
1333										</#if>		 
1334										<#if AsturiasMascotas.OtrasMascotas?? && AsturiasMascotas.OtrasMascotas.data?has_content || AsturiasMascotas.OtrosAnimales?? && AsturiasMascotas.OtrosAnimales.data?has_content> 
1335											<li class="fas d-block track">									 
1336												<#if AsturiasMascotas.OtrasMascotas.getData() == "Si"> 
1337													<span class="text-rule">${languageUtil.get(request,'infoasturias-otras-mascotas')}:</span> 
1338													<span class="text-rule">${AsturiasMascotas.OtrosAnimales.data}</span> 
1339												<#else> 
1340													<span class="text-rule">${languageUtil.get(request,'infoasturias-no-otras-mascotas')}</span> 
1341												</#if>										 
1342											</li> 
1343										</#if>									 
1344										<#if AsturiasMascotas.PrecioSuplemento?? && AsturiasMascotas.PrecioSuplemento.data?has_content> 
1345											<li class="fas d-block track mt-2"> 
1346												<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-suplemento')}: ${AsturiasMascotas.PrecioSuplemento.data}</span>											 
1347											</li> 
1348										</#if>											 
1349									</ul> 
1350									<#if AsturiasMascotas.DetalleNormas.data?has_content>						 
1351										<div class="rules"> 
1352											<#assign iconSPAN = AsturiasMascotas.DetalleNormas.data?replace('<p>','<p><span class="fas"></span>')/> 
1353											${iconSPAN} 
1354										</div> 
1355									</#if> 
1356								</div> 
1357							</div> 
1358						</#if> 
1359					</div> 
1360				</div> 
1361				<#assign showFirstTab = false> 
1362			</#if> 
1363 
1364		</div> 
1365		<div class="article-border"> 
1366			<#if Observaciones.Observacion.data?has_content> 
1367				${Observaciones.Observacion.data} 
1368			</#if> 
1369			 
1370			<#if stringUtil.matches(Observaciones.MasInformacion.data, "//") && Contacto.MasInformacion?? > 
1371				<a class="" href="${Contacto.MasInformacion.data}" title="${languageUtil.format(request,'go-to-x', 'link')}">${Contacto.MasInformacion.data} 
1372			<#elseif validator.isNotNull(Observaciones.MasInformacion.data)> 
1373				<span class="">${Observaciones.MasInformacion.data}</span> 
1374			</#if> 
1375 
1376			<#if OtrosDatos.DatosFacilitadosPor?has_content> 
1377				<div class="datos-facilitados"> 
1378					<span class="important mr-1">${languageUtil.get(request,'infoasturias-datos-facilitados-por')}:</span><span class="text-wrapper">${OtrosDatos.DatosFacilitadosPor.data}.</span> 
1379				</div> 
1380			</#if> 
1381			 
1382			<#if CodigoDGT.data?has_content> 
1383				<div> 
1384					<span class="text-wrapper mr-1">${languageUtil.get(request,'infoasturias-establecimiento-inscrito-en-registro')} </span><span class="important">${CodigoDGT.data}.</span> 
1385				</div> 
1386			</#if> 
1387			<#if precioOrientativo>			 
1388					<div class="text-wrapper">${languageUtil.get(request,'infoasturias-precios-orientativos')}.</div> 
1389			</#if> 
1390		</div> 
1391		<div class="row mt-5"> 
1392			<div class="col-xl-6 col-sm-6 col-xs-12 mb-3"> 
1393				<div class="text-center"> 
1394					<#if Contacto.Email.data?has_content> 
1395						<a href="mailto:${Contacto.Email.data}?Subject=${htmlUtil.escapeURL(title)}:%20${languageUtil.get(request,'infoasturias-more-info')}" class="btn btn-default text-center text-uppercase" aria-label="${languageUtil.get(request,'infoasturias-contacto-alojamiento')}: ${Contacto.Email.data}"> 
1396							<span class="far fa-envelope mr-2" aria-hidden="true"></span> 
1397							<span class="btn-default">${languageUtil.get(request,'infoasturias-contacto-alojamiento')}</span> 
1398						</a> 
1399					</#if>					 
1400				</div>	 
1401			</div> 
1402			<div class="col-xl-6 col-sm-6 col-xs-12"> 
1403				<div class="text-center">         
1404					<#if Peregrinos ??> 
1405						<#if getterUtil.getBoolean(Peregrinos.AdmiteReservas.getData())> 
1406							<#assign showReservaButton = false/> 
1407						</#if>     
1408						<#if Peregrinos.BookingWeb?? && Peregrinos.BookingWeb.data?has_content> 
1409							<#assign UrlBooking = Peregrinos.BookingWeb.getData() /> 
1410							<#assign isExternalLink = !UrlBooking?starts_with("/") && !UrlBooking?contains(themeDisplay.getPortalURL()) /> 
1411							<a href="${htmlUtil.escapeHREF(UrlBooking)}" class="btn btn-primary btn-small text-center text-uppercase" 
1412								<#if isExternalLink> 
1413									target="_blank"  
1414									rel="noopener noreferrer" 
1415									aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')} (${languageUtil.get(request,'opens-new-window')})" 
1416								</#if>> 
1417								<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="${languageUtil.format(request,'go-to-x', 'infoasturias-reservar-ahora')}" aria-hidden="true" role="presentation"/> 
1418								<span class="btn-text"> 
1419									${languageUtil.get(request,'infoasturias-reservar-ahora')} 
1420								</span> 
1421							</a>                                                 
1422							<#assign showReservaButton = false/> 
1423						</#if> 
1424					</#if> 
1425					<#if Contacto.Email.data?has_content || CodigoDGT.data?has_content> 
1426						<#if showReservaButton> 
1427							<div class="article-info-table-cell align-middle"> 
1428								<#if Contacto.Email.data?has_content> 
1429									<#assign params = {"displayStyle": "ddmTemplate_441008", "portletId": portletTool.getPortletId(request), "articleId": "${articleId}"}> 
1430									<#assign portletURL = portletTool.createURL(request, "as_asac_adtvisor_portlet_AdtVisorDialogPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", params) /> 
1431									<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-availability-request" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${portletURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '', '','formularioReserva', 'formularioReservaIframe');"> 
1432										<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="${languageUtil.format(request,'go-to-x', 'infoasturias-reservar-ahora')}" aria-hidden="true" role="presentation"> 
1433										${languageUtil.get(request,'infoasturias-reservar-ahora')} 
1434									</button> 
1435								</#if> 
1436								<#if CodigoDGT.data?has_content> 
1437									<#assign paramsMap = {"accommodationCode": CodigoDGT.data, "jspPage": "/html/results/accommodation/accommodation.jsp"} /> 
1438									<#assign bookingURL = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingResultsPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", paramsMap) /> 
1439									<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-accommodation-booking" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${bookingURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '800px', '','formularioReserva', 'formularioReservaIframe');"> 
1440										<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="" aria-hidden="true" role="presentation"> 
1441										${languageUtil.get(request,'infoasturias-reservar-ahora')} 
1442									</button> 
1443								</#if> 
1444							</div> 
1445						</#if> 
1446					</#if> 
1447				</div> 
1448			</div> 
1449		</div> 
1450		 
1451	<#-- Related --> 
1452	<#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/> 
1453	<#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0> 
1454		<div class="article-related portlet-background-grey-container"> 
1455			<div class="container"> 
1456				<h3 class="title-section">${languageUtil.get(request,'related-assets')}</h3> 
1457				<div class="slick article-related-slick"> 
1458					<#list relatedJournalArticles as currentJournalArticle> 
1459						<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
1460							<div class="slide"> 
1461								<a class="card background card-background-9-14"  href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
1462									<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
1463										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
1464										<span class="card-body"> 
1465											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
1466										</span> 
1467									</span> 
1468								</a> 
1469							</div> 
1470					</#list> 
1471				</div> 
1472			</div> 
1473		</div> 
1474	</#if> 
1475	 
1476	<#-- Nearby --> 
1477	<#assign classTypeIds = [598853,582814,584415,625593,623117,609431,593783]> 
1478	<#if themeDisplay.getScopeGroupId()==assetEntry.getGroupId()> 
1479		<#assign assetsNearJournalArticles = assetNearTool.getNearJournalArticles(themeDisplay.getScopeGroupId(), assetEntry.getEntryId(), 50.0, classTypeIds, 25)! /> 
1480		<#if validator.isNotNull(assetsNearJournalArticles) && assetsNearJournalArticles?size gt 0> 
1481			<div class="article-nearby portlet-container-margin"> 
1482				<div class="container"> 
1483					<div class="article-nearby-container"> 
1484						<h3 class="title-section">${languageUtil.get(request,'infoasturias-near-here')}</h3> 
1485						<div class="slick article-nearby-slick"> 
1486							<#list assetsNearJournalArticles as currentJournalArticle> 
1487								<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
1488								<div class="slide"> 
1489									<a class="card" href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
1490										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
1491											<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
1492											<span class="card-hover"> 
1493												<span class="card-text">${currentJournalArticle.getDescription(locale)}</span> 
1494											</span> 
1495										</span> 
1496										<span class="card-body"> 
1497											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
1498											<span class="card-subtitle"> 
1499												<span class="d-block">${currentJournalArticle.getVersion()} Kms</span> 
1500												<span class="d-block">${journalTool.getCategoriesNames(groupId, currentJournalArticle.getArticleId(), locale, ["Concejos"])}</span> 
1501											</span> 
1502										</span> 
1503									</a> 
1504								</div> 
1505							</#list> 
1506						</div> 
1507					</div> 
1508				</div> 
1509			</div> 
1510		</#if> 
1511	</#if> 
1512	 
1513	 
1514</article> 
1515<#assign params = {}> 
1516<#assign resourceURL = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingSearchPortlet", themeDisplay.getPlid(), "RESOURCE_PHASE", "normal", params) /> 
1517<#assign resourceURL = httpUtil.addParameter(resourceURL,"p_p_resource_id","hasCentralReservation") /> 
1518 
1519<@liferay_aui["script"] use="aui-base,liferay-portlet-url,aui-io-request-deprecated,aui-io-plugin-deprecated"> 
1520 
1521	Liferay.provide(window,'<@portlet.namespace/>refreshPortlet', function(uri) { 
1522		location.href = uri; 
1523	}); 
1524 
1525	function checkCentralReservation() { 
1526		A.io.request('${resourceURL}', { 
1527			data: { 
1528				_as_asac_accommodationbooking_AccommodationBookingSearchPortlet_articleId: "${articleId}" 
1529			}, 
1530			dataType: 'JSON', 
1531			method: 'GET', 
1532			on: { 
1533				success: function(){ 
1534					var response = this.get("responseData"); 
1535					var aniadido = parseInt(response.results); 
1536					var allAvailabilityButtons = A.all('.btn-availability-request'); 
1537					var allAccommodationButtons = A.all('.btn-accommodation-booking'); 
1538					 
1539					var availabilityButtons = allAvailabilityButtons.filter(function(node) { 
1540						var isInModal = node.ancestor('.modal, .dialog-iframe-modal, .yui3-widget-modal, [role="dialog"]'); 
1541						return !isInModal; 
1542					}); 
1543					 
1544					var accommodationButtons = allAccommodationButtons.filter(function(node) { 
1545						var isInModal = node.ancestor('.modal, .dialog-iframe-modal, .yui3-widget-modal, [role="dialog"]'); 
1546						return !isInModal; 
1547					}); 
1548					 
1549					if(aniadido > 0){ 
1550						availabilityButtons.hide(); 
1551						accommodationButtons.show(); 
1552					} else { 
1553						accommodationButtons.hide(); 
1554						availabilityButtons.show(); 
1555
1556				}, 
1557				error: function(){ 
1558					console.log('Error verificando central de reservas'); 
1559
1560
1561		}); 
1562
1563 
1564	A.on('domready', function() { 
1565		checkCentralReservation(); 
1566	}); 
1567	 
1568	//Show as_asac_accommodationbooking_AccommodationBookingResultsPortlet 
1569	<#if validator.isNotNull(cmd) && cmd == "search" > 
1570 
1571		function loadAccommodationOffers(){ 
1572			var href = "${roomsURL}"; 
1573			console.log("loadAccommodationOffers"); 
1574			console.log(href); 
1575			var node = A.one('#bookings-${articleId}'); 
1576			if(node){ 
1577				console.log("io-request"); 
1578				node.show();	 
1579				node.plug(A.Plugin.IO, {                                                      
1580					showLoading: true, 
1581					method: 'GET', 
1582					uri: href                                               
1583				}); 
1584
1585
1586		A.on('domready', function() { 
1587			loadAccommodationOffers(); 
1588		}); 
1589	</#if> 
1590</@>