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#35030" 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    LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
5    JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
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    categorie_notizia = 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<#assign argomenti = [] /> 
73<#list categorie_notizia as categoryEntry> 
74    <#assign 
75        vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) 
76        className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory") 
77        friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId) 
78        friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId) 
79        cat_name = categoryEntry.name 
80        cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true), 
81        cat_url = friendlyUrlList[0].urlTitle 
82    /> 
83    <#if 
84        vocabulary.getDescription() == "tassonomia argomenti" 
85        || vocabulary.getTitle()?lower_case == "tassonomia argomento" 
86        || vocabulary.getName()?lower_case == "tassonomia argomento" 
87
88        <#assign 
89            argomenti += 
90            [{ 
91                "name": cat_localized_name, 
92                "url": cat_url 
93            }] 
94        /> 
95    </#if> 
96</#list> 
97 
98<#-- GET PERSONE NOTIZIA --> 
99<#assign persone_Notizia = [] /> 
100<#if Persone.getData()?has_content> 
101    <#list Persone.getSiblings() as cur_Persone> 
102        <#assign 
103            cur_persona_data = jsonFactoryUtil.createJSONObject(cur_Persone.getData()) 
104            relatedPersone = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_persona_data.classPK?number) 
105        /> 
106        <#if relatedPersone?? && relatedPersone?size gt 0> 
107            <#assign 
108                relatedPersona = relatedPersone[0] 
109                document = relatedPersona.getDocumentByLocale(themeDisplay.getLocale()) 
110                rootElement = document.getRootElement() 
111            /> 
112            <#list rootElement.elements() as dynamicElement> 
113                <#if dynamicElement.attributeValue("field-reference") == "Nome"> 
114                    <#assign nome_persona = dynamicElement.element("dynamic-content").getText() /> 
115                <#elseif dynamicElement.attributeValue("field-reference") == "Cognome"> 
116                    <#assign cognome_persona = dynamicElement.element("dynamic-content").getText() /> 
117                </#if> 
118            </#list> 
119            <#assign 
120                persone_Notizia += 
121                [{ 
122                    "nome": nome_persona + " " + cognome_persona, 
123                    "url": "${cur_Persone.getFriendlyUrl()}" 
124                }] 
125            /> 
126        </#if> 
127    </#list> 
128</#if> 
129 
130<#-- SEZIONE GET LUOGHI --> 
131    <#assign luoghi_data = [] /> 
132    <#if Luoghi.getData()?has_content> 
133        <#list Luoghi.getSiblings() as cur_luogo> 
134            <#assign 
135                cur_luogo_data = jsonFactoryUtil.createJSONObject(cur_luogo.getData()) 
136                relatedLuoghi = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_luogo_data.classPK?number) 
137            /> 
138            <#if relatedLuoghi?? && relatedLuoghi?size gt 0> 
139                <#assign 
140                    relatedLuogo = relatedLuoghi[0] 
141                    document = relatedLuogo.getDocumentByLocale(themeDisplay.getLocale()) 
142                    rootElement = document.getRootElement() 
143                    nome_cur_luogo = "" 
144                    indirizzo_cur_luogo = "" 
145                    orari_cur_luogo = "" 
146                    immagine_cur_luogo = "" 
147                    urlImmagine_cur_luogo = "" 
148                /> 
149                <#list rootElement.elements() as dynamicElement> 
150                    <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
151                        <#assign nome_cur_luogo = dynamicElement.element("dynamic-content").getText() /> 
152                    <#elseif dynamicElement.attributeValue("field-reference") == "Indirizzo"> 
153                        <#assign indirizzo_cur_luogo = dynamicElement.element("dynamic-content").getText() /> 
154                    <#elseif dynamicElement.attributeValue("field-reference") == "OrarioPerIlPubblico"> 
155                        <#assign orari_cur_luogo = dynamicElement.element("dynamic-content").getText() /> 
156                    <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
157                        <#assign immagine = dynamicElement.element("dynamic-content").getData() /> 
158                        <#if immagine?has_content> 
159                            <#assign immagine = jsonFactoryUtil.createJSONObject(immagine) /> 
160                            <#if immagine?has_content> 
161                                <#assign immagine = immagine?eval /> 
162                            </#if> 
163                        </#if> 
164                    </#if> 
165                </#list> 
166                <#assign 
167                    luoghi_data += 
168                    [{ 
169                        "nome": nome_cur_luogo, 
170                        "indirizzo": indirizzo_cur_luogo, 
171                        "orari": orari_cur_luogo, 
172                        "immagine": immagine, 
173                        "urlPagina": "/portal/${relatedLuogo.getUrlTitle()}" 
174                    }] 
175                /> 
176            </#if> 
177        </#list> 
178    </#if> 
179<#-- GET DATI UO --> 
180<#assign 
181    data_UO = jsonFactoryUtil.createJSONObject(ACuraDi.getData()) 
182    has_UO = data_UO?eval?has_content 
183/> 
184<#if has_UO> 
185    <#assign relatedArticles = JournalArticleLocalService.getArticlesByResourcePrimKey(data_UO.classPK?number) /> 
186    <#if relatedArticles?? && relatedArticles?size gt 0> 
187        <#assign 
188            relatedArticle = relatedArticles[0] 
189            document = relatedArticle.getDocumentByLocale(themeDisplay.getLocale()) 
190            rootElement = document.getRootElement() 
191            url_UO = relatedArticle.getUrlTitle() 
192            nome_UO = "" 
193            descrizione_UO = "" 
194            immagine_UO = "" 
195            urlImmagine_UO = "" 
196            competenze_UO = "" 
197            indirizzo_UO = "" 
198            contatti_UO = [] 
199        /> 
200        <#if rootElement.elements()?has_content> 
201            <#list rootElement.elements() as dynamicElement> 
202                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
203                    <#assign nome_UO = dynamicElement.element("dynamic-content").getText() /> 
204                <#elseif dynamicElement.attributeValue("field-reference") == "DescrizioneBreve"> 
205                    <#assign descrizione_UO = dynamicElement.element("dynamic-content").getText() /> 
206                <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
207                    <#assign immagine_UO = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
208                    <#if immagine_UO.uuid?has_content> 
209                        <#assign urlImmagine_UO = "/portal/c/document_library/get_file?uuid=" + immagine_UO.uuid + "&amp;groupId=" + immagine_UO.groupId /> 
210                    </#if> 
211                <#elseif dynamicElement.attributeValue("field-reference") == "Competenze"> 
212                    <#assign competenze_UO = dynamicElement.element("dynamic-content").getText() /> 
213                <#elseif dynamicElement.attributeValue("field-reference") == "SedePrincipale"> 
214                    <#assign sede_UO_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
215                    <#if sede_UO_data.classPK??> 
216                        <#assign 
217                            relatedSedi = JournalArticleLocalService.getArticlesByResourcePrimKey(sede_UO_data.classPK?number) 
218                            relatedSede = relatedSedi[0] 
219                            document = relatedSede.getDocumentByLocale(themeDisplay.getLocale()) 
220                            rootElement = document.getRootElement() 
221                        /> 
222                        <#list rootElement.elements() as dynamicElement> 
223                            <#if dynamicElement.attributeValue("field-reference") == "Indirizzo"> 
224                                <#assign indirizzo_UO = dynamicElement.element("dynamic-content").getText() /> 
225                            </#if> 
226                        </#list> 
227                    </#if> 
228                <#elseif dynamicElement.attributeValue("field-reference") == "Contatti"> 
229                    <#assign 
230                        valore_contatto = "" 
231                        contatti_UO_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) 
232                        relatedContatti = JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_UO_data.classPK?number) 
233                        relatedContatto = relatedContatti[0] 
234                        document = relatedContatto.getDocumentByLocale(themeDisplay.getLocale()) 
235                        rootElement = document.getRootElement() 
236                    /> 
237                    <#list rootElement.elements() as dynamicElement> 
238                        <#if dynamicElement.element("dynamic-content").getText()?has_content> 
239                            <#assign 
240                                tipo_contatto = (dynamicElement.attributeValue("field-reference") == "URL" )?string("Sito Web", dynamicElement.attributeValue("field-reference")) 
241                                contatti_UO += 
242                                [{ 
243                                    "tipo": tipo_contatto, 
244                                    "valore": dynamicElement.element("dynamic-content").getText() 
245                                }] 
246                            /> 
247                        </#if> 
248                    </#list> 
249                </#if> 
250            </#list> 
251        </#if> 
252    </#if> 
253</#if> 
254 
255<#-- GET ALLEGATI --> 
256<#assign 
257    has_allegati = Allegati.getSiblings()?has_content 
258    allegati = [] 
259/> 
260<#if has_allegati> 
261<#list Allegati.getSiblings() as cur_allegato> 
262    <#if cur_allegato.File.getData()?? && cur_allegato.File.getData()?has_content> 
263        <#assign 
264            allegato_data=jsonFactoryUtil.createJSONObject(cur_allegato.File.data) 
265            url_allegato=cur_allegato.File.getData() 
266            nome_allegato=cur_allegato.Etichetta.getData()?has_content?string("${cur_allegato.Etichetta.getData()}", "${allegato_data.getString('title')}" ) 
267            allegati += 
268            [{ 
269                "nome": nome_allegato, 
270                "url": url_allegato 
271            }] 
272        /> 
273    </#if> 
274</#list> 
275</#if> 
276 
277<#-- GET VIDEOGALLERY --> 
278<#assign videogallery = [] /> 
279<#if GalleriaDiVideo.getData()?has_content> 
280    <#list GalleriaDiVideo.getSiblings() as cur_GalleriaDiVideo> 
281        <#assign videogallery += [cur_GalleriaDiVideo.getData()] /> 
282    </#list> 
283</#if> 
284 
285<#-- GET PHOTOGALLERY --> 
286<#assign photogallery = [] /> 
287<#if GalleriaDiImmagini.getSiblings()?has_content> 
288    <#list GalleriaDiImmagini.getSiblings() as cur_GalleriaDiImmagini> 
289        <#if cur_GalleriaDiImmagini.getData()?? && cur_GalleriaDiImmagini.getData() !=""> 
290            <#assign 
291                photogallery += 
292                [{ 
293                    "alt": cur_GalleriaDiImmagini.getAttribute("alt"), 
294                    "fileentryid": cur_GalleriaDiImmagini.getAttribute("fileEntryId"), 
295                    "src": cur_GalleriaDiImmagini.getData() 
296                }] 
297            /> 
298        </#if> 
299    </#list> 
300</#if> 
301 
302<#assign datasets = [] /> 
303<#if Dataset.getSiblings()?has_content> 
304  <#list Dataset.getSiblings() as cur_Dataset> 
305    <#assign cur_dataset_Data = jsonFactoryUtil.createJSONObject(cur_Dataset.getData()) /> 
306    <#if cur_dataset_Data.classPK?? && cur_dataset_Data?has_content> 
307        <#assign relatedDatasetS = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_dataset_Data.classPK?number) /> 
308        <#if relatedDatasetS?? && relatedDatasetS?size gt 0> 
309            <#assign 
310                relatedDataset = relatedDatasetS[0] 
311                document = relatedDataset.getDocumentByLocale(themeDisplay.getLocale()) 
312                rootElement = document.getRootElement() 
313                nome_cur_dataset = "" 
314                immagine_cur_dataset = "" 
315                descrizione_cur_dataset = "" 
316            /> 
317            <#list rootElement.elements() as dynamicElement> 
318                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
319                    <#assign nome_cur_dataset = dynamicElement.element("dynamic-content").getText() /> 
320                </#if> 
321            </#list> 
322            <#assign 
323                datasets += 
324                [{ 
325                    "nome": nome_cur_dataset, 
326                    "url": "${cur_Dataset.getFriendlyUrl()}" 
327                }] 
328            /> 
329        </#if> 
330    </#if> 
331  </#list> 
332</#if> 
333 
334<div class="container"> 
335    <div class="row"> 
336        <div class="col-12 col-lg-10"> 
337            <div class="cmp-heading pb-3 pb-lg-4"> 
338                <div class="row"> 
339                    <div class="col-lg-8 px-lg-4 py-lg-2"> 
340                        <h1> 
341                            ${Titolo.getData()} 
342                        </h1> 
343                        <h2 class="visually-hidden"><@liferay.language key="details" />:</h2> 
344                        <p> 
345                            ${DescrizioneBreve.getData()} 
346                        </p> 
347                        <div class="row mt-5 mb-4"> 
348                            <div class="col"> 
349                                <small><@liferay.language key="date" />:</small> 
350                                <p class="fw-semibold font-monospace"> 
351                                    <#assign DataDellaNotizia_Data = getterUtil.getString(DataDellaNotizia.getData())> 
352 
353                                    <#if validator.isNotNull(DataDellaNotizia_Data)> 
354                                    <#assign DataDellaNotizia_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataDellaNotizia_Data, locale)> 
355 
356                                    ${dateUtil.getDate(DataDellaNotizia_DateObj, "dd/MM/yyyy", locale)} 
357                                    </#if> 
358                                </p> 
359                            </div> 
360 
361                            <#assign DataDiScadenza_Data = getterUtil.getString(DataDiScadenza.getData())> 
362                            <#if validator.isNotNull(DataDiScadenza_Data)> 
363                            <div class="col"> 
364                                <small><@liferay.language key="expiration-date" />:</small> 
365                                <p class="fw-semibold font-monospace"> 
366 
367                                    <#assign DataDiScadenza_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataDiScadenza_Data, locale)> 
368 
369                                    ${dateUtil.getDate(DataDiScadenza_DateObj, "dd/MM/yyyy", locale)} 
370                                </p> 
371                            </div> 
372                            </#if> 
373 
374                            <#if TempoDiLettura.getData() !=""> 
375                            <div class="col"> 
376                                <small><@liferay.language key="reading-time" />:</small> 
377                                <p class="fw-semibold">${TempoDiLettura.getData()} min</p> 
378                            </div> 
379                            </#if> 
380                            <#if NumeroProgressivoComunicatoStampa.getData() !=""> 
381                            <div class="col"> 
382                                <small><@liferay.language key="press-progressive-number" />:</small> 
383                                <p class="fw-semibold"> 
384                                    ${NumeroProgressivoComunicatoStampa.getData()} 
385                                </p> 
386                            </div> 
387                            </#if> 
388                        </div> 
389                    </div> 
390 
391                    <div class="col-lg-3 offset-lg-1 mt-5 mt-lg-0"> 
392                        <div class="dropdown" id="fallback-share"> 
393                            <button 
394                                aria-label="condividi sui social" 
395                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-6 text-primary" 
396                                type="button" 
397                                id="shareActions" 
398                                data-bs-toggle="dropdown" 
399                                aria-haspopup="true" 
400                                aria-expanded="false" 
401
402                                <svg class="icon icon-primary" aria-hidden="true"> 
403                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-share"></use> 
404                                </svg> 
405                                <small><@liferay.language key="share" /></small> 
406                            </button> 
407                            <div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
408                                <div class="link-list-wrapper"> 
409                                    <ul class="link-list" role="menu"> 
410                                        <li role="none"> 
411                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('facebook')"> 
412                                                <svg class="icon icon-primary" aria-hidden="true"> 
413                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-facebook"></use> 
414                                                </svg> 
415                                                <span>Facebook</span> 
416                                            </button> 
417                                        </li> 
418                                        <li role="none"> 
419                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('twitter')"> 
420                                                <svg class="icon icon-primary" aria-hidden="true"> 
421                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-twitter"></use> 
422                                                </svg> 
423                                                <span><@liferay.language key="Twitter" /></span> 
424                                            </button> 
425                                        </li> 
426                                        <li role="none"> 
427                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('whatsapp')"> 
428                                                <svg class="icon icon-primary" aria-hidden="true"> 
429                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-whatsapp"></use> 
430                                                </svg> 
431                                                <span>Whatsapp</span> 
432                                            </button> 
433                                        </li> 
434                                    </ul> 
435                                </div> 
436                            </div> 
437                        </div> 
438 
439                        <div class="dropdown"> 
440                            <button 
441                                aria-label="vedi azioni da compiere sulla pagina" 
442                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" 
443                                type="button" 
444                                id="viewActions" 
445                                data-bs-toggle="dropdown" 
446                                aria-haspopup="true" 
447                                aria-expanded="false" 
448
449                                <svg class="icon icon-primary" aria-hidden="true"> 
450                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-more-items"></use> 
451                                </svg> 
452                                <small><@liferay.language key="actions" /></small> 
453                            </button> 
454                            <div class="dropdown-menu shadow-lg" aria-labelledby="viewActions"> 
455                                <div class="link-list-wrapper"> 
456                                    <ul class="link-list" role="menu"> 
457                                        <li role="none"> 
458                                            <button class="list-item px-3 fs-6 text-primary" onclick="window.print()" role="menuitem"> 
459                                                <svg class="icon icon-primary" aria-hidden="true"> 
460                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-print"></use> 
461                                                </svg> 
462                                                <span><@liferay.language key="print" /></span> 
463                                            </button> 
464                                        </li> 
465                                        <li role="none"> 
466                                            <a class="list-item mail-anchor px-3 fs-6" href="mailto:" role="menuitem"> 
467                                                <svg class="icon icon-primary" aria-hidden="true"> 
468                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-mail"></use> 
469                                                </svg> 
470                                                <span><@liferay.language key="send" /></span> 
471                                            </a> 
472                                        </li> 
473                                    </ul> 
474                                </div> 
475                            </div> 
476                        </div> 
477 
478                        <#list argomenti> 
479                        <div class="mt-4 mb-3"> 
480                            <div class="mb-2 small fw-semibold"><@liferay.language key="topics" />:</div> 
481                            <ul> 
482                                <#items as argomento> 
483                                <li> 
484                                    <a href="${argomento.url}" class="chip chip-simple" data-element="service-topic"> 
485                                        <span class="chip-label"> 
486                                            ${argomento.name} 
487                                        </span> 
488                                    </a> 
489                                </li> 
490                                </#items> 
491                            </ul> 
492                        </div> 
493                        </#list> 
494                    </div> 
495                </div> 
496            </div> 
497        </div> 
498    </div> 
499</div> 
500 
501<#if Immagine.getData()?? && Immagine.getData() !=""> 
502<div class="container-fluid my-3"> 
503    <div class="row"> 
504        <figure class="figure px-0 img-full"> 
505            <img src="${Immagine.getData()}" class="figure-img img-fluid" alt="${Immagine.getAttribute("alt")}"> 
506            <figcaption class="figure-caption text-center pt-3"> 
507                ${Immagine.getAttribute("alt")} 
508            </figcaption> 
509        </figure> 
510    </div> 
511</div> 
512</#if> 
513 
514<div class="container"> 
515    <div class="row border-top border-light row-column-border row-column-menu-left"> 
516        <aside class="col-12 col-lg-3 mb-4 border-col"> 
517            <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one"> 
518                <nav 
519                    class="navbar it-navscroll-wrapper navbar-expand-lg" 
520                    data-bs-navscroll="" 
521                    aria-labelledby="page-index-btn" 
522
523                    <div class="navbar-custom" id="navbarNavProgress"> 
524                        <div class="menu-wrapper"> 
525                            <div class="link-list-wrapper"> 
526                                <div class="accordion"> 
527                                    <div class="accordion-item"> 
528                                        <span class="accordion-header" id="accordion-title-one"> 
529                                            <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" 
530                                                id="page-index-btn" 
531
532                                                <@liferay.language key="page-index" /> 
533                                                <svg class="icon icon-xs right" viewBox="0 0 24 24"> 
534                                                    <path d="M11.6 15.4L6 9.8l.7-.8 4.9 4.9L16.5 9l.7.8z"></path> 
535                                                </svg> 
536                                            </button> 
537                                        </span> 
538                                        <div class="progress"> 
539                                            <div class="progress-bar it-navscroll-progressbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;" aria-label="percentuale di scorrimento"></div> 
540                                        </div> 
541                                        <div id="collapse-one" class="accordion-collapse collapse show" role="region" aria-labelledby="accordion-title-one"> 
542                                            <div class="accordion-body"> 
543                                                <ul class="link-list" data-element="page-index"> 
544 
545                                                    <#if Descrizione.getData()?has_content> 
546                                                    <@navigatorLink sectionId="description" title="${languageUtil.get(locale, 'description')}" /> 
547                                                    </#if> 
548 
549                                                    <#if luoghi_data?size gt 0> 
550                                                    <@navigatorLink sectionId="places" title="${languageUtil.get(locale, 'places')}" /> 
551                                                    </#if> 
552 
553                                                    <#if photogallery?size gt 0> 
554                                                    <@navigatorLink sectionId="photogallery" title="${languageUtil.get(locale, 'image-gallery')}" /> 
555                                                    </#if> 
556 
557                                                    <#if videogallery?size gt 0> 
558                                                    <@navigatorLink sectionId="videogallery" title="${languageUtil.get(locale, 'video-gallery')}" /> 
559                                                    </#if> 
560 
561                                                    <#if (has_UO || persone_Notizia?size gt 0) && nome_UO?has_content> 
562                                                    <@navigatorLink sectionId="office" title="${languageUtil.get(locale, 'edited-by')}" /> 
563                                                    </#if> 
564 
565                                                    <#if has_allegati && allegati?size gt 0> 
566                                                    <@navigatorLink sectionId="attachments" title="${languageUtil.get(locale, 'attachments')}" /> 
567                                                    </#if> 
568 
569                                                    <#if datasets?size gt 0> 
570                                                    <@navigatorLink sectionId="datasets" title="${languageUtil.get(locale, 'dataset')}" /> 
571                                                    </#if> 
572 
573                                                </ul> 
574                                            </div> 
575                                        </div> 
576                                    </div> 
577                                </div> 
578                            </div> 
579                        </div> 
580                    </div> 
581                </nav> 
582            </div> 
583        </aside> 
584        <div class="col-12 col-lg-8 offset-lg-1"> 
585            <div class="it-page-sections-container"> 
586 
587                <#if Descrizione.getData()?has_content> 
588                <section class="it-page-section mb-30" id="description"> 
589                    <h2 class="title-xxlarge mb-3"><@liferay.language key="description" /></h2> 
590                    <div class="richtext-wrapper lora"> 
591                        ${Descrizione.getData()} 
592                    </div> 
593                </section> 
594                </#if> 
595 
596                <#list luoghi_data> 
597                <section class="it-page-section mb-30" id="places"> 
598                    <h2 class="title-xxlarge mb-3"><@liferay.language key="places" /></h2> 
599                    <div class="row"> 
600                        <#items as luogo> 
601                            <div class="col-12 col-lg-6"> 
602                                <div class="card-wrapper rounded h-auto mt-10"> 
603                                    <div class="card card-teaser card-teaser-info rounded shadow-sm p-3"> 
604                                        <div class="card-body pe-3"> 
605                                            <a class="card-title text-paragraph-regular-medium-semi mb-3 primary-color-b3" href="${luogo.urlPagina}"> 
606                                                ${luogo.nome} 
607                                            </a> 
608                                            <div class="card-text"> 
609                                                ${luogo.indirizzo} 
610                                            </div> 
611                                        </div> 
612                                        <#if luogo.immagine?has_content && luogo.immagine.url??> 
613                                            <div class="avatar size-xl"> 
614                                                <#assign url_immagine="${luogo.immagine.url}" /> 
615                                                <a href="${luogo.urlPagina}"> 
616                                                    <img 
617                                                        src="${luogo.immagine.url}" 
618                                                        style="aspect-ratio: 1;" 
619                                                        alt="${luogo.immagine.alt}" 
620                                                    /> 
621                                                </a> 
622                                            </div> 
623                                        </#if> 
624                                    </div> 
625                                </div> 
626                            </div> 
627                        </#items> 
628                    </div> 
629                </section> 
630                </#list> 
631 
632                <#list photogallery> 
633                <section class="it-page-section mb-30" id="photogallery"> 
634                    <h2 class="title-xxlarge mb-3"><@liferay.language key="image-gallery" /></h2> 
635                    <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"> 
636                        <div class="splide__track" id="splide01-track" style="padding-left: 0px; padding-right: 0px;"> 
637                            <ul class="splide__list it-carousel-all" id="splide01-list" style="transform: translateX(0px);"> 
638                                <#items as img> 
639                                    <li 
640                                        class="splide__slide is-active is-visible h-100" 
641                                        id="splide01-slide0${img?counter}" 
642                                        style="margin-right: 24px; width: calc(calc(100% / 3) - 16px);" 
643                                        tabindex="0" 
644                                        data-focus-mouse="false" 
645
646                                        <div class="it-single-slide-wrapper"> 
647                                            <figure> 
648                                                <a 
649                                                    href="${img.src}" 
650                                                    aria-labelledby="photogallery-item-${img?counter}" 
651                                                    target="_blank" 
652                                                    rel="noopener noreferrer" 
653
654                                                    <img 
655                                                        id="photogallery-item-${img?counter}" 
656                                                        src="${img.src}" 
657                                                        alt="${img.alt}" 
658                                                        class="img-fluid" 
659                                                        style="width: 100%; aspect-ratio: 1; object-fit: cover; object-position: center;" 
660                                                        loading="lazy" 
661
662                                                </a> 
663                                                <figcaption class="figure-caption mt-2"> 
664                                                    ${img.alt} 
665                                                </figcaption> 
666                                            </figure> 
667                                        </div> 
668                                    </li> 
669                                </#items> 
670                            </ul> 
671                        </div> 
672                    </div> 
673                </section> 
674                </#list> 
675 
676                <#list videogallery> 
677                <section class="it-page-section mb-30" id="videogallery"> 
678                    <h2 class="mb-3"><@liferay.language key="video-gallery" /></h2> 
679                    <div id="iframe-wrapper"> 
680                        <#items as cur_Sezione_URLVideo> 
681                            <div class="iframe-element"> 
682                                ${cur_Sezione_URLVideo} 
683                            </div> 
684                        </#items> 
685                    </div> 
686                </section> 
687                </#list> 
688 
689                <#if (has_UO || persone_Notizia?size gt 0) && nome_UO?has_content> 
690                <section class="it-page-section mb-30" id="office"> 
691                    <h2 class="mb-3"><@liferay.language key="edited-by" /></h2> 
692                    <div class="row"> 
693                        <#if has_UO> 
694                        <div class="col-12 col-lg-6"> 
695                            <div class="card-wrapper rounded h-auto mt-10"> 
696                                <div class="card card-teaser card-teaser-info rounded shadow-sm p-3"> 
697                                    <div class="card-body pe-3"> 
698                                        <div class="mb-3"> 
699                                            <a class="card-title text-paragraph-regular-medium-semi primary-color-b3" href="/portal/-/${url_UO}"> 
700                                                ${nome_UO} 
701                                            </a> 
702                                            <#if indirizzo_UO?has_content> 
703                                                <small class="d-block"> 
704                                                    ${indirizzo_UO} 
705                                                </small> 
706                                            </#if> 
707                                        </div> 
708                                        <div class="card-text"> 
709                                            <#list contatti_UO> 
710                                            <div class="col-12 rounded p-0"> 
711                                                <#items as contatto> 
712                                                <div> 
713                                                    <#assign url_type="" /> 
714                                                    <#if 
715                                                        contatto.tipo=="Email" 
716                                                        || contatto.tipo=="PEC" 
717
718                                                        <#assign url_type="mailto:" /> 
719                                                    <#elseif 
720                                                        contatto.tipo=="Telefono" 
721                                                        || contatto.tipo=="Whatsapp" 
722                                                        || contatto.tipo=="Telegram" 
723
724                                                        <#assign url_type="tel:" /> 
725                                                    </#if> 
726                                                    <span class="fw-semibold"> 
727                                                        <@liferay.language key="${contatto.tipo?replace(' ', '-')}" />:</span> 
728                                                    <span class="ms-1"> 
729                                                        <a 
730                                                            href="${url_type}${contatto.valore}" 
731                                                            target="_blank" 
732                                                            class="t-primary" 
733
734                                                            ${contatto.valore} 
735                                                        </a> 
736                                                    </span> 
737                                                </div> 
738                                                </#items> 
739                                            </div> 
740                                            </#list> 
741                                        </div> 
742                                    </div> 
743                                    <#if urlImmagine_UO !=""> 
744                                    <div class="avatar size-xl"> 
745                                        <a href="#"> 
746                                            <img 
747                                                alt="Immagine unità organizzativa responsabile" 
748                                                src="${urlImmagine_UO}" 
749                                                style="aspect-ratio: 1;" 
750                                            /> 
751                                        </a> 
752                                    </div> 
753                                    </#if> 
754                                </div> 
755                            </div> 
756                        </div> 
757                        </#if> 
758                        <#list persone_Notizia> 
759                        <div class="col-12 col-lg-6"> 
760                            <div class="mb-2"><@liferay.language key="people" />:</div> 
761                            <ul> 
762                                <#items as persona> 
763                                <li> 
764                                    <a href="${persona.url}" class="chip chip-simple" data-element="service-topic"> 
765                                        <span class="chip-label"> 
766                                            ${persona.nome} 
767                                        </span> 
768                                    </a> 
769                                </li> 
770                                </#items> 
771                            </ul> 
772                        </div> 
773                        </#list> 
774                    </div> 
775                </section> 
776                </#if> 
777 
778                <#list allegati> 
779                <section class="it-page-section mb-30" id="attachments"> 
780                    <h2 class="mb-3"><@liferay.language key="attachments" /></h2> 
781                    <div class="col-12"> 
782                        <ul class="p-3 my-3 shadow rounded"> 
783                            <#items as allegato> 
784                            <li group="attachments"> 
785                                <div class="d-flex align-items-center ${allegato?has_next?string(' mb-2', '')}"> 
786                                    <a class="text-decoration_none fw-semibold t-primary" target="_blank" href="${allegato.url}"> 
787                                        <svg class="icon icon-primary icon-lh me-2 d-inline" aria-hidden="true" viewBox="0 0 24 24"> 
788                                            <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" /> 
789                                        </svg> 
790                                        ${allegato.nome} 
791                                    </a> 
792                                </div> 
793                            </li> 
794                            </#items> 
795                        </ul> 
796                    </div> 
797                </section> 
798                </#list> 
799 
800                <#list datasets> 
801                <section class="it-page-section mb-30" id="datasets"> 
802                    <h2 class="mb-3"><@liferay.language key="dataset" /></h2> 
803                    <div class="col-12"> 
804                        <ul class="p-3 my-3 shadow rounded"> 
805                            <#items as dataset> 
806                            <li group="attachments"> 
807                                <div class="d-flex align-items-center ${dataset?has_next?string(' mb-2', '')}"> 
808                                    <a class="text-decoration_none fw-semibold t-primary" target="_blank" href="${dataset.url}"> 
809                                        <svg class="icon icon-primary me-2" aria-hidden="true"> 
810                                            <use xlink:href="/portal/o/agid-liferay-theme/images/sprite.svg#it-external-link"></use> 
811                                        </svg> 
812                                        ${dataset.nome} 
813                                    </a> 
814                                </div> 
815                            </li> 
816                            </#items> 
817                        </ul> 
818                    </div> 
819                </section> 
820                </#list> 
821 
822            </div> 
823            <div class="mt-3"> 
824                <#-- DATA ULTIMA MODIFICA --> 
825                <#assign 
826                    modifiedDate = .vars['reserved-article-modified-date'].getData()?split(", ")[1]?split(" +")[0] 
827                    displayModifiedDate = modifiedDate?datetime("dd MMM yyyy hh:mm:ss")?datetime 
828                /> 
829                <p class="text-paragraph-small mb-0 lora"> 
830                    <span class="fw-semibold"><@liferay.language key="last-update-date" />: </span> 
831                    <span> 
832                        ${displayModifiedDate?string.short} 
833                    </span> 
834                </p> 
835            </div> 
836        </div> 
837    </div> 
838</div> 
839 
840<style> 
841    section { 
842        scroll-margin-top: 2.5rem; 
843
844</style> 
845 
846<script defer> 
847    document.querySelectorAll(".mail-anchor").forEach(anchor => anchor.href = "mailto:&subject=${Titolo.getData()}&body=" + window.location.href); 
848 
849    function shareOn(type) { 
850        let articleUrl = window.location.href; 
851        const mapping = { 
852            "facebook": "https://facebook.com/sharer/sharer.php?u=" + articleUrl, 
853            "twitter": "https://twitter.com/intent/tweet/?text=" + articleUrl, 
854            "linkedin": "http://www.linkedin.com/sharing/share-offsite/?url=" + articleUrl, 
855            "whatsapp": "whatsapp://send?text=" + articleUrl 
856
857 
858        window.open(mapping[type], "_blank"); 
859        return 
860
861 
862    function bringMeTo(id) { 
863        document.getElementById(id).scrollIntoView({behavior: 'smooth'}); 
864
865 
866</script> 
867 
868<#macro navigatorLink sectionId title> 
869<#local desc = "" /> 
870 
871<#if title?? && title?has_content> 
872    <#local desc = title /> 
873<#else> 
874    <#local desc = sectionId /> 
875</#if> 
876 
877<li class="nav-item"> 
878    <a 
879        class="nav-link active" 
880        onclick="bringMeTo('${sectionId}')" 
881        role="button" 
882        aria-label="${languageUtil.get(locale, 'go-to-section')}: ${title}" 
883
884        <span class="title-medium">${title}</span> 
885    </a> 
886</li> 
887</#macro>