Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing: ==> cur_immaginesecondaria.getImmagine().getUrl() [in template "20096#20121#78637" at line 309, column 164] ---- 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: ${cur_immaginesecondaria.getImmagine(... [in template "20096#20121#78637" at line 309, column 162] ----
1<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")>
2<#assign argomentiVocabularyId = structureService.getVocabularyArgomentiId()>
3<#assign vocabularyTipiluogoId = structureService.getVocabularyTipiluogoId()>
4
5<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
6<#assign jac = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")>
7<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
8<#assign journalArticleId = .vars['reserved-article-id'].data>
9<#assign ja = journalArticleLocalService.getArticle(groupId, journalArticleId)>
10<#assign luogo = jac.getLuogo(ja) />
11<#assign vocabularies = luogo.getCategories() />
12
13<#assign displaydate = luogo.getDisplayDate()?string["dd/MM/yyyy"]>
14<#assign modifieddate = luogo.getModifiedDate()?string["dd/MM/yyyy"]>
15
16<div class="container" id="main-container">
17
18 <div class="row">
19 <div class="col px-lg-4">
20 <div class="cmp-breadcrumbs" role="navigation">
21 <nav class="breadcrumb-container" aria-label="breadcrumb">
22 <ol class="breadcrumb p-0" data-element="breadcrumb">
23 <li class="breadcrumb-item"><a href="/" class="" data-focus-mouse="false"><@liferay.language key="breadcrumbs.home" /></a><span class="separator">/</span></li>
24 <#if themeDisplay.getScopeGroupId() == 20119><li class="breadcrumb-item"><a href="/vivere-il-comune"><@liferay.language key="breadcrumbs.viverecomune" /></a><span class="separator">/</span></li></#if>
25 <li class="breadcrumb-item"><a href="/luoghi"><@liferay.language key="breadcrumbs.luoghi" /></a><span class="separator">/</span></li>
26 <li class="breadcrumb-item active" aria-current="page">${nome.getData()}</li>
27 </ol>
28 </nav>
29 </div>
30 </div>
31 </div>
32
33 <div class="row">
34 <div class="col-lg-8 px-lg-4 py-lg-2">
35 <h1 data-audio>${nome.getData()}</h1>
36 <#if (nome_alternativo.getData())??>
37 <h2 class="h4 py-2" data-audio>${nome_alternativo.getData()}</h2>
38 </#if>
39 <#if (abstract_.getData())??>
40 <p data-audio>
41 ${abstract_.getData()}
42 </p>
43 </#if>
44 </div>
45 <div class="col-lg-3 offset-lg-1">
46 <div class="dropdown d-inline">
47 <button aria-label="<@liferay.language key="social.condivididesc" />" class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" type="button" id="shareActions" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
48 <svg class="icon" aria-hidden="true">
49 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-share"></use>
50 </svg>
51 <small><@liferay.language key="social.condividi" /></small>
52 </button>
53 <div class="dropdown-menu shadow-lg" aria-labelledby="shareActions">
54 <div class="link-list-wrapper">
55 <ul class="link-list share-btn" role="menu">
56 <li role="none">
57 <a data-id="fb" class="list-item" href="#" role="menuitem">
58 <svg class="icon" aria-hidden="true">
59 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-facebook"></use>
60 </svg>
61 <span><@liferay.language key="social.facebook" /></span>
62 </a>
63 </li>
64 <li role="none">
65 <a data-id="tw" class="list-item" href="#" role="menuitem">
66 <svg class="icon" aria-hidden="true">
67 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-twitter"></use>
68 </svg>
69 <span><@liferay.language key="social.twitter" /></span>
70 </a>
71 </li>
72 <li role="none">
73 <a data-id="in" class="list-item" href="#" role="menuitem">
74 <svg class="icon" aria-hidden="true">
75 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-linkedin"></use>
76 </svg>
77 <span><@liferay.language key="social.linkedin" /></span>
78 </a>
79 </li>
80 <li role="none">
81 <a data-id="wa" class="list-item" href="#" role="menuitem">
82 <svg class="icon" aria-hidden="true">
83 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-whatsapp"></use>
84 </svg>
85 <span><@liferay.language key="social.whatsapp" /></span>
86 </a>
87 </li>
88 </ul>
89 </div>
90 </div>
91 </div>
92 <div class="dropdown d-inline">
93 <button aria-label="<@liferay.language key="azioni.vedidesc" />" class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" type="button" id="viewActions" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
94 <svg class="icon" aria-hidden="true">
95 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-more-items"></use>
96 </svg>
97 <small><@liferay.language key="azioni.vedi" /></small>
98 </button>
99 <div class="dropdown-menu shadow-lg" aria-labelledby="viewActions">
100 <div class="link-list-wrapper">
101 <ul class="link-list share-btn" role="menu">
102 <li role="none">
103 <a data-id="print" class="list-item" href="#" role="menuitem">
104 <svg class="icon" aria-hidden="true">
105 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-print"></use>
106 </svg>
107 <span><@liferay.language key="azioni.stampa" /></span>
108 </a>
109 </li>
110 <li role="none">
111 <a class="list-item" role="menuitem" onclick="listenElements(this, '[data-audio]')">
112 <svg class="icon" aria-hidden="true">
113 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-hearing"></use>
114 </svg>
115 <span><@liferay.language key="azioni.ascolta" /></span>
116 </a>
117 </li>
118 <li role="none">
119 <a data-id="mail" class="list-item" href="#" role="menuitem">
120 <svg class="icon" aria-hidden="true">
121 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-mail"></use>
122 </svg>
123 <span><@liferay.language key="azioni.invia" /></span>
124 </a>
125 </li>
126 </ul>
127 </div>
128 </div>
129 </div>
130
131 <#if vocabularies?? && vocabularies?has_content >
132 <#list vocabularies as vocabularyId, categories>
133 <#if categories?? && categories?has_content && vocabularyId == argomentiVocabularyId >
134 <div class="mt-4 mb-4">
135 <div class="row">
136 <span class="mb-2 small"><@liferay.language key="detail.argomenti" /></span>
137 </div>
138 <ul class="d-flex flex-wrap gap-1">
139 <#list categories as category>
140 <#assign categoryLink = "" >
141 <#if category.getDescription()?? && category.getDescription()?has_content >
142 <#assign plid = category.getDescription()?replace('<[^>]+>','','r')?replace('<[^>]+>','','r') >
143 <#if plid?? && plid?has_content >
144 <#assign layoutDisplay = layoutLocalService.getLayout(plid?number) >
145 <#if layoutDisplay?? && layoutDisplay?has_content>
146 <#assign categoryLink = layoutDisplay.getFriendlyURL(themeDisplay.getLocale()) />
147 </#if>
148 </#if>
149 </#if>
150 <li>
151 <#if categoryLink?? && categoryLink?has_content >
152 <a class="chip chip-simple" href="${categoryLink}">
153 <span class="chip-label">${category.getTitle(locale)}</span>
154 </a>
155 <#else>
156 <div class="chip chip-simple text-button" data-element="service-status">
157 <span class="chip-label">${category.getTitle(locale)}</span>
158 </div>
159 </#if>
160 </li>
161 </#list>
162 </ul>
163 </div>
164 </#if>
165 </#list>
166 </#if>
167
168 </div>
169 </div>
170</div>
171<#if (immagineprincipale.immagine.getData())?? && immagineprincipale.immagine.getData()?has_content >
172 <div class="container-fluid my-3">
173 <div class="row">
174 <figure class="figure px-0 img-full">
175 <img src="${immagineprincipale.immagine.getData()}" class="figure-img img-fluid" alt="${immagineprincipale.immagine.getAttribute("alt")}">
176 <#if (immagineprincipale.immagine_titolo.getData())??>
177 <figcaption class="figure-caption text-center pt-3">${immagineprincipale.immagine_titolo.getData()}</figcaption>
178 </#if>
179 </figure>
180 </div>
181 </div>
182</#if>
183
184<div class="container">
185 <div class="row border-top border-light row-column-border row-column-menu-left">
186 <aside class="col-lg-3">
187 <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one">
188 <nav class="navbar it-navscroll-wrapper navbar-expand-lg" aria-label="<@liferay.language key="luogo.indice" />" data-bs-navscroll>
189 <div class="navbar-custom" id="navbarNavProgress">
190 <div class="menu-wrapper">
191 <div class="link-list-wrapper">
192 <div class="accordion">
193 <div class="accordion-item">
194 <span class="accordion-header" id="accordion-title-one">
195 <button class="accordion-button pb-10 px-3" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-one" aria-expanded="true" aria-controls="collapse-one">
196 <@liferay.language key="luogo.indice" />
197 <svg class="icon icon-xs right">
198 <use href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-expand"></use>
199 </svg>
200 </button>
201 </span>
202 <div class="progress">
203 <div class="progress-bar it-navscroll-progressbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
204 </div>
205 <div id="collapse-one" class="accordion-collapse collapse show" role="region" aria-labelledby="accordion-title-one">
206 <div class="accordion-body">
207 <ul class="link-list" data-element="page-index">
208 <li class="nav-item">
209 <a class="nav-link" href="#descrizione">
210 <span class="title-medium"><@liferay.language key="luogo.descrizione" /></span>
211 </a>
212 </li>
213 <#if luogo.getLuogo()?? && luogo.getLuogo()?has_content && luogo.getLuogo()[0]?has_content && luogo.getLuogo()[0].getClassPKLong()??>
214 <li class="nav-item">
215 <a class="nav-link" href="#luoghi">
216 <span class="title-medium"><@liferay.language key="luogo.luoghi" /></span>
217 </a>
218 </li>
219 </#if>
220 <#if luogo.getUnitaOrganizzativa()?? && luogo.getUnitaOrganizzativa()?has_content && luogo.getUnitaOrganizzativa()[0]?has_content && luogo.getUnitaOrganizzativa()[0].getClassPKLong()??>
221 <li class="nav-item">
222 <a class="nav-link" href="#struttura">
223 <span class="title-medium"><@liferay.language key="luogo.struttura" /></span>
224 </a>
225 </li>
226 </#if>
227 <#if luogo.getPuntoDiContatto()?? && luogo.getPuntoDiContatto()?has_content && luogo.getPuntoDiContatto()[0]?has_content && luogo.getPuntoDiContatto()[0].getClassPKLong()??>
228 <li class="nav-item">
229 <a class="nav-link" href="#contatti">
230 <span class="title-medium"><@liferay.language key="luogo.contatti" /></span>
231 </a>
232 </li>
233 </#if>
234 <#if (servizi.getData())?? && (servizi.getData())?has_content>
235 <li class="nav-item">
236 <a class="nav-link" href="#servizi">
237 <span class="title-medium"><@liferay.language key="luogo.servizi" /></span>
238 </a>
239 </li>
240 </#if>
241 <#if (modalita_accesso.getData())??>
242 <li class="nav-item">
243 <a class="nav-link" href="#modalita_accesso">
244 <span class="title-medium"><@liferay.language key="luogo.modalita.accesso" /></span>
245 </a>
246 </li>
247 </#if>
248 <li class="nav-item">
249 <a class="nav-link" href="#indirizzo">
250 <span class="title-medium"><@liferay.language key="luogo.indirizzo" /></span>
251 </a>
252 </li>
253 <#if (orario.getData())?? && (orario.getData())?has_content>
254 <li class="nav-item">
255 <a class="nav-link" href="#orario">
256 <span class="title-medium"><@liferay.language key="luogo.orario" /></span>
257 </a>
258 </li>
259 </#if>
260 <#if (informazioni.getData())?? && (informazioni.getData())?has_content>
261 <li class="nav-item">
262 <a class="nav-link" href="#informazioni">
263 <span class="title-medium"><@liferay.language key="luogo.informazioni" /></span>
264 </a>
265 </li>
266 </#if>
267 </ul>
268 </div>
269 </div>
270 </div>
271 </div>
272 </div>
273 </div>
274 </div>
275 </nav>
276 </div>
277 </aside>
278 <section class="col-lg-9 it-page-sections-container border-light position-static">
279 <article id="descrizione" class="it-page-section anchor-offset" data-audio>
280 ${descrizione.getData()}
281
282 <#if luogo.getGeolocalizzazione()?? && luogo.getGeolocalizzazione()?has_content>
283 <div class="map-wrapper map-column mt-4 mb-4">
284 <div class="map-container" style="height: 600px;" data-leaflet='{"markers":[{"latLng":[${luogo.getGeolocalizzazione().getLat()},${luogo.getGeolocalizzazione().getLng()}]}]}'></div>
285 </div>
286 </#if>
287
288 <#if luogo.getImmaginisecondarie()?? && luogo.getImmaginisecondarie()?has_content && luogo.getImmaginisecondarie()[0].getImmagine()?has_content && luogo.getImmaginisecondarie()[0].getImmagine().getUrl()?has_content>
289 <div class="section-content">
290 <div class="container-set-carousel">
291 <div class="it-header-block">
292 <div class="it-header-block-title">
293 <h2><@liferay.language key="luogo.galleria.immagini" /></h2>
294 </div>
295 </div>
296
297 <div class="it-carousel-wrapper it-carousel-landscape-abstract-three-cols splide" data-bs-carousel-splide>
298 <div class="splide__track">
299 <ul class="splide__list">
300 <#list luogo.getImmaginisecondarie() as cur_immaginesecondaria>
301 <#if cur_immaginesecondaria.getImmagine()?? && cur_immaginesecondaria.getImmagine()?has_content >
302 <li class="splide__slide">
303 <div class="it-single-slide-wrapper h-100">
304 <div class="card-wrapper border border-light rounded shadow h-100">
305 <div class="card card-img no-after">
306 <div class="img-responsive-wrapper">
307 <div class="img-responsive">
308 <div class="img-wrapper">
309 <a href="${cur_immaginesecondaria.getImmagine().getUrl()}" target="_blank">
310 <img src="${cur_immaginesecondaria.getImmagine().getUrl()}" title="<#if (cur_immaginesecondaria.getTitolo())??>${cur_immaginesecondaria.getTitolo()}</#if>" alt="${cur_immaginesecondaria.getImmagine().getAlt()}">
311 </a>
312 </div>
313 </div>
314 </div>
315 <div class="card-body p-2">
316 <h5 class="card-title m-0">
317 <#if (cur_immaginesecondaria.getTitolo())??>
318 ${cur_immaginesecondaria.getTitolo()}
319 </#if>
320 </h5>
321 </div>
322 </div>
323 </div>
324 </div>
325 </li>
326 </#if>
327 </#list>
328 </ul>
329 </div>
330 </div>
331
332 </div>
333 </div>
334 </#if>
335
336 <#if luogo.getVideos()?? && luogo.getVideos()?has_content && luogo.getVideos()[0].getVideo()?has_content && luogo.getVideos()[0].getVideo().getUrl()?has_content >
337 <div class="section-content">
338 <div class="container-set-carousel">
339 <div class="it-header-block">
340 <div class="it-header-block-title">
341 <h2><@liferay.language key="luogo.video" /></h2>
342 </div>
343 </div>
344 <div class="it-carousel-wrapper splide it-carousel-landscape-abstract-three-cols-arrow-visible" data-splide='{"width": "100%"}'>
345 <div class="splide__track">
346 <ul class="splide__list">
347 <#list luogo.getVideos() as video>
348 <li class="splide__slide">
349 <div class="it-single-slide-wrapper" id="v-${video?index}">
350 <div class="row">
351 <video data-bs-video="data-bs-video" data-setup='{ "controls": true,"autoplay": false, "preload": "auto"}'>
352 <source src="${video.getVideo().getUrl()}" type="video/mp4">
353 <source src="${video.getVideo().getUrl()}" type="video/webm">
354 </video>
355 </div>
356 </div>
357 </li>
358 </#list>
359
360 </ul>
361 </div>
362 </div>
363 </div>
364 </div>
365 </#if>
366 </article>
367
368 <#if luogo.getLuogo()?? && luogo.getLuogo()?has_content && luogo.getLuogo()[0]?has_content && luogo.getLuogo()[0].getClassPKLong()??>
369 <article id="luoghi" class="it-page-section mb-5">
370 <h2 class="mb-3"><@liferay.language key="luogo.luoghi" /></h2>
371 <div class="row">
372
373 <#assign luoghi = luogo.getLuogo() />
374 <#list luoghi as l>
375
376 <#if l?? && l?has_content && l.getClassPKLong()?? >
377
378 <#assign luogoId = l.getClassPKLong() />
379
380 <#if luogoId?? && luogoId?has_content >
381
382 <#assign luogoJA = journalArticleLocalService.getLatestArticle(luogoId)>
383
384 <#if luogoJA.getDDMStructureKey() = structureService.getStructureLuogoKey()>
385 <#assign luogoObj = jac.getLuogo(luogoJA) />
386
387 <div class="col-12 col-sm-8 col-xl-6">
388 <div class="card-wrapper rounded shadow-sm h-auto">
389 <div class="card card-teaser card-teaser-info rounded shadow-sm p-4">
390 <div class="card-body pe-3">
391 <h5 class="card-title">
392 <a class="text-decoration-none" href="/-/${luogoObj.getUrlTitle()}">
393 ${luogoObj.getNome()}
394 </a>
395 </h5>
396 <div class="card-text">
397 ${luogoObj.getIndirizzo()}
398 </div>
399 </div>
400 <#if (luogoObj.getImmagineprincipale().immagine.getData())?? && luogoObj.getImmagineprincipale().immagine.getData()?has_content >
401 <div class="avatar size-xl">
402 <img src="${luogoObj.getImmagineprincipale().immagine.getData()}" class="figure-img img-fluid" alt="${luogoObj.getImmagineprincipale().immagine.getAttribute("alt")}">
403 </div>
404 </#if>
405 </div>
406 </div>
407 </div>
408
409 </#if>
410
411 </#if>
412 </#if>
413 </#list>
414 </div>
415 </article>
416 </#if>
417
418 <#if luogo.getUnitaOrganizzativa()?? && luogo.getUnitaOrganizzativa()?has_content && luogo.getUnitaOrganizzativa()[0]?has_content && luogo.getUnitaOrganizzativa()[0].getClassPKLong()??>
419 <article id="struttura" class="it-page-section anchor-offset mt-5">
420 <h2 class="mb-3"><@liferay.language key="luogo.struttura" /></h2>
421 <div class="row">
422
423 <#assign unitaOrganizzative = luogo.getUnitaOrganizzativa() />
424 <#list unitaOrganizzative as unitaOrganizzativa>
425
426 <#if unitaOrganizzativa?? && unitaOrganizzativa?has_content && unitaOrganizzativa.getClassPKLong()?? >
427
428 <#assign unitaOrganizzativaId = unitaOrganizzativa.getClassPKLong() />
429
430 <#if unitaOrganizzativaId?? && unitaOrganizzativaId?has_content >
431
432 <#assign unitaOrganizzativaJA = journalArticleLocalService.getLatestArticle(unitaOrganizzativaId)>
433
434 <#if unitaOrganizzativaJA.getDDMStructureKey() = structureService.getStructureUnitaOrganizzativaKey()>
435 <#assign unitaOrganizzativaObj = jac.getUnitaOrganizzativa(unitaOrganizzativaJA) />
436
437 <div class="col-12 col-sm-8 col-xl-6">
438 <div class="card-wrapper rounded shadow-sm h-auto">
439 <div class="card card-teaser card-teaser-info rounded shadow-sm p-4">
440 <div class="card-body pe-3">
441 <h5 class="card-title">
442 <a class="text-decoration-none" href="/-/${unitaOrganizzativaObj.getUrlTitle()}">
443 ${unitaOrganizzativaObj.getNome()}
444 </a>
445 </h5>
446 <div class="card-text">
447 ${unitaOrganizzativaObj.getAbstract_()}
448 </div>
449 </div>
450 <#if (unitaOrganizzativaObj.getImmagineprincipale().immagine.getData())?? && unitaOrganizzativaObj.getImmagineprincipale().immagine.getData()?has_content >
451 <div class="avatar size-xl">
452 <img src="${unitaOrganizzativaObj.getImmagineprincipale().immagine.getData()}" class="figure-img img-fluid" alt="${unitaOrganizzativaObj.getImmagineprincipale().immagine.getAttribute("alt")}">
453 </div>
454 </#if>
455 </div>
456 </div>
457 </div>
458
459 </#if>
460
461 </#if>
462 </#if>
463 </#list>
464 </div>
465 </article>
466 </#if>
467
468 <#if luogo.getPuntoDiContatto()?? && luogo.getPuntoDiContatto()?has_content && luogo.getPuntoDiContatto()[0]?has_content && luogo.getPuntoDiContatto()[0].getClassPKLong()??>
469 <article id="contatti" class="it-page-section mb-5">
470 <h2 class="mb-3"><@liferay.language key="luogo.contatti" /></h2>
471 <#assign contattiList = luogo.getPuntoDiContatto() />
472 <div class="mb-4">
473 <#list contattiList as contatto>
474 <#if contatto?? && contatto?has_content && contatto.getClassPKLong()?? >
475
476 <#assign contattoId = contatto.getClassPKLong() />
477
478 <#if contattoId?? && contattoId?has_content >
479
480 <#assign contattoJA = journalArticleLocalService.getLatestArticle(contattoId)>
481
482 <#if contattoJA.getDDMStructureKey() = structureService.getStructurePuntoDiContattoKey()>
483 <#assign contattoObj = jac.getPuntoDiContatto(contattoJA) />
484
485 <div class="card card-teaser shadow rounded mb-2">
486 <svg class="icon" aria-hidden="true">
487 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-pin"></use>
488 </svg>
489 <div class="card-body">
490 <#if contattoObj.getPersonaPubblica()?? && contattoObj.getPersonaPubblica()?has_content && contattoObj.getPersonaPubblica().getClassPKLong()?? >
491 <#assign personaPubblicaId = contattoObj.getPersonaPubblica().getClassPKLong() />
492 <#if personaPubblicaId?? && personaPubblicaId?has_content >
493
494 <#assign personaPubblicaJA = journalArticleLocalService.getLatestArticle(personaPubblicaId)>
495
496 <#if personaPubblicaJA.getDDMStructureKey() = structureService.getStructurePersonaPubblicaKey()>
497 <#assign personaPubblicaObj = jac.getPersonaPubblica(personaPubblicaJA) />
498 <h3 class="card-title h5">
499 <a href="/-/${personaPubblicaObj.getUrlTitle()}" class="text-decoration-none">
500 ${personaPubblicaObj.getNome()} ${personaPubblicaObj.getCognome()}
501 </a>
502 </h3>
503 </#if>
504 </#if>
505 </#if>
506
507 <#assign contattolink = "" >
508 <#if (contattoObj.getTipo())?? && (contattoObj.getTipo())?has_content>
509 <#assign tipoObj = contattoObj.getTipo()[0] >
510 <#list tipoObj.getValues() as tipo>
511 <#if (tipo)?? && (tipo)?has_content>
512 <#if tipo == "Telefono">
513 <#assign contattolink = "tel:" + contattoObj.getValore() >
514 </#if>
515 <#if tipo == "Email">
516 <#assign contattolink = "mailto:" + contattoObj.getValore() >
517 </#if>
518 </#if>
519 </#list>
520 </#if>
521
522 <div class="card-text">
523 <p class="fw-semibold">${contattoObj.getTipo()[0].getValues()[0]}:</p>
524 <#if (contattolink)?? && (contattolink)?has_content>
525 <a href="${contattolink}">${contattoObj.getTitololink()}</a>
526 <#else>
527 ${contattoObj.getTitololink()}
528 </#if>
529 </div>
530
531 </div>
532 </div>
533
534
535 </#if>
536 </#if>
537 </#if>
538 </#list>
539 </div>
540 </article>
541 </#if>
542
543 <#if (servizi.getData())?? && (servizi.getData())?has_content>
544 <article id="servizi" class="it-page-section mb-5">
545 <h2 class="mb-3"><@liferay.language key="luogo.servizi" /></h2>
546 <div class="link-list-wrapper richtext-wrapper mb-3">
547 ${servizi.getData()}
548 </div>
549 </article>
550 </#if>
551
552 <#if (modalita_accesso.getData())??>
553 <article id="modalita_accesso" class="it-page-section mb-5">
554 <h2 class="mb-3"><@liferay.language key="luogo.modalita.accesso" /></h2>
555 <div class="link-list-wrapper richtext-wrapper">
556 ${modalita_accesso.getData()}
557 </div>
558 </article>
559 </#if>
560
561 <article id="indirizzo" class="it-page-section mb-5">
562 <h2 class="mb-3"><@liferay.language key="luogo.indirizzo" /></h2>
563 <div class="link-list-wrapper">
564 ${indirizzo.getData()}<br/>
565 <#if luogo.getQuartiere()?? && luogo.getQuartire?has_content>
566 <#assign quartiere = luogo.getQuartiere() />
567 <#list quartiere as quart>
568 <#if quart.getValues()?? && quart.getValues()?has_content>
569 <@liferay.language key="luogo.indirizzo.quartiere" />: ${quart.getValues()[0]}
570 </#if>
571 </#list>
572 </#if>
573 </div>
574 </article>
575
576 <#if (orario.getData())?? && (orario.getData())?has_content>
577 <article id="orario" class="it-page-section mb-5">
578 <h2 class="mb-3"><@liferay.language key="luogo.orario" /></h2>
579 <div class="link-list-wrapper richtext-wrapper mb-3">
580 ${orario.getData()}
581 </div>
582 </article>
583 </#if>
584
585 <#if (informazioni.getData())?? && (informazioni.getData())?has_content >
586 <article id="informazioni" class="it-page-section mb-5">
587 <h2 class="mb-3"><@liferay.language key="luogo.informazioni" /></h2>
588 <div class="link-list-wrapper richtext-wrapper">
589 ${informazioni.getData()}
590 </div>
591 </article>
592 </#if>
593
594 <article id="ultimo-aggiornamento" class="anchor-offset mt-5">
595 <h4 class="h6"><@liferay.language key="detail.aggiornamento" />: <span class="h6 fw-normal">${modifieddate}</span></h4>
596 </article>
597 </section>
598 </div>
599</div>