Vés enrere Etapa 4: Can Boi - Muleta

S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> articleRefugio  [in template "20101#20128#38295" at line 351, column 76]

----
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: @liferay_journal["journal-article"] d...  [in template "20101#20128#38295" at line 348, column 65]
----
1<#include "${templatesPathTurismo}/113928" /> 
2<#include "${templatesPathTurismo}/84562" /> 
3<#include "${templatesPathTurismo}/162098" /> 
4<#include "${templatesPathTurismo}/1518983" /> 
5<#assign  
6        theme_display = themeDisplay 
7        images_folder = theme_display.getPathThemeImages() 
8        /> 
9<#setting locale = themeDisplay.getLocale()/> 
10<#setting number_format = "#.#" /> 
11<#assign dlAppService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") /> 
12<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
13<#attempt> 
14<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data)> 
15<#recover> 
16<#assign article = journalArticleLocalService.getArticle(groupIdTurismo?number, .vars['reserved-article-id'].data)> 
17</#attempt> 
18<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
19<#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', article.resourcePrimKey) > 
20 
21<#-- Services assetVocabulary y assetCategory --> 
22<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
23<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
24 
25<#-- Vocabulario Nivel de Dificultad --> 
26<#attempt> 
27<#assign vocabularyNivelDificultad = assetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "Nivell de dificultat") /> 
28<#recover> 
29<#assign vocabularyNivelDificultad = assetVocabularyLocalService.fetchGroupVocabulary(groupIdTurismo?number, "Nivell de dificultat") /> 
30</#attempt> 
31<#assign categoriasNivelDificultad = assetCategoryLocalService.getVocabularyRootCategories(vocabularyNivelDificultad.getVocabularyId(), -1, -1, null) /> 
32 
33<#assign dificultad = "" /> 
34<#if categoriasNivelDificultad?has_content> 
35    <#list categoriasNivelDificultad as currentRootCategory> 
36        <#if assetCategoryLocalService.hasAssetEntryAssetCategory(asset.getEntryId(),currentRootCategory.getCategoryId()) > 
37            <#assign dificultad = currentRootCategory.getTitle(themeDisplay.getLocale()) /> 
38        </#if> 
39    </#list> 
40</#if> 
41 
42<#-- Vocabulario Tipo de Recorrido --> 
43<#attempt> 
44<#assign vocabularyTipoRecorrido = assetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "Tipus de recorregut") /> 
45<#recover> 
46<#assign vocabularyTipoRecorrido = assetVocabularyLocalService.fetchGroupVocabulary(groupIdTurismo?number, "Tipus de recorregut") /> 
47</#attempt> 
48<#assign categoriasTipoRecorrido = assetCategoryLocalService.getVocabularyRootCategories(vocabularyTipoRecorrido.getVocabularyId(), -1, -1, null) /> 
49 
50<#assign recorrido = "" /> 
51<#if categoriasTipoRecorrido?has_content> 
52    <#list categoriasTipoRecorrido as currentRootCategory> 
53        <#if assetCategoryLocalService.hasAssetEntryAssetCategory(asset.getEntryId(),currentRootCategory.getCategoryId()) > 
54            <#assign recorrido = currentRootCategory.getTitle(themeDisplay.getLocale()) /> 
55        </#if> 
56    </#list> 
57</#if> 
58 
59<#-- Incluimos favoritos --> 
60<@addFavorito planificador="true" favoritos="true" instanceId="detalleRuta"/> 
61 
62<!-- Section Title --> 
63<section class="sectionTitle"> 
64    <div class="container"> 
65        <div class="row"> 
66            <div class="col-12"> 
67                <div class="divArea"> 
68                    <@printParentRuta/> 
69                </div> 
70            </div> 
71            <div class="col-12"> 
72                <div class="divArea"> 
73                    <@printColorCircle articleId=.vars['reserved-article-id'].data rutaId=Id.getData()/> 
74                    <h2 class="pArea">${Nombre.getData()}</h2> 
75                </div> 
76            </div> 
77        </div> 
78    </div> 
79</section> 
80<!-- FIN Title --> 
81<!-- Section Recurso --> 
82<section class="sectionRecurso"> 
83    <div class="container"> 
84        <div class="row"> 
85            <div class="col-12 col-lg-9 marginCol"> 
86                <!-- Section Tabs --> 
87                <div class="sectionTab"> 
88                    <div class="row"> 
89                        <div class="col-12"> 
90                            <div class="divTab"> 
91                                <ul class="nav nav-tabs list-inline" id="myTab" role="tablist"> 
92                                    <li class="nav-item list-inline-item active"> 
93                                        <a href="#descripcionSend" class="nav-link aTab active" data-toggle="tab" title="pestaña para descripción" id="descripcionSend-tab" role="tab" aria-controls="descripcionSend" aria-selected="true"> 
94                                            ${languageUtil.get(themeDisplay.getLocale(), 'sm.template.descripcion')} 
95                                        </a> 
96                                    </li> 
97                                    <#if PuntosDeInteres.getSiblings()?size gt 0 && (PuntosDeInteres.getSiblings()[0]).getData()?has_content && PuntosDeInteres.getSiblings()[0].getData()!="{}"> 
98                                    <li class="nav-item list-inline-item"> 
99                                        <a href="#intpointSend" class="nav-link aTab" data-toggle="tab" title="pestaña para puntos de interés" id="intpointSend-tab" aria-controls="intpointSend" aria-selected="false"> 
100                                            ${languageUtil.get(themeDisplay.getLocale(), 'sm.template.puntos.interes')} 
101                                        </a> 
102                                    </li> 
103                                    </#if> 
104                                    <#if Refugios.getSiblings()?size gt 0 && (Refugios.getSiblings()[0]).getData()?has_content && Refugios.getSiblings()[0].getData()!="{}"> 
105                                    <li class="nav-item list-inline-item"> 
106                                        <a href="#refugiosSend" class="nav-link aTab" data-toggle="tab" title="pestaña para refugios" id="refugiosSend-tab" aria-controls="refugiosSend" aria-selected="false"> 
107                                            ${languageUtil.get(themeDisplay.getLocale(), 'sm.template.refugios')} 
108                                        </a> 
109                                    </li> 
110                                    </#if> 
111                                    <#if Imagenes.getSiblings()?size gt 0 && (Imagenes.getSiblings()[0]).getData()?has_content> 
112                                    <li class="nav-item list-inline-item"> 
113                                        <a href="#imagenesSend" class="nav-link aTab" data-toggle="tab" title="pestaña para imágenes" id="imagenesSend-tab" aria-controls="imagenesSend" aria-selected="false"> 
114                                            ${languageUtil.get(themeDisplay.getLocale(), 'sm.template.imagenes')} 
115                                        </a> 
116                                    </li> 
117                                    </#if> 
118                                </ul> 
119                            </div> 
120                        </div> 
121                    </div> 
122                </div> 
123                <!-- FIN Tabs --> 
124                <!-- Section Tab-Panel --> 
125                <div class="tab-content" id="myTabContent"> 
126                    <!-- Section DescripciónSend --> 
127                    <div class="tab-pane fade show active sectionSlider" id="descripcionSend" role="tabpanel" aria-labelledby="descripcionSend-tab"> 
128					<#if dificultad!="" || Distancia.getData()!="" || Desnivel.getData()!="" || DesnivelNegativo.getData()!="" || DuracionAproximada.getData()!="" || recorrido!="" >                     
129                        <div class="row"> 
130                            <div class="col-12 marginCol"> 
131                                <div class="divTypeSend"> 
132                                    <#if dificultad!=""> 
133                                        <div class="tipsSend">  
134                                            <span class="titleTypeSent">${languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.rutas.dificultad')} </span> 
135                                            <span class="textTypeSent">${dificultad}</span> 
136                                        </div> 
137                                    </#if> 
138                                    <#if Distancia.getData()!="" && Distancia.getData()!="0" && Distancia.getData()!="0.0" && Distancia.getData()!="0,0"> 
139                                    <div class="tipsSend">  
140                                        <span class="titleTypeSent">${languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.rutas.distancia')} </span> 
141                                        <span class="textTypeSent"> ${Distancia.getData()} km</span> 
142                                    </div> 
143                                    </#if> 
144                                    <#if Desnivel.getData()!="" && Desnivel.getData()!="0" && Desnivel.getData()!="0.0" && Desnivel.getData()!="0,0"> 
145                                    <div class="tipsSend">  
146                                        <span class="titleTypeSent">${languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.rutas.desnivel')} </span> 
147                                        <span class="textTypeSent"> ${Desnivel.getData()} m</span> 
148                                    </div> 
149                                    </#if> 
150                                    <#if DesnivelNegativo?? && DesnivelNegativo.getData()!="" && DesnivelNegativo.getData()!="0" && DesnivelNegativo.getData()!="0.0" && DesnivelNegativo.getData()!="0,0"> 
151                                    <div class="tipsSend">  
152                                        <span class="titleTypeSent">${languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.rutas.desnivel.negativo')} </span> 
153                                        <span class="textTypeSent"> ${DesnivelNegativo.getData()} m</span> 
154                                    </div> 
155                                    </#if> 
156                                    <#if DuracionAproximada.getData()!=""> 
157                                    <div class="tipsSend"> 
158                                        <span class="titleTypeSent">${languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.rutas.tiempo.estimado')} </span> 
159                                        <span class="textTypeSent"> ${DuracionAproximada.getData()}</span> 
160                                    </div> 
161                                    </#if> 
162                                    <#if recorrido!=""> 
163                                        <div class="tipsSend">  
164                                            <span class="titleTypeSent">${languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.rutas.tipo.ruta')} </span> 
165                                            <span class="textTypeSent">${recorrido}</span> 
166                                        </div> 
167                                    </#if> 
168                                </div> 
169                            </div> 
170                        </div> 
171                        </#if> 
172                        <div class="row"> 
173                            <div class="col-12"> 
174                                <#if PerfilTopografico.getSiblings()?has_content> 
175                                	<#if PerfilTopografico.getSiblings()?size gt 0 && (PerfilTopografico.getSiblings()[0]).getData()?has_content> 
176                                        <#assign imagenGrande=PerfilTopografico.getSiblings()[0].getData()/> 
177                                        <#if PerfilTopografico.getSiblings()[0].getAttribute("alt")?has_content> 
178                                            <#assign imagenGrandeAlt=PerfilTopografico.getSiblings()[0].getAttribute("alt")/> 
179                                        <#else> 
180                                            <#assign imagenGrandeAlt=""/>  
181                                        </#if> 
182                                        <#if PerfilTopografico.getAttribute("fileEntryId")??> 
183                                            <#assign fileEntryId = PerfilTopografico.getAttribute("fileEntryId")/> 
184                                            <#attempt> 
185                                            <@adaptive_media_image["img"] class="figure-img img-fluid" fileVersion=dlAppService.getFileEntry(fileEntryId?number).getFileVersion() alt="${imagenGrandeAlt}" title="${imagenGrandeAlt}" /> 
186                                            <#recover> 
187                                            </#attempt> 
188                                        </#if> 
189                                    </#if>  
190                                </#if> 
191                                 
192                            </div> 
193                        </div> 
194                        <!-- Servicios --> 
195                        <div class="row"> 
196                            <div class="col-12"> 
197                                <div class="divServSend"> 
198                                    <@printServicesRutes articleId=.vars['reserved-article-id'].data/> 
199                                </div> 
200                            </div> 
201                        </div> 
202                        <!-- FIN Servicios --> 
203                        <div class="divDescripcionRuta"> 
204                            <div class="row"> 
205                                <div class="col-12"> 
206                                    ${Descripcion.getData()} 
207                                </div>  
208                            </div> 
209                            <div class="row"> 
210                                <#if Etapas1.getSiblings()?has_content> 
211                                	<#list Etapas1.getSiblings() as cur_Etapa> 
212                                		<#assign 
213                                			jsonEtapa = jsonFactoryUtil.createJSONObject(cur_Etapa.getData()) 
214                                		/> 
215                                		<#if jsonEtapa.uuid?? && themeDisplay.getScopeGroupId()??> 
216                                		    <#attempt> 
217                                            <#assign articleEtapa = journalArticleLocalService.getJournalArticleByUuidAndGroupId(jsonEtapa.uuid, themeDisplay.getScopeGroupId()) /> 
218                                             <#recover> 
219                                             <#assign articleEtapa = journalArticleLocalService.getJournalArticleByUuidAndGroupId(jsonEtapa.uuid, groupIdTurismo?number) /> 
220                                             </#attempt> 
221                                              
222                                            <div class="col-12 col-md-6 col-lg-4"> 
223                                                <div class="card cardRefug js_goStage"> 
224                                                    <#assign listUrl = themeDisplay.getURLCurrent()?split("/") /> 
225                                                    <#list listUrl as x > 
226                                                        <#if !x_has_next> 
227                                                            <#list x?split("?") as y> 
228                                                                <#assign etapa = y /> 
229                                                                <#break> 
230                                                            </#list> 
231                                                        </#if> 
232                                                    </#list> 
233                                                    <a href="${themeDisplay.getURLHome()}/-/${articleEtapa.urlTitle}?classNameId=20701&classPK=${articleEtapa.getResourcePrimKey()}&parentId=${.vars['reserved-article-id'].data}" class="aCard"> 
234                                                    <@liferay_journal["journal-article"] 
235                                                       ddmTemplateKey="234580" 
236                                                       articleId=articleEtapa.getArticleId() 
237                                                       groupId=articleEtapa.getGroupId() /> 
238                                                    </a> 
239                                               </div> 
240                                           </div> 
241                                       </#if> 
242                                   	</#list> 
243                                </#if> 
244                            </div> 
245                        </div> 
246                    </div> 
247                    <!-- Section intpointSend --> 
248                    <div class="tab-pane fade sectionSlider" id="intpointSend" role="tabpanel" aria-labelledby="intpointSend-tab"> 
249                        <section class="sectionCards"> 
250                            <div class="container"> 
251                                <div class="row"> 
252                                    <#if PuntosDeInteres.getSiblings()?has_content> 
253                                        <div class="col-12"> 
254                                            <div class="divSwiper experiencias" id="experiencias">  
255                                                <div class="divSwiper-wrapper row"> 
256                                            	<#list PuntosDeInteres.getSiblings() as cur_POI> 
257                                            	<#assign 
258                                        			jsonPOI = jsonFactoryUtil.createJSONObject(cur_POI.getData()) 
259                                        		/> 
260                                        		<#if jsonPOI.uuid?? && themeDisplay.getScopeGroupId()??> 
261                                                    <#attempt> 
262                                                    <#assign articlePOI = journalArticleLocalService.getJournalArticleByUuidAndGroupId(jsonPOI.uuid, themeDisplay.getScopeGroupId()) /> 
263                                                    <#recover> 
264                                                    <#assign articlePOI = journalArticleLocalService.getJournalArticleByUuidAndGroupId(jsonPOI.uuid, groupIdTurismo?number) /> 
265                                                    </#attempt> 
266                                            	    <div class="li_ss col-md-6"> 
267                                            	        <div class="card"> 
268                                            	            <a href="/-/${articlePOI.urlTitle}?classNameId=20701&classPK=${articlePOI.getResourcePrimKey()}" class="aCard"> 
269                                                            <#-- Obtenemos la primera imagen --> 
270                                                            <#if cur_POI.ImagenPOI?has_content> 
271                                                                <#if cur_POI.ImagenPOI.getSiblings()?size gt 0 && (cur_POI.ImagenPOI.getSiblings()[0]).getData()?has_content> 
272                                                                    <div class="card-img marcCardResult"> 
273                                                                        <#assign map = { "propietario": '' } /> 
274                                                                        <#assign fileEntryId = cur_POI.ImagenPOI.getSiblings()[0].getAttribute("fileEntryId")/> 
275                                                                        <#assign image = cur_POI.ImagenPOI.data?eval /> 
276                                                                    	<#if cur_POI.ImagenPOI.getSiblings()[0].getAttribute("alt")?has_content> 
277                                                                    	    <#assign imagenAlt = cur_POI.ImagenPOI.getSiblings()[0].getAttribute("alt")/> 
278                                                                    	<#else> 
279                                                                    	    <#assign imagenAlt = ""/> 
280                                                                    	</#if> 
281                                                                        <#if image??> 
282                                                                            <#assign mapFields=getFieldsDocument(map,image) /> 
283                                                                            <#list mapFields?keys as key> 
284                                                                            <#if key=="propietario"> 
285                                                                                <#assign propietario = mapFields[key] /> 
286                                                                                <#assign imagenAlt="${imagenAlt}"+" © "+"${propietario}" /> 
287                                                                            </#if> 
288                                                                            </#list> 
289                                                                        </#if> 
290                                                                        <#attempt> 
291                                                                        <@adaptive_media_image["img"] class="card-img-top" fileVersion=dlAppService.getFileEntry(fileEntryId?number).getFileVersion() alt="${imagenAlt}" title="${imagenAlt}" /> 
292                                                                        <#recover> 
293                                                                        </#attempt> 
294                                                                    </div> 
295                                                                </#if> 
296                                                            </#if> 
297                                                            <#if imagenAlt??> 
298                                                            <div class="card-body"> 
299                                                                <p class="card-title">${imagenAlt}</p> 
300                                                            </div> 
301                                                            </#if> 
302                                                            </a> 
303                                                        </div> 
304                                                    </div> 
305                                                    </#if> 
306                                               	</#list> 
307                                               	</div> 
308                                            </div> 
309                                        </div> 
310                                    </#if> 
311                                </div> 
312                                <div class="swiper-button-next"></div> 
313                                <div class="swiper-button-prev"></div> 
314                            </div> 
315                        </section> 
316                    </div> 
317                    <!-- FIN intpointSend --> 
318                    <!-- Section RefugiosSend --> 
319                    <div class="tab-pane fade sectionSlider" id="refugiosSend" role="tabpanel" aria-labelledby="refugiosSend-tab"> 
320                        <!-- Section Cards  - Instalaciones deportivas --> 
321                        <p class="mT20">${languageUtil.get(themeDisplay.getLocale(), 'sm.template.seleccionar.refugios')}</p> 
322                        <section class="sectionCards"> 
323                            <div class="row"> 
324                                <#if Refugios.getSiblings()?has_content> 
325                                    <div class="col-12"> 
326                                        <div class="divSwiper instaDeport" id="instaDeport">  
327                                            <div class="divSwiper-wrapper row"> 
328                                                <#list Refugios.getSiblings() as cur_Refugio> 
329                                            		<#assign 
330                                            			jsonRefugio = jsonFactoryUtil.createJSONObject(cur_Refugio.getData()) 
331                                            		/> 
332                                            		<#if jsonRefugio.classPK?? && themeDisplay.getScopeGroupId()??> 
333                                            		    <#attempt> 
334                                                        <#assign articleRefugio = journalArticleLocalService.getLatestArticle(jsonRefugio.classPK?number) /> 
335                                                        <#recover> 
336                                                        </#attempt> 
337                                                        <#assign listUrl = themeDisplay.getURLCurrent()?split("/") /> 
338                                                        <#list listUrl as x > 
339                                                            <#if !x_has_next> 
340                                                                <#list x?split("?") as y> 
341                                                                    <#assign refugio = y /> 
342                                                                    <#break> 
343                                                                </#list> 
344                                                            </#if> 
345                                                        </#list> 
346                                                        <div class="li_ss col-md-12 marginCol"> 
347                                                            <div class="card noBord"> 
348                                                                <@liferay_journal["journal-article"] 
349                                                                   ddmTemplateKey="235003" 
350                                                                   articleId=articleRefugio.getArticleId() 
351                                                                   groupId=articleRefugio.getGroupId() /> 
352                                                           </div> 
353                                                        </div> 
354                                                    </#if> 
355                                               	</#list> 
356                                            </div> 
357                                            <div class="swiper-button-next"></div> 
358                                            <div class="swiper-button-prev"></div> 
359                                        </div> 
360                                    </div> 
361                                </#if> 
362                            </div> 
363                            <div class="row"> 
364                                <div class="col-12"> 
365                                    <div class="divBtnModal"> 
366                                    <#if themeDisplay.isSignedIn()> 
367                                        <a onclick="reservaMultiple()" type="button" class="btn btn-Consell" style="color: #ffffff;">${languageUtil.get(themeDisplay.getLocale(), 'sm.template.reservar.seleccionados')}</a> 
368                                    <#else> 
369                                        <button type="button" class="btn btn-Consell" style="color: #ffffff;" data-toggle="modal" data-target="#modalRegistro">${languageUtil.get(themeDisplay.getLocale(), 'sm.template.reservar.seleccionados')}</button> 
370                                    </#if> 
371                                    </div> 
372                                </div> 
373                            </div> 
374                        </section> 
375                        <#if color??> 
376                        <#else> 
377                            <#assign color=""/> 
378                        </#if> 
379                        <script> 
380                            function reservaMultiple() { 
381                                var articles = []; 
382                                for(var i = 0; i<$("input[name='checkRefugio']").length; i++){ 
383                                    if($($("input[name='checkRefugio']")[i]).prop("checked")) 
384                                        articles.push($($("input[name='checkRefugio']")[i]).val()); 
385
386                                if(articles.length==0){ 
387                                    alert("${languageUtil.get(themeDisplay.getLocale(), 'sm.template.ningun.refugio.seleccionado')}"); 
388                                    return; 
389
390                                 
391                                var baseURL = themeDisplay.getLayoutURL().substring(0, themeDisplay.getLayoutURL().lastIndexOf('/')) + '/reservamultiple'; 
392                                baseURL = baseURL.replace('/web/', '/group/'); 
393	 
394                            	var portletURL = Liferay.PortletURL.createURL(baseURL); 
395                            	portletURL.setDoAsGroupId('true'); 
396                            	portletURL.setLifecycle(Liferay.PortletURL.RENDER_PHASE); 
397                            	portletURL.setPortletId("com_smart_turismo_reservas_SmTurismoReservasRefugiosMultiplePortlet"); 
398                            	portletURL.setParameter('p_auth', Liferay.authToken); 
399                            	portletURL.setParameter('backURL', window.location.href); 
400                            	portletURL.setParameter('articles', articles); 
401                            	portletURL.setParameter('color', "${color}"); 
402                            	portletURL.setParameter('rutaId', "${Id.getData()}"); 
403                            	portletURL.setParameter('name', "${Nombre.getData()}"); 
404                            	 
405                            	$.ajax({ 
406                            		url: portletURL.toString(), 
407                            		type: "post", 
408                            		data: {},						 
409                            		success: function(response) {	 
410                            			window.location.href=portletURL.toString(); 
411
412                            	}); 
413
414                        </script> 
415                        <!-- FIN Cards refugios -->   
416                    </div> 
417                    <!-- FIN RefugiosSend --> 
418                    <!-- Section ImágenesSend --> 
419                    <div class="tab-pane fade sectionSlider" id="imagenesSend" role="tabpanel" aria-labelledby="imagenesSend-tab"> 
420                        <div class="row"> 
421                        <#if Imagenes.getSiblings()?has_content> 
422                            <div class="col-12"> 
423                                <div class="divSwiper experiencias" id="experiencias">  
424                                    <div class="divSwiper-wrapper row"> 
425                                	<#list Imagenes.getSiblings() as cur_Imagen> 
426                                	    <div class="li_ss col-md-6"> 
427                                	        <div class="card"> 
428                                                <#-- Obtenemos la primera imagen --> 
429                                                <#if cur_Imagen?has_content> 
430                                                    <#if cur_Imagen.getAttribute("fileEntryId")??> 
431                                                        <div class="card-img marcCardResult"> 
432                                                            <#assign map = { "propietario": '' } /> 
433                                                            <#assign fileEntryId = cur_Imagen.getAttribute("fileEntryId")/> 
434                                                            <#assign image = cur_Imagen.data?eval /> 
435                                                        	<#if cur_Imagen.getAttribute("alt")?has_content> 
436                                                        	    <#assign imagenAlt = cur_Imagen.getAttribute("alt")/> 
437                                                        	<#else> 
438                                                        	    <#assign imagenAlt = ""/> 
439                                                        	</#if> 
440                                                            <#if image??> 
441                                                                <#assign mapFields=getFieldsDocument(map,image) /> 
442                                                                <#list mapFields?keys as key> 
443                                                                <#if key=="propietario"> 
444                                                                    <#assign propietario = mapFields[key] /> 
445                                                                    <#assign imagenAlt="${imagenAlt}"+" © "+"${propietario}" /> 
446                                                                </#if> 
447                                                                </#list> 
448                                                            </#if> 
449                                                            <#attempt> 
450                                                            <@adaptive_media_image["img"] class="card-img-top" fileVersion=dlAppService.getFileEntry(fileEntryId?number).getFileVersion() alt="${imagenAlt}" title="${imagenAlt}" /> 
451                                                            <#recover> 
452                                                            </#attempt> 
453                                                        </div> 
454                                                        <div class="card-body"> 
455                                                            <p class="card-title">${imagenAlt}</p> 
456                                                        </div> 
457                                                   </#if> 
458                                                </#if> 
459                                            </div> 
460                                        </div> 
461                                   	</#list> 
462                                   	</div> 
463                                   	<div class="swiper-button-next" tabindex="0" role="button" aria-label="${languageUtil.get(themeDisplay.getLocale(), 'sm.swiper.slider.next')}" aria-disabled="false"></div> 
464                                   	<div class="swiper-button-prev" tabindex="0" role="button" aria-label="${languageUtil.get(themeDisplay.getLocale(), 'sm.swiper.slider.prev')}" aria-disabled="false"></div> 
465                                </div> 
466                            </div> 
467                        </#if> 
468                        </div> 
469                    </div> 
470                    <!-- FIN ImágenesSend --> 
471                </div> 
472                <!-- FIN Tab-Panel --> 
473            </div> 
474            <div class="col-12 col-lg-3 marginCol mT30"> 
475                <div class="row"> 
476                    <div class="col-12 col-md-6 col-lg-12"> 
477                    <#if ImagenArticulo.getSiblings()[0].getData()!="" || (TrackDeRutaKM?? && TrackDeRutaKM.getSiblings()[0].getData()!="") || (TrackDeRutaGPX?? && TrackDeRutaGPX.getSiblings()[0].getData()!="") || (TrackDeRutaGeoJSON?? && TrackDeRutaGeoJSON.getSiblings()[0].getData()!="") || (Folleto?? && Folleto.getSiblings()[0].getData()!="")> 
478                        <div class="divInfoGrey"> 
479                            <div class="row"> 
480                            <#if TrackDeRutaKM?? && TrackDeRutaKM.getSiblings()[0].getData()!=""> 
481                                <div class="col-12 col-sm-6 col-md-12"> 
482                                    <div class="divM10Grey viewMapPoint" id="viewMap"> 
483                                    </div> 
484                                </div> 
485                                <div class="col-12 col-sm-6 col-md-12"> 
486                                <p> 
487                                    <img class="icoInfoBlue" src="${images_folder}/sm/iconos/opciones/ojo.svg" alt="Ver localización"> 
488                                    <a href="javascript:void(0)" data-toggle="modal" data-target="#modalLocalizacion" ><strong>${languageUtil.get(themeDisplay.getLocale(), 'sm.template.ver.localizacion')}</strong></a> 
489                                </p> 
490                                </div> 
491                            <#elseif ImagenArticulo.getSiblings()[0].getData()!=""> 
492                                <div class="col-12 col-sm-6 col-md-12"> 
493                                    <div class="divM10Grey"> 
494                                        <#assign map = { "propietario": '' } /> 
495                                        <#assign fileEntryId = ImagenArticulo.getSiblings()[0].getAttribute("fileEntryId")/> 
496                                        <#assign image = ImagenArticulo.data?eval /> 
497                                    	<#if ImagenArticulo.getSiblings()[0].getAttribute("alt")?has_content> 
498                                    	    <#assign imagenAlt = ImagenArticulo.getSiblings()[0].getAttribute("alt")/> 
499                                    	<#else> 
500                                    	    <#assign imagenAlt = ""/> 
501                                    	</#if> 
502                                        <#if image??> 
503                                            <#assign mapFields=getFieldsDocument(map,image) /> 
504                                            <#list mapFields?keys as key> 
505                                            <#if key=="propietario"> 
506                                                <#assign propietario = mapFields[key] /> 
507                                                <#assign imagenAlt="${imagenAlt}"+" © "+"${propietario}" /> 
508                                            </#if> 
509                                            </#list> 
510                                        </#if> 
511                                        <#attempt> 
512                                        <@adaptive_media_image["img"] class="imgInfoBlue" fileVersion=dlAppService.getFileEntry(fileEntryId?number).getFileVersion() alt="${imagenAlt}" title="${imagenAlt}" /> 
513                                        <#recover> 
514                                        </#attempt> 
515                                    </div> 
516                                </div> 
517                                </#if> 
518                                <#if TrackDeRutaKM?? || TrackDeRutaKM.getSiblings()[0].getData()!="" || TrackDeRutaGPX?? || TrackDeRutaGPX.getSiblings()[0].getData()!="" || TrackDeRutaGeoJSON?? || TrackDeRutaGeoJSON.getSiblings()[0].getData()!="" || Folleto?? || Folleto.getSiblings()[0].getData()!=""> 
519                                    <div class="col-12 col-sm-6 col-md-12"> 
520                                        <div class="divM10Grey"> 
521                                            <#if TrackDeRutaKM?? && TrackDeRutaKM.getSiblings()[0].getData()!=""> 
522                                            <a href="${TrackDeRutaKM.getData()}"> 
523                                                <p class=" mB15"> 
524                                                    <img class="icoInfoBlue" src="${images_folder}/sm/iconos/opciones/descargar.svg" alt="imagen icono descarga" title="Imagen icono descarga"/> 
525                                                    ${languageUtil.get(themeDisplay.getLocale(), 'sm.template.descargar.km')} 
526                                                </p> 
527                                            </a> 
528                                            </#if> 
529                                            <#if TrackDeRutaGPX?? && TrackDeRutaGPX.getSiblings()[0].getData()!=""> 
530                                            <a href="${TrackDeRutaGPX.getData()}"> 
531                                                <p class=" mB15"> 
532                                                    <img class="icoInfoBlue" src="${images_folder}/sm/iconos/opciones/descargar.svg" alt="imagen icono descarga" title="Imagen icono descarga"/> 
533                                                    ${languageUtil.get(themeDisplay.getLocale(), 'sm.template.descargar.gpx')} 
534                                                </p> 
535                                            </a> 
536                                            </#if> 
537                                            <#if TrackDeRutaGeoJSON?? && TrackDeRutaGeoJSON.getSiblings()[0].getData()!=""> 
538                                            <a href="${TrackDeRutaGeoJSON.getData()}"> 
539                                                <p class=" mB15"> 
540                                                    <img class="icoInfoBlue" src="${images_folder}/sm/iconos/opciones/descargar.svg" alt="imagen icono descarga" title="Imagen icono descarga"/> 
541                                                    ${languageUtil.get(themeDisplay.getLocale(), 'sm.template.descargar.geojson')} 
542                                                </p> 
543                                            </a> 
544                                            </#if> 
545                                            <#if Folleto?? && Folleto.getSiblings()?has_content && Folleto.getSiblings()[0].getData()!=""> 
546                                                <#list Folleto.getSiblings() as cur_Folleto> 
547                                                    <a href="${cur_Folleto.getData()}" target="_blank"> 
548                                                        <p> 
549                                                            <img class="icoInfoBlue" src="${images_folder}/sm/agenda/docPdf.svg" alt="imagen documento pdf" title="Imagen de agenda"> 
550                                                            ${cur_Folleto.TextoFolleto.getData()} 
551                                                        </p> 
552                                                    </a> 
553                                                </#list> 
554                                            </#if> 
555                                        </div> 
556                                    </div> 
557                                </#if> 
558                            </div> 
559                        </div> 
560                    </#if> 
561                    </div> 
562                    <@climaMunicipio articleId=.vars['reserved-article-id'].data/> 
563                    <#if OtraInformacion?? && OtraInformacion.getData()!=""> 
564                        <div class="col-12 col-md-6 col-lg-12 marginCol"> 
565                            <div class="divInfoGrey overH"> 
566                                ${OtraInformacion.getData()} 
567                            </div> 
568                        </div> 
569                    </#if> 
570                    <#if (OtraInformacionContacto?? && OtraInformacionContacto.getData()!="") || (Direccion?? && Direccion.getData()!="") || (Telefono?? && Telefono.getData()!="") || (CorreoElectronico?? && CorreoElectronico.getData()!="") || (WebOficial?? && WebOficial.getData()!="") || (RedesSociales?? && RedesSociales.getSiblings()[0].getData()!="") || (FormularioDeContacto?? && FormularioDeContacto.getData()!="")> 
571                    <div class="col-12 col-md-6 col-lg-12 marginCol"> 
572                        <div class="divInfoGrey overH"> 
573                            <p class="headline-medium mB15"><strong>${languageUtil.get(themeDisplay.getLocale(), 'sm.template.contacto')}</strong></p> 
574                            <#if OtraInformacionContacto?? && OtraInformacionContacto.getData()!=""> 
575                                <p class="headline-small mB15"><strong>${OtraInformacionContacto.getData()}</strong></p> 
576                            </#if> 
577                            <#if Direccion?? && Direccion.getData()!=""> 
578                                <p class="headline-small"><strong>${languageUtil.get(themeDisplay.getLocale(), 'sm.template.direccion')}</strong></p> 
579                                <p class="mB15 fontLight mB15">${Direccion.getData()}</p> 
580                            </#if> 
581                            <#if Telefono?? && Telefono.getData()!=""> 
582                                <p class="headline-small"><strong>${languageUtil.get(themeDisplay.getLocale(), 'sm.template.telefono')}</strong></p> 
583                                <a href="tel:${Telefono.getData()}" class="mB15 fontLight mB15">${Telefono.getData()}</a> 
584                            </#if> 
585                            <#if CorreoElectronico?? && CorreoElectronico.getData()!=""> 
586                                <p class="headline-small"><strong>${languageUtil.get(themeDisplay.getLocale(), 'sm.template.correo.electronico')}</strong></p> 
587                                <a href="mailto:${CorreoElectronico.getData()}" class="mB15 fontLight mB15" style="display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;">${CorreoElectronico.getData()}</a> 
588                            </#if> 
589                            <#if WebOficial?? && WebOficial.getData()!=""> 
590                                <p class="headline-small"><strong>${languageUtil.get(themeDisplay.getLocale(), 'sm.template.web.oficial')}</strong></p> 
591                                <p class="mB15 fontLight mB15"><a href="${WebOficial.getData()}" class="aLink">${WebOficial.getData()}</a></p> 
592                            </#if> 
593                            <#if RedesSociales?? && RedesSociales.getSiblings()?has_content && RedesSociales.getSiblings()[0].getData()!=""> 
594                                <@redesSociales ImagenLogos=RedesSociales /> 
595                            </#if> 
596                            <#if FormularioDeContacto?? && FormularioDeContacto.getData()!=""> 
597                                <div class="divBtnModal"> 
598                                    <a href="${FormularioDeContacto.getData()}" type="button" class="btn btn-Consell w100">${languageUtil.get(themeDisplay.getLocale(), 'sm.template.formulario.contacto')}</a> 
599                                </div> 
600                            </#if> 
601                        </div> 
602                    </div> 
603                    </#if> 
604                </div> 
605            </div> 
606        </div> 
607        <#-- Incluimos estadisticas ruta --> 
608        <@addEstadisticasRuta time="3 months" instanceId="ruta"/> 
609         
610        <#-- Incluimos opiniones --> 
611        <@addOpiniones instanceId="ruta"/> 
612    </div> 
613    <input type="hidden" id="articleId" value="${.vars['reserved-article-id'].data}" /> 
614</section> 
615<!-- FIN Recurso --> 
616 
617<#if InicioRuta?? && (InicioRuta.getData() != "")> 
618	<#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(InicioRuta.getData())> 
619	<#assign latitude = geolocationJSONObject.getDouble("latitude")> 
620	<#assign longitude = geolocationJSONObject.getDouble("longitude")> 
621    <input type="hidden" id="geo" value='${geolocationJSONObject}' /> 
622</#if> 
623<#attempt> 
624    <#assign lugaresCercanos = journalArticleLocalService.fetchArticle(themeDisplay.getScopeGroupId(), "354597")/> 
625<#recover> 
626    <#assign lugaresCercanos = "" /> 
627</#attempt> 
628<#if lugaresCercanos !=""> 
629   ${journalArticleLocalService.getArticleContent(lugaresCercanos, lugaresCercanos.getDDMTemplateKey(), "VIEW", themeDisplay.getLocale(), themeDisplay)} 
630</#if> 
631 
632<#-- Section Artículo promocional --> 
633<#if ArticuloPromocional?? && ArticuloPromocional.getData()!=""> 
634    <#assign jsonPromocional = jsonFactoryUtil.createJSONObject(ArticuloPromocional.getData()) /> 
635    <#if jsonPromocional.classPK?? && themeDisplay.getScopeGroupId()??> 
636        <#assign articlePromocional = journalArticleLocalService.getLatestArticle(jsonPromocional.classPK?number?long ) /> 
637        <#if !articlePromocional.isExpired()> 
638        <@liferay_journal["journal-article"] 
639            ddmTemplateKey="66631" 
640            articleId=articlePromocional.getArticleId() 
641            groupId=articlePromocional.getGroupId() /> 
642        </#if> 
643    </#if> 
644</#if> 
645<#-- FIN Te puede interesar --> 
646 
647<#-- Section Te puede interesar --> 
648<#if TePuedeInteresar?? && TePuedeInteresar.getData()!=""> 
649    <#assign jsonInteresar = jsonFactoryUtil.createJSONObject(TePuedeInteresar.getData()) /> 
650    <#if jsonInteresar.classPK?? && themeDisplay.getScopeGroupId()??> 
651        <#assign articleInteresar = journalArticleLocalService.getLatestArticle(jsonInteresar.classPK?number?long ) /> 
652        <#if !articleInteresar.isExpired()> 
653        <@liferay_journal["journal-article"] 
654            ddmTemplateKey="121197" 
655            articleId=articleInteresar.getArticleId() 
656            groupId=articleInteresar.getGroupId() /> 
657        </#if> 
658    </#if> 
659</#if> 
660<#-- FIN Te puede interesar --> 
661 
662<#-- CREACIÓN DE MODALES --> 
663<@crearModal link="" idModal="modalExterna" texto="${languageUtil.get(themeDisplay.getLocale(), 'sm.popup.web.externa')}"/> 
664<@crearModal link="" idModal="modalRRSS" texto="${languageUtil.get(themeDisplay.getLocale(), 'sm.popup.web.externa')}"/> 
665 
666<#-- JS para mostrar modal --> 
667<@showModal/> 
668 
669<div class="modal modalConsell modalLocalizacion " id="modalLocalizacion" tabindex="-1" role="dialog" aria-hidden="true" style="display: none; overflow-y: scroll;"> 
670    <div class="modal-dialog" role="document"> 
671        <div class="modal-content"> 
672            <div class="modal-header justify-content-end"> 
673                <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
674                  <span aria-hidden="true">×</span> 
675                </button> 
676            </div> 
677            <div id="resourceMapPointPopUp" class="modal-body viewMapPoint"> 
678            </div> 
679            <div class="modal-footer"> 
680            </div> 
681        </div> 
682    </div> 
683</div> 
684 
685<#if InicioRuta?? && InicioRuta.getData()!=""> 
686<script> 
687Liferay.Loader.require('sm-common-js-map@1.0.23/index', function(map) { 
688		map.initialize(); 
689		var kmls = ["${themeDisplay.getURLPortal()}${TrackDeRutaKM.getData()}"]; 
690		var geolocation = JSON.parse($("#geo").val()); 
691		var pointsInicio = { 
692    	    points: [] 
693    	}; 
694    	var element = {}; 
695        element.nombre = "${Nombre.getData()}"; 
696        element.color = "${color}"; 
697        element.id = "${Id.getData()}"; 
698        var contenido = "" 
699			+ ((${Distancia.getData()}!="" && parseInt(${Distancia.getData()})!=0) ? ('<p class="card-text"><strong>' + Liferay.Language.get("sm.buscador.rutas.distancia") + ' </strong>' + ${Distancia.getData()} + ' km' + '</p>') : '') 
700			+ ((${Desnivel.getData()}!="" && parseInt(${Desnivel.getData()})!=0) ? ('<p class="card-text"><strong>' + Liferay.Language.get("sm.buscador.rutas.desnivel") + ' </strong>' + ${Desnivel.getData()} + ' m' + '</p>') : '') 
701			+ (("${dificultad}"!="") ? ('<p class="card-text"><strong>' + Liferay.Language.get("sm.buscador.rutas.dificultad") + ' </strong>${dificultad}</p>') : ''); 
702        pointsInicio.points.push({  
703	        "latitude" : geolocation.latitude, 
704	        "longitude"  : geolocation.longitude, 
705	        "url"       : "", 
706	        "desc"		: contenido, 
707	        "element"	: element 
708	    }); 
709		map.createMapAndKML("viewMap",["${longitude}".replace(",","."),"${latitude}".replace(",",".")],10,kmls,pointsInicio,"https://geoserver.conselldemallorca.net/gis/rest/services/alertas_trafico/FeatureServer/0",undefined); 
710		map.createMapAndKML("resourceMapPointPopUp",["${longitude}".replace(",","."),"${latitude}".replace(",",".")],10,kmls,pointsInicio,"https://geoserver.conselldemallorca.net/gis/rest/services/alertas_trafico/FeatureServer/0",undefined); 
711	}, function(error) { 
712	    console.error(error); 
713	}); 
714 
715</script> 
716</#if>