Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy83.getLayout(long, boolean, long)" threw an exception when invoked on com.sun.proxy.$Proxy83 object "com.liferay.layout.internal.service.LayoutLocalServiceWrapper@62495844"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: paginaPadre = LayoutLocalService.getL...  [in template "20095#20121#35038" at line 18, 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 
14<#setting locale = themeDisplay.getLocale() /> 
15 
16<#-- gestione dei breadcrumbs --> 
17<#assign 
18    paginaPadre = LayoutLocalService.getLayout(groupId, PaginaPadre.getData()?eval.privateLayout, PaginaPadre.getData()?eval.layoutId?number) 
19    ancestors = paginaPadre.getAncestors() 
20    sorted_ancestors = [] 
21/> 
22 
23<#list ancestors as parente> 
24    <#assign 
25        sorted_ancestors += 
26        [{ 
27            "name": parente.getName(themeDisplay.getLanguageId()), 
28            "ancestors": parente.getAncestors()?size, 
29            "data": parente 
30        }] 
31    /> 
32</#list> 
33 
34<div class="container finmatica-breadcrumb-container mb-4"> 
35    <div class="row justify-content-center"> 
36        <div class="col-12 col-lg-10"> 
37            <div class="cmp-breadcrumbs" role="navigation"> 
38                <nav class="breadcrumb-container" aria-label="breadcrumb"> 
39                    <ol class="breadcrumb p-0" data-element="breadcrumb"> 
40                        <li class="breadcrumb-item"><a 
41                                href="${themeDisplay.getThemeSetting('Home URL')}"> 
42                                <span class="breadcrumb-text-truncate">Home</span> 
43                            </a> 
44                            <span class="separator">/</span> 
45                        </li> 
46                        <#list sorted_ancestors?sort_by("ancestors") as ancestor> 
47                        <li class="breadcrumb-item"><a 
48                                href="/portal${ancestor.data.getFriendlyURL()}"> 
49                                <span class="breadcrumb-text-truncate"> 
50                                    ${ancestor.name} 
51                                </span> 
52                            </a> 
53                            <span class="separator">/</span> 
54                        </li> 
55                        </#list> 
56                        <li class="breadcrumb-item"><a 
57                                href="/portal${paginaPadre.getFriendlyURL()}"> 
58                                <span class="breadcrumb-text-truncate"> 
59                                    ${paginaPadre.getName(themeDisplay.getLanguageId())} 
60                                </span> 
61                            </a> 
62                            <span class="separator">/</span> 
63                        </li> 
64                        <li class="breadcrumb-item">${Titolo.getData()}</li> 
65                    </ol> 
66                </nav> 
67            </div> 
68        </div> 
69    </div> 
70</div> 
71 
72<#-- GET TASSONOMIE --> 
73<#assign 
74    argomenti = [] 
75    tipiDocumento = [] 
76    tipoAlbo = "" 
77    lifeEvents = [] 
78    businessEvents = [] 
79    licenza = "" 
80/> 
81<#list categoryList as categoryEntry> 
82 
83    <#assign 
84        vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) 
85        className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory") 
86        friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId) 
87        friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId) 
88        cat_name = categoryEntry.name 
89        cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true), 
90        cat_url = friendlyUrlList[0].urlTitle 
91    /> 
92    <#if vocabulary.name == "tassonomia licenze" || vocabulary.description == "licenze"> 
93        <#assign licenza = cat_name /> 
94    <#elseif vocabulary.name == "tassonomia tipi di documento" || vocabulary.description == "tipi di documento"> 
95        <#assign 
96            tipiDocumento += 
97            [{ 
98                "name": cat_localized_name, 
99                "url": "/portal/web/guest/${friendlyUrlEntry.urlTitle}" 
100            }] 
101        /> 
102    <#elseif vocabulary.name == "life events" || vocabulary.description == "eventi della vita delle persone"> 
103        <#assign lifeEvents += [ cat_localized_name ] /> 
104    <#elseif vocabulary.name == "tassonomia business events" || vocabulary.description == "eventi della vita delle imprese"> 
105        <#assign businessEvents += [ cat_localized_name ] /> 
106    <#elseif vocabulary.name == "tassonomia documenti albo pretorio" || vocabulary.description == "documenti albo pretorio"> 
107        <#assign tipoAlbo = cat_name /> 
108    <#elseif vocabulary.name == "tassonomia argomento" || vocabulary.description == "argomenti"> 
109        <#assign 
110            argomenti += 
111            [{ 
112                "name": cat_localized_name, 
113                "url": cat_url 
114            }] 
115        /> 
116    </#if> 
117</#list> 
118 
119<#-- GET UO RESPONSBAILE --> 
120<#if jsonFactoryUtil.createJSONObject(UfficioResponsabileDocumento.getData())?has_content> 
121    <#assign UO_data = jsonFactoryUtil.createJSONObject(UfficioResponsabileDocumento.getData()) /> 
122<#else> 
123    <#assign UO_data = "" /> 
124</#if> 
125 
126<#if UO_data != ""> 
127    <#if UO_data.classPK??> 
128        <#assign UfficiResponsabili = JournalArticleLocalService.getArticlesByResourcePrimKey(UO_data.classPK?number) /> 
129        <#if UfficiResponsabili?? && UfficiResponsabili?size gt 0> 
130            <#assign 
131                UfficioResponsabile = UfficiResponsabili[0] 
132                document = UfficioResponsabile.getDocumentByLocale(themeDisplay.getLocale()) 
133                rootElement = document.getRootElement() 
134                nome_UO = "" 
135                indirizzo_UO = "" 
136                immagine_UO = "" 
137                urlImmagine_UO = "" 
138            /> 
139 
140            <#list rootElement.elements() as dynamicElement> 
141                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
142                    <#assign nome_UO = dynamicElement.element("dynamic-content").getData() /> 
143                <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
144                    <#assign immagine_UO = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
145                    <#if immagine_UO.uuid?has_content> 
146                        <#assign urlImmagine_UO = "/portal/c/document_library/get_file?uuid=" + immagine_UO.uuid + "&amp;groupId=" + immagine_UO.groupId /> 
147                    </#if> 
148                <#elseif dynamicElement.attributeValue("field-reference") == "SedePrincipale"> 
149                    <#assign sede_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
150                    <#if sede_data.classPK??> 
151 
152                        <#assign 
153                            Sedi = JournalArticleLocalService.getArticlesByResourcePrimKey(sede_data.classPK?number) 
154                        /> 
155                        <#if Sedi?size gt 0> 
156                            <#assign 
157                                Sede = Sedi[0] 
158                                document = Sede.getDocumentByLocale(themeDisplay.getLocale()) 
159                                rootElement = document.getRootElement() 
160                            /> 
161                            <#list rootElement.elements() as dynamicElement> 
162                                <#if dynamicElement.attributeValue("field-reference") == "Indirizzo"> 
163                                    <#assign indirizzo_UO = dynamicElement.element("dynamic-content").getData() /> 
164                                </#if> 
165                            </#list> 
166                        </#if> 
167 
168                    </#if> 
169                </#if> 
170            </#list> 
171        </#if> 
172    </#if> 
173</#if> 
174 
175<#-- GET AUTORI --> 
176<#assign autori = [] /> 
177<#if Autori.getData()?has_content> 
178    <#list Autori.getSiblings() as cur_autore> 
179        <#assign 
180            cur_autore_data = jsonFactoryUtil.createJSONObject(cur_autore.getData()) 
181            relatedAutori = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_autore_data.classPK?number) 
182            relatedAutore = relatedAutori[0] 
183            document = relatedAutore.getDocumentByLocale(themeDisplay.getLocale()) 
184            rootElement = document.getRootElement() 
185            nome_autore = "" 
186            cognome_autore = "" 
187            immagine_autore = "" 
188            urlImmagine_autore = "" 
189            incarico_autore = "" 
190        /> 
191        <#list rootElement.elements() as dynamicElement> 
192            <#if dynamicElement.attributeValue("field-reference") == "Nome"> 
193                <#assign nome_autore = dynamicElement.element("dynamic-content").getText() /> 
194            <#elseif dynamicElement.attributeValue("field-reference") == "Cognome"> 
195                <#assign cognome_autore = dynamicElement.element("dynamic-content").getText() /> 
196            <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
197                <#assign immagine_autore = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
198                <#if immagine_autore.uuid?has_content> 
199                    <#assign urlImmagine_autore = "/portal/c/document_library/get_file?uuid=" + immagine_autore.uuid + "&amp;groupId=" + immagine_autore.groupId /> 
200                </#if> 
201            <#elseif dynamicElement.attributeValue("field-reference") == "Incarichi"> 
202                <#assign 
203                    incarichi_autore = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) 
204                /> 
205                <#if incarichi_autore?eval?has_content> 
206                    <#assign 
207                        relatedIncarichiAutore = JournalArticleLocalService.getArticlesByResourcePrimKey(incarichi_autore.classPK?number) 
208                        relatedIncaricoAutore = relatedIncarichiAutore[0] 
209                        document = relatedIncaricoAutore.getDocumentByLocale(themeDisplay.getLocale()) 
210                        rootElement = document.getRootElement() 
211                    /> 
212                    <#list rootElement.elements() as dynamicElement> 
213                        <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
214                            <#assign incarico_autore = dynamicElement.element("dynamic-content").getText() /> 
215                        </#if> 
216                    </#list> 
217                </#if> 
218            </#if> 
219        </#list> 
220        <#assign 
221            autori += 
222            [{ 
223                "nome": nome_autore, 
224                "cognome": cognome_autore, 
225                "urlImmagine": urlImmagine_autore, 
226                "immagine": immagine_autore, 
227                "incarico": incarico_autore, 
228                "urlPagina": "/portal/-/${relatedAutore.getUrlTitle()}" 
229            }] 
230        /> 
231    </#list> 
232</#if> 
233 
234<#-- GET SERVIZI COLLEGATI --> 
235<#assign servizi_collegati = [] /> 
236<#if Servizi.getData()?has_content> 
237    <#list Servizi.getSiblings() as cur_servizio> 
238        <#assign 
239            cur_servizio_data = jsonFactoryUtil.createJSONObject(cur_servizio.getData()) 
240            categorie_cur_servizio = assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", cur_servizio_data.classPK?number) 
241            relatedServizi = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_servizio_data.classPK?number) 
242        /> 
243        <#if relatedServizi?? && relatedServizi?size gt 0> 
244            <#assign 
245                relatedServizio = relatedServizi[0] 
246                document = relatedServizio.getDocumentByLocale(themeDisplay.getLocale()) 
247                rootElement = document.getRootElement() 
248                nome_servizio = "" 
249                descrizione_servizio = "" 
250                categorie_servizio = [] 
251            /> 
252            <#list rootElement.elements() as dynamicElement> 
253                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
254                    <#assign nome_servizio = dynamicElement.element("dynamic-content").getText() /> 
255                <#elseif dynamicElement.attributeValue("field-reference") == "DescrizioneBreve"> 
256                    <#assign descrizione_servizio = dynamicElement.element("dynamic-content").getText() /> 
257                </#if> 
258            </#list> 
259            <#list categorie_cur_servizio as cur_categoria_cur_servizio> 
260                <#assign cur_vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(cur_categoria_cur_servizio.getVocabularyId()) /> 
261                <#if 
262                    cur_vocabulary.getTitle()?lower_case == "tassonomia categoria servizi" 
263                    || cur_vocabulary.getName()?lower_case == "tassonomia categoria servizi" 
264                    || cur_vocabulary.getDescription()?lower_case == "categorie servizi" 
265
266                    <#assign categorie_servizio += [cur_categoria_cur_servizio] /> 
267                </#if> 
268            </#list> 
269            <#assign 
270                servizi_collegati += 
271                [{ 
272                    "nome": nome_servizio, 
273                    "descrizione": descrizione_servizio, 
274                    "categorie": categorie_servizio, 
275                    "url": "/portal/-/${relatedServizio.getUrlTitle()}" 
276                }] 
277            /> 
278        </#if> 
279    </#list> 
280</#if> 
281 
282 
283<#-- GET DATE --> 
284<#assign 
285    data_inizio = "" 
286    data_fine = "" 
287    data_protocollo = "" 
288    DataInizio_Data = getterUtil.getString(DataInizio.getData()) 
289    DataFine_Data = getterUtil.getString(DataFine.getData()) 
290    DataProtocollo_Data = getterUtil.getString(DataProtocollo.getData()) 
291/> 
292<#if validator.isNotNull(DataInizio_Data)> 
293    <#assign 
294        DataInizio_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataInizio_Data, locale) 
295        data_inizio = dateUtil.getDate(DataInizio_DateObj, "dd MMMM yyyy" , locale) 
296    /> 
297</#if> 
298<#if validator.isNotNull(DataFine_Data)> 
299    <#assign 
300        DataFine_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataFine_Data, locale) 
301        data_fine = dateUtil.getDate(DataFine_DateObj, "dd MMMM yyyy" , locale) 
302    /> 
303</#if> 
304<#if validator.isNotNull(DataProtocollo_Data)> 
305    <#assign 
306        DataProtocollo_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataProtocollo_Data, locale) 
307        data_protocollo = dateUtil.getDate(DataProtocollo_DateObj, "dd MMMM yyyy" , locale) 
308    /> 
309</#if> 
310 
311<#-- SEZIONE GET ALLEGATI --> 
312<#assign documenti_collegati = [] /> 
313<#if DocumentiCollegati.getData()?has_content> 
314    <#if DocumentiCollegati.getSiblings()?has_content> 
315        <#list DocumentiCollegati.getSiblings() as cur_allegato> 
316            <#assign 
317                cur_allegato_data = jsonFactoryUtil.createJSONObject(cur_allegato.getData()) 
318                relatedAllegati = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_allegato_data.classPK?number) 
319            /> 
320            <#if relatedAllegati?? && relatedAllegati?size gt 0> 
321                <#assign relatedAllegato = relatedAllegati[0] /> 
322                <#if relatedAllegati?? && relatedAllegati?size gt 0> 
323                    <#assign 
324                        document = relatedAllegato.getDocumentByLocale(themeDisplay.getLocale()) 
325                        rootElement = document.getRootElement() 
326                        nome_allegato = "" 
327                        url_allegato = "/portal/-/${relatedAllegato.getUrlTitle()}" 
328                    /> 
329                    <#list rootElement.elements() as dynamicElement> 
330                        <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
331                            <#assign nome_allegato = dynamicElement.element("dynamic-content").getText() /> 
332                        </#if> 
333                    </#list> 
334                    <#assign 
335                        documenti_collegati += 
336                        [{ 
337                            "nome": nome_allegato, 
338                            "url": url_allegato 
339                        }] 
340                    /> 
341                </#if> 
342            </#if> 
343        </#list> 
344    </#if> 
345</#if> 
346<#if Dataset.getData()?has_content> 
347    <#if Dataset.getSiblings()?has_content> 
348        <#list Dataset.getSiblings() as cur_allegato> 
349            <#assign 
350                cur_allegato_data = jsonFactoryUtil.createJSONObject(cur_allegato.getData()) 
351                relatedAllegati = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_allegato_data.classPK?number) 
352            /> 
353            <#if relatedAllegati?? && relatedAllegati?size gt 0> 
354                <#assign 
355                    relatedAllegato = relatedAllegati[0] 
356                    document = relatedAllegato.getDocumentByLocale(themeDisplay.getLocale()) 
357                    rootElement = document.getRootElement() 
358                    nome_allegato = "" 
359                    url_allegato = "/portal/-/${relatedAllegato.getUrlTitle()}" 
360                /> 
361                <#list rootElement.elements() as dynamicElement> 
362                    <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
363                        <#assign nome_allegato = dynamicElement.element("dynamic-content").getText() /> 
364                    </#if> 
365                </#list> 
366                <#assign 
367                    documenti_collegati += 
368                    [{ 
369                        "nome": nome_allegato, 
370                        "url": url_allegato 
371                    }] 
372                /> 
373            </#if> 
374        </#list> 
375    </#if> 
376</#if> 
377<#assign 
378    immagini_galleria = [] 
379/> 
380 
381<#-- GET PHOTOGALLERY --> 
382<#if GalleriaImmagini.getData()?has_content> 
383    <#list GalleriaImmagini.getSiblings() as cur_GalleriaImmagini> 
384        <#if cur_GalleriaImmagini.getData()?? && cur_GalleriaImmagini.getData() != ""> 
385            <#assign 
386                immagini_galleria += 
387                [{ 
388                    "alt": cur_GalleriaImmagini.getAttribute("alt")!"", 
389                    "fileentryid": cur_GalleriaImmagini.getAttribute("fileEntryId"), 
390                    "src": cur_GalleriaImmagini.getData() 
391                }] 
392            /> 
393        </#if> 
394    </#list> 
395</#if> 
396 
397<div class="container"> 
398    <div class="row justify-content-center"> 
399        <div class="col-12 col-lg-10"> 
400            <div class="cmp-heading pb-3 pb-lg-4"> 
401                <div class="row"> 
402                    <div class="col-lg-8"> 
403                        <h1 class="title-xxxlarge" data-element="service-title"> 
404                            ${Titolo.getData()} 
405                        </h1> 
406                        <#if Protocollo.getData()?has_content> 
407                        <p class="primary-color-b5 mb-3 fs-4 fw-bold"> 
408                            ${Protocollo.getData()}${data_protocollo?has_content?string(", ${data_protocollo}", "")} 
409                        </p> 
410                        </#if> 
411                        <p class="subtitle-small mb-3"> 
412                            ${DescrizioneBreve.getData()} 
413                        </p> 
414                    </div> 
415 
416                    <div class="col-lg-4 mt-5 mt-lg-0"> 
417                        <div class="dropdown" id="fallback-share"> 
418                            <button 
419                                aria-label="condividi sui social" 
420                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-6 text-primary" 
421                                type="button" 
422                                id="shareActions" 
423                                data-bs-toggle="dropdown" 
424                                aria-haspopup="true" 
425                                aria-expanded="false" 
426
427                                <svg class="icon icon-primary" aria-hidden="true"> 
428                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-share"></use> 
429                                </svg> 
430                                <small><@liferay.language key="share" /></small> 
431                            </button> 
432                            <div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
433                                <div class="link-list-wrapper"> 
434                                    <ul class="link-list" role="menu"> 
435                                        <li role="none"> 
436                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('facebook')"> 
437                                                <svg class="icon icon-primary" aria-hidden="true"> 
438                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-facebook"></use> 
439                                                </svg> 
440                                                <span>Facebook</span> 
441                                            </button> 
442                                        </li> 
443                                        <li role="none"> 
444                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('twitter')"> 
445                                                <svg class="icon icon-primary" aria-hidden="true"> 
446                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-twitter"></use> 
447                                                </svg> 
448                                                <span><@liferay.language key="Twitter" /></span> 
449                                            </button> 
450                                        </li> 
451                                        <li role="none"> 
452                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('whatsapp')"> 
453                                                <svg class="icon icon-primary" aria-hidden="true"> 
454                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-whatsapp"></use> 
455                                                </svg> 
456                                                <span>Whatsapp</span> 
457                                            </button> 
458                                        </li> 
459                                    </ul> 
460                                </div> 
461                            </div> 
462                        </div> 
463 
464                        <div class="dropdown"> 
465                            <button 
466                                aria-label="vedi azioni da compiere sulla pagina" 
467                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" 
468                                type="button" 
469                                id="viewActions" 
470                                data-bs-toggle="dropdown" 
471                                aria-haspopup="true" 
472                                aria-expanded="false" 
473
474                                <svg class="icon icon-primary" aria-hidden="true"> 
475                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-more-items"></use> 
476                                </svg> 
477                                <small><@liferay.language key="actions" /></small> 
478                            </button> 
479                            <div class="dropdown-menu shadow-lg" aria-labelledby="viewActions"> 
480                                <div class="link-list-wrapper"> 
481                                    <ul class="link-list" role="menu"> 
482                                        <li role="none"> 
483                                            <button class="list-item px-3 fs-6 text-primary" onclick="window.print()" role="menuitem"> 
484                                                <svg class="icon icon-primary" aria-hidden="true"> 
485                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-print"></use> 
486                                                </svg> 
487                                                <span><@liferay.language key="print" /></span> 
488                                            </button> 
489                                        </li> 
490                                        <li role="none"> 
491                                            <a class="list-item mail-anchor px-3 fs-6" href="mailto:" role="menuitem"> 
492                                                <svg class="icon icon-primary" aria-hidden="true"> 
493                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-mail"></use> 
494                                                </svg> 
495                                                <span><@liferay.language key="send" /></span> 
496                                            </a> 
497                                        </li> 
498                                    </ul> 
499                                </div> 
500                            </div> 
501                        </div> 
502 
503                        <#list argomenti> 
504                        <div class="mt-4 mb-3"> 
505                            <span class="text-paragraph-small fw-semibold"><@liferay.language key="topics" />:</span> 
506                            <ul class="d-flex flex-wrap gap-2 mt-10 mb-3"> 
507 
508                                <#items as argomento> 
509                                <li> 
510                                    <a href="${argomento.url}" class="chip chip-simple"> 
511                                        <span class="chip-label"> 
512                                            ${argomento.name} 
513                                        </span> 
514                                    </a> 
515                                </li> 
516                                </#items> 
517 
518                            </ul> 
519                        </div> 
520                        </#list> 
521 
522                    </div> 
523                </div> 
524 
525                <div class="row mt-5 mb-4"> 
526 
527                    <#if (IdentificativoDelDocumento.getData())?has_content> 
528                    <div class="col col-lg-4"> 
529                        <small><@liferay.language key="identifier" />:</small> 
530                        <p class="fw-semibold font-monospace">${IdentificativoDelDocumento.getData()}</p> 
531                    </div> 
532                    </#if> 
533 
534                    <#if data_inizio !=""> 
535                    <div class="col col-lg-4"> 
536                        <small><@liferay.language key="start-date" />:</small> 
537                        <p class="fw-semibold font-monospace">${data_inizio}</p> 
538                    </div> 
539                    </#if> 
540 
541                    <#if data_fine !=""> 
542                    <div class="col col-lg-4"> 
543                        <small><@liferay.language key="end-date" />:</small> 
544                        <p class="fw-semibold font-monospace">${data_fine}</p> 
545                    </div> 
546                    </#if> 
547 
548                </div> 
549            </div> 
550        </div> 
551    </div> 
552</div> 
553 
554<#if Immagine.getData()?? && Immagine.getData() !=""> 
555    <#assign immagineHero_alt = Immagine.getAttribute("alt")!"" /> 
556    <div class="container-fluid my-3"> 
557        <div class="row"> 
558            <figure class="figure px-0 img-full"> 
559                <img class="figure-img img-fluid" alt="${immagineHero_alt!}" data-fileentryid="${Immagine.getAttribute('fileEntryId')}" src="${Immagine.getData()}" /> 
560                <#if immagineHero_alt != ""> 
561                <figcaption class="figure-caption text-center pt-3"> 
562                    ${immagineHero_alt} 
563                </figcaption> 
564                </#if> 
565            </figure> 
566        </div> 
567    </div> 
568</#if> 
569 
570<div class="container"> 
571    <div class="row border-top border-light row-column-menu-left pb-4 pb-lg-80"> 
572        <div class="col-12 col-lg-3 mb-4 border-col"> 
573            <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one"> 
574                <nav class="navbar it-navscroll-wrapper navbar-expand-lg" aria-label="${languageUtil.get(locale, 'page-index')}" data-bs-navscroll=""> 
575                    <div class="navbar-custom" id="navbarNavProgress"> 
576                        <div class="menu-wrapper"> 
577                            <div class="link-list-wrapper"> 
578                                <div class="accordion"> 
579                                    <div class="accordion-item"> 
580                                        <span class="accordion-header" id="accordion-title-one"> 
581                                            <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"> 
582                                                <@liferay.language key="page-index" /> 
583                                                <svg class="icon icon-xs right" viewBox="0 0 24 24"> 
584                                                    <path d="M11.6 15.4L6 9.8l.7-.8 4.9 4.9L16.5 9l.7.8z"></path> 
585                                                </svg> 
586                                            </button> 
587                                        </span> 
588                                        <div class="progress"> 
589                                            <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> 
590                                        </div> 
591                                        <div id="collapse-one" class="accordion-collapse collapse show" role="region" aria-labelledby="accordion-title-one"> 
592                                            <div class="accordion-body"> 
593                                                <ul class="link-list" data-element="page-index"> 
594 
595                                                    <#if DescrizioneEstesa.getData()?has_content> 
596                                                        <@navigatorLink sectionId="description" title="${languageUtil.get(locale, 'description')}" /> 
597                                                    </#if> 
598 
599                                                    <#if URLDocumento.getData()?has_content> 
600                                                        <@navigatorLink sectionId="document" title="${languageUtil.get(locale, 'document')}" /> 
601                                                    </#if> 
602 
603                                                    <#if immagini_galleria?size gt 0> 
604                                                        <@navigatorLink sectionId="image-gallery" title="${languageUtil.get(locale, 'image-gallery')}" /> 
605                                                    </#if> 
606 
607                                                    <#if UfficioResponsabile??> 
608                                                        <@navigatorLink sectionId="office" title="${languageUtil.get(locale, 'chief-office')}" /> 
609                                                    </#if> 
610 
611                                                    <#if Autori.getData()?has_content> 
612                                                        <@navigatorLink sectionId="authors" title="${languageUtil.get(locale, 'author')}" /> 
613                                                    </#if> 
614 
615                                                    <#if FormatiDisponibili.getData()?has_content> 
616                                                        <@navigatorLink sectionId="format" title="${languageUtil.get(locale, 'available-formats')}" /> 
617                                                    </#if> 
618 
619                                                    <#if tipiDocumento?size gt 0> 
620                                                      <@navigatorLink sectionId="document-type" title="${languageUtil.get(locale, 'document-type')}" /> 
621                                                    </#if> 
622 
623                                                    <#if licenza?has_content> 
624                                                        <@navigatorLink sectionId="distribution-license" title="${languageUtil.get(locale, 'distribution-license')}" /> 
625                                                    </#if> 
626 
627                                                    <#if servizi_collegati?has_content> 
628                                                        <@navigatorLink sectionId="related-services" title="${languageUtil.get(locale, 'related-services')}" /> 
629                                                    </#if> 
630 
631                                                    <#if documenti_collegati?has_content> 
632                                                        <@navigatorLink sectionId="attachments" title="${languageUtil.get(locale, 'related-documents')}" /> 
633                                                    </#if> 
634 
635                                                    <#if (RiferimentiNormativi.getData())?has_content> 
636                                                        <@navigatorLink sectionId="law-requirements" title="${languageUtil.get(locale, 'normative-requirements')}" /> 
637                                                    </#if> 
638 
639                                                    <#if (UlterioriInformazioni.getData())?has_content> 
640                                                        <@navigatorLink sectionId="more-info" title="${languageUtil.get(locale, 'additional-information')}" /> 
641                                                    </#if> 
642 
643                                                </ul> 
644                                            </div> 
645                                        </div> 
646                                    </div> 
647                                </div> 
648                            </div> 
649                        </div> 
650                    </div> 
651                </nav> 
652            </div> 
653        </div> 
654        <div class="col-12 col-lg-8 offset-lg-1"> 
655            <div class="it-page-sections-container"> 
656 
657                <#if DescrizioneEstesa.getData()?has_content> 
658                <section class="it-page-section mb-30 pt-4" id="description"> 
659                    <h2 class="title-xxlarge mb-3"><@liferay.language key="description" /></h2> 
660                    <div class="richtext-wrapper lora"> 
661                        <p> 
662                            ${DescrizioneEstesa.getData()} 
663                        </p> 
664                    </div> 
665                </section> 
666                </#if> 
667 
668                <#if URLDocumento.getData()?has_content> 
669                    <section class="it-page-section mb-30 has-bg-grey p-4" id="document"> 
670                        <h2 class="title-xxlarge mb-3"><@liferay.language key="document" /></h2> 
671                        <div class="d-flex align-items-center p-3 shadow rounded bg-white"> 
672                            <svg class="icon icon-primary icon-lh me-2" aria-hidden="true" viewBox="0 0 24 24"> 
673                                <path d="M12,14.2L7.7,9.9l0.7-0.7l3.1,3.1V3h1v9.2l3.1-3l0.7,0.7L12,14.2z M19,12v7.5c0,0.3-0.2,0.5-0.5,0.5h-13C5.2,20,5,19.8,5,19.5V12H4v7.5C4,20.3,4.7,21,5.5,21h13c0.8,0,1.5-0.7,1.5-1.5V12H19z" /> 
674                            </svg> 
675                            <a class="text-decoration_none fw-semibold t-primary" href="${URLDocumento.getData()}" target="_blank" rel="noopener noreferrer"> 
676                                ${Titolo.getData()} 
677                            </a> 
678                        </div> 
679                    </section> 
680                </#if> 
681 
682                <#list immagini_galleria> 
683                <section class="it-page-section mb-30" id="image-gallery"> 
684                    <h2 class="title-xxlarge mb-3"><@liferay.language key="image-gallery" /></h2> 
685                    <div class="it-carousel-wrapper it-carousel-landscape-abstract-three-cols splide splide--slide splide--ltr splide--draggable is-active is-initialized mb-4" data-bs-carousel-splide="" id="splide01"> 
686                        <div class="splide__track" id="splide01-track" style="padding-left: 0px; padding-right: 0px;"> 
687                            <ul class="splide__list it-carousel-all py-4" id="splide01-list" style="transform: translateX(0px);"> 
688                                <#items as img> 
689                                <li class="splide__slide is-active is-visible h-100" id="splide01-slide0${img?counter}" style="margin-right: 24px; width: calc(calc(100% / 3) - 16px);" tabindex="0" data-focus-mouse="false"> 
690                                    <div class="it-single-slide-wrapper"> 
691                                        <figure> 
692                                            <img src="${img.src}" alt="${img.alt}" class="img-fluid" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; object-position: center;" loading="lazy"> 
693                                            <figcaption class="figure-caption mt-2"> 
694                                                ${img.alt} 
695                                            </figcaption> 
696                                        </figure> 
697                                    </div> 
698                                </li> 
699                                </#items> 
700                            </ul> 
701                        </div> 
702                    </div> 
703                </section> 
704                </#list> 
705 
706                <#if UfficioResponsabile??> 
707                    <section class="it-page-section mb-30 pt-4" id="office"> 
708                        <h2 class="title-xxlarge mb-3"><@liferay.language key="chief-office" /></h2> 
709                        <div class="card card-teaser card-teaser-info shadow-sm rounded d-flex align-items-center p-3 p-lg-4"> 
710                            <div class="card-body"> 
711                                <h4 class="mb-1 title-small-semi-bold-medium"> 
712                                    <a href="/portal/web/guest/-/${UfficioResponsabile.getUrlTitle()}" class="card-title text-paragraph-regular-medium-semi mb-3 primary-color-b3"> 
713                                        ${nome_UO} 
714                                    </a> 
715                                </h4> 
716                                <div class="card-text"> 
717                                    <p class="u-main-black"> 
718                                        ${indirizzo_UO} 
719                                    </p> 
720                                </div> 
721                            </div> 
722                            <#if urlImmagine_UO?has_content> 
723                            <a href="${urlImmagine_UO}"> 
724                                <div class="avatar size-xl"> 
725                                    <img src="${urlImmagine_UO}" alt="${immagine_UO.description!'Immagine unità organizzativa'}"> 
726                                </div> 
727                            </a> 
728                            </#if> 
729                        </div> 
730                    </section> 
731                </#if> 
732 
733                <#list autori> 
734                <section class="it-page-section mb-30 pt-4" id="authors"> 
735                    <h2 class="title-xxlarge mb-3"><@liferay.language key="author" /></h2> 
736                    <#items as persona> 
737                    <div class="col-12 col-lg-6 p-0 pe-3 mb-3"> 
738                        <div class="d-flex pe-0 shadow-sm rounded" style="height: 120px;"> 
739                            <div class="col-12 col-lg-9 pt-3"> 
740                                <a href="${persona.urlPagina}" class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3"> 
741                                    ${persona.nome} ${persona.cognome} 
742                                </a> 
743                                <#if persona.incarico?has_content> 
744                                <div class="card-text"> 
745                                    ${persona.incarico} 
746                                </div> 
747                                </#if> 
748                            </div> 
749                            <#if persona.urlImmagine !=""> 
750                            <a href="${persona.urlPagina}" class="d-none d-lg-block col-lg-3 p-0"> 
751                                <img 
752                                    class="w-100 h-100" 
753                                    style="object-fit: cover; object-position: center;" 
754                                    alt="${persona.immagine.alt!"Immagine componente staff dell'unità organizzativa"}" 
755                                    src="${persona.urlImmagine}" 
756                                /> 
757                            </a> 
758                            </#if> 
759                        </div> 
760                    </div> 
761                    </#items> 
762                </section> 
763                </#list> 
764 
765                <#if FormatiDisponibili.getData()?has_content> 
766                    <section class="it-page-section mb-30 pt-4" id="format"> 
767                        <h2 class="title-xxlarge mb-3"><@liferay.language key="available-formats" /></h2> 
768                        <div class="richtext-wrapper lora"> 
769                            ${FormatiDisponibili.getData()} 
770                        </div> 
771                    </section> 
772                </#if> 
773 
774                <#list tipiDocumento> 
775                <section class="it-page-section mb-30 pt-4" id="document-type"> 
776                    <h2 class="title-xxlarge mb-3"><@liferay.language key="document-type" /></h2> 
777                    <ul class="d-flex flex-wrap gap-2 mt-10 mb-3"> 
778                        <#items as tipo> 
779                        <li> 
780                            <a href="${tipo.url}" class="chip chip-simple"> 
781                                <span class="chip-label"> 
782                                    ${tipo.name} 
783                                </span> 
784                            </a> 
785                        </li> 
786                        </#items> 
787                    </ul> 
788                </section> 
789                </#list> 
790 
791                <#if licenza?has_content> 
792                    <section class="it-page-section mb-30 pt-4" id="distribution-license"> 
793                        <h2 class="title-xxlarge mb-3"><@liferay.language key="distribution-license" /></h2> 
794                        <div class="richtext-wrapper lora"> 
795                            ${licenza} 
796                        </div> 
797                    </section> 
798                </#if> 
799 
800                <#list servizi_collegati> 
801                    <section class="it-page-section mb-30 pt-4" id="related-services"> 
802                        <h2 class="title-xxlarge mb-3"><@liferay.language key="related-services" /></h2> 
803                        <div class="row"> 
804                            <#items as servizio> 
805                            <div class="col-12 col-lg-6 p-0 pe-3 mb-3"> 
806                                <div class="p-3 shadow-sm rounded h-100"> 
807                                    <div class="category-top fw-semibold t-primary text-uppercase" style="font-size: .8rem;"> 
808                                        <#list servizio.categorie as categoria> 
809                                        <div> 
810                                            <div class="category"> 
811                                                ${categoria.name} 
812                                            </div> 
813                                        </div> 
814                                        </#list> 
815                                    </div> 
816                                    <div class="col-12 col-lg-9 p-0"> 
817                                        <a 
818                                            href="${servizio.url}" 
819                                            class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3" 
820
821                                            ${servizio.nome} 
822                                        </a> 
823                                        <div class="card-text"> 
824                                            ${servizio.descrizione} 
825                                        </div> 
826                                    </div> 
827                                </div> 
828                            </div> 
829                            </#items> 
830                        </div> 
831                    </section> 
832                </#list> 
833 
834                <#list documenti_collegati> 
835                    <section class="it-page-section mb-30 pt-4" id="attachments"> 
836                        <h2 class="title-xxlarge mb-3"><@liferay.language key="related-documents" /></h2> 
837                        <div class="col-12 col-md-6 shadow p-3 mb-4 rounded"> 
838                            <#items as allegato> 
839                            <div class="d-flex align-items-center${allegato?has_next?string(' mb-3', '')}"> 
840                                <svg class="icon icon-primary icon-lh me-2" aria-hidden="true" viewBox="0 0 24 24"> 
841                                    <path d="M21,3v6h-1V4.7l-7.6,7.7l-0.8-0.8L19.3,4H15V3H21z M17,19.5c0,0.3-0.2,0.5-0.5,0.5h-12C4.2,20,4,19.8,4,19.5v-12C4,7.2,4.2,7,4.5,7H12V6H4.5C3.7,6,3,6.7,3,7.5v12C3,20.3,3.7,21,4.5,21h12c0.8,0,1.5-0.7,1.5-1.5V12h-1V19.5z" /> 
842                                </svg> 
843                                <a class="text-decoration_none fw-semibold t-primary" href="${allegato.url}"> 
844                                    ${allegato.nome} 
845                                </a> 
846                            </div> 
847                            </#items> 
848                        </div> 
849                    </section> 
850                </#list> 
851 
852                <#if (RiferimentiNormativi.getData())?has_content> 
853                    <section class="it-page-section mb-30 pt-4" id="law-requirements"> 
854                        <h2 class="title-xxlarge mb-3"><@liferay.language key="normative-requirements" /></h2> 
855                        <div class="richtext-wrapper lora"> 
856                            <p> 
857                                ${RiferimentiNormativi.getData()} 
858                            </p> 
859                        </div> 
860                    </section> 
861                </#if> 
862 
863                <#if (UlterioriInformazioni.getData())?has_content> 
864                    <section class="it-page-section mb-30 pt-4" id="more-info"> 
865                        <h2 class="title-xxlarge mb-3"><@liferay.language key="additional-information" /></h2> 
866                        <div class="richtext-wrapper lora"> 
867                            <p> 
868                                ${UlterioriInformazioni.getData()} 
869                            </p> 
870                        </div> 
871                    </section> 
872                </#if> 
873 
874            </div> 
875            <#assign 
876                modifiedDate = .vars['reserved-article-modified-date'].getData()?split(", ")[1]?split(" +")[0] 
877                displayModifiedDate = modifiedDate?datetime("dd MMM yyyy hh:mm:ss")?datetime 
878            /> 
879            <p class="text-paragraph-small mb-0 lora"> 
880                <span class="fw-semibold"><@liferay.language key="last-update-date" />: </span> 
881                <span> 
882                    ${displayModifiedDate?string.short} 
883                </span> 
884            </p> 
885        </div> 
886    </div> 
887</div> 
888 
889<script defer> 
890    document.querySelectorAll(".mail-anchor").forEach(anchor => anchor.href = "mailto:&subject=${Titolo.getData()}&body=" + window.location.href); 
891 
892    function shareOn(type) { 
893        let articleUrl = window.location.href; 
894        const mapping = { 
895            "facebook": "https://facebook.com/sharer/sharer.php?u=" + articleUrl, 
896            "twitter": "https://twitter.com/intent/tweet/?text=" + articleUrl, 
897            "linkedin": "http://www.linkedin.com/sharing/share-offsite/?url=" + articleUrl, 
898            "whatsapp": "whatsapp://send?text=" + articleUrl 
899
900 
901        window.open(mapping[type], "_blank"); 
902        return 
903
904 
905    function bringMeTo(id) { 
906        document.getElementById(id).scrollIntoView({behavior: 'smooth'}); 
907
908</script> 
909 
910<#macro navigatorLink sectionId title> 
911<#local desc = "" /> 
912 
913<#if title?? && title?has_content> 
914    <#local desc = title /> 
915<#else> 
916    <#local desc = sectionId /> 
917</#if> 
918 
919<li class="nav-item"> 
920    <a 
921        class="nav-link active" 
922        onclick="bringMeTo('${sectionId}')" 
923        role="button" 
924        aria-label="${languageUtil.get(locale, 'go-to-section')}: ${title}" 
925
926        <span class="title-medium">${title}</span> 
927    </a> 
928</li> 
929</#macro>