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#35034" at line 19, 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_evento = 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 BOOLEANI --> 
73<#assign 
74    has_photo_gallery = GalleriaDiImmagini.getData()?has_content 
75    has_video_gallery = GalleriaDiVideo.getData()?has_content 
76    has_media =  has_photo_gallery || has_video_gallery 
77    has_evento_genitore = jsonFactoryUtil.createJSONObject(EventoGenitore.getData())?eval?has_content 
78    has_appuntamenti = Appuntamenti.getData()?has_content 
79    allegati = [] 
80    immagini_galleria = [] 
81/> 
82 
83<#-- GET TIPO EVENTO E ARGOMENTI --> 
84<#assign 
85    tipo_evento = [] 
86    argomenti = [] 
87/> 
88<#list categorie_evento as categoryEntry> 
89    <#assign 
90        vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) 
91        className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory") 
92        friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId) 
93        friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId) 
94        cat_name = categoryEntry.name 
95        cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true), 
96        cat_url = friendlyUrlList[0].urlTitle 
97    /> 
98    <#assign vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) /> 
99    <#if vocabulary.name == "tassonomia argomento"> 
100        <#assign 
101            argomenti += 
102            [{ 
103                "name": cat_localized_name, 
104                "url": cat_url 
105            }] 
106        /> 
107 
108    <#elseif vocabulary.name == "tassonomia tipo di evento" || vocabulary.getDescription() == "tipo evento" /> 
109        <#assign tipo_evento += [ cat_localized_name ] /> 
110    </#if> 
111</#list> 
112 
113<#assign has_argomenti = argomenti?size gt 0 /> 
114 
115<#-- GET ALLEGATI --> 
116<#if Allegati.getSiblings()?has_content> 
117    <#list Allegati.getSiblings() as cur_allegato> 
118        <#if cur_allegato.File.getData()?has_content> 
119            <#assign 
120                url_allegato = "" 
121                nome_allegato = "" 
122                allegato_data = jsonFactoryUtil.createJSONObject(cur_allegato.File.data) 
123                url_allegato = cur_allegato.File.getData() 
124                nome_allegato = cur_allegato.Etichetta.getData()?has_content?string("${cur_allegato.Etichetta.getData()}", "${cur_allegato.File.getData()}" ) 
125                allegati += 
126                [{ 
127                    "url": url_allegato, 
128                    "nome": nome_allegato 
129                }] 
130            /> 
131        </#if> 
132    </#list> 
133</#if> 
134 
135<#if has_photo_gallery> 
136    <#list GalleriaDiImmagini.getSiblings() as cur_GalleriaDiImmagini> 
137        <#if cur_GalleriaDiImmagini.getData()?? && cur_GalleriaDiImmagini.getData() != ""> 
138            <#assign 
139                immagini_galleria += 
140                [{ 
141                    "alt": cur_GalleriaDiImmagini.getAttribute("alt")!"", 
142                    "fileentryid": cur_GalleriaDiImmagini.getAttribute("fileEntryId"), 
143                    "src": cur_GalleriaDiImmagini.getData() 
144                }] 
145            /> 
146        </#if> 
147    </#list> 
148</#if> 
149 
150<#if has_evento_genitore> 
151    <#assign 
152        evento_genitore_data = jsonFactoryUtil.createJSONObject(EventoGenitore.getData()) 
153        tipi_evento_genitore = [] 
154        relatedGenitori = JournalArticleLocalService.getArticlesByResourcePrimKey(evento_genitore_data.classPK?number) 
155    /> 
156    <#if relatedGenitori?? && relatedGenitori?size gt 0> 
157        <#assign 
158            relatedGenitore = relatedGenitori[0] 
159            document = relatedGenitore.getDocumentByLocale(themeDisplay.getLocale()) 
160            rootElement = document.getRootElement() 
161            url_genitore = "/portal/-/${relatedGenitore.getUrlTitle()}" 
162            nome_genitore = "" 
163            descrizione_genitore = "" 
164            immagine_genitore = "" 
165            competenze_genitore = "" 
166            data_inizio_genitore = "" 
167            contatti_genitore = [] 
168            evento_genitore_categories = assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", evento_genitore_data.classPK?number) 
169        /> 
170        <#list evento_genitore_categories as categoryEntry> 
171            <#assign 
172                vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) 
173                className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory") 
174                friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId) 
175                friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId) 
176                cat_name = categoryEntry.name 
177                cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true), 
178                cat_url = friendlyUrlList[0].urlTitle 
179            /> 
180            <#if 
181                vocabulary.name == "tassonomia tipo di evento" 
182                || vocabulary.getDescription() == "tipo evento" 
183
184                <#assign tipi_evento_genitore += [ cat_localized_name ] /> 
185            </#if> 
186        </#list> 
187 
188        <#if rootElement.elements()?has_content> 
189            <#list rootElement.elements() as dynamicElement> 
190                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
191                    <#assign nome_genitore = dynamicElement.element("dynamic-content").getText() /> 
192                <#elseif  dynamicElement.attributeValue("field-reference") == "DescrizioneBreve"> 
193                    <#assign descrizione_genitore = dynamicElement.element("dynamic-content").getText() /> 
194                <#elseif  dynamicElement.attributeValue("field-reference") == "DataInizio"> 
195                    <#assign data_inizio_genitore = getterUtil.getString(dynamicElement.element("dynamic-content").getData())?datetime("yyyy-MM-dd HH:mm")?string["dd/MM/yyyy"] /> 
196                    <#assign data_inizio_genitore_day = getterUtil.getString(dynamicElement.element("dynamic-content").getData())?datetime("yyyy-MM-dd HH:mm")?string["dd"] /> 
197                    <#assign data_inizio_genitore_month = getterUtil.getString(dynamicElement.element("dynamic-content").getData())?datetime("yyyy-MM-dd HH:mm")?string["MMMM"] /> 
198                <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
199                    <#assign immagine_genitore = dynamicElement.element("dynamic-content").getText() /> 
200                    <#if immagine_genitore?has_content> 
201                        <#assign immagine_genitore = jsonFactoryUtil.createJSONObject(immagine_genitore) /> 
202                        <#if immagine_genitore?has_content> 
203                            <#assign immagine_genitore = immagine_genitore?eval /> 
204                        </#if> 
205                    </#if> 
206                <#elseif dynamicElement.attributeValue("field-reference") == "Competenze"> 
207                    <#assign competenze_genitore = dynamicElement.element("dynamic-content").getText() /> 
208                <#elseif dynamicElement.attributeValue("field-reference") == "Contatti"> 
209                    <#assign 
210                        contatti_genitore_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) 
211                        relatedContatti = JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_UO_data.classPK?number) 
212                        tipo_contatto = "" 
213                        valore_contatto = "" 
214                        categorie_contatti = assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",contatti_UO_data.classPK?number) 
215                        relatedContatto = relatedContatti[0] 
216                        document = relatedContatto.getDocumentByLocale(themeDisplay.getLocale()) 
217                        rootElement = document.getRootElement() 
218                    /> 
219 
220                    <#list categorie_contatti as categoryEntry> 
221                        <#assign 
222                            vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) 
223                            className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory") 
224                            friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId) 
225                            friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId) 
226                            cat_name = categoryEntry.name 
227                            cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true), 
228                            cat_url = friendlyUrlList[0].urlTitle 
229                        /> 
230                        <#if categoryEntry.name?lower_case == "url"> 
231                            <#assign tipo_contatto = "${languageUtil.get(locale, 'Sito-Web')}" /> 
232                        <#else> 
233                            <#assign tipo_contatto = cat_localized_name /> 
234                        </#if> 
235                    </#list> 
236 
237                    <#list rootElement.elements() as dynamicElement> 
238                        <#if dynamicElement.attributeValue("name") == "Valore"> 
239                            <#assign valore_contatto = dynamicElement.element("dynamic-content").getText()/> 
240                        </#if> 
241                    </#list> 
242 
243                    <#assign contatti_UO += [tipo_contatto?string, valore_contatto?string] /> 
244                </#if> 
245            </#list> 
246        </#if> 
247    </#if> 
248</#if> 
249 
250<#assign appuntamenti = [] /> 
251<#if Appuntamenti.getSiblings()?has_content> 
252    <#list Appuntamenti.getSiblings() as cur_Appuntamenti> 
253        <#assign 
254            evento_appuntamento_data = jsonFactoryUtil.createJSONObject(cur_Appuntamenti.getData()) 
255        /> 
256        <#if evento_appuntamento_data.classPK?has_content> 
257            <#assign 
258                tipi_evento_appuntamento = [] 
259                relatedAppuntamenti = JournalArticleLocalService.getArticlesByResourcePrimKey(evento_appuntamento_data.classPK?number) 
260                relatedAppuntamento = relatedAppuntamenti[0] 
261                document = relatedAppuntamento.getDocumentByLocale(themeDisplay.getLocale()) 
262                rootElement = document.getRootElement() 
263                url_appuntamento = "/portal/-/${relatedAppuntamento.getUrlTitle()}" 
264                nome_appuntamento = "" 
265                descrizione_appuntamento = "" 
266                immagine_appuntamento = "" 
267                data_inizio_appuntamento = "" 
268                evento_appuntamento_categories = assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", evento_appuntamento_data.classPK?number) 
269            /> 
270            <#list evento_appuntamento_categories as categoryEntry> 
271            <#assign 
272                vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) 
273                className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory") 
274                friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId) 
275                friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId) 
276                cat_name = categoryEntry.name 
277                cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true), 
278                cat_url = friendlyUrlList[0].urlTitle 
279            /> 
280                <#if 
281                    vocabulary.name == "tassonomia tipo di evento" 
282                    || vocabulary.getDescription() == "tipo evento" 
283
284                    <#assign tipi_evento_appuntamento += [ cat_localized_name ] /> 
285                </#if> 
286            </#list> 
287 
288            <#if rootElement.elements()?has_content> 
289                <#list rootElement.elements() as dynamicElement> 
290                    <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
291                        <#assign nome_appuntamento = dynamicElement.element("dynamic-content").getText() /> 
292                    <#elseif  dynamicElement.attributeValue("field-reference") == "DescrizioneBreve"> 
293                        <#assign descrizione_appuntamento = dynamicElement.element("dynamic-content").getText() /> 
294                    <#elseif  dynamicElement.attributeValue("field-reference") == "DataInizio"> 
295                        <#assign data_inizio_appuntamento = getterUtil.getString(dynamicElement.element("dynamic-content").getData())?datetime("yyyy-MM-dd HH:mm")?string["dd/MM/yyyy"] /> 
296                        <#assign data_inizio_appuntamento_day = getterUtil.getString(dynamicElement.element("dynamic-content").getData())?datetime("yyyy-MM-dd HH:mm")?string["dd"] /> 
297                        <#assign data_inizio_appuntamento_month = getterUtil.getString(dynamicElement.element("dynamic-content").getData())?datetime("yyyy-MM-dd HH:mm")?string["MMMM"] /> 
298                    <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
299                        <#assign immagine_appuntamento = dynamicElement.element("dynamic-content").getText() /> 
300                        <#if immagine_appuntamento?has_content> 
301                            <#assign immagine_appuntamento = jsonFactoryUtil.createJSONObject(immagine_appuntamento) /> 
302                            <#if immagine_appuntamento?has_content> 
303                                <#assign immagine_appuntamento = immagine_appuntamento?eval /> 
304                            </#if> 
305                        </#if> 
306                    <#elseif dynamicElement.attributeValue("field-reference") == "Competenze"> 
307                        <#assign competenze_appuntamento = dynamicElement.element("dynamic-content").getText() /> 
308                    </#if> 
309                </#list> 
310                <#assign appuntamenti += 
311                [{ 
312                    "nome": nome_appuntamento, 
313                    "immagine": immagine_appuntamento, 
314                    "descrizione": descrizione_appuntamento, 
315                    "data_inizio": data_inizio_appuntamento, 
316                    "giorno": data_inizio_appuntamento_day, 
317                    "mese": data_inizio_appuntamento_month, 
318                    "tipi": tipi_evento_appuntamento, 
319                    "url": url_appuntamento 
320                }] /> 
321            </#if> 
322        </#if> 
323    </#list> 
324</#if> 
325 
326<#-- GET LUOGO_DATA --> 
327<#assign 
328    luogo_data = jsonFactoryUtil.createJSONObject(Luogo.getData()) 
329    has_luogo = luogo_data?eval?has_content 
330/> 
331 
332<#if has_luogo> 
333    <#assign relatedLuoghi = JournalArticleLocalService.getArticlesByResourcePrimKey(luogo_data.classPK?number) /> 
334    <#if relatedLuoghi?? && relatedLuoghi?size gt 0> 
335        <#assign 
336            relatedLuogo = relatedLuoghi[0] 
337            document = relatedLuogo.getDocumentByLocale(themeDisplay.getLocale()) 
338            rootElement = document.getRootElement() 
339            nome_luogo = "" 
340            url_luogo = "${relatedLuogo.getUrlTitle()}" 
341            indirizzo_luogo = "" 
342            orari_luogo = "" 
343            immagine_luogo = "" 
344            urlImmagine_luogo = "" 
345            has_immagine_luogo = false 
346        /> 
347        <#list rootElement.elements() as dynamicElement> 
348            <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
349                <#assign nome_luogo = dynamicElement.element("dynamic-content").getText() /> 
350            <#elseif dynamicElement.attributeValue("field-reference") == "Indirizzo"> 
351                <#assign indirizzo_luogo = dynamicElement.element("dynamic-content").getText() /> 
352            <#elseif dynamicElement.attributeValue("field-reference") == "OrarioPerIlPubblico"> 
353                <#assign orari_luogo = dynamicElement.element("dynamic-content").getText() /> 
354            <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
355                <#assign immagine_luogo = "" /> 
356                <#if dynamicElement.element("dynamic-content")??> 
357                    <#assign immagine_luogo = dynamicElement.element("dynamic-content").getText() /> 
358                    <#if immagine_luogo?has_content> 
359                        <#assign immagine_luogo = jsonFactoryUtil.createJSONObject(immagine_luogo) /> 
360                        <#if immagine_luogo?has_content && immagine_luogo.url?has_content> 
361                            <#assign 
362                                immagine_luogo = immagine_luogo?eval 
363                                has_immagine_luogo = immagine_luogo?has_content && immagine_luogo.url?has_content /> 
364                        <#else> 
365                            <#assign has_immagine_luogo = false /> 
366                        </#if> 
367                    </#if> 
368                </#if> 
369            </#if> 
370        </#list> 
371    </#if> 
372</#if> 
373<#-- GET DATI UO --> 
374<#assign 
375    data_UO = jsonFactoryUtil.createJSONObject(OrganizzatoDa.getData()) 
376    has_UO = data_UO?eval?has_content 
377/> 
378<#if has_UO> 
379    <#assign relatedArticles = JournalArticleLocalService.getArticlesByResourcePrimKey(data_UO.classPK?number) /> 
380    <#if relatedArticles?? && relatedArticles?size gt 0> 
381        <#assign relatedArticle = relatedArticles[0] /> 
382        <#if relatedArticles?? && relatedArticles?size gt 0> 
383            <#assign 
384                document = relatedArticle.getDocumentByLocale(themeDisplay.getLocale()) 
385                rootElement = document.getRootElement() 
386                url_UO = relatedArticle.getUrlTitle() 
387                nome_UO = "" 
388                descrizione_UO = "" 
389                immagine_UO = "" 
390                urlImmagine_UO = "" 
391                competenze_UO = "" 
392                indirizzo_UO = "" 
393                contatti_UO = [] 
394            /> 
395            <#if rootElement.elements()?has_content> 
396                <#list rootElement.elements() as dynamicElement> 
397                    <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
398                        <#assign nome_UO = dynamicElement.element("dynamic-content").getText() /> 
399                    <#elseif dynamicElement.attributeValue("field-reference") == "DescrizioneBreve"> 
400                        <#assign descrizione_UO = dynamicElement.element("dynamic-content").getText() /> 
401                    <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
402                        <#assign immagine_UO = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
403                        <#if immagine_UO.uuid?has_content> 
404                            <#assign urlImmagine_UO = "/portal/c/document_library/get_file?uuid=" + immagine_UO.uuid + "&amp;groupId=" + immagine_UO.groupId /> 
405                        </#if> 
406                    <#elseif dynamicElement.attributeValue("field-reference") == "Competenze"> 
407                        <#assign competenze_UO = dynamicElement.element("dynamic-content").getText() /> 
408                    <#elseif dynamicElement.attributeValue("field-reference") == "SedePrincipale"> 
409                        <#assign sede_UO_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
410                        <#if sede_UO_data.classPK??> 
411                            <#assign 
412                                relatedSedi = JournalArticleLocalService.getArticlesByResourcePrimKey(sede_UO_data.classPK?number) 
413                                relatedSede = relatedSedi[0] 
414                                document = relatedSede.getDocumentByLocale(themeDisplay.getLocale()) 
415                                rootElement = document.getRootElement() 
416                            /> 
417                            <#list rootElement.elements() as dynamicElement> 
418                                <#if dynamicElement.attributeValue("field-reference") == "Indirizzo"> 
419                                    <#assign indirizzo_UO = dynamicElement.element("dynamic-content").getText() /> 
420                                </#if> 
421                            </#list> 
422                        </#if> 
423                    <#elseif dynamicElement.attributeValue("field-reference") == "Contatti"> 
424                        <#assign 
425                            valore_contatto = "" 
426                            contatti_UO_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) 
427                            relatedContatti = JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_UO_data.classPK?number) 
428                            relatedContatto = relatedContatti[0] 
429                            document = relatedContatto.getDocumentByLocale(themeDisplay.getLocale()) 
430                            rootElement = document.getRootElement() 
431                        /> 
432                        <#list rootElement.elements() as dynamicElement> 
433                            <#if dynamicElement.element("dynamic-content").getText()?has_content> 
434                                <#assign 
435                                    tipo_contatto = (dynamicElement.attributeValue("field-reference") == "URL" )?string("Sito Web", dynamicElement.attributeValue("field-reference")) 
436                                    contatti_UO += 
437                                    [{ 
438                                        "tipo": tipo_contatto, 
439                                        "valore": dynamicElement.element("dynamic-content").getText() 
440                                    }] 
441                                /> 
442                            </#if> 
443                        </#list> 
444                    </#if> 
445                </#list> 
446            </#if> 
447        </#if> 
448    </#if> 
449</#if> 
450 
451<#-- SEZIONE GET CONTATTI --> 
452<#assign 
453    contatti_wallet = [] 
454    contatti_data = jsonFactoryUtil.createJSONObject(PuntiDiContatto.getData()) 
455    has_contatti = contatti_data?eval?has_content 
456/> 
457<#if has_contatti> 
458    <#assign relatedArticles = JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_data.classPK?number) /> 
459    <#if relatedArticles?? && relatedArticles?size gt 0> 
460        <#assign 
461            relatedArticle = relatedArticles[0] 
462            document = relatedArticle.getDocumentByLocale(themeDisplay.getLocale()) 
463            rootElement = document.getRootElement() 
464        /> 
465        <#list rootElement.elements() as dynamicElement> 
466            <#if dynamicElement.element("dynamic-content")?? && dynamicElement.element("dynamic-content").getText()?has_content> 
467                <#assign 
468                    tipo_contatto = (dynamicElement.attributeValue("field-reference") == "URL" )?string("Sito Web", dynamicElement.attributeValue("field-reference")) 
469                    contatti_wallet += 
470                    [{ 
471                        "tipo": tipo_contatto, 
472                        "valore": dynamicElement.element("dynamic-content").getText() 
473                    }] 
474                /> 
475            </#if> 
476        </#list> 
477    </#if> 
478</#if> 
479 
480<#assign parteciperanno = [] /> 
481<#if Parteciperanno.getData()?has_content> 
482    <#list Parteciperanno.getSiblings() as cur_Persone> 
483        <#assign 
484            cur_persona_data = jsonFactoryUtil.createJSONObject(cur_Persone.getData()) 
485            relatedPersone = JournalArticleLocalService.getArticlesByResourcePrimKey(cur_persona_data.classPK?number) 
486        /> 
487        <#if relatedPersone?? && relatedPersone?size gt 0> 
488            <#assign 
489                relatedPersona = relatedPersone[0] 
490                document = saxReaderUtil.read(relatedPersona.getContent()) 
491                rootElement = document.getRootElement() 
492                nome_persona = "" 
493                cognome_persona = "" 
494                immagine_persona = "" 
495                biografia = "" 
496                incarichi = [] 
497            /> 
498            <#list rootElement.elements() as dynamicElement> 
499                <#if dynamicElement.attributeValue("field-reference") == "Nome"> 
500                    <#assign nome_persona = dynamicElement.element("dynamic-content").getText() /> 
501                <#elseif dynamicElement.attributeValue("field-reference") == "Cognome"> 
502                    <#assign cognome_persona = dynamicElement.element("dynamic-content").getText() /> 
503                <#elseif dynamicElement.attributeValue("field-reference") == "Incarichi"> 
504                    <#assign 
505                        incarichi_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getText()) 
506                        has_incarichi = incarichi_data?eval?? && incarichi_data?eval?has_content 
507                    /> 
508 
509                    <#if has_incarichi> 
510                        <#assign 
511                            relatedIncarichi = JournalArticleLocalService.getArticlesByResourcePrimKey(incarichi_data.classPK?number) 
512                            relatedIncarico = relatedIncarichi[0] 
513                            document = saxReaderUtil.read(relatedIncarico.getContent()) 
514                            rootElement = document.getRootElement() 
515                        /> 
516                        <#list rootElement.elements() as dynamicElement> 
517                            <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
518                                <#assign 
519                                    nome_incarico = dynamicElement.element("dynamic-content").getText() 
520                                    incarichi += [ nome_incarico ] 
521                                /> 
522                            </#if> 
523                        </#list> 
524                    </#if> 
525 
526                <#elseif dynamicElement.attributeValue("field-reference") == "Biografia"> 
527                    <#assign biografia = dynamicElement.element("dynamic-content").getText() /> 
528                <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
529                    <#assign immagine = dynamicElement.element("dynamic-content").getText() /> 
530                    <#if immagine?has_content> 
531                        <#assign immagine = jsonFactoryUtil.createJSONObject(immagine) /> 
532                        <#if immagine?has_content> 
533                            <#assign immagine = immagine?eval /> 
534                        </#if> 
535                    </#if> 
536                </#if> 
537            </#list> 
538            <#assign 
539                parteciperanno += 
540                [{ 
541                    "nome": nome_persona + " " + cognome_persona, 
542                    "url": "${cur_Persone.getFriendlyUrl()}", 
543                    "immagine": immagine, 
544                    "biografia": biografia, 
545                    "incarichi": incarichi 
546                }] 
547            /> 
548        </#if> 
549    </#list> 
550</#if> 
551<div class="container"> 
552    <div class="row justify-content-center"> 
553        <div class="col-12 col-lg-10"> 
554            <div class="cmp-heading pb-3 pb-lg-4"> 
555                <div class="row"> 
556                    <div class="col-lg-8 py-lg-2"> 
557                        <h1> 
558                            ${Titolo.getData()} 
559                        </h1> 
560                        <h2 class="visually-hidden"><@liferay.language key="announcement-details" /></h2> 
561                        <p> 
562                            ${Sottotitolo.getData()} 
563                        </p> 
564                        <div class="row mt-5 mb-4"> 
565 
566                        <#if (DataInizio.getData())??> 
567                        <#assign DataInizio_Data = getterUtil.getString(DataInizio.getData()) /> 
568                            <#if validator.isNotNull(DataInizio_Data)> 
569                            <div class="col-6"> 
570                                <small><@liferay.language key="event-start" />:</small> 
571                                <p class="fw-semibold font-monospace"> 
572                                    ${DataInizio_Data?datetime("yyyy-MM-dd HH:mm")?string.short} 
573                            </div> 
574                            </#if> 
575                        </#if> 
576 
577                        <#if (DataFine.getData())??> 
578                        <#assign DataFine_Data = getterUtil.getString(DataFine.getData()) /> 
579                            <#if validator.isNotNull(DataFine_Data)> 
580                            <div class="col-6"> 
581                                    <small><@liferay.language key="event-end" />:</small> 
582                                    <p class="fw-semibold font-monospace"> 
583                                        ${DataFine_Data?datetime("yyyy-MM-dd HH:mm")?string.short} 
584                                    </p> 
585                            </div> 
586                            </#if> 
587                        </#if> 
588                        </div> 
589                    </div> 
590 
591                    <div class="col-lg-3 offset-lg-1 mt-5 mt-lg-0"> 
592 
593                        <div class="dropdown" id="fallback-share"> 
594                            <button 
595                                aria-label="condividi sui social" 
596                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-6 text-primary" 
597                                type="button" 
598                                id="shareActions" 
599                                data-bs-toggle="dropdown" 
600                                aria-haspopup="true" 
601                                aria-expanded="false" 
602
603                                <svg class="icon icon-primary" aria-hidden="true"> 
604                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-share"></use> 
605                                </svg> 
606                                <small><@liferay.language key="share" /></small> 
607                            </button> 
608                            <div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
609                                <div class="link-list-wrapper"> 
610                                    <ul class="link-list" role="menu"> 
611                                        <li role="none"> 
612                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('facebook')"> 
613                                                <svg class="icon icon-primary" aria-hidden="true"> 
614                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-facebook"></use> 
615                                                </svg> 
616                                                <span>Facebook</span> 
617                                            </button> 
618                                        </li> 
619                                        <li role="none"> 
620                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('twitter')"> 
621                                                <svg class="icon icon-primary" aria-hidden="true"> 
622                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-twitter"></use> 
623                                                </svg> 
624                                                <span><@liferay.language key="Twitter" /></span> 
625                                            </button> 
626                                        </li> 
627                                        <li role="none"> 
628                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('whatsapp')"> 
629                                                <svg class="icon icon-primary" aria-hidden="true"> 
630                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-whatsapp"></use> 
631                                                </svg> 
632                                                <span>Whatsapp</span> 
633                                            </button> 
634                                        </li> 
635                                    </ul> 
636                                </div> 
637                            </div> 
638                        </div> 
639 
640                        <div class="dropdown"> 
641                            <button 
642                                aria-label="vedi azioni da compiere sulla pagina" 
643                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" 
644                                type="button" 
645                                id="viewActions" 
646                                data-bs-toggle="dropdown" 
647                                aria-haspopup="true" 
648                                aria-expanded="false" 
649
650                                <svg class="icon icon-primary" aria-hidden="true"> 
651                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-more-items"></use> 
652                                </svg> 
653                                <small><@liferay.language key="actions" /></small> 
654                            </button> 
655                            <div class="dropdown-menu shadow-lg" aria-labelledby="viewActions"> 
656                                <div class="link-list-wrapper"> 
657                                    <ul class="link-list" role="menu"> 
658                                        <li role="none"> 
659                                            <button class="list-item px-3 fs-6 text-primary" onclick="window.print()" role="menuitem"> 
660                                                <svg class="icon icon-primary" aria-hidden="true"> 
661                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-print"></use> 
662                                                </svg> 
663                                                <span><@liferay.language key="print" /></span> 
664                                            </button> 
665                                        </li> 
666                                        <li role="none"> 
667                                            <a class="list-item mail-anchor px-3 fs-6" href="mailto:" role="menuitem"> 
668                                                <svg class="icon icon-primary" aria-hidden="true"> 
669                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-mail"></use> 
670                                                </svg> 
671                                                <span><@liferay.language key="send" /></span> 
672                                            </a> 
673                                        </li> 
674                                    </ul> 
675                                </div> 
676                            </div> 
677                        </div> 
678 
679                        <#list argomenti> 
680                        <div class="mt-4 mb-3"> 
681                            <span class="text-paragraph-small fw-semibold"><@liferay.language key="topics" />:</span> 
682                            <ul class="d-flex flex-wrap gap-2 mt-10 mb-3"> 
683 
684                                <#items as argomento> 
685                                <li> 
686                                    <a href="${argomento.url}" class="chip chip-simple"> 
687                                        <span class="chip-label"> 
688                                            ${argomento.name} 
689                                        </span> 
690                                    </a> 
691                                </li> 
692                                </#items> 
693 
694                            </ul> 
695                        </div> 
696                        </#list> 
697 
698                        <#list tipo_evento> 
699                        <div class="mb-3"> 
700                            <span class="text-paragraph-small fw-semibold"><@liferay.language key="event-type" />:</span> 
701                            <ul> 
702                                <#items as tipo> 
703                                <li> 
704                                    <span class="badge bg-primary"> 
705                                        ${tipo} 
706                                    </span> 
707                                </li> 
708                                </#items> 
709 
710                            </ul> 
711                        </div> 
712                        </#list> 
713 
714                    </div> 
715                </div> 
716            </div> 
717        </div> 
718 
719    </div> 
720</div> 
721 
722<#-- IMMAGINE HERO --> 
723<#if Immagine.getData()?? && Immagine.getData() != ""> 
724<div class="container-fluid my-3"> 
725    <div class="row"> 
726        <figure class="figure px-0 img-full"> 
727            <img src="${Immagine.getData()}" class="figure-img img-fluid" alt="${Immagine.getAttribute('alt')}" loading="lazy"> 
728            <figcaption class="figure-caption text-center pt-3"> 
729                ${Immagine.getAttribute("alt")} 
730            </figcaption> 
731        </figure> 
732    </div> 
733</div> 
734</#if> 
735<#-- NAVIGAZIONE E CONTENUTO --> 
736<div class="container"> 
737    <div class="row border-top border-light row-column-menu-left pb-4 pb-lg-80"> 
738        <div class="col-12 col-lg-3 mb-4 border-col"> 
739            <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one"> 
740                <nav class="navbar it-navscroll-wrapper navbar-expand-lg" aria-label="<@liferay.language key='page-index' />" data-bs-navscroll=""> 
741                    <div class="navbar-custom" id="navbarNavProgress"> 
742                        <div class="menu-wrapper"> 
743                            <div class="link-list-wrapper"> 
744                                <div class="accordion"> 
745                                    <div class="accordion-item"> 
746                                        <span class="accordion-header" id="accordion-title-one"> 
747                                            <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"> 
748                                                <@liferay.language key="page-index" /> 
749                                                <svg class="icon icon-xs right"> 
750                                                    <use href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-expand"></use> 
751                                                </svg> 
752                                            </button> 
753                                        </span> 
754                                        <div class="progress"> 
755                                            <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> 
756                                        </div> 
757                                        <div id="collapse-one" class="accordion-collapse collapse show" role="region" aria-labelledby="accordion-title-one"> 
758                                            <div class="accordion-body"> 
759                                                <ul class="link-list" data-element="page-index"> 
760                                                    <#-- LINK A SEZIONE --> 
761 
762                                                    <#if Descrizione.getData()?has_content> 
763                                                        <@navigatorLink sectionId="description" title="${languageUtil.get(locale, 'description')}" /> 
764                                                    </#if> 
765 
766                                                    <#if has_evento_genitore && nome_genitore?has_content> 
767                                                        <@navigatorLink sectionId="parent" title="${languageUtil.get(locale, 'parent-event')}" /> 
768                                                    </#if> 
769 
770                                                    <#if Parteciperanno.getData()?has_content && parteciperanno?size gt 0> 
771                                                        <@navigatorLink sectionId="people" title="${languageUtil.get(locale, 'will-participate')}" /> 
772                                                    </#if> 
773 
774                                                    <#if has_media> 
775                                                        <@navigatorLink sectionId="galleries" title="${languageUtil.get(locale, 'images-and-videos')}" /> 
776                                                    </#if> 
777 
778                                                    <#if AChieRivolto.getData()?has_content> 
779                                                        <@navigatorLink sectionId="who" title="${languageUtil.get(locale, 'aimed-at')}" /> 
780                                                    </#if> 
781 
782                                                    <#if has_luogo && nome_luogo?has_content> 
783                                                        <@navigatorLink sectionId="place" title="${languageUtil.get(locale, 'place')}" /> 
784                                                    </#if> 
785 
786                                                    <#if Costo.getData()?has_content> 
787                                                        <@navigatorLink sectionId="costs" title="${languageUtil.get(locale, 'costs')}" /> 
788                                                    </#if> 
789 
790                                                    <#if allegati?size gt 0> 
791                                                        <@navigatorLink sectionId="attachments" title="${languageUtil.get(locale, 'attachments')}" /> 
792                                                    </#if> 
793 
794                                                    <#if appuntamenti?size gt 0> 
795                                                        <@navigatorLink sectionId="appointments" title="${languageUtil.get(locale, 'meetups')}" /> 
796                                                    </#if> 
797 
798                                                    <#if has_contatti && contatti_wallet?size gt 0> 
799                                                        <@navigatorLink sectionId="contacts" title="${languageUtil.get(locale, 'contacts')}" /> 
800                                                    </#if> 
801 
802                                                    <#if has_UO && nome_UO?has_content> 
803                                                        <@navigatorLink sectionId="organizer" title="${languageUtil.get(locale, 'organized-by')}" /> 
804                                                    </#if> 
805 
806                                                    <#if PatrocinatoDa.getData()?? && PatrocinatoDa.getData()?has_content> 
807                                                        <@navigatorLink sectionId="patrocinato" title="${languageUtil.get(locale, 'sponsored-by')}" /> 
808                                                    </#if> 
809 
810                                                    <#if Sponsor.getData()?has_content> 
811                                                        <@navigatorLink sectionId="sponsors" title="${languageUtil.get(locale, 'sponsors')}" /> 
812                                                    </#if> 
813 
814                                                    <#if UlterioriInformazioni.getData()?has_content> 
815                                                        <@navigatorLink sectionId="more-info" title="${languageUtil.get(locale, 'additional-information')}" /> 
816                                                    </#if> 
817 
818                                                </ul> 
819                                            </div> 
820                                        </div> 
821                                    </div> 
822                                </div> 
823                            </div> 
824                        </div> 
825                    </div> 
826                </nav> 
827            </div> 
828        </div> 
829        <div class="col-12 col-lg-8 offset-lg-1"> 
830            <div class="it-page-sections-container pt-4"> 
831 
832            <#-- CONTENUTO --> 
833            <#if Descrizione.getData()?has_content> 
834            <section class="it-page-section mb-30" id="description"> 
835                <h2 class="title-xxlarge mb-3"><@liferay.language key="description" /></h2> 
836                <div class="richtext-wrapper lora"> 
837                    ${Descrizione.getData()} 
838                </div> 
839            </section> 
840            </#if> 
841 
842            <#if has_evento_genitore && nome_genitore?has_content> 
843            <section class="it-page-section mb-30" id="parent"> 
844                <h2 class="title-xxlarge mb-3"><@liferay.language key="parent-event" /></h2> 
845                <div class="row"> 
846                    <div class="col-12"> 
847                        <div class="card-wrapper border border-light rounded shadow-sm cmp-list-card-img cmp-list-card-img-hr"> 
848                            <div class="card no-after rounded mw-100"> 
849                                <div class="row g-2 g-md-0 flex-md-column"> 
850                                    <#if immagine_genitore?has_content && immagine_genitore.url?has_content> 
851                                    <div class="col-4 order-2 order-md-1" style="position-relative"> 
852                                        <div class="card-calendar d-flex flex-column justify-content-center"> 
853                                            <span class="card-date">${data_inizio_genitore_day}</span> 
854                                            <span class="card-day">${data_inizio_genitore_month}</span> 
855                                        </div> 
856                                        <img 
857                                            class="rounded-top img-fluid img-responsive" 
858                                            src="${immagine_genitore.url}" 
859                                            title="${nome_genitore}" 
860                                            alt="${nome_genitore}" 
861                                        /> 
862                                    </div> 
863                                    </#if> 
864                                    <div class="col-8 order-1 order-md-2"> 
865                                        <div class="card-body pb-0"> 
866                                            <div class="category-top cmp-list-card-img__body"> 
867                                                <div> 
868                                                    <span class="category"> 
869                                                        <#list tipi_evento_genitore as tipo> 
870                                                        <div class="badge bg-primary">${tipo}</div> 
871                                                        </#list> 
872                                                    </span> 
873                                                    <span class="data">${data_inizio_genitore}</span> 
874                                                </div> 
875                                            </div> 
876                                            <a href="${url_genitore}" class="text-decoration-none"> 
877                                                <h3 class="h5 card-title">${nome_genitore}</h3> 
878                                            </a> 
879                                            <p class="card-text d-none d-md-block lora">${descrizione_genitore}</p> 
880                                        </div> 
881                                    </div> 
882                                </div> 
883                            </div> 
884                        </div> 
885                    </div> 
886                </div> 
887            </section> 
888            </#if> 
889 
890            <#list parteciperanno> 
891            <section class="it-page-section mb-30 pt-4" id="people"> 
892                <h2 class="title-xxlarge mb-3"><@liferay.language key="will-participate" /></h2> 
893                <div class="row"> 
894                    <#items as persona> 
895                    <div class="col-12 col-lg-6 p-0 pe-3 mb-3 shadow-sm rounded"> 
896                        <div class="d-flex pe-0"> 
897                            <div class="col-12 col-lg-9 pt-3"> 
898                                <a href="${persona.url}" class="card-title text-paragraph-regular-medium-semi mb-1 primary-color-b3"> 
899                                    ${persona.nome} 
900                                </a> 
901                                <div class="card-text"> 
902 
903                                    <#if persona.incarichi?? && persona.incarichi?has_content> 
904                                    <p class="fw-semibold mb-2"> 
905                                        <#list persona.incarichi as incarico> 
906                                            <div class="fw-semibold text-primary">${incarico}</div> 
907                                        </#list> 
908                                    </p> 
909                                    </#if> 
910 
911                                    <#if persona.biografia?has_content> 
912                                    <p class="fw-semibold mb-2"> 
913                                        ${persona.biografia} 
914                                    </p> 
915                                    </#if> 
916                                </div> 
917                            </div> 
918                            <#if persona.immagine?has_content> 
919                            <a href="${persona.url}" class="d-none d-lg-block col-lg-3 p-0"> 
920                                <#if persona.immagine.url??> 
921                                    <img 
922                                        class="w-100" 
923                                        style="object-fit: cover; object-position: center; max-height: 120px;" 
924                                        alt="${persona.immagine.alt!""}" 
925                                        src="${persona.immagine.url}" 
926                                    /> 
927                                </#if> 
928                            </a> 
929                            </#if> 
930                        </div> 
931                    </div> 
932                    </#items> 
933                </div> 
934            </section> 
935            </#list> 
936 
937            <#if has_media> 
938            <section class="it-page-section mb-30" id="galleries"> 
939                <h2 class="title-xxlarge mb-3"><@liferay.language key="images-and-videos" /></h2> 
940                <#list immagini_galleria> 
941                    <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"> 
942                        <div class="it-header-block"> 
943                            <div class="it-header-block-title"> 
944                                <h3 style="border: none;"><@liferay.language key="images" /></h3> 
945                            </div> 
946                        </div> 
947                        <div class="splide__track" id="splide01-track" style="padding-left: 0px; padding-right: 0px;"> 
948                            <ul class="splide__list it-carousel-all" id="splide01-list" style="transform: translateX(0px);"> 
949                                <#items as img> 
950                                <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"> 
951                                    <div class="it-single-slide-wrapper"> 
952                                        <figure> 
953                                            <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"> 
954                                            <figcaption class="figure-caption mt-2"> 
955                                                ${img.alt} 
956                                            </figcaption> 
957                                        </figure> 
958                                    </div> 
959                                </li> 
960                                </#items> 
961                            </ul> 
962                        </div> 
963                    </div> 
964                </#list> 
965 
966                <#if has_video_gallery> 
967                    <h3><@liferay.language key="videos" /></h3> 
968                    <div id="iframe-wrapper"> 
969                        <#list GalleriaDiVideo.getSiblings() as cur_GalleriaDiVideo> 
970                        <div class="iframe-element"> 
971                            ${cur_GalleriaDiVideo.getData()} 
972                        </div> 
973                        </#list> 
974                    </div> 
975                    </#if> 
976                </section> 
977                </#if> 
978 
979                <#if AChieRivolto.getData()?has_content> 
980                    <section class="it-page-section mb-30" id="who"> 
981                        <h2 class="title-xxlarge mb-3"><@liferay.language key="aimed-at" /></h2> 
982                        <div class="richtext-wrapper lora"> 
983                            ${AChieRivolto.getData()} 
984                        </div> 
985                    </section> 
986                </#if> 
987 
988                <#if has_luogo && nome_luogo?has_content> 
989                    <section class="it-page-section mb-30" id="place"> 
990                        <h2 class="title-xxlarge mb-3"><@liferay.language key="place" /></h2> 
991                        <div class=""> 
992                            <div class="card card-teaser card-teaser-info rounded shadow-sm p-4"> 
993                                <div class="card-body pe-3"> 
994                                    <h5 class="card-title mb-2"> 
995                                        <a class="text-decoration-none" href="${url_luogo}"> 
996                                            ${nome_luogo} 
997                                        </a> 
998                                    </h5> 
999                                    <div class="card-text"> 
1000                                        <#if indirizzo_luogo !=""> 
1001                                        <p class="mb-2"><@liferay.language key="address" />: ${indirizzo_luogo}</p> 
1002                                        </#if> 
1003                                        <#if orari_luogo !=""> 
1004                                            <p class="mb-2"><@liferay.language key="timetables" />: ${orari_luogo}</p> 
1005                                        </#if> 
1006                                    </div> 
1007                                </div> 
1008                                <#if has_immagine_luogo> 
1009                                <div class="avatar size-xl"> 
1010                                    <img 
1011                                        alt="${immagine_luogo.alt!nome_luogo}" 
1012                                        src="${immagine_luogo.url}" 
1013                                        style="aspect-ratio: 1;" 
1014                                    /> 
1015                                </div> 
1016                                </#if> 
1017                            </div> 
1018                        </div> 
1019                    </section> 
1020                </#if> 
1021 
1022                <#if Costo.getData()?has_content> 
1023                    <section class="it-page-section mb-30" id="costs"> 
1024                        <h2 class="title-xxlarge mb-3"><@liferay.language key="costs" /></h2> 
1025                        <div class="richtext-wrapper lora"> 
1026                            ${Costo.getData()} 
1027                        </div> 
1028                    </section> 
1029                </#if> 
1030 
1031                <#list allegati> 
1032                    <section class="it-page-section mb-30" id="attachments"> 
1033                        <h2 class="title-xxlarge mb-3"><@liferay.language key="attachments" /></h2> 
1034                        <div class="col-12 ps-0"> 
1035                            <ul class="col-12 shadow rounded my-4 p-3 bg-white"> 
1036                                <#items as allegato> 
1037                                <li group="attachments" class="d-flex align-items-center"> 
1038                                    <div class="row d-flex align-items-center w-100 ${allegato?has_next?string(" mb-2", "")}"> 
1039                                        <div class="col-1 d-flex justify-content-center align-items-center p-0"> 
1040                                            <svg class="icon icon-primary icon-lh" aria-hidden="true" viewBox="0 0 24 24"> 
1041                                                <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-13 C5.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" /> 
1042                                            </svg> 
1043                                        </div> 
1044                                        <div class="col-11 p-0"> 
1045                                            <a class="text-decoration_none fw-semibold t-primary" href="${allegato.url}"> 
1046                                                ${allegato.nome} 
1047                                            </a> 
1048                                        </div> 
1049                                    </div> 
1050                                </li> 
1051                                </#items> 
1052                            </ul> 
1053                        </div> 
1054                    </section> 
1055                </#list> 
1056 
1057                <#list appuntamenti> 
1058                <section class="it-page-section mb-30" id="appointments"> 
1059                    <h2 class="title-xxlarge mb-3"><@liferay.language key="meetups" /></h2> 
1060                    <div class="row"> 
1061                        <#items as app> 
1062                        <div class="col-12 col-md-6"> 
1063                            <div class="card-wrapper border border-light rounded shadow-sm cmp-list-card-img cmp-list-card-img-hr"> 
1064                                <div class="card no-after rounded"> 
1065                                    <div class="row g-2 g-md-0 flex-md-column"> 
1066                                        <#if app.immagine?has_content && app.immagine.url?has_content> 
1067                                        <div class="col-4 order-2 order-md-1" style="position-relative"> 
1068                                            <div class="card-calendar d-flex flex-column justify-content-center"> 
1069                                                <span class="card-date">${app.giorno}</span> 
1070                                                <span class="card-day">${app.mese}</span> 
1071                                            </div> 
1072                                            <img 
1073                                                class="rounded-top img-fluid img-responsive" 
1074                                                src="${app.immagine.url}" 
1075                                                title="${app.nome}" 
1076                                                alt="${app.nome}" 
1077                                            /> 
1078                                        </div> 
1079                                        </#if> 
1080 
1081                                        <div class="col-8 order-1 order-md-2"> 
1082                                            <div class="card-body pb-0"> 
1083                                                <div class="category-top cmp-list-card-img__body"> 
1084                                                    <div> 
1085                                                        <#list app.tipi> 
1086                                                        <span class="category"> 
1087                                                            <#items as tipo> 
1088                                                            <div class="badge bg-primary">${tipo}</div> 
1089                                                            </#items> 
1090                                                        </span> 
1091                                                        </#list> 
1092                                                        <span class="data">${app.data_inizio}</span> 
1093                                                    </div> 
1094                                                </div> 
1095                                                <a href="${app.url}" class="text-decoration-none"> 
1096                                                    <h3 class="h5 card-title">${app.nome}</h3> 
1097                                                </a> 
1098                                                <p class="card-text d-none d-md-block lora">${app.descrizione}</p> 
1099                                            </div> 
1100                                        </div> 
1101                                    </div> 
1102                                </div> 
1103                            </div> 
1104                        </div> 
1105                        </#items> 
1106                    </div> 
1107                </section> 
1108                </#list> 
1109 
1110                <#list contatti_wallet> 
1111                <section class="it-page-section mb-30 pt-4" id="contacts"> 
1112                    <h2 class="title-xxlarge mb-3"><@liferay.language key="contacts" /></h2> 
1113                    <div class="row"> 
1114                        <div class="col-12 col-lg-6 shadow rounded p-3"> 
1115                            <#items as contatto> 
1116                            <div> 
1117                                <#assign url_type="" /> 
1118                                <#if 
1119                                    contatto.tipo=="Email" 
1120                                    || contatto.tipo=="PEC" 
1121
1122                                    <#assign url_type="mailto:" /> 
1123                                <#elseif 
1124                                    contatto.tipo=="Telefono" 
1125                                    || contatto.tipo=="Whatsapp" 
1126                                    || contatto.tipo=="Telegram" 
1127
1128                                    <#assign url_type="tel:" /> 
1129                                </#if> 
1130                                <span class="fw-semibold">${contatto.tipo}:</span> 
1131                                <span class="ms-1"> 
1132                                    <a 
1133                                        href="${url_type}${contatto.valore}" 
1134                                        target="_blank" 
1135                                        class="t-primary" 
1136
1137                                        ${contatto.valore} 
1138                                    </a> 
1139                                </span> 
1140                            </div> 
1141                            </#items> 
1142                        </div> 
1143                    </div> 
1144                </section> 
1145                </#list> 
1146 
1147                <#if has_UO && nome_UO?has_content> 
1148                <section class="it-page-section mb-30" id="organizer"> 
1149                    <h2 class="mb-3"><@liferay.language key="organized-by" /></h2> 
1150                    <div class="row"> 
1151                        <div class="col-12 col-lg-6"> 
1152                            <div class="card-wrapper rounded h-auto mt-10"> 
1153                                <div class="card card-teaser card-teaser-info rounded shadow-sm p-3"> 
1154                                    <div class="card-body pe-3"> 
1155                                        <div class="mb-3"> 
1156                                            <a class="card-title text-paragraph-regular-medium-semi primary-color-b3" href="/portal/-/${url_UO}"> 
1157                                                ${nome_UO} 
1158                                            </a> 
1159                                            <#if indirizzo_UO?has_content> 
1160                                            <small class="d-block"> 
1161                                                ${indirizzo_UO} 
1162                                            </small> 
1163                                            </#if> 
1164                                        </div> 
1165                                        <div class="card-text"> 
1166                                            <#list contatti_UO> 
1167                                            <div class="col-12 rounded p-0"> 
1168                                                <#items as contatto> 
1169                                                <div> 
1170                                                    <#assign url_type="" /> 
1171                                                    <#if 
1172                                                        contatto.tipo=="Email" 
1173                                                        || contatto.tipo=="PEC" 
1174
1175                                                        <#assign url_type="mailto:" /> 
1176                                                    <#elseif 
1177                                                        contatto.tipo=="Telefono" 
1178                                                        || contatto.tipo=="Whatsapp" 
1179                                                        || contatto.tipo=="Telegram" 
1180
1181                                                        <#assign url_type="tel:" /> 
1182                                                    </#if> 
1183                                                    <span class="fw-semibold"> 
1184                                                        ${contatto.tipo}:</span> 
1185                                                    <span class="ms-1"> 
1186                                                        <a 
1187                                                            href="${url_type}${contatto.valore}" 
1188                                                            target="_blank" 
1189                                                            class="t-primary" 
1190
1191                                                            ${contatto.valore} 
1192                                                        </a> 
1193                                                    </span> 
1194                                                </div> 
1195                                                </#items> 
1196                                            </div> 
1197                                            </#list> 
1198                                        </div> 
1199                                    </div> 
1200                                    <#if urlImmagine_UO !=""> 
1201                                    <div class="avatar size-xl"> 
1202                                        <a href="/portal/-/${url_UO}"> 
1203                                            <img 
1204                                                alt="Immagine unità organizzativa responsabile" 
1205                                                src="${urlImmagine_UO}" 
1206                                                style="aspect-ratio: 1/1;" 
1207                                            /> 
1208                                        </a> 
1209                                    </div> 
1210                                    </#if> 
1211                                </div> 
1212                            </div> 
1213                        </div> 
1214                    </div> 
1215                </section> 
1216                </#if> 
1217 
1218                <#if PatrocinatoDa.getData()?? && PatrocinatoDa.getData()?has_content> 
1219                <section class="it-page-section mb-30" id="patrocinato"> 
1220                    <h2 class="title-xxlarge mb-3"><@liferay.language key="sponsored-by" /></h2> 
1221                    <div class="richtext-wrapper lora" > 
1222                        ${PatrocinatoDa.getData()} 
1223                    </div> 
1224                </section> 
1225                </#if> 
1226 
1227                <#if Sponsor.getData()?has_content> 
1228                <section class="it-page-section mb-30" id="sponsor"> 
1229                    <h2 class="title-xxlarge mb-3"><@liferay.language key="sponsors" /></h2> 
1230                    <div class="richtext-wrapper lora"> 
1231                        ${Sponsor.getData()} 
1232                    </div> 
1233                </section> 
1234                </#if> 
1235 
1236                <#if UlterioriInformazioni.getData()?has_content> 
1237                <section class="it-page-section mb-30" id="more-info"> 
1238                    <h2 class="title-xxlarge mb-3"><@liferay.language key="more-info" /></h2> 
1239                    <div class="richtext-wrapper lora"> 
1240                        ${UlterioriInformazioni.getData()} 
1241                    </div> 
1242                </section> 
1243                </#if> 
1244 
1245                <div class="border-top border-light pt-4 mt-2 mb-30"> 
1246                    <#-- DATA ULTIMA MODIFICA --> 
1247                    <#assign 
1248                        modifiedDate = .vars['reserved-article-modified-date'].getData()?split(", ")[1]?split(" +")[0] 
1249                        displayModifiedDate = modifiedDate?datetime("dd MMM yyyy hh:mm:ss")?datetime 
1250                    /> 
1251                    <p class="text-paragraph-small mb-0 lora"> 
1252                        <span class="fw-semibold"><@liferay.language key="last-update-date" />: </span> 
1253                        <span> 
1254                            ${displayModifiedDate?string.short} 
1255                        </span> 
1256                    </p> 
1257                </div> 
1258            </div> 
1259        </div> 
1260    </div> 
1261</div> 
1262 
1263<script defer> 
1264    document.querySelectorAll(".mail-anchor").forEach(anchor => anchor.href = "mailto:&subject=${Titolo.getData()}&body=" + window.location.href) 
1265 
1266    function shareOn(type) { 
1267        let articleUrl = window.location.href; 
1268        const mapping = { 
1269            "facebook": "https://facebook.com/sharer/sharer.php?u=" + articleUrl, 
1270            "twitter": "https://twitter.com/intent/tweet/?text=" + articleUrl, 
1271            "linkedin": "http://www.linkedin.com/sharing/share-offsite/?url=" + articleUrl, 
1272            "whatsapp": "whatsapp://send?text=" + articleUrl 
1273
1274 
1275        window.open(mapping[type], "_blank"); 
1276        return 
1277
1278 
1279    function bringMeTo(id) { 
1280        document.getElementById(id).scrollIntoView({behavior: 'smooth'}); 
1281
1282</script> 
1283 
1284<#macro navigatorLink sectionId title> 
1285<#local desc = "" /> 
1286 
1287<#if title?? && title?has_content> 
1288    <#local desc = title /> 
1289<#else> 
1290    <#local desc = sectionId /> 
1291</#if> 
1292 
1293<li class="nav-item"> 
1294    <a 
1295        class="nav-link active" 
1296        onclick="bringMeTo('${sectionId}')" 
1297        role="button" 
1298        aria-label="${languageUtil.get(locale, 'go-to-section')}: ${title}" 
1299
1300        <span class="title-medium">${title}</span> 
1301    </a> 
1302</li> 
1303</#macro>