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