Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> SediPrincipali[0] [in template "20095#20121#34627" at line 340, column 20]
----
Tip: It's the final [] step 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: SedePrincipale = SediPrincipali[0] [in template "20095#20121#34627" at line 340, column 5]
----
1<#assign
2 FriendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService")
3 ClassNameService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameService")
4 JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
5 LayoutLocalService=serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
6 journalArticleId=.vars['reserved-article-id'].data
7 journalArticleResourceLocalServiceUtil=staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]
8 assetCategoryLocalServiceUtil=staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]
9 articleResourcePK=journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)
10 categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK)
11 AssetVocabularyLocalServiceUtil=staticUtil["com.liferay.asset.kernel.service.AssetVocabularyLocalServiceUtil"]
12/>
13<#setting locale=localeUtil.getDefault() />
14
15<#-- gestione dei breadcrumbs -->
16<#assign
17 paginaPadre=LayoutLocalService.getLayout(groupId, PaginaPadre.getData()?eval.privateLayout, PaginaPadre.getData()?eval.layoutId?number)
18 ancestors=paginaPadre.getAncestors()
19 sorted_ancestors = []
20/>
21<#list ancestors as parente>
22 <#assign
23 sorted_ancestors +=
24 [{
25 "name": parente.name,
26 "ancestors": parente.getAncestors()?size,
27 "data": parente
28 }]
29 />
30</#list>
31
32<div class="container finmatica-breadcrumb-container mb-4">
33 <div class="row justify-content-center">
34 <div class="col-12 col-lg-10">
35 <div class="cmp-breadcrumbs" role="navigation">
36 <nav class="breadcrumb-container" aria-label="breadcrumb">
37 <ol class="breadcrumb p-0" data-element="breadcrumb">
38 <li class="breadcrumb-item"><a
39 href="${themeDisplay.getThemeSetting('Home URL')}">
40 <span class="breadcrumb-text-truncate">Home</span>
41 </a>
42 <span class="separator">/</span>
43 </li>
44 <#list sorted_ancestors?sort_by("ancestors") as ancestor>
45 <li class="breadcrumb-item"><a
46 href="/portal${ancestor.data.getFriendlyURL()}">
47 <span class="breadcrumb-text-truncate">
48 ${ancestor.data.getName()}
49 </span>
50 </a>
51 <span class="separator">/</span>
52 </li>
53 </#list>
54 <li class="breadcrumb-item"><a
55 href="/portal${paginaPadre.getFriendlyURL()}">
56 <span class="breadcrumb-text-truncate">
57 ${paginaPadre.getName()}
58 </span>
59 </a>
60 <span class="separator">/</span>
61 </li>
62 <li class="breadcrumb-item">${Titolo.getData()}</li>
63 </ol>
64 </nav>
65 </div>
66 </div>
67 </div>
68</div>
69
70
71<#assign
72 tipoUO=""
73 argomenti=[]
74/>
75
76<#list categoryList as categoryEntry>
77
78 <#assign
79 vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId())
80 className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory")
81 friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId)
82 friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId)
83 cat_name = categoryEntry.name
84 cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true),
85 cat_url = friendlyUrlList[0].urlTitle
86 />
87 <#if
88 vocabulary.getDescription()?lower_case=="tipo unita organizzativa"
89 || vocabulary.name=="tassonomie tipi di unità organizzativa"
90 >
91 <#assign tipoUO = cat_localized_name />
92 <#elseif
93 vocabulary.getDescription()?lower_case=="argomenti"
94 || vocabulary.name?lower_case=="tassonomia argomento"
95 >
96 <#assign
97 argomenti +=
98 [{
99 "name": cat_localized_name,
100 "url": cat_url
101 }]
102 />
103 </#if>
104</#list>
105
106
107<#-- GET ASSESSORE -->
108<#assign
109 assessore_Data = jsonFactoryUtil.createJSONObject(Assessore.getData())
110 has_assessore=assessore_Data?eval?has_content
111 assessore = []
112/>
113
114<#if has_assessore>
115 <#assign
116 assessori = JournalArticleLocalService.getArticlesByResourcePrimKey(assessore_Data.classPK?number)
117 assessore = assessori[0]
118 document = saxReaderUtil.read(assessore.getContent())
119 rootElement=document.getRootElement()
120 nome_assessore = ""
121 cognome_assessore = ""
122 immagine_assessore = ""
123 incarichi_assessore = []
124 has_immagine_assessore = false
125 urlPagina_assessore = "/portal/web/guest/-/${assessore.getUrlTitle()}"
126 />
127
128 <#if rootElement.elements()?has_content>
129 <#list rootElement.elements() as dynamicElement>
130 <#if dynamicElement.attributeValue("field-reference")=="Nome">
131 <#assign nome_assessore=dynamicElement.element("dynamic-content").getText() />
132 <#elseif dynamicElement.attributeValue("field-reference") == "Cognome">
133 <#assign cognome_assessore = dynamicElement.element("dynamic-content").getText() />
134 <#elseif dynamicElement.attributeValue("field-reference")=="Immagine">
135 <#assign immagine_assessore=dynamicElement.element("dynamic-content").getText() />
136 <#if immagine_assessore?has_content>
137 <#assign immagine_assessore=jsonFactoryUtil.createJSONObject(immagine_assessore) />
138 <#if immagine_assessore?has_content>
139 <#assign
140 immagine_assessore=immagine_assessore?eval
141 has_immagine_assessore = true
142 />
143 </#if>
144 </#if>
145 <#elseif dynamicElement.attributeValue("field-reference")=="Incarichi">
146 <#assign
147 cur_incarichi_responsabile=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData())
148 cur_relatedIncarichi=JournalArticleLocalService.getArticlesByResourcePrimKey(cur_incarichi_responsabile.classPK?number)
149 cur_relatedIncarico=cur_relatedIncarichi[0]
150 document=saxReaderUtil.read(cur_relatedIncarico.getContent())
151 rootElement=document.getRootElement()
152 />
153 <#list rootElement.elements() as dynamicElement>
154 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
155 <#assign incarichi_assessore += [ dynamicElement.element("dynamic-content").getText() ] />
156 </#if>
157 </#list>
158 </#if>
159 </#list>
160 </#if>
161</#if>
162
163
164<#-- SEZIONE GET DATI RESPONSABILE -->
165<#assign responsabili=[] />
166<#if Responsabile.getData()?has_content && Responsabile.getSiblings()?has_content>
167 <#list Responsabile.getSiblings() as cur_responsabile>
168 <#assign
169 cur_responsabile_data=jsonFactoryUtil.createJSONObject(cur_responsabile.getData())
170 cur_responsabile_content=JournalArticleLocalService.getArticlesByResourcePrimKey(cur_responsabile_data.classPK?number)
171 cur_responsabile_content=cur_responsabile_content[0]
172 document=saxReaderUtil.read(cur_responsabile_content.getContent())
173 rootElement=document.getRootElement()
174 cur_nome_reponsabile=""
175 cur_cognome_responsabile=""
176 cur_immagine_responsabile=""
177 cur_urlImmagine_responsabile=""
178 cur_incarichi_responsabile=""
179 cur_incarichi_del__responsabile=""
180 />
181 <#if rootElement.elements()?has_content>
182 <#list rootElement.elements() as dynamicElement>
183 <#if dynamicElement.attributeValue("field-reference")=="Nome">
184 <#assign cur_nome_responsabile=dynamicElement.element("dynamic-content").getText() />
185 <#elseif dynamicElement.attributeValue("field-reference")=="Cognome">
186 <#assign cur_cognome_responsabile=dynamicElement.element("dynamic-content").getText() />
187 <#elseif dynamicElement.attributeValue("field-reference")=="Immagine">
188 <#assign cur_immagine_responsabile=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) />
189 <#if cur_immagine_responsabile.uuid?has_content>
190 <#assign cur_urlImmagine_responsabile="/portal/c/document_library/get_file?uuid=" + cur_immagine_responsabile.uuid + "&groupId=" + cur_immagine_responsabile.groupId />
191 </#if>
192 <#elseif dynamicElement.attributeValue("field-reference")=="Incarichi">
193 <#assign
194 cur_incarichi_responsabile=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData())
195 cur_relatedIncarichi=JournalArticleLocalService.getArticlesByResourcePrimKey(cur_incarichi_responsabile.classPK?number)
196 cur_relatedIncarico=cur_relatedIncarichi[0]
197 document=saxReaderUtil.read(cur_relatedIncarico.getContent())
198 rootElement=document.getRootElement()
199 />
200 <#list rootElement.elements() as dynamicElement>
201 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
202 <#assign cur_incarichi_del_responsabile=dynamicElement.element("dynamic-content").getText() />
203 </#if>
204 </#list>
205 </#if>
206 </#list>
207 </#if>
208 <#assign
209 responsabili +=
210 [{
211 "nome" : cur_nome_responsabile,
212 "cognome" : cur_cognome_responsabile,
213 "immagine" : cur_immagine_responsabile,
214 "urlImmagine" : cur_urlImmagine_responsabile,
215 "incarichi" : cur_incarichi_del_responsabile,
216 "urlPagina" : "/portal/-/${cur_responsabile_content.getUrlTitle()}"
217 }]
218 />
219 </#list>
220</#if>
221<#-- SEZIONE GET DATI PERSONALE UO -->
222<#assign persone_della_struttura=[] />
223<#list Persone.getSiblings() as cur_persona>
224 <#assign
225 cur_persona_data=jsonFactoryUtil.createJSONObject(cur_persona.getData())
226 relatedPersone=JournalArticleLocalService.getArticlesByResourcePrimKey(cur_persona_data.classPK?number)
227 relatedPersona=relatedPersone[0]
228 document=saxReaderUtil.read(relatedPersona.getContent())
229 rootElement=document.getRootElement()
230 nome_persona=""
231 cognome_persona=""
232 immagine_persona=""
233 urlImmaginePersona=""
234 incarico_persona="" />
235 <#list rootElement.elements() as dynamicElement>
236 <#if dynamicElement.attributeValue("field-reference")=="Nome">
237 <#assign nome_persona=dynamicElement.element("dynamic-content").getText() />
238 <#elseif dynamicElement.attributeValue("field-reference")=="Cognome">
239 <#assign cognome_persona=dynamicElement.element("dynamic-content").getText() />
240 <#elseif dynamicElement.attributeValue("field-reference")=="Immagine">
241 <#assign immagine_persona=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) />
242 <#if immagine_persona.uuid?has_content>
243 <#assign urlImmaginePersona="/portal/c/document_library/get_file?uuid=" + immagine_persona.uuid + "&groupId=" + immagine_persona.groupId />
244 </#if>
245 <#elseif dynamicElement.attributeValue("field-reference")=="Incarichi">
246 <#assign incarichi_persona=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) />
247 <#if incarichi_persona?eval?has_content>
248 <#assign
249 relatedIncarichiPersona=JournalArticleLocalService.getArticlesByResourcePrimKey(incarichi_persona.classPK?number)
250 relatedIncaricoPersona=relatedIncarichiPersona[0]
251 document=saxReaderUtil.read(relatedIncaricoPersona.getContent())
252 rootElement=document.getRootElement()
253 />
254 <#list rootElement.elements() as dynamicElement>
255 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
256 <#assign incarico_persona=dynamicElement.element("dynamic-content").getText() />
257 </#if>
258 </#list>
259 </#if>
260 </#if>
261 </#list>
262 <#assign
263 persone_della_struttura +=
264 [{
265 "nome" : nome_persona,
266 "cognome" : cognome_persona,
267 "urlImmagine" : urlImmaginePersona,
268 "immagine" : immagine_persona,
269 "incarico" : incarico_persona,
270 "urlPagina" : "/portal/-/${relatedPersona.getUrlTitle()}"
271 }]
272 />
273</#list>
274<#-- GET SERVIZI COLLEGATI -->
275<#assign servizi_collegati=[] />
276<#if ServiziOfferti.getData()?has_content>
277 <#list ServiziOfferti.getSiblings() as cur_servizio>
278 <#assign
279 cur_servizio_data=jsonFactoryUtil.createJSONObject(cur_servizio.getData())
280 categorie_cur_servizio=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", cur_servizio_data.classPK?number)
281 relatedServizi=JournalArticleLocalService.getArticlesByResourcePrimKey(cur_servizio_data.classPK?number)
282 relatedServizio=relatedServizi[0]
283 document=saxReaderUtil.read(relatedServizio.getContent())
284 rootElement=document.getRootElement()
285 nome_servizio=""
286 descrizione_servizio=""
287 categorie_servizio=[]
288 />
289 <#list rootElement.elements() as dynamicElement>
290 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
291 <#assign nome_servizio=dynamicElement.element("dynamic-content").getText() />
292 <#elseif dynamicElement.attributeValue("field-reference")=="DescrizioneBreve">
293 <#assign descrizione_servizio=dynamicElement.element("dynamic-content").getText() />
294 </#if>
295 </#list>
296 <#list categorie_cur_servizio as cur_categoria_cur_servizio>
297
298 <#assign
299 FriendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService")
300 ClassNameService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameService")
301 <#-- SPOSTARE I DUE ELEMENTI SOPRA AD INIZIO FILE -->
302
303 cur_vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(cur_categoria_cur_servizio.getVocabularyId())
304 className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory")
305 friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), cur_categoria_cur_servizio.categoryId)
306 friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId)
307 cat_name = cur_categoria_cur_servizio.name
308 cat_localized_name = cur_categoria_cur_servizio.getTitle(themeDisplay.getLocale(), true),
309 cat_url = friendlyUrlList[0].urlTitle
310 />
311 <#if
312 cur_vocabulary.getTitle()?lower_case=="tassonomia categoria servizi"
313 || cur_vocabulary.getName()?lower_case=="tassonomia categoria servizi"
314 || cur_vocabulary.getDescription()?lower_case=="categorie servizi"
315 >
316 <#assign
317 categorie_servizio +=
318 [{
319 "name": cat_localized_name,
320 "url": cat_url
321 }]
322 />
323 </#if>
324 </#list>
325 <#assign
326 servizi_collegati +=
327 [{
328 "nome" : nome_servizio,
329 "descrizione" : descrizione_servizio,
330 "categorie" : categorie_servizio,
331 "urlPagina" : "/portal/web/guest/${relatedServizio.getUrlTitle()}"
332 }]
333 />
334 </#list>
335</#if>
336<#-- SEZIONE GET DATI SEDE PRINCIPALE -->
337<#assign
338 sede_principale_data=jsonFactoryUtil.createJSONObject(SedePrincipale.getData())
339 SediPrincipali=JournalArticleLocalService.getArticlesByResourcePrimKey(sede_principale_data.classPK?number)
340 SedePrincipale=SediPrincipali[0]
341 document=saxReaderUtil.read(SedePrincipale.getContent())
342 rootElement=document.getRootElement()
343 nome_sede_principale=""
344 indirizzo_sede_principale=""
345 orari_sede_principale=""
346 immagine_sede_principale=""
347 urlImmagine_sede_principale=""
348/>
349<#list rootElement.elements() as dynamicElement>
350 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
351 <#assign nome_sede_principale=dynamicElement.element("dynamic-content").getText() />
352 <#elseif dynamicElement.attributeValue("field-reference")=="Indirizzo">
353 <#assign indirizzo_sede_principale=dynamicElement.element("dynamic-content").getText() />
354 <#elseif dynamicElement.attributeValue("field-reference")=="OrarioPerIlPubblico">
355 <#assign orari_sede_principale=dynamicElement.element("dynamic-content").getText() />
356 <#elseif dynamicElement.attributeValue("field-reference")=="Immagine">
357 <#assign
358 immagine_sede_principale=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData())
359 urlImmagine_sede_principale="/portal/c/document_library/get_file?uuid="
360 + immagine_sede_principale.uuid
361 + "&groupId="
362 + immagine_sede_principale.groupId
363 />
364 </#if>
365</#list>
366<#-- SEZIONE GET ALTRE SEDI -->
367<#assign altre_sedi=[] />
368<#if AltreSedi.getData()?has_content>
369<#-- try -->
370<#attempt>
371 <#assign AltreSedi = AltreSedi.getSiblings() />
372<#-- catch -->
373<#recover>
374 <#assign AltreSedi = [] />
375</#attempt>
376 <#list AltreSedi as cur_sede>
377 <#assign
378 cur_sede_data=jsonFactoryUtil.createJSONObject(cur_sede.getData())
379 relatedSedi=JournalArticleLocalService.getArticlesByResourcePrimKey(cur_sede_data.classPK?number)
380 relatedSede=relatedSedi[0]
381 document=saxReaderUtil.read(relatedSede.getContent())
382 rootElement=document.getRootElement()
383 nome_cur_sede=""
384 indirizzo_cur_sede=""
385 orari_cur_sede=""
386 immagine_cur_sede=""
387 urlImmagine_cur_sede=""
388 />
389 <#list rootElement.elements() as dynamicElement>
390 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
391 <#assign nome_cur_sede=dynamicElement.element("dynamic-content").getText() />
392 <#elseif dynamicElement.attributeValue("field-reference")=="Indirizzo">
393 <#assign indirizzo_cur_sede=dynamicElement.element("dynamic-content").getText() />
394 <#elseif dynamicElement.attributeValue("field-reference")=="OrarioPerIlPubblico">
395 <#assign orari_cur_sede=dynamicElement.element("dynamic-content").getText() />
396 <#elseif dynamicElement.attributeValue("field-reference")=="Immagine">
397 <#assign
398 immagine_cur_sede=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData())
399 urlImmagine_cur_sede="/portal/c/document_library/get_file?uuid="
400 + immagine_cur_sede.uuid
401 + "&groupId="
402 + immagine_cur_sede.groupId
403 />
404 </#if>
405 </#list>
406 <#assign
407 altre_sedi +=
408 [{
409 "nome" : nome_cur_sede,
410 "indirizzo" : indirizzo_cur_sede,
411 "orari" : orari_cur_sede,
412 "immagine" : immagine_cur_sede,
413 "urlImmagine" : urlImmagine_cur_sede
414 }]
415 />
416 </#list>
417</#if>
418<#-- GET CONTATTI -->
419<#assign
420 has_contatti=PuntiDiContatto.getData()?has_content
421 contatti_UO=[]
422/>
423<#if has_contatti>
424 <#list PuntiDiContatto.getSiblings() as cur_PuntiDiContatto>
425 <#assign
426 nome_wallet=""
427 contatti_wallet=[]
428 contatti_data=jsonFactoryUtil.createJSONObject(cur_PuntiDiContatto.getData())
429 relatedArticles=JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_data.classPK?number)
430 relatedArticle=relatedArticles[0]
431 document=saxReaderUtil.read(relatedArticle.getContent())
432 rootElement=document.getRootElement()
433 />
434 <#list rootElement.elements() as dynamicElement>
435 <#-- AGGIUNGO IL CONTATTO SOLO SE VALORIZZATO E DEFINISCO IL NOME DEL WALLET -->
436 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
437 <#assign nome_wallet=dynamicElement.element("dynamic-content").getText() />
438 <#elseif dynamicElement.element("dynamic-content").getText()?has_content>
439 <#assign
440 tipo_contatto=(dynamicElement.attributeValue("field-reference")=="URL" )?string("Sito Web", dynamicElement.attributeValue("field-reference"))
441 contatti_wallet +=
442 [{
443 "tipo" : tipo_contatto,
444 "valore" : dynamicElement.element("dynamic-content").getText()
445 }]
446 />
447 </#if>
448 </#list>
449 <#assign
450 contatti_UO +=
451 [{
452 "titolo" : nome_wallet,
453 "contatti" : contatti_wallet
454 }]
455 />
456 </#list>
457</#if>
458<#-- GET ALLEGATI -->
459<#assign
460 has_allegati=Allegati.getSiblings()?has_content
461 allegati=[]
462/>
463<#if has_allegati>
464<#list Allegati.getSiblings() as cur_allegato>
465 <#if cur_allegato.File.getData()?? && cur_allegato.File.getData()?has_content>
466 <#assign
467 allegato_data=jsonFactoryUtil.createJSONObject(cur_allegato.File.data)
468 url_allegato=cur_allegato.File.getData()
469 nome_allegato=cur_allegato.Etichetta.getData()?has_content?string("${cur_allegato.Etichetta.getData()}", "${allegato_data.getString('title')}" )
470 allegati +=
471 [{
472 "nome": nome_allegato,
473 "url": url_allegato
474 }]
475 />
476 </#if>
477</#list>
478</#if>
479<#-- SEZIONE UO GENITORE -->
480<#if UnitaOrganizzativaGenitore.getData()?has_content>
481 <#list UnitaOrganizzativaGenitore.getSiblings() as cur_UnitaOrganizzativaGenitore>
482 <#assign
483 cur_uo_padre_data=jsonFactoryUtil.createJSONObject(cur_UnitaOrganizzativaGenitore.getData())
484 relatedUOGenitori=JournalArticleLocalService.getArticlesByResourcePrimKey(cur_uo_padre_data.classPK?number)
485 relatedUOGenitore=relatedUOGenitori[0]
486 document=saxReaderUtil.read(relatedUOGenitore.getContent())
487 rootElement=document.getRootElement()
488 url_pagina_UO_padre="/portal/-/${relatedUOGenitore.getUrlTitle()}"
489 nome_UO_padre=""
490 descrizione_UO_padre=""
491 immagine_UO_padre=""
492 urlImmagine_UO_padre=""
493 contatti_UO_padre=[]
494 />
495 <#if rootElement.elements()?has_content>
496 <#list rootElement.elements() as dynamicElement>
497 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
498 <#assign nome_UO_padre=dynamicElement.element("dynamic-content").getText() />
499 <#elseif dynamicElement.attributeValue("field-reference")=="DescrizioneBreve">
500 <#assign descrizione_UO_padre=dynamicElement.element("dynamic-content").getText() />
501 <#elseif dynamicElement.attributeValue("field-reference")=="Immagine">
502 <#assign immagine_UO_padre=dynamicElement.element("dynamic-content").getText() />
503 <#if immagine_UO_padre?has_content>
504 <#assign immagine_UO_padre=jsonFactoryUtil.createJSONObject(immagine_UO_padre) />
505 <#if immagine_UO_padre?has_content>
506 <#assign
507 immagine_UO_padre=immagine_UO_padre?eval
508 has_immagine_UO_padre = true
509 urlImmagine_UO_padre = immagine_UO_padre.url
510 />
511 </#if>
512 </#if>
513 <#elseif dynamicElement.attributeValue("field-reference")=="Contatti">
514 <#assign
515 contatti_UO_data=jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData())
516 relatedContatti=JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_UO_data.classPK?number)
517 relatedContatto=relatedContatti[0]
518 document=saxReaderUtil.read(relatedContatto.getContent())
519 rootElement=document.getRootElement()
520 nome_wallet=""
521 contatti_wallet=[]
522 />
523 <#list rootElement.elements() as dynamicElement>
524 <#if dynamicElement.attributeValue("field-reference")=="Titolo">
525 <#assign nome_wallet=dynamicElement.element("dynamic-content").getText() />
526 <#elseif dynamicElement.element("dynamic-content").getText()?has_content>
527 <#assign
528 tipo_contatto=(dynamicElement.attributeValue("field-reference")=="URL" )?string("Sito Web", dynamicElement.attributeValue("field-reference"))
529 contatti_wallet +=
530 [{
531 "tipo" : tipo_contatto,
532 "valore" : dynamicElement.element("dynamic-content").getText()
533 }]
534 />
535 </#if>
536 </#list>
537 </#if>
538 </#list>
539 <#assign
540 contatti_UO_padre +=[{
541 "titolo" : nome_wallet,
542 "contatti" : contatti_wallet
543 }]
544 />
545 </#if>
546 </#list>
547</#if>
548
549<div class="container">
550 <div class="row justify-content-center">
551 <div class="col-12 col-lg-10">
552 <div class="cmp-heading pb-3 pb-lg-4">
553 <div class="row">
554 <div class="col-lg-8">
555 <h1 class="title-xxxlarge" data-element="service-title">
556 ${Titolo.getData()}
557 </h1>
558 <p class="subtitle-small mb-3">
559 ${DescrizioneBreve.getData()}
560 </p>
561 </div>
562 <div class="col-lg-3 offset-lg-1 mt-5 mt-lg-0">
563
564 <div class="dropdown" id="fallback-share">
565 <button
566 aria-label="condividi sui social"
567 class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-6 text-primary"
568 type="button"
569 id="shareActions"
570 data-bs-toggle="dropdown"
571 aria-haspopup="true"
572 aria-expanded="false"
573 >
574 <svg class="icon icon-primary" aria-hidden="true">
575 <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-share"></use>
576 </svg>
577 <small><@liferay.language key="share" /></small>
578 </button>
579 <div class="dropdown-menu shadow-lg" aria-labelledby="shareActions">
580 <div class="link-list-wrapper">
581 <ul class="link-list" role="menu">
582 <li role="none">
583 <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('facebook')">
584 <svg class="icon icon-primary" aria-hidden="true">
585 <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-facebook"></use>
586 </svg>
587 <span>Facebook</span>
588 </button>
589 </li>
590 <li role="none">
591 <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('twitter')">
592 <svg class="icon icon-primary" aria-hidden="true">
593 <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-twitter"></use>
594 </svg>
595 <span><@liferay.language key="Twitter" /></span>
596 </button>
597 </li>
598 <li role="none">
599 <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('whatsapp')">
600 <svg class="icon icon-primary" aria-hidden="true">
601 <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-whatsapp"></use>
602 </svg>
603 <span>Whatsapp</span>
604 </button>
605 </li>
606 </ul>
607 </div>
608 </div>
609 </div>
610
611 <div class="dropdown">
612 <button
613 aria-label="vedi azioni da compiere sulla pagina"
614 class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0"
615 type="button"
616 id="viewActions"
617 data-bs-toggle="dropdown"
618 aria-haspopup="true"
619 aria-expanded="false"
620 >
621 <svg class="icon icon-primary" aria-hidden="true">
622 <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-more-items"></use>
623 </svg>
624 <small><@liferay.language key="actions" /></small>
625 </button>
626 <div class="dropdown-menu shadow-lg" aria-labelledby="viewActions">
627 <div class="link-list-wrapper">
628 <ul class="link-list" role="menu">
629 <li role="none">
630 <button class="list-item px-3 fs-6 text-primary" onclick="window.print()" role="menuitem">
631 <svg class="icon icon-primary" aria-hidden="true">
632 <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-print"></use>
633 </svg>
634 <span><@liferay.language key="print" /></span>
635 </button>
636 </li>
637 <li role="none">
638 <a class="list-item mail-anchor px-3 fs-6" href="mailto:" role="menuitem">
639 <svg class="icon icon-primary" aria-hidden="true">
640 <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-mail"></use>
641 </svg>
642 <span><@liferay.language key="send" /></span>
643 </a>
644 </li>
645 </ul>
646 </div>
647 </div>
648 </div>
649
650 <#list argomenti>
651 <div class="mb-3">
652 <span class="text-paragraph-small fw-semibold"><@liferay.language key="topics" />:</span>
653 <ul class="d-flex flex-wrap gap-2 mt-10 mb-3">
654 <#items as argomento>
655 <li>
656 <a href="${argomento.url}" class="chip chip-simple">
657 <span class="chip-label">
658 ${argomento.name}
659 </span>
660 </a>
661 </li>
662 </#items>
663 </ul>
664 </div>
665 </#list>
666 </div>
667 </div>
668 </div>
669 </div>
670 </div>
671</div>
672<#if Immagine.getData()?? && Immagine.getData() !="">
673 <#assign immagine_alt=Immagine.getAttribute("alt")!"" />
674 <div class="container-fluid my-3">
675 <div class="row">
676 <figure class="figure px-0 img-full">
677 <img alt="${Immagine.getAttribute('alt')}" data-fileentryid="${Immagine.getAttribute('fileEntryId')}" src="${Immagine.getData()}" />
678 <#if immagine_alt !="">
679 <figcaption class="figure-caption text-center pt-3">
680 ${immagine_alt}
681 </figcaption>
682 </#if>
683 </figure>
684 </div>
685 </div>
686</#if>
687<div class="container">
688 <div class="row border-top border-light row-column-menu-left pb-4 pb-lg-80">
689 <div class="col-12 col-lg-3 mb-4 border-col">
690 <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one">
691 <nav class="navbar it-navscroll-wrapper navbar-expand-lg" aria-label="${languageUtil.get(locale, 'page-index')}" data-bs-navscroll="">
692 <div class="navbar-custom" id="navbarNavProgress">
693 <div class="menu-wrapper">
694 <div class="link-list-wrapper">
695 <div class="accordion">
696 <div class="accordion-item">
697 <span class="accordion-header" id="accordion-title-one">
698 <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">
699 <@liferay.language key="page-index" />
700 <svg class="icon icon-xs right" viewBox="0 0 24 24">
701 <path d="M11.6 15.4L6 9.8l.7-.8 4.9 4.9L16.5 9l.7.8z"></path>
702 </svg>
703 </button>
704 </span>
705 <div class="progress">
706 <div class="progress-bar it-navscroll-progressbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;" aria-label="Progress bar"></div>
707 </div>
708 <div id="collapse-one" class="accordion-collapse collapse show" role="region" aria-labelledby="accordion-title-one">
709 <div class="accordion-body">
710 <ul class="link-list" data-element="page-index">
711 <li class="nav-item">
712 <a class="nav-link" href="#competences">
713 <span class="title-medium"><@liferay.language key="responsibilities" /></span>
714 </a>
715 </li>
716
717 <#if has_assessore>
718 <li class="nav-item">
719 <a class="nav-link" href="#councilor">
720 <span class="title-medium"><@liferay.language key="councilor" /></span>
721 </a>
722 </li>
723 </#if>
724
725 <#if Responsabile.getData()?has_content>
726 <li class="nav-item">
727 <a class="nav-link" href="#chief">
728 <span class="title-medium"><@liferay.language key="manager" /></span>
729 </a>
730 </li>
731 </#if>
732 <li class="nav-item">
733 <a class="nav-link" href="#people">
734 <span class="title-medium"><@liferay.language key="people" /></span>
735 </a>
736 </li>
737 <#if ServiziOfferti.getData()?has_content>
738 <li class="nav-item">
739 <a class="nav-link" href="#related-services">
740 <span class="title-medium"><@liferay.language key="related-services" /></span>
741 </a>
742 </li>
743 </#if>
744 <li class="nav-item">
745 <a class="nav-link" href="#main-location">
746 <span class="title-medium"><@liferay.language key="main-location" /></span>
747 </a>
748 </li>
749
750 <#if altre_sedi?has_content>
751 <li class="nav-item">
752 <a class="nav-link" href="#other-locations">
753 <span class="title-medium"><@liferay.language key="other-locations" /></span>
754 </a>
755 </li>
756 </#if>
757
758 <#if UnitaOrganizzativaGenitore.getData()?has_content>
759 <li class="nav-item">
760 <a class="nav-link" href="#parent-uo">
761 <span class="title-medium"><@liferay.language key="parent-UO" /></span>
762 </a>
763 </li>
764 </#if>
765
766 <#if contatti_UO?size gt 0>
767 <li class="nav-item">
768 <a class="nav-link" href="#contacts">
769 <span class="title-medium"><@liferay.language key="contact" /></span>
770 </a>
771 </li>
772 </#if>
773
774 <#if has_allegati>
775 <li class="nav-item">
776 <a class="nav-link" href="#attachments">
777 <span class="title-medium"><@liferay.language key="attachments" /></span>
778 </a>
779 </li>
780 </#if>
781
782 <#if
783 (UlterioriInformazioni.getData())??
784 && (UlterioriInformazioni.getData()?has_content)
785 >
786 <li class="nav-item">
787 <a class="nav-link" href="#more-info">
788 <span class="title-medium"><@liferay.language key="additional-information" /></span>
789 </a>
790 </li>
791 </#if>
792
793 </ul>
794 </div>
795 </div>
796 </div>
797 </div>
798 </div>
799 </div>
800 </div>
801 </nav>
802 </div>
803 </div>
804 <div class="col-12 col-lg-8 offset-lg-1">
805 <div class="it-page-sections-container">
806 <section class="it-page-section mb-30 pt-4" id="competences">
807 <h2 class="title-xxlarge mb-3"><@liferay.language key="responsibilities" /></h2>
808 <div class="richtext-wrapper lora">
809 <p>
810 ${Competenze.getData()}
811 </p>
812 </div>
813 </section>
814
815 <#if tipoUO !="">
816 <section class="it-page-section mb-30 pt-4" id="office-type">
817 <h2 class="title-xxlarge mb-3"><@liferay.language key="organization-type" /></h2>
818 <div class="richtext-wrapper">
819 <span class="badge bg-primary">
820 ${tipoUO}
821 </span>
822 </div>
823 </section>
824 </#if>
825
826 <#if has_assessore>
827 <section class="it-page-section mb-30 pt-4" id="councilor">
828 <h2 class="title-xxlarge mb-3"><@liferay.language key="councilor" /></h2>
829 <div class="row">
830 <div class="col-12 col-lg-6 shadow-sm d-flex rounded pe-0" style="height: 120px;">
831 <div class="col-12 col-lg-9 pt-3">
832
833 <a href="${urlPagina_assessore}" class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3">
834 ${nome_assessore} ${cognome_assessore}
835 </a>
836 <#list incarichi_assessore as incarico>
837 <div class="card-text">
838 <div>${incarico}</div>
839 </div>
840 </#list>
841 </div>
842 <#if has_immagine_assessore?has_content>
843 <a href="${urlPagina_assessore}" class="d-none d-lg-block col-lg-3 p-0"></a>
844 <img
845 class="w-100 h-100"
846 style="object-fit: cover; object-position: center;"
847 alt="${immagine_assessore.alt!}"
848 src="${immagine_assessore.url}"
849 />
850 </#if>
851 </div>
852 </div>
853 </section>
854 </#if>
855
856 <#list responsabili>
857 <section class="it-page-section mb-30 pt-4" id="chief">
858 <h2 class="title-xxlarge mb-3"><@liferay.language key="manager" /></h2>
859 <div class="row">
860 <#items as responsabile>
861 <div class="col-12 col-lg-6 shadow-sm d-flex rounded pe-0" style="height: 120px;">
862 <div class="col-12 col-lg-9 pt-3">
863 <a href="${responsabile.urlPagina}" class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3">
864 ${responsabile.nome} ${responsabile.cognome}
865 </a>
866 <#if responsabile.incarichi?has_content>
867 <div class="card-text">
868 ${responsabile.incarichi}
869 </div>
870 </#if>
871 </div>
872 <#if responsabile.urlImmagine !="">
873 <a href="${responsabile.urlPagina}" class="d-none d-lg-block col-lg-3 p-0">
874 <img
875 class="w-100 h-100"
876 style="object-fit: cover; object-position: center;"
877 alt="${responsabile.immagine.alt!'Immagine responsabile unità organizzativa'}"
878 src="${responsabile.urlImmagine}"
879 />
880 </a>
881 </#if>
882 </div>
883 </#items>
884 </div>
885 </section>
886 </#list>
887
888 <#list persone_della_struttura>
889 <section class="it-page-section mb-30 pt-4" id="people">
890 <h2 class="title-xxlarge mb-3"><@liferay.language key="people" /></h2>
891 <div class="row">
892 <#items as persona>
893 <div class="col-12 col-lg-6 p-0 pe-3 mb-3">
894 <div class="d-flex pe-0 shadow-sm rounded" style="height: 120px;">
895 <div class="col-12 col-lg-9 pt-3">
896 <a href="${persona.urlPagina}" class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3">
897 ${persona.nome} ${persona.cognome}
898 </a>
899 <#if persona.incarico?has_content>
900 <div class="card-text">
901 ${persona.incarico}
902 </div>
903 </#if>
904 </div>
905 <#if persona.urlImmagine !="">
906 <a href="${persona.urlPagina}" class="d-none d-lg-block col-lg-3 p-0">
907 <img
908 class="w-100 h-100"
909 style="object-fit: cover; object-position: center;"
910 alt="${persona.immagine.alt!'Immagine componente staff dell\'unità organizzativa'}"
911 src="${persona.urlImmagine}" />
912 </a>
913 </#if>
914 </div>
915 </div>
916 </#items>
917 </div>
918 </section>
919 </#list>
920
921 <#list servizi_collegati>
922 <section class="it-page-section mb-30 pt-4" id="related-services">
923 <h2 class="title-xxlarge mb-3"><@liferay.language key="related-services" /></h2>
924 <div class="row">
925 <#items as servizio>
926 <div class="col-12 col-lg-6 p-0 pe-3 mb-3">
927 <div class="p-3 shadow-sm rounded h-100">
928 <div class="category-top fw-semibold t-primary text-uppercase" style="font-size: .8rem;">
929 <#list servizio.categorie as categoria>
930 <div>
931 <div class="category">
932 ${categoria.name}
933 </div>
934 </div>
935 </#list>
936 </div>
937 <div class="col-12 col-lg-9 p-0 pt-3">
938 <p class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3">
939 <a
940 href="${servizio.urlPagina}"
941 class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3">
942 ${servizio.nome}
943 </a>
944 </p>
945 <div class="card-text">
946 ${servizio.descrizione}
947 </div>
948 </div>
949 </div>
950 </div>
951 </#items>
952 </div>
953 </section>
954 </#list>
955
956 <section class="it-page-section mb-30 pt-4" id="main-location">
957 <h2 class="title-xxlarge mb-3"><@liferay.language key="main-location" /></h2>
958 <div class="">
959 <div class="card card-teaser card-teaser-info rounded shadow-sm p-4">
960 <div class="card-body pe-3">
961 <h5 class="card-title mb-2">
962 <a class="text-decoration-none" href="/portal/-/${SedePrincipale.getUrlTitle()}">
963 ${nome_sede_principale}
964 </a>
965 </h5>
966 <div class="card-text">
967 <#if indirizzo_sede_principale !="">
968 <p class="mb-2">
969 ${indirizzo_sede_principale}
970 </p>
971 </#if>
972 <#if orari_sede_principale !="">
973 <p class="mb-2">
974 ${orari_sede_principale}
975 </p>
976 </#if>
977 </div>
978 </div>
979 <div class="avatar size-xl">
980 <img
981 alt="${immagine_sede_principale!'Immagine ' + nome_sede_principale}"
982 src="${urlImmagine_sede_principale}" />
983 </div>
984 </div>
985 </div>
986 </section>
987
988 <#list altre_sedi>
989 <section class="it-page-section mb-30 pt-4" id="other-locations">
990 <h2 class="title-xxlarge mb-3"><@liferay.language key="other-locations" /></h2>
991 <div class="">
992 <#items as sede>
993 <div class="card card-teaser card-teaser-info rounded shadow-sm p-4">
994 <div class="card-body pe-3">
995 <h5 class="card-title mb-2">
996 <a class="text-decoration-none" href="/portal/-/${relatedSede.getUrlTitle()}">
997 ${sede.nome}
998 </a>
999 </h5>
1000 <div class="card-text">
1001 <#if sede.indirizzo !="">
1002 <p class="mb-2">
1003 ${sede.indirizzo}
1004 </p>
1005 </#if>
1006 <#if sede.orari !="">
1007 <p class="mb-2">
1008 ${sede.orari}
1009 </p>
1010 </#if>
1011 </div>
1012 </div>
1013 <div class="avatar size-xl">
1014 <img
1015 alt="${sede.immagine.alt!'Immagine ' + nome_cur_sede}"
1016 src="${sede.urlImmagine}" />
1017 </div>
1018 </div>
1019 </#items>
1020 </div>
1021 </section>
1022 </#list>
1023
1024 <#if UnitaOrganizzativaGenitore.getData()?has_content>
1025 <section class="it-page-section mb-30 pt-4" id="parent-uo">
1026 <h2 class="title-xxlarge mb-3"><@liferay.language key="parent-UO" /></h2>
1027 <div class="">
1028 <div class="card card-teaser card-teaser-info rounded shadow-sm p-4">
1029 <div class="card-body pe-3">
1030 <h5 class="card-title mb-2">
1031 <a class="text-decoration-none" href="${url_pagina_UO_padre}">
1032 ${nome_UO_padre}
1033 </a>
1034 </h5>
1035 <#list contatti_UO_padre>
1036 <div class="card-text pt-3">
1037 <#items as wallet_contatti>
1038 <div class="col-12 col-md-6 px-0">
1039 <div class="col-11 px-0">
1040 <#list wallet_contatti.contatti as contatto>
1041 <div>
1042 <span class="fw-semibold">
1043 <@liferay.language key="${contatto.tipo?replace(' ', '-')}" />:</span>
1044 <#assign url_type="" />
1045 <#if
1046 contatto.tipo=="Email"
1047 || contatto.tipo=="PEC"
1048 >
1049 <#assign url_type="mailto:" />
1050 <#elseif
1051 contatto.tipo=="Telefono"
1052 || contatto.tipo=="Whatsapp"
1053 || contatto.tipo=="Telegram"
1054 >
1055 <#assign url_type="tel:" />
1056 </#if>
1057 <span class="ms-1">
1058 <a
1059 href="${url_type}${contatto.valore}"
1060 target="_blank"
1061 class="text-primary">
1062 ${contatto.valore}
1063 </a>
1064 </span>
1065 </div>
1066 </#list>
1067 </div>
1068 </div>
1069 </#items>
1070 </div>
1071 </#list>
1072 </div>
1073 <#if immagine_UO_padre?has_content>
1074 <div class="avatar size-xl">
1075 <img
1076 src="${immagine_UO_padre.url}"
1077 alt="${immagine_UO_padre.alt}" />
1078 </div>
1079 </#if>
1080 </div>
1081 </div>
1082 </section>
1083 </#if>
1084
1085 <#list contatti_UO>
1086 <section class="it-page-section mb-30" id="contacts">
1087 <h2 class="title-xxlarge mb-3"><@liferay.language key="contact" /></h2>
1088 <div class="row">
1089 <#items as wallet_contatti>
1090 <div class="col-12 col-md-6 pe-3">
1091 <div class="col-11 p-3 shadow-sm rounded">
1092 <div class="h6 mb-2">
1093 ${wallet_contatti.titolo}
1094 </div>
1095 <#list wallet_contatti.contatti as contatto>
1096 <div>
1097 <span class="fw-semibold">
1098 <@liferay.language key="${contatto.tipo?replace(' ', '-')}" />:</span>
1099 <#assign url_type="" />
1100 <#if
1101 contatto.tipo=="Email"
1102 || contatto.tipo=="PEC">
1103 <#assign url_type="mailto:" />
1104 <#elseif
1105 contatto.tipo=="Telefono"
1106 || contatto.tipo=="Whatsapp"
1107 || contatto.tipo=="Telegram">
1108 <#assign url_type="tel:" />
1109 </#if>
1110 <span class="ms-1">
1111 <a
1112 href="${url_type}${contatto.valore}"
1113 target="_blank"
1114 class="text-primary">
1115 ${contatto.valore}
1116 </a>
1117 </span>
1118 </div>
1119 </#list>
1120 </div>
1121 </div>
1122 </#items>
1123 </div>
1124 </section>
1125 </#list>
1126
1127 <#list allegati>
1128 <section class="it-page-section mb-30" id="attachments">
1129 <h2 class="mb-3"><@liferay.language key="attachments" /></h2>
1130 <div class="col-12">
1131 <ul class="p-3 my-3 shadow rounded">
1132 <#items as allegato>
1133 <li group="attachments">
1134 <div class="d-flex align-items-center ${allegato?has_next?string(' mb-2', '')}">
1135 <a class="text-decoration_none fw-semibold t-primary" target="_blank" href="${allegato.url}">
1136 <svg class="icon icon-primary me-2" aria-hidden="true">
1137 <use
1138 xlink:href="/portal/o/agid-liferay-theme/images/sprite.svg#it-download"
1139 ></use>
1140 </svg>
1141 ${allegato.nome}
1142 </a>
1143 </div>
1144 </li>
1145 </#items>
1146 </ul>
1147 </div>
1148 </section>
1149 </#list>
1150
1151 <#if (UlterioriInformazioni.getData())?? && (UlterioriInformazioni.getData()?has_content)>
1152 <section class="it-page-section mb-30" id="more-info">
1153 <h2 class="mb-3"><@liferay.language key="additional-information" /></h2>
1154 <div class="col-12">
1155 ${UlterioriInformazioni.getData()}
1156 </div>
1157 </section>
1158 </#if>
1159
1160 </div>
1161 <#assign
1162 modifiedDate=.vars['reserved-article-modified-date'].getData()?split(", ")[1]?split(" +")[0]
1163 displayModifiedDate=modifiedDate?datetime("dd MMM yyyy hh:mm:ss")
1164 />
1165 <p class="text-paragraph-small mb-0 lora">
1166 <span class="fw-semibold"><@liferay.language key="last-update-date" />: </span>
1167 <span>
1168 ${displayModifiedDate?string["dd/MM/yyyy, HH:mm"]}
1169 </span>
1170 </p>
1171 </div>
1172 </div>
1173</div>
1174<style>
1175a.chip.chip-simple span.chip-label {
1176 translate: 0 -25%
1177}
1178</style>
1179<script defer>
1180
1181document.querySelectorAll(".mail-anchor").forEach(anchor => anchor.href = "mailto:&subject=${Titolo.getData()}&body=" + window.location.href)
1182
1183function shareOn(type) {
1184 let articleUrl = window.location.href;
1185 const mapping = {
1186 "facebook": "https://facebook.com/sharer/sharer.php?u=" + articleUrl,
1187 "twitter": "https://twitter.com/intent/tweet/?text=" + articleUrl,
1188 "linkedin": "http://www.linkedin.com/sharing/share-offsite/?url=" + articleUrl,
1189 "whatsapp": "whatsapp://send?text=" + articleUrl
1190 }
1191
1192 window.open(mapping[type], "_blank");
1193 return
1194}
1195
1196function redirect(url) {
1197 window.location.href = url;
1198}
1199</script>