Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> dataActivitatF [in template "10311#10344#ACTIVITATS" at line 79, column 102]
----
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 dataActivitat = "Del " + data... [in template "10311#10344#ACTIVITATS" at line 79, column 29]
---- 1<#assign journalArticleLocalService= serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 2<#assign assetCategoryServiceUtil= serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 3<#assign assetTagServiceUtil= serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 4<#assign groupModelUtil= serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 5 6<#assign currentArticle= journalArticleLocalService.getArticle( getterUtil.getLong( groupId), .vars["reserved-article-id"].data)> 7<#assign category= assetCategoryServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong( currentArticle.getResourcePrimKey()))> 8 9<#assign tag= assetTagServiceUtil.getTags("com.liferay.journal.model.JournalArticle", getterUtil.getLong( currentArticle.getResourcePrimKey()))> 10<#assign currentGroup= groupModelUtil.getGroup( groupId)> 11 12 13<meta name="og:title" content="${htmlUtil.escape(act_titol.getData())}" /> 14<meta name="og:description" content="${htmlUtil.escape(htmlUtil.stripHtml(stringUtil.trim(act_descripcio.getData())))}" /> 15<meta name="twitter:title" content="${htmlUtil.escape(act_titol.getData())}" /> 16<meta name="twitter:description" content="${htmlUtil.escape(htmlUtil.stripHtml(stringUtil.trim(act_descripcio.getData())))}" /> 17<meta name="twitter:card" content="summary_large_image" /> 18<section> 19 <article> 20 <div class="row"> 21 <div class="col-12 col-lg-7"> 22 23 <#if category?has_content> 24 <p style="color:#006163"> 25 <#list category as categoria> 26 <#if categoria.vocabularyId== getterUtil.getLong("32255")> 27 ${categoria.name} 28 <#break> 29 </#if> 30 </#list> 31 </p> 32 </#if> 33 34 <h2 class="section_cab mb-3 h3" style="margin:0 0 0 0;color:#006163">${act_titol.getData()}</h2> 35 <#if category?has_content> 36 <div class="categories mb-3"> 37 <span> 38 <#assign primeraCat=true> 39 <#list category as categoria> 40 <#if categoria.vocabularyId== getterUtil.getLong("32620")> 41 <#if !primeraCat> 42 | 43 </#if> 44 ${categoria.name} 45 <#assign primeraCat=false> 46 </#if> 47 </#list> 48 </span> <br> 49 </div> 50 </#if> 51 <!--Dades--> 52 <div class="dades-activitat"> 53 <div class="row py-3"> 54 <div class="col-6 col-esquerra"> 55 <div class="data mt-2"> 56 <#assign dataInicial_Data= getterUtil.getString( dataInicial.getData())> 57 <#if dataInicial_Data?has_content> 58 <#assign dataInicial_DateObj= dateUtil.parseDate("yyyy-MM-dd", dataInicial_Data, locale)> 59 </#if> 60 61 <#assign dataFinal_Data= getterUtil.getString( dataFinal.getData())> 62 63 <#if dataFinal_Data?has_content> 64 <#assign dataFinal_DateObj= dateUtil.parseDate("yyyy-MM-dd", dataFinal_Data, locale)> 65 <#assign dataActivitatF = dateUtil.getDate(dataFinal_DateObj,"dd/MM/yyyy",locale)> 66 </#if> 67 68 <#if dataInicial_DateObj?? && dataInicial_DateObj?has_content> 69 <#assign dia= dateUtil.getDate(dataInicial_DateObj,"dd",locale)> 70 <#assign anyo= dateUtil.getDate(dataInicial_DateObj,"yyyy", locale)> 71 <#assign nommes= dateUtil.getDate(dataInicial_DateObj,"MMM", locale)> 72 <#assign dataActivitat = dateUtil.getDate(dataInicial_DateObj,"dd/MM/yyyy",locale)> 73 </#if> 74 <#if dataInicial_Data!= dataFinal_Data> 75 76 <#assign finsText> 77 <@liferay.language key="parc.activitat.fins" /> 78 </#assign> 79 <#assign dataActivitat = "Del " + dataActivitat + " " + finsText + " " + dataActivitatF> 80 81 </#if> 82 83 <#if dataActivitat??> 84 <p class="font-weight-bold"><i class="fa-solid fa-calendar-days icon-large"></i> ${dataActivitat}</p> 85 </#if> 86 <#if act_horari_complet?? && act_horari_complet.getData()?has_content> 87 <p><i class="fa-solid fa-clock icon-large"></i> ${act_horari_complet.getData()}</p> 88 <#elseif act_horari?? && act_horari.getData()?has_content> 89 <p><i class="fa-solid fa-clock icon-large"></i> ${act_horari.getData()}</p> 90 </#if> 91 </div> 92 93 94 <#if act_acces.getData()?has_content> 95 <#if stringUtil.equals(act_acces.getData(),"Gratuit")> 96 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.acces"/>:</span> <@liferay.language key= "parc.activitat.gratuit"/></p> 97 <#elseif stringUtil.equals(act_acces.getData(),"Pagant")> 98 <p><span class="font-weight-bold"><@liferay.language key="parc.activitat.acces"/>:</span> <@liferay.language key= "parc.activitat.pagant"/> 99 <#if act_acces_preu.getData()?has_content> 100 - ${act_acces_preu.getData()} 101 </#if> 102 </p> 103 </#if> 104 </#if> 105 106 <#if act_public?? && act_public.getData()?has_content> 107 <#if stringUtil.equals(act_public.getData(),"G")> 108 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.tipuspublic"/>:</span> <@liferay.language key= "parc.activitat.general"/></p> 109 </#if> 110 <#if stringUtil.equals(act_public.getData(),"F")> 111 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.tipuspublic"/>:</span> <@liferay.language key= "parc.activitat.familiar"/></p> 112 </#if> 113 <#if stringUtil.equals(act_public.getData(),"E")> 114 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.tipuspublic"/>:</span> <@liferay.language key= "parc.activitat.escolar"/></p> 115 </#if> 116 <#if stringUtil.equals(act_public.getData(),"N")> 117 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.tipuspublic"/>:</span> <@liferay.language key= "parc.activitat.naturalista"/></p> 118 </#if> 119 <#if stringUtil.equals(act_public.getData(),"V")> 120 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.tipuspublic"/>:</span> <@liferay.language key= "parc.activitat.viuen"/></p> 121 </#if> 122 <#if stringUtil.equals(act_public.getData(),"O")> 123 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.tipuspublic"/>:</span> <@liferay.language key= "parc.activitat.grups"/></p> 124 </#if> 125 <#if stringUtil.equals(act_public.getData(),"C")> 126 <p><span class="font-weight-bold"><@liferay.language key= "parc.activitat.tipuspublic"/>:</span> <@liferay.language key= "parc.activitat.cientifics"/></p> 127 </#if> 128 </#if> 129 </div> 130 <div class="col-6 col-dreta"> 131 <#if act_lloc1?? && act_lloc1.getData()?has_content> 132 <i class="fa-solid fa-location-dot icon-large"></i> ${act_lloc1.getData()}<br /> 133 ${act_lloc2.getData()}<br /> 134 <#if act_poblacio?? && act_poblacio.getData()?has_content> 135 <p>${act_poblacio.getData()}</p> 136 </#if> 137 </#if> 138 <#if act_trobada1.getData()?has_content> 139 <p><span class="font-weight-bold"><@liferay.language key="parc.activitat.lloc-trobada"/>:</span> ${act_trobada1.getData()} <br />${act_trobada2.getData()}</p> 140 </#if> 141 <#if act_organitzador.getData()?has_content> 142 <p><span class="font-weight-bold"><@liferay.language key="agenda.organitzadors"/>:</span> ${act_organitzador.getData()}</p> 143 </#if> 144 145 <#if act_telefon.getData()?has_content> 146 <p><i class="fa-solid fa-phone"></i> ${act_telefon.getData()}</p> 147 </#if> 148 <#assign isEmail=false> 149 <#list act_adreca.getSiblings() as email> 150 <#if email.getData()?has_content> 151 <#assign isEmail=true> 152 <#break> 153 </#if> 154 </#list> 155 <#if isEmail> 156 <p> 157 <#list act_adreca.getSiblings() as email> 158 <i class="fa-solid fa-envelope"></i><a href="mailto:${email.getData()}"> ${email.getData()}</a> 159 </#list> 160 </p> 161 </#if> 162 </div> 163 </div> 164 165 </div> 166 167 168 </div> 169 170 171 172 <div class="col-12 col-lg-5"> 173 174 175 <#assign urlImgEntry= act_img_interior.getData()> 176 <#if !urlImgEntry?has_content || urlImgEntry?length ==0> 177 <#if act_img_interior.urlExterna?? && act_img_interior.urlExterna.getData()?has_content> 178 <#assign urlImgEntry= act_img_interior.urlExterna.getData()> 179 <#if urlImgEntry?has_content && urlImgEntry?length gt 0> 180 <meta property="og:image" content="${urlImgEntry}" /> 181 <meta name="twitter:image" content="${urlImgEntry}" /> 182 </#if> 183 </#if> 184 <#else> 185 <#if urlImgEntry?has_content && urlImgEntry?length gt 0> 186 <meta property="og:image" content="https://parcs.diba.cat${urlImgEntry}" /> 187 <meta name="twitter:image" content="https://parcs.diba.cat${urlImgEntry}" /> 188 </#if> 189 </#if> 190 <#if urlImgEntry?has_content> 191 <#if act_img_interior.act_img_alt.getData()?has_content> 192 <#assign altAuxImg= act_img_interior.act_img_alt.getData()> 193 </#if> 194 <div class="imagen_float_left"> 195 <#-------------------------------------------------------------------------UNIFICACION PLANTILLAS METAINFO IMATGES INI-------------------------------------------------------------------------> 196 <#if urlImgEntry?has_content> 197 198 199 200 201 202 203 204 <#----------------------------METAINFO_IMG_GETINFO INI----------------------------> 205 <#assign DLFileEntryUtil= serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 206 207 <#assign uuIdImagen= staticUtil['com.liferay.portal.kernel.util.HttpComponentsUtil'].getParameter( urlImgEntry,"uuid",false)> 208 <#if uuIdImagen?has_content> 209 210 <#assign groupIdImagen= staticUtil['com.liferay.portal.kernel.util.HttpComponentsUtil'].getParameter( urlImgEntry,"groupId",false)> 211 212 213 214 <#assign current= DLFileEntryUtil.fetchDLFileEntryByUuidAndGroupId( uuIdImagen, getterUtil.getLong( groupIdImagen))> 215 216 </#if> 217 218 <#----------------------------METAINFO_IMG_GETINFO FIN----------------------------> 219 220 <#if current?has_content> 221 222 223 <#assign structureId="IMATGES"> 224 <#assign templateId="IMATGES"> 225 226 227 228 229 <#----------------------------METAINFO_EXIST_CONTENT INI----------------------------> 230 231 <#assign journalArticleLocalService= serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 232 233 <#assign companyId= current.getCompanyId()> 234 <#assign groupId= (current.getScopeGroupId())!scopeGroupId> 235 <#assign title= current.getDescription()> 236 <#assign end=-1> 237 <#assign start=-1> 238 <#assign keywords=""> 239 <#assign type="general"> 240 <#assign isEmpty=true> 241 <#assign articles=""> 242 <#assign currentArticle=""> 243 244 <#assign folders=[]> 245 <#assign andOperator=true> 246 <#assign articles= journalArticleLocalService.search(getterUtil.getLong(companyId), getterUtil.getLong(groupId), folders, 0, null, null, title, null, type, structureId, templateId, null, null, 0, null, andOperator, -1, -1, null)> 247 248 <#list articles as article> 249 <#if stringUtil.equalsIgnoreCase(article.getTitle(),title)> 250 <#if isEmpty> 251 <#assign isEmpty=false> 252 <#assign currentArticle= article> 253 254 <#else> <#if currentArticle.getVersion()< article.getVersion()> 255 <#assign currentArticle= article> 256 </#if> 257 </#if> 258 </#if> 259 </#list> 260 <#----------------------------METAINFO_EXIST_CONTENT FIN-------------------------- --> 261 <#if !currentArticle?has_content > 262 <#assign altText=""> 263 <#if altAuxImg?has_content> 264 <#assign altText= altAuxImg> 265 </#if> 266 <img src="${urlImgEntry}" alt="${altText}" title="" /> 267 <#if altAuxImg?has_content> 268 <p style="font-size: 0.7rem">${altAuxImg}</p> 269 </#if> 270 271 <#else><#----------------------------IMATGES FIN-------------------------- --> 272 273 <#assign document= saxReaderUtil.read( currentArticle.getContent())> 274 275 <#assign img_autor= document.selectSingleNode("/root/dynamic-element[@name='img_autor']/dynamic-content[@language-id=' locale']")> 276 <#assign img_titol= document.selectSingleNode("/root/dynamic-element[@name='img_titol']/dynamic-content[@language-id=' locale']")> 277 <#assign img_alt= document.selectSingleNode("/root/dynamic-element[@name='img_alt']/dynamic-content[@language-id=' locale']")> 278 <#assign img_imatge= document.selectSingleNode("/root/dynamic-element[@name='img_imatge']/dynamic-content")> 279 280 281 <img src="${img_imatge.getText()}" class="image_border" alt="${img_alt.getText()}" title="${img_alt.getText()}" > 282 <p>${img_titol.getText()}<br />${img_autor.getText()}</p> 283 284 <#----------------------------IMATGES FIN-------------------------- --> 285 </#if> 286 287 <#else> <#assign altText=""> 288 <#if altAuxImg?has_content> 289 <#assign altText= altAuxImg> 290 </#if> 291 <img src="${urlImgEntry}" alt="${altText}" title="" /> 292 <#if altAuxImg?has_content> 293 <p style="font-size: 0.7rem">${altAuxImg}</p> 294 </#if> 295 </#if> 296 </#if> 297 <#-------------------------------------------------------------------------UNIFICACION PLANTILLAS METAINFO IMATGES INI-------------------------------------------------------------------------> 298 299 </div> 300 </#if> 301 </div> 302 <div class="col-12 col-lg-7"> 303 <#if act_descripcio?? && act_descripcio.getData()?has_content> 304 <span class="font-weight-bold">Descripció: </span> 305 <div class="mt-1">${act_descripcio.getData()}</div> 306 </#if> 307 <#if act_requisit?? && act_requisit.getData()?has_content> 308 <span class="font-weight-bold"><@liferay.language key="parc.activitat.requisits"/>:</span> 309 <div class="mt-1">${act_requisit.getData()}</div> 310 </#if> 311 <#if act_url?? && act_url.getData()?has_content> 312 <span class="font-weight-bold"><@liferay.language key="parc.activitat.mesurl"/>:</span> <a href="${act_url.getData()}" target="_blank">${act_url.getData()}</a> 313 </#if> 314 <br /> 315 </div> 316 <div class="col-12 col-lg-5"> 317 <#if (act_latitud?? && act_latitud.getData()?has_content) && (act_longitud?? && act_longitud.getData()?has_content)> 318 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA==" crossorigin="anonymous"> 319 <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js" integrity="sha512-nMMmRyTVoLYqjP9hrbed9S+FzjZHW5gY1TWCHA5ckwXZBadntCNs8kEqAWdrb9O7rxbCaA4lKTIWjDXZxflOcA==" crossorigin="anonymous"></script> 320 <div id="map_canvas${.vars["reserved-article-id"].data}" class="embed-responsive embed-responsive-16by9" style="clear:both;margin:10px 0"></div> 321 <script> 322 function initMap${.vars["reserved-article-id"].data}(){ 323 <#-- Llista de cartografies. --> 324 var googleStreets = L.tileLayer("https://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}", { 325 maxZoom: 20, 326 subdomains: ["mt0", "mt1", "mt2", "mt3"], 327 attribution: "© Diputació de Barcelona" 328 }); 329 <#-- Punt central del mapa. --> 330 var latlng${.vars["reserved-article-id"].data} = L.latLng(${act_latitud.getData()},${act_longitud.getData()}); 331 var map_canvas${.vars["reserved-article-id"].data} = L.map("map_canvas${.vars["reserved-article-id"].data}", {center: latlng${.vars["reserved-article-id"].data}, zoom: 15, layers: [googleStreets]}); 332 333 var titol = "${htmlUtil.escapeJS(act_titol.getData())}" + " (${act_latitud.getData()}, ${act_longitud.getData()})"; 334 <#assign indicacions= languageUtil.get( locale,"bibliobus.librarydetail.howtogetto.label")> 335 <#assign marcador="<a href=https://www.google.es/maps/place/"+ act_latitud.getData()+","+ act_longitud.getData()+" target=_blank >"+ indicacions+"</a>"> 336 337 L.marker([${act_latitud.getData()},${act_longitud.getData()}],{title: titol}).addTo(map_canvas${.vars["reserved-article-id"].data}).bindPopup("${htmlUtil.escapeJS(marcador)}"); 338 } 339 if (window.Liferay) { 340 Liferay.after("allPortletsReady", setTimeout(initMap${.vars["reserved-article-id"].data}, 300)); 341 Liferay.after("endNavigate", setTimeout(initMap${.vars["reserved-article-id"].data}, 300)); 342 } else { 343 document.addEventListener("DOMContentLoaded", setTimeout(initMap${.vars["reserved-article-id"].data}, 300)); 344 } 345 346 </script> 347 </#if> 348 </div> 349 </div> 350</div> 351 352 <div class="icos_noti"> 353 354 <div class="ico_redes" style="display:flex;justify-content: end"> 355 <span>compartir</span> 356 <#-- AddToAny Button BEGIN --> 357 <div class="a2a_kit a2a_default_style data-a2a-title="${htmlUtil.escape(.vars["reserved-article-title"].data)}"> 358 <a class="a2a_button_google_gmail"></a> 359 360 <a class="a2a_button_facebook"></a> 361 <a class="a2a_button_pinterest"></a> 362 <a class="a2a_dd" href="https://www.addtoany.com/share"></a> 363 </div> 364 </div> 365 <script> 366 var a2a_config = a2a_config || {}; 367 a2a_config.locale = "es"; 368 </script> 369 <script async src="https://static.addtoany.com/menu/page.js"></script> 370 <script data-senna-track="temporary"> 371 Liferay.on("beforeNavigate", function(event) { location.href=event.path; }); 372 </script> 373 <#-- AddToAny Button END --> 374 375 376 </div> 377 <#if tag?has_content> 378 <div class="bloque_info_dch"> 379 </div> 380 </#if> 381 <#assign hasRecursos=false> 382 <#if act_recurso.getSiblings()?has_content> 383 <#list act_recurso.getSiblings() as item> 384 <#if (item?? && item.getData()?has_content) || 385 (item.act_recurso_url?? && item.act_recurso_url.getData()?has_content) || 386 (item.act_recurso_email?? && item.act_recurso_email.getData()?has_content) || 387 (item.act_recurso_documento?? && (item.act_recurso_documento.getData()?has_content || 388 item.act_recurso_documento.urlExterna3?? && item.act_recurso_documento.urlExterna3.getData()?has_content))> 389 <#assign hasRecursos=true> 390 <#break> 391 </#if> 392 </#list> 393 </#if> 394 <#if hasRecursos> 395 <div class="recursos"> 396 <span class="font-weight-bold">Recursos.</span> 397 <div class="mt-2"> 398 <#list act_recurso.getSiblings() as item> 399 <#assign img_recurso=""> 400 <#if item.getData()?has_content> 401 <#assign img_recurso= item.getData()> 402 <#elseif item.urlExterna4?? && item.urlExterna4.getData()?has_content> 403 <#assign img_recurso= item.urlExterna4.getData()> 404 </#if> 405 <#assign img_recurso_alt= ""> 406 <#if item.act_recurso_alt?? && item.act_recurso_alt.getData()?has_content> 407 <#assign img_recurso_alt= item.act_recurso_alt.getData()> 408 </#if> 409 <#assign tipo_recurso= "Mateixa_finestra"> 410 <#if item.act_recurso_tipo?? && item.act_recurso_tipo.getData()?has_content> 411 <#assign tipo_recurso= item.act_recurso_tipo.getData()> 412 </#if> 413 <#if item.act_recurso_url?? && item.act_recurso_url.getData()?has_content> 414 <p> 415 <#if img_recurso!=""> 416 <img class="mr-1" src="${img_recurso}" alt="${img_recurso_alt}" /> 417 <#else> 418 <i class="icon-file-text icon-large"></i> 419 </#if> 420 <a href="${item.act_recurso_url.getData()}" title="${img_recurso_alt}" target="${tipo_recurso}"> 421 ${img_recurso_alt} 422 </a> 423 </p> 424 <#elseif item.act_recurso_email?? && item.act_recurso_email.getData()?has_content> 425 <p> 426 427 <#if img_recurso!=""> 428 <img class="mr-1" src="${img_recurso}" alt="${img_recurso_alt}" /> 429 <#else> 430 <i class="icon-file-text icon-large"></i> 431 </#if> 432 <a href="${item.act_recurso_email.getData()}" title="${img_recurso_alt}" target="${tipo_recurso}"> 433 ${img_recurso_alt} 434 </a> 435 </p> 436 <#elseif (item.act_recurso_documento?? && item.act_recurso_documento.getData()?has_content) || (item.act_recurso_documento?? && item.act_recurso_documento.urlExterna3?? && item.act_recurso_documento.urlExterna3.getData()?has_content)> 437 <#if item.act_recurso_documento?? && item.act_recurso_documento.getData()?has_content> 438 <p> 439 <img class="mr-1" src="${img_recurso}" alt=${img_recurso_alt} /> 440 <a href="${item.act_recurso_documento.getData()}" title="${img_recurso_alt}" target="${tipo_recurso}"> 441 ${img_recurso_alt} 442 </a> 443 </p> 444 <#elseif item.act_recurso_documento.urlExterna3?? && item.act_recurso_documento.urlExterna3.getData()?has_content> 445 <p> 446 <img class="mr-1" src="${img_recurso}" alt=${img_recurso_alt} /> 447 <a href="${item.act_recurso_documento.urlExterna3.getData()}" title="${img_recurso_alt}" target="${tipo_recurso}"> 448 ${img_recurso_alt} 449 </a> 450 </p> 451 </#if> 452 </#if> 453 </#list> 454 </div> 455 </div> 456 </#if> 457 </article> 458</section> 