Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> assetRenderer.getArticle  [in template "20101#20128#42335" at line 54, column 39]

----
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 journalArticle = assetRendere...  [in template "20101#20128#42335" at line 54, column 13]
----
1<#include "${templatesPathTurismo}/113928" /> 
2<#assign dlAppService =   serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") /> 
3<section class="sectionLinklike"> 
4	<div class="container"> 
5    	<div class="row"> 
6        	<div class="col-12"> 
7            	<div class="divLinklike"> 
8                	<ul class="list-inline"> 
9                    	<li class="list-inline-item active" id="parentSectLista"> 
10                        	<a href="javascript:void(0)" class="aLinklike" title="icono de actividad" id="sectLista"> 
11                              	${languageUtil.get(themeDisplay.getLocale(), 'sm.myf.buscador.lista')} 
12                               <img class="imgLinklike" src="${themeDisplay.getPathThemeImages()}/sm/iconos/opciones/actividad.svg" alt="${languageUtil.get(themeDisplay.getLocale(), 'sm.myf.buscador.icono.lista')}" title="${languageUtil.get(themeDisplay.getLocale(), 'sm.myf.buscador.icono.lista')}"> 
13                         	</a> 
14                        </li> 
15                        <li class="list-inline-item" id="parentSectMapa"> 
16                        	<a href="javascript:void(0)" class="aLinklike" title="icono de localización" id="sectMapa"> 
17                        		${languageUtil.get(themeDisplay.getLocale(), 'sm.myf.buscador.mapa')} 
18                        		<img class="imgLinklike" src="${themeDisplay.getPathThemeImages()}/sm/iconos/opciones/place.svg" alt="${languageUtil.get(themeDisplay.getLocale(), 'sm.myf.buscador.icono.mapa')}" title="${languageUtil.get(themeDisplay.getLocale(), 'sm.myf.buscador.icono.mapa')}"> 
19                        	</a> 
20                    	</li> 
21                	</ul> 
22            	</div> 
23        	</div> 
24    	</div> 
25	</div> 
26	</section> 
27<section class="sectionMapa" id="sectionMapa" id="sectionMapa"> 
28    <div class="container"> 
29	    <div class="row"> 
30    	    <div class="col-12 marginCol"> 
31    	        <@liferay_portlet["runtime"] instanceId="MAPAENLISTADO" portletProviderAction=portletProviderAction.VIEW portletName="sm_turismo_testmap_SmTurismoTestmapPortlet"/> 
32            </div> 
33        </div> 
34    </div> 
35</section> 
36<section class="sectionCards" id="sectionLista"> 
37    <div class="container"> 
38        <#if entries?has_content> 
39        <#assign dlAppService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") /> 
40        <#assign mediaQueryProvider = serviceLocator.findService("com.liferay.adaptive.media.image.media.query.MediaQueryProvider") />  
41        <#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
42        <#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
43        <div class="row"> 
44            <script> 
45                var points = { 
46            	    points: [] 
47            	}; 
48            </script> 
49            <#list entries as curEntry> 
50            <#assign assetRenderer = curEntry.getAssetRenderer() /> 
51            <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 
52            <#assign baseURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, curEntry, true)?replace("https://", "") /> 
53            <#assign viewURL = baseURL[baseURL?index_of("/")..] /> 
54            <#assign journalArticle = assetRenderer.getArticle() /> 
55             
56                <#assign docXml = saxReaderUtil.read(journalArticle.getContentByLocale(themeDisplay.getLocale())) /> 
57                <#assign enlaceExterno = docXml.valueOf("//dynamic-element[@name='EnlaceExternoParaDetalle']/dynamic-content/text()") /> 
58                <#assign webOficial = docXml.valueOf("//dynamic-element[@name='WebOficial']/dynamic-content/text()") /> 
59                <#assign titulo = docXml.valueOf("//dynamic-element[@name='Titulo']/dynamic-content/text()") /> 
60                 <#assign nombreComercial = docXml.valueOf("//dynamic-element[@name='Nombre']/dynamic-content/text()") /> 
61                <#assign direccion = docXml.valueOf("//dynamic-element[@name='Direccion']/dynamic-content/text()") /> 
62                <#assign codigoPostal = docXml.valueOf("//dynamic-element[@name='CodigoPostal']/dynamic-content/text()") /> 
63                <#assign telefono = docXml.valueOf("//dynamic-element[@name='Telefono']/dynamic-content/text()") /> 
64                <#assign email = docXml.valueOf("//dynamic-element[@name='Email']/dynamic-content/text()") /> 
65                <#assign imagenpeq = docXml.valueOf("//dynamic-element[@name='Imagen']/dynamic-content/text()") /> 
66                <#assign geo = docXml.valueOf("//dynamic-element[@name='Geolocalizacion']/dynamic-content/text()") /> 
67                <#assign docUrl="" /> 
68				<#if    nombreComercial?has_content> 
69						<#assign nombre = nombreComercial /> 
70				 <#else> 
71						<#assign nombre = titulo />  
72				 </#if> 
73				<#if codigoPostal?has_content> 
74				    <#assign cp = codigoPostal /> 
75				<#else> 
76				    <#assign cp = "" /> 
77				</#if> 
78				<#assign localidad = "" /> 
79				<#assign localidadesId = 76438 /> 
80				<#attempt> 
81				    <#assign vocabularyLocalidades = assetVocabularyLocalService.fetchGroupVocabulary(groupIdTurismo?number, "Localidades") /> 
82				<#recover> 
83				    <#assign vocabularyLocalidades = assetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "Localidades") /> 
84				</#attempt> 
85				<#list vocabularyLocalidades.getCategories() as category> 
86				    <#if assetCategoryLocalService.hasAssetEntryAssetCategory(curEntry.getEntryId(),category.getCategoryId()) > 
87				        <#assign localidad = category.getTitle(themeDisplay.getLanguageId()) /> 
88				    </#if> 
89				</#list> 
90                <#assign map = { "propietario": '' , "contacto": '' } /> 
91                <#assign altImagen=nombre /> 
92                <#assign toolTipImagen=nombre />  
93                <#assign fileEntryId="" /> 
94                <#if imagenpeq?has_content>  
95                    <#assign jsonObject=imagenpeq?eval />  
96                    <#assign entryUuid=jsonObject.uuid /> 
97                    <#assign fileEntryId = jsonObject.fileEntryId/> 
98                    <#if jsonObject.alt?has_content>  
99                        <#assign altImagen=jsonObject.alt /> 
100                    </#if> 
101                    <#if jsonObject??> 
102                	    <#assign mapFields=getFieldsDocument(map,jsonObject) /> 
103                	    <#list mapFields?keys as key> 
104                	    <#if key=="propietario"> 
105                	        <#assign propietario = mapFields[key] /> 
106                			<#assign toolTipImagen="${altImagen}"+" © "+"${propietario}" /> 
107                	    </#if> 
108                	    </#list> 
109                	</#if> 
110                    <#assign entryGroupId=getterUtil.getLong(jsonObject.groupId) />  
111                    <#attempt> 
112                    <#assign dlFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>  
113                    <#assign dlFileEntry=dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) /> 
114                    <#assign alt=dlFileEntry.getDescription() /> 
115                  <#-- 
116                    <#assign mediaQuerys=mediaQueryProvider.getMediaQueries(dlAppService.getFileEntry(dlFileEntry.fileEntryId).getFileVersion().getFileEntry()) />  
117                    <#assign docUrl="" /> 
118                    <#list mediaQuerys as cur_MediaQuery>--> 
119                     
120                    <#--<#if cur_MediaQuery.getSrc()?contains("card")> 
121                        <#assign docUrl=cur_MediaQuery.getSrc() /> 
122                    </#if> 
123                     
124                    </#list> 
125                    --> 
126                     
127                    <#assign assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />  
128                    <#assign assetEntry=assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) />  
129                    <#assign assetRendererStr=assetEntry.assetRenderer />  
130                    <#assign docUrl=assetRendererStr.getURLDownload(themeDisplay) />  
131                    <#recover> 
132                    </#attempt> 
133                </#if> 
134            <#assign classNameId=curEntry.getClassNameId() />  
135            <#assign classPK=curEntry.getClassPK() /> 
136            <#if geo?has_content> 
137                <#assign jsonGeo=geo?eval />  
138                <#assign desc=""/> 
139                 
140                <#if direccion?has_content>  
141	                <#assign desc="<p>" + htmlUtil.escape(direccion) + "</p>" />  
142                </#if>	 
143                <#if cp?has_content || localidad?has_content> 
144                    <#assign desc=desc + '<p>' + htmlUtil.escape(cp) /> 
145                    <#if cp?has_content && localidad?has_content> 
146                        <#assign desc=desc + ', ' /> 
147                    </#if> 
148                    <#assign desc=desc + htmlUtil.escape(localidad) + '</p>' /> 
149                </#if> 
150                <#if telefono?? && telefono?has_content>  
151	                <#assign desc=desc + '<p>'+ '<a href="tel:'+telefono+'">Tel. ' + telefono + '</a></p>' />  
152                </#if> 
153                <#if enlaceExterno!="true" && webOficial?has_content>  
154	                <#assign desc=desc + '<p>' + '<a href="' + webOficial+'" target="_blank" class="aCard">'+'<img class="icoCardText" src="'+themeDisplay.getPathThemeImages()+'/sm/iconos/opciones/link.svg" alt="'+languageUtil.get(themeDisplay.getLocale(), 'sm.modal.icono.link')+'">'+languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.visitarweb')+'</a></p>'/>  
155                </#if>   
156 
157                <script> 
158                    var element = {}; 
159                    element.nombre = "${nombre}"; 
160                    points.points.push({  
161    			        "latitude" : "${jsonGeo.latitude}", 
162    			        "longitude"  : "${jsonGeo.longitude}", 
163    			        "url"       : "${viewURL}&classNameId=${classNameId}&classPK=${classPK}", 
164    			        "desc"		:'${desc}', 
165    			        "element"	: element 
166    			    }); 
167                </script> 
168            </#if> 
169            <div class="col-12 col-lg-6 marginCol"> 
170                <div class="card noBord"> 
171                    <@getEditIcon/> 
172                        <div class="row"> 
173                            <div class="col-12 col-sm-6"> 
174                                <div class="divRelative marcList"> 
175                                    <#if fileEntryId?has_content>  
176                                    <#attempt> 
177                                    <@adaptive_media_image["img"] class="card-img-top" fileVersion=dlAppService.getFileEntry(fileEntryId?number).getFileVersion() alt="${altImagen}" title="${toolTipImagen}" /> 
178                                    <#recover> 
179                                    </#attempt> 
180                                    </#if> 
181                                     
182                                </div> 
183                            </div> 
184                            <div class="col-12 col-sm-6"> 
185                                 <div class="card-body cb-inline"> 
186                                     <#if enlaceExterno=="true" && webOficial?has_content> 
187                                     <a onClick="mostrarModal('${webOficial}','modalListado')" class="card-title"> 
188                                        <img class="icoCardText" src="${themeDisplay.getPathThemeImages()}/sm/iconos/opciones/link.svg" alt="${languageUtil.get(themeDisplay.getLocale(), 'sm.modal.icono.link')}">${nombre} 
189                                    </a> 
190                                    <#else> 
191                                    <a href="${viewURL}&classNameId=${classNameId}&classPK=${classPK}" class="card-title"> 
192                                        ${nombre} 
193                                    </a> 
194                                    </#if> 
195                                     <#if direccion?has_content>  
196                                    	<p class="card-text">${direccion}</p> 
197                                    </#if>	 
198                                    <#if cp?has_content || localidad?has_content> 
199                                        <p class="card-text">${cp} 
200                                        <#if cp?has_content && localidad?has_content> 
201                                        ,  
202                                        </#if> 
203                                        ${localidad}</p> 
204                                    </#if>	 
205                                     <#if telefono?has_content>  
206                                    	<p class="card-text"><a href="tel:${telefono}">Tel. ${telefono}</a></p> 
207                                    </#if>	 
208                                     <#if enlaceExterno!="true" && webOficial?has_content>  
209                                    	<p class="card-text"> 
210                                            <a onClick="mostrarModal('${webOficial}','modalListado')" class="aCard"> 
211                                        		<img class="icoCardText" src="${themeDisplay.getPathThemeImages()}/sm/iconos/opciones/link.svg" alt="${languageUtil.get(themeDisplay.getLocale(), 'sm.modal.icono.link')}"> 
212                                    		${languageUtil.get(themeDisplay.getLocale(), 'sm.buscador.visitarweb')} 
213                                    		 </a>                             	     
214                                    	 </p> 
215                                     </#if>                               
216                                    <p class="card-text"> 
217                                        ${stringUtil.shorten(htmlUtil.escape(assetRenderer.getSummary()),150)}</p> 
218                                </div> 
219                            </div> 
220                        </div> 
221                </div> 
222            </div> 
223            </#list> 
224            <script> 
225                $( document ).ready(function() {	 
226                    if($("#sectionMapa").length > 0){ 
227        				var center = [2.6854751094455596,39.560026965895936]; 
228        				Liferay.Loader.require('sm-common-js-map@1.0.23/index', async function(apiMap){ 
229        					apiMap.initialize(); 
230        					await apiMap.createMapAndPoints("viewDiv", center, 8, points); 
231        				}); 
232
233                }); 
234            </script> 
235        </div> 
236         
237        <@crearModal link="" idModal="modalListado" texto="${languageUtil.get(themeDisplay.getLocale(), 'sm.popup.web.externa')}"/> 
238        <@showModal/> 
239        </#if> 
240    </div> 
241</section>