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