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