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>