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@2fb718d"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: paginaPadre = LayoutLocalService.getL...  [in template "20095#20121#35046" at line 22, 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    currentLayout = themeDisplay.getLayout() 
13    current_page = currentLayout.getName() 
14    current_page_url = currentLayout.friendlyURL 
15/> 
16 
17<#setting locale = themeDisplay.getLocale() /> 
18<#setting url_escaping_charset = 'UTF-8'> 
19 
20<#-- gestione dei breadcrumbs --> 
21<#assign 
22    paginaPadre = LayoutLocalService.getLayout(groupId, PaginaPadre.getData()?eval.privateLayout, PaginaPadre.getData()?eval.layoutId?number) 
23    ancestors = paginaPadre.getAncestors() 
24    sorted_ancestors = [] 
25/> 
26 
27<#list ancestors as parente> 
28    <#assign 
29        sorted_ancestors += 
30        [{ 
31            "name": parente.getName(themeDisplay.getLanguageId()), 
32            "ancestors": parente.getAncestors()?size, 
33            "data": parente 
34        }] 
35    /> 
36</#list> 
37 
38<div class="container finmatica-breadcrumb-container mb-4"> 
39    <div class="row justify-content-center"> 
40        <div class="col-12 col-lg-10"> 
41            <div class="cmp-breadcrumbs" role="navigation"> 
42                <nav class="breadcrumb-container" aria-label="breadcrumb"> 
43                    <ol class="breadcrumb p-0" data-element="breadcrumb"> 
44                        <li class="breadcrumb-item"><a 
45                                href="${themeDisplay.getThemeSetting('Home URL')}"> 
46                                <span class="breadcrumb-text-truncate">Home</span> 
47                            </a> 
48                            <span class="separator">/</span> 
49                        </li> 
50                        <#list sorted_ancestors?sort_by("ancestors") as ancestor> 
51                        <li class="breadcrumb-item"><a 
52                                href="/portal${ancestor.data.getFriendlyURL()}"> 
53                                <span class="breadcrumb-text-truncate"> 
54                                    ${ancestor.name} 
55                                </span> 
56                            </a> 
57                            <span class="separator">/</span> 
58                        </li> 
59                        </#list> 
60                        <li class="breadcrumb-item"><a 
61                                href="/portal${paginaPadre.getFriendlyURL()}"> 
62                                <span class="breadcrumb-text-truncate"> 
63                                    ${paginaPadre.getName(themeDisplay.getLanguageId())} 
64                                </span> 
65                            </a> 
66                            <span class="separator">/</span> 
67                        </li> 
68                        <li class="breadcrumb-item">${Titolo.getData()}</li> 
69                    </ol> 
70                </nav> 
71            </div> 
72        </div> 
73    </div> 
74</div> 
75 
76<#assign 
77    has_document = Documenti.getData()?has_content 
78    servizio_disponibile = getterUtil.getBoolean(ServizioDisponibile.getData()) 
79    categorieServizio = [] 
80    argomenti = [] 
81    lifeEvents = [] 
82    businessEvents = [] 
83    splitted = [] 
84/> 
85<#list categoryList as categoryEntry> 
86 
87    <#assign 
88        vocabulary = AssetVocabularyLocalServiceUtil.getVocabulary(categoryEntry.getVocabularyId()) 
89        className = ClassNameService.fetchClassName("com.liferay.asset.kernel.model.AssetCategory") 
90        friendlyUrlEntry = FriendlyURLEntryLocalService.getMainFriendlyURLEntry(className.getClassNameId(), categoryEntry.categoryId) 
91        friendlyUrlList = FriendlyURLEntryLocalService.getFriendlyURLEntryLocalizations(friendlyUrlEntry.friendlyURLEntryId) 
92        cat_name = categoryEntry.name 
93        cat_localized_name = categoryEntry.getTitle(themeDisplay.getLocale(), true), 
94        cat_url = friendlyUrlList[0].urlTitle 
95    /> 
96    <#if vocabulary.getName()?lower_case == "tassonomia argomento"> 
97        <#assign 
98            argomenti += 
99            [{ 
100                "name": cat_localized_name, 
101                "url": "/portal/web/guest/${cat_url}" 
102            }] 
103        /> 
104    <#elseif vocabulary.name == "tassonomia categoria servizi"> 
105        <#assign 
106            categorieServizio += 
107            [{ 
108                "name": cat_localized_name, 
109                "url": "/portal/web/guest/${cat_url}" 
110            }] 
111        /> 
112    <#elseif 
113        vocabulary.name == "life events" 
114        || vocabulary.description == "eventi della vita delle persone" 
115    /> 
116        <#assign lifeEvents +=[cat_localized_name] /> 
117    <#elseif 
118        vocabulary.name == "tassonomia business events" 
119        || vocabulary.description == "eventi della vita delle imprese" 
120    /> 
121        <#assign businessEvents +=[cat_localized_name] /> 
122    </#if> 
123</#list> 
124 
125<#assign scadenze = [] /> 
126<#list TempiEScadenze.getSiblings() as cur_Sezione_TempiEScadenze> 
127 
128    <#-- 
129    anche se vuoti i campi venivano conteggiati e inseriti comunque nell'array, 
130    venendo quindi renderizzati in maschera senza contenuto 
131    --> 
132 
133    <#assign 
134        data = cur_Sezione_TempiEScadenze.DataScadenza.getData() 
135        etichetta = cur_Sezione_TempiEScadenze.DescrizioneScadenza.getData() 
136    /> 
137 
138    <#if 
139        data?? && data?has_content && data != "" 
140        && etichetta?? && etichetta?has_content && etichetta != "" 
141
142        <#assign 
143            scadenze += 
144                [{ 
145                    "data": cur_Sezione_TempiEScadenze.DataScadenza.getData(), 
146                    "etichetta": cur_Sezione_TempiEScadenze.DescrizioneScadenza.getData() 
147                }] 
148        /> 
149    </#if> 
150</#list> 
151 
152<#assign 
153    has_online = false 
154    has_required_login = false /> 
155<#if (ServizioDigitale.getData())??> 
156    <#assign ServizioDigitaleArray = ServizioDigitale.getData()?replace("[", "" )?replace("]", "" )?replace("\"", "" )?split(",")> 
157    <#list ServizioDigitaleArray as servizioDigitaleEntry> 
158        <#if servizioDigitaleEntry == "DisponibileOnline"> 
159            <#assign has_online = true /> 
160        <#elseif servizioDigitaleEntry == "AutenticazioneObbligatoria"> 
161            <#assign has_required_login = true /> 
162        </#if> 
163    </#list> 
164</#if> 
165 
166<#assign 
167    UO_Data = jsonFactoryUtil.createJSONObject(UnitaOrganizzativaResponsabile.getData()) 
168    has_UO = UnitaOrganizzativaResponsabile.getData()?? && UnitaOrganizzativaResponsabile.getData()?has_content 
169/> 
170 
171<#if UnitaOrganizzativaResponsabile.getData()?? && UnitaOrganizzativaResponsabile.getData()?has_content> 
172    <#assign relatedArticles = JournalArticleLocalService.getArticlesByResourcePrimKey(UO_Data.classPK?number) /> 
173    <#if relatedArticles?? && relatedArticles?size gt 0> 
174        <#assign 
175            relatedArticle = relatedArticles[0] 
176            url_UO = relatedArticle.getUrlTitle() 
177            document = relatedArticle.getDocumentByLocale(themeDisplay.getLocale()) 
178            rootElement = document.getRootElement() 
179            nome_UO = "" 
180            descrizione_UO = "" 
181            immagine_UO = "" 
182            has_immagine_UO = false 
183            contatti_UO = [] 
184        /> 
185 
186        <#if rootElement.elements()?has_content> 
187            <#list rootElement.elements() as dynamicElement> 
188                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
189                    <#assign nome_UO = dynamicElement.element("dynamic-content").getText() /> 
190                <#elseif dynamicElement.attributeValue("field-reference") == "DescrizioneBreve"> 
191                    <#assign descrizione_UO = dynamicElement.element("dynamic-content").getText() /> 
192                <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
193                    <#assign immagine_UO = dynamicElement.element("dynamic-content").getText() /> 
194                    <#if immagine_UO?has_content> 
195                        <#assign immagine_UO = jsonFactoryUtil.createJSONObject(immagine_UO) /> 
196                        <#if immagine_UO?has_content> 
197                            <#assign 
198                                immagine_UO = immagine_UO?eval 
199                                has_immagine_UO = true 
200                            /> 
201                        </#if> 
202                    </#if> 
203                <#elseif dynamicElement.attributeValue("field-reference") == "PuntiDiContatto"> 
204                    <#assign contatti_UO_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
205                    <#if contatti_UO_data.classPK??> 
206                        <#assign 
207                            relatedContatti = JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_UO_data.classPK?number) 
208                            tipo_contatto = "" 
209                            valore_contatto = "" 
210                            categorie_contatti = assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",contatti_UO_data.classPK?number) 
211                        /> 
212                        <#if relatedContatti?? && relatedContatti?size gt 0> 
213                            <#assign 
214                                relatedContatto = relatedContatti[0] 
215                                document = relatedContatto.getDocumentByLocale(themeDisplay.getLocale()) 
216                                rootElement = document.getRootElement() 
217                            /> 
218                        </#if> 
219                    </#if> 
220 
221                    <#if contatti_UO_data?eval?has_content> 
222                        <#assign relatedArticles = JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_UO_data.classPK?number) /> 
223                        <#if relatedArticles?? && relatedArticles?size gt 0> 
224                            <#assign 
225                                relatedArticle = relatedArticles[0] 
226                                document = relatedArticle.getDocumentByLocale(themeDisplay.getLocale()) 
227                                rootElement = document.getRootElement() 
228                            /> 
229                            <#list rootElement.elements()> 
230                                <#items as dynamicElement> 
231                                    <#assign 
232                                        tipo_contatto = (dynamicElement.attributeValue("field-reference") == "URL" )?string("Sito Web", dynamicElement.attributeValue("field-reference")) 
233                                        valore_contatto = dynamicElement.element("dynamic-content").getText() 
234                                        url_type = "" 
235                                    /> 
236                                    <#if 
237                                        tipo_contatto == "Email" 
238                                        || tipo_contatto == "PEC" 
239
240                                        <#assign url_type = "mailto:" /> 
241                                    <#elseif 
242                                        tipo_contatto == "Telefono" 
243                                        || tipo_contatto == "Whatsapp" 
244                                        || tipo_contatto == "Telegram" 
245
246                                        <#assign url_type = "tel:" /> 
247                                    </#if> 
248 
249                                    <#if valore_contatto?has_content> 
250                                        <#assign 
251                                            contatti_UO += 
252                                            [{ 
253                                                "tipo" : tipo_contatto, 
254                                                "url" : "${url_type}${valore_contatto}", 
255                                                "testo" : valore_contatto 
256                                            }] 
257                                        /> 
258                                    </#if> 
259                                </#items> 
260                            </#list> 
261                        </#if> 
262                    </#if> 
263                </#if> 
264            </#list> 
265        </#if> 
266    </#if> 
267</#if> 
268 
269<#assign documenti = [] /> 
270<#if Documenti.getSiblings()?has_content> 
271    <#list Documenti.getSiblings() as cur_Documenti> 
272        <#assign 
273            documento_Data = jsonFactoryUtil.createJSONObject(cur_Documenti.Documento.getData()) 
274        /> 
275        <#if documento_Data.classPK?has_content> 
276            <#assign relatedDocumentiS = JournalArticleLocalService.getArticlesByResourcePrimKey(documento_Data.classPK?number) /> 
277            <#if relatedDocumentiS?? && relatedDocumentiS?size gt 0> 
278                <#assign 
279                    relatedDocumenti = relatedDocumentiS[0] 
280                    document = relatedDocumenti.getDocumentByLocale(themeDisplay.getLocale()) 
281                    rootElement = document.getRootElement() 
282                    nome_documento = "" 
283                /> 
284                <#list rootElement.elements() as dynamicElement> 
285                    <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
286                        <#assign 
287                            nome_documento = 
288                                cur_Documenti.EtichettaDocumento.getData()?has_content?string( 
289                                    cur_Documenti.EtichettaDocumento.getData(), 
290                                    dynamicElement.element("dynamic-content").getText() 
291
292                        /> 
293                    </#if> 
294                </#list> 
295                <#assign 
296                    documenti += 
297                    [{ 
298                        "url": Documenti.Documento.getFriendlyUrl(), 
299                        "name": nome_documento 
300                    }] 
301                /> 
302            </#if> 
303        </#if> 
304  </#list> 
305</#if> 
306 
307<#-- GET CONTATTI --> 
308<#assign 
309    has_contatti = PuntiDiContatto.getData()?has_content 
310    contatti = [] 
311/> 
312<#if has_contatti> 
313    <#list PuntiDiContatto.getSiblings() as cur_PuntiDiContatto> 
314        <#assign 
315            contatti_data = jsonFactoryUtil.createJSONObject(cur_PuntiDiContatto.getData()) 
316            nome_wallet = "" 
317            contatti_wallet = [] 
318            relatedArticles = JournalArticleLocalService.getArticlesByResourcePrimKey(contatti_data.classPK?number) 
319        /> 
320        <#if relatedArticles?? && relatedArticles?size gt 0> 
321            <#assign 
322                relatedArticle = relatedArticles[0] 
323                document = relatedArticle.getDocumentByLocale(themeDisplay.getLocale()) 
324                rootElement = document.getRootElement() 
325            /> 
326            <#list rootElement.elements() as dynamicElement> 
327                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
328                    <#assign nome_wallet = dynamicElement.element("dynamic-content").getText() /> 
329                <#elseif dynamicElement.element("dynamic-content").getText()?has_content> 
330                    <#assign 
331                        tipo_contatto = (dynamicElement.attributeValue("field-reference") == "URL" )?string("Sito Web", dynamicElement.attributeValue("field-reference")) 
332                        contatti_wallet += 
333                        [{ 
334                            "tipo": tipo_contatto, 
335                            "valore": dynamicElement.element("dynamic-content").getText() 
336                        }] 
337                    /> 
338                </#if> 
339            </#list> 
340        </#if> 
341        <#if contatti_wallet?size gt 0> 
342        <#assign contatti += 
343            [{ 
344                "titolo": nome_wallet, 
345                "contatti": contatti_wallet 
346            }] 
347        /> 
348        </#if> 
349    </#list> 
350</#if> 
351 
352<#-- GET SEDI SPORTELLO --> 
353<#assign 
354    has_sportello = getterUtil.getBoolean(DisponibileASportello.getData()) 
355    sedi_sportello = [] 
356/> 
357 
358<#if Sedi.getSiblings()?has_content> 
359    <#list Sedi.getSiblings() as cur_Sedi> 
360        <#assign sede_Data = jsonFactoryUtil.createJSONObject(cur_Sedi.getData()) /> 
361        <#if sede_Data.classPK??> 
362            <#assign 
363                relatedSediS = JournalArticleLocalService.getArticlesByResourcePrimKey(sede_Data.classPK?number) 
364                relatedSedi = relatedSediS[0] 
365                document = relatedSedi.getDocumentByLocale(themeDisplay.getLocale()) 
366                rootElement = document.getRootElement() 
367                nome_sede = "" 
368                immagine_sede = "" 
369                descrizione_sede = "" 
370                indirizzo_sede = "" 
371                has_immagine_sede = false 
372            /> 
373            <#list rootElement.elements() as dynamicElement> 
374                <#if dynamicElement.attributeValue("field-reference") == "Titolo"> 
375                    <#assign nome_sede = dynamicElement.element("dynamic-content").getText() /> 
376                <#elseif dynamicElement.attributeValue("field-reference") == "Descrizione"> 
377                    <#assign descrizione_sede = dynamicElement.element("dynamic-content").getText() /> 
378                <#elseif dynamicElement.attributeValue("field-reference") == "SedePrincipale"> 
379                    <#assign sede_principale_data = jsonFactoryUtil.createJSONObject(dynamicElement.element("dynamic-content").getData()) /> 
380                    <#if sede_principale_data.classPK??> 
381                        <#assign relatedSediPrincipali = JournalArticleLocalService.getArticlesByResourcePrimKey(sede_principale_data.classPK?number) /> 
382                        <#if relatedSediPrincipali?? && relatedSediPrincipali?size gt 0> 
383                            <#assign 
384                                relatedSedePrincipale = relatedSediPrincipali[0] 
385                                document = relatedSedePrincipale.getDocumentByLocale(themeDisplay.getLocale()) 
386                                rootElement = document.getRootElement() 
387                            /> 
388                            <#list rootElement.elements() as dynamicElement> 
389                                <#if dynamicElement.attributeValue("field-reference") == "Indirizzo"> 
390                                    <#assign indirizzo_sede = dynamicElement.element("dynamic-content").getText() /> 
391                                <#elseif 
392                                    dynamicElement.attributeValue("field-reference")?lower_case == "cap" 
393                                    && dynamicElement.element("dynamic-content").getText()?? 
394
395                                    <#assign indirizzo_sede += (", " + dynamicElement.element("dynamic-content").getText()) /> 
396                                </#if> 
397                            </#list> 
398                        </#if> 
399                    </#if> 
400                <#elseif dynamicElement.attributeValue("field-reference") == "Indirizzo"> 
401                    <#assign indirizzo_sede = dynamicElement.element("dynamic-content").getText() /> 
402                <#elseif dynamicElement.attributeValue("field-reference") == "Immagine"> 
403                    <#assign immagine_sede = dynamicElement.element("dynamic-content").getText() /> 
404                    <#if immagine_sede?has_content> 
405                        <#assign immagine_sede = jsonFactoryUtil.createJSONObject(immagine_sede) /> 
406                        <#if 
407                            immagine_sede?has_content 
408                            && immagine_sede.url?has_content 
409
410                            <#assign 
411                                immagine_sede = immagine_sede?eval 
412                                has_immagine_sede = true 
413                            /> 
414                        </#if> 
415                    </#if> 
416                </#if> 
417            </#list> 
418            <#assign 
419                sedi_sportello += 
420                [{ 
421                    "nome": nome_sede, 
422                    "url": "${cur_Sedi.getFriendlyUrl()}", 
423                    "immagine": immagine_sede, 
424                    "has_immagine", has_immagine_sede, 
425                    "indirizzo": indirizzo_sede, 
426                    "descrizione": descrizione_sede 
427                }] 
428            /> 
429        </#if> 
430  </#list> 
431</#if> 
432 
433<#assign has_condizioni_servizio = false /> 
434<#list CondizioniServizio.getSiblings() as condizione> 
435    <#if condizione.File.getData()?has_content> 
436        <#assign has_condizioni_servizio = true /> 
437    </#if> 
438</#list> 
439 
440<div class="container" id="main-container"> 
441    <div class="row justify-content-center"> 
442        <div class="col-12 col-lg-10"> 
443            <div class="cmp-heading pb-3 pb-lg-4"> 
444                <div class="row"> 
445                    <div class="col-lg-8"> 
446                        <h1 class="title-xxxlarge" data-element="service-title"> 
447                            ${Titolo.getData()} 
448                        </h1> 
449                        <#if Sottotitolo.getData() != ""> 
450                        <p class="subtitle-small mb-3" data-element="service-description"> 
451                            ${Sottotitolo.getData()} 
452                        </p> 
453                        <#elseif DescrizioneBreve.getData() != ""> 
454                        <p class="subtitle-small mb-3" data-element="service-description"> 
455                            ${DescrizioneBreve.getData()} 
456                        </p> 
457                        </#if> 
458                        <ul class="d-flex flex-wrap gap-1 my-3"> 
459                            <li> 
460                                <div class="d-flex align-items-center"> 
461                                    <div class="badge ${servizio_disponibile?string('bg-success', 'bg-danger')}"> 
462                                        ${servizio_disponibile?string("${languageUtil.get(locale, 'service-is-active')}", "${languageUtil.get(locale, 'service-not-active')}")} 
463                                    </div> 
464                                    <#if (!servizio_disponibile)> 
465                                    <small class="small text-muted mb-0">${MotivoIndisponibilita.getData()}</small> 
466                                    </#if> 
467                                </div> 
468                            </li> 
469                        </ul> 
470                        <#if has_online && EtichettaPulsanteDigitale.getData()?has_content> 
471                            <#if has_required_login> 
472                                <#--<#if themeDisplay.isSignedIn()>--> 
473                                <button type="button" class="btn btn-primary mobile-full" onclick="redirect('/portal${URLServizio.getData()}')"> 
474                                <#-- 
475																<#else> 
476                                <#assign escapedLandingURL=URLServizio.getData()?replace("#", "%23" ) /> 
477                                <button type="button" class="btn btn-primary mobile-full" onclick="redirect('${themeDisplay.getThemeSetting('Login URL')}' + 'portal${escapedLandingURL}')"> 
478                                </#if> 
479																--> 
480                            <#else> 
481                                <button type="button" class="btn btn-primary mobile-full" onclick="redirect('/portal${URLServizio.getData()}')"> 
482                            </#if> 
483                            <span class=""> 
484                                ${EtichettaPulsanteDigitale.getData()} 
485                            </span> 
486                            </button> 
487                        </#if> 
488                    </div> 
489 
490                    <div class="col-lg-3 offset-lg-1 mt-5 mt-lg-0"> 
491 
492                        <div class="dropdown" id="fallback-share"> 
493                            <button 
494                                aria-label="condividi sui social" 
495                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-6 ps-3 text-primary" 
496                                type="button" 
497                                id="shareActions" 
498                                data-bs-toggle="dropdown" 
499                                aria-haspopup="true" 
500                                aria-expanded="false" 
501
502                                <svg class="icon icon-primary" aria-hidden="true"> 
503                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-share"></use> 
504                                </svg> 
505                                <small><@liferay.language key="share" /></small> 
506                            </button> 
507                            <div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
508                                <div class="link-list-wrapper"> 
509                                    <ul class="link-list" role="menu"> 
510                                        <li role="none"> 
511                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('facebook')"> 
512                                                <svg class="icon icon-primary" aria-hidden="true"> 
513                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-facebook"></use> 
514                                                </svg> 
515                                                <span>Facebook</span> 
516                                            </button> 
517                                        </li> 
518                                        <li role="none"> 
519                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('twitter')"> 
520                                                <svg class="icon icon-primary" aria-hidden="true"> 
521                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-twitter"></use> 
522                                                </svg> 
523                                                <span><@liferay.language key="Twitter" /></span> 
524                                            </button> 
525                                        </li> 
526                                        <li role="none"> 
527                                            <button class="list-item text-primary px-3 fs-6" role="menuitem" onclick="shareOn('whatsapp')"> 
528                                                <svg class="icon icon-primary" aria-hidden="true"> 
529                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-whatsapp"></use> 
530                                                </svg> 
531                                                <span>Whatsapp</span> 
532                                            </button> 
533                                        </li> 
534                                    </ul> 
535                                </div> 
536                            </div> 
537                        </div> 
538 
539                        <div class="dropdown"> 
540                            <button 
541                                aria-label="vedi azioni da compiere sulla pagina" 
542                                class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" 
543                                type="button" 
544                                id="viewActions" 
545                                data-bs-toggle="dropdown" 
546                                aria-haspopup="true" 
547                                aria-expanded="false" 
548
549                                <svg class="icon icon-primary" aria-hidden="true"> 
550                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-more-items"></use> 
551                                </svg> 
552                                <small><@liferay.language key="actions" /></small> 
553                            </button> 
554                            <div class="dropdown-menu shadow-lg" aria-labelledby="viewActions"> 
555                                <div class="link-list-wrapper"> 
556                                    <ul class="link-list" role="menu"> 
557                                        <li role="none"> 
558                                            <button class="list-item px-3 fs-6 text-primary" onclick="window.print()" role="menuitem"> 
559                                                <svg class="icon icon-primary" aria-hidden="true"> 
560                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-print"></use> 
561                                                </svg> 
562                                                <span><@liferay.language key="print" /></span> 
563                                            </button> 
564                                        </li> 
565                                        <li role="none"> 
566                                            <a class="list-item mail-anchor px-3 fs-6" href="mailto:" role="menuitem"> 
567                                                <svg class="icon icon-primary" aria-hidden="true"> 
568                                                    <use xlink:href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-mail"></use> 
569                                                </svg> 
570                                                <span><@liferay.language key="send" /></span> 
571                                            </a> 
572                                        </li> 
573                                    </ul> 
574                                </div> 
575                            </div> 
576                        </div> 
577                    </div> 
578 
579                </div> 
580            </div> 
581        </div> 
582    </div> 
583</div> 
584 
585<#if Immagine.getData()?? && Immagine.getData() != ""> 
586<div class="container-fluid my-3"> 
587    <div class="row"> 
588        <figure class="figure px-0 img-full"> 
589            <img src="${Immagine.getData()}" class="figure-img img-fluid" alt="${Immagine.getAttribute('alt')}"> 
590            <figcaption class="figure-caption text-center pt-3"> 
591                ${Immagine.getAttribute("alt")} 
592            </figcaption> 
593        </figure> 
594    </div> 
595</div> 
596</#if> 
597 
598<div class="container"> 
599    <div class="row border-top border-light row-column-menu-left pb-4 pb-lg-80 it-page-sections-container"> 
600        <aside class="col-12 col-lg-3 mb-4 border-col"> 
601            <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one"> 
602                <nav class="navbar it-navscroll-wrapper navbar-expand-lg" aria-label="<@liferay.language key='page-index' />" data-bs-navscroll=""> 
603                    <div class="navbar-custom" id="navbarNavProgress"> 
604                        <div class="menu-wrapper"> 
605                            <div class="link-list-wrapper"> 
606                                <div class="accordion"> 
607                                    <div class="accordion-item"> 
608                                        <span class="accordion-header" id="accordion-title-one"> 
609                                            <button 
610                                                class="accordion-button pb-10 px-3" 
611                                                data-bs-toggle="collapse" 
612                                                data-bs-target="#collapse-one" 
613                                                aria-expanded="true" 
614                                                aria-controls="collapse-one"> 
615                                                <@liferay.language key="page-index" 
616                                            /> 
617                                                <svg class="icon icon-xs right"> 
618                                                    <use href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-expand"></use> 
619                                                </svg> 
620                                            </button> 
621                                        </span> 
622                                        <div class="progress"> 
623                                            <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> 
624                                        </div> 
625                                        <div id="collapse-one" class="accordion-collapse collapse show" role="region" aria-labelledby="accordion-title-one"> 
626                                            <div class="accordion-body"> 
627                                                <ul class="link-list" data-element="page-index"> 
628                                                    <#if AChiERivolto.getData()?has_content> 
629                                                        <@navigatorLink sectionId="who-needs" title="${languageUtil.get(locale, 'aimed-at')}" /> 
630                                                    </#if> 
631 
632                                                    <#if Descrizione.getData()?has_content> 
633                                                        <@navigatorLink sectionId="description" title="${languageUtil.get(locale, 'description')}" /> 
634                                                    </#if> 
635 
636                                                    <#if CoperturaGeografica.getData()?has_content> 
637                                                        <@navigatorLink sectionId="copertura-geografica" title="${languageUtil.get(locale, 'geographic-coverage')}" /> 
638                                                    </#if> 
639 
640                                                    <#if ComeFare.getData()?has_content> 
641                                                        <@navigatorLink sectionId="how-to" title="${languageUtil.get(locale, 'how-to')}" /> 
642                                                    </#if> 
643 
644                                                    <#if CosaServe.getData()?has_content> 
645                                                        <@navigatorLink sectionId="needed" title="${languageUtil.get(locale, 'needed')}" /> 
646                                                    </#if> 
647 
648                                                    <#if CosaSiOttiene.getData()?has_content> 
649                                                        <@navigatorLink sectionId="obtain" title="${languageUtil.get(locale, 'obtained')}" /> 
650                                                    </#if> 
651 
652                                                    <#if scadenze?size gt 0> 
653                                                        <@navigatorLink sectionId="deadlines" title="${languageUtil.get(locale, 'deadlines')}" /> 
654                                                    </#if> 
655 
656                                                    <#if Costi.getData()?has_content> 
657                                                        <@navigatorLink sectionId="costs" title="${languageUtil.get(locale, 'costs')}" /> 
658                                                    </#if> 
659 
660                                                    <#if ProcedureEsito.getData()?has_content> 
661                                                        <@navigatorLink sectionId="proc-esito" title="${languageUtil.get(locale, 'outcome')}" /> 
662                                                    </#if> 
663 
664                                                    <#if has_sportello || has_online> 
665                                                        <@navigatorLink sectionId="service-access" title="${languageUtil.get(locale, 'service-access')}" /> 
666                                                    </#if> 
667 
668                                                    <#if Vincoli.getData()?has_content> 
669                                                        <@navigatorLink sectionId="vincoli" title="${languageUtil.get(locale, 'constraints')}" /> 
670                                                    </#if> 
671 
672                                                    <#if CasiParticolari.getData()?has_content> 
673                                                        <@navigatorLink sectionId="casi-particolari" title="${languageUtil.get(locale, 'special-cases')}" /> 
674                                                    </#if> 
675 
676                                                    <#if UlterioriInformazioni.getData()?has_content> 
677                                                        <@navigatorLink sectionId="ulteriori-info" title="${languageUtil.get(locale, 'additional-information')}" /> 
678                                                    </#if> 
679 
680                                                    <#if has_condizioni_servizio> 
681                                                        <@navigatorLink sectionId="conditions" title="${languageUtil.get(locale, 'terms-of-service')}" /> 
682                                                    </#if> 
683 
684                                                    <#if documenti?has_content> 
685                                                        <@navigatorLink sectionId="documents" title="${languageUtil.get(locale, 'documents')}" /> 
686                                                    </#if> 
687 
688                                                    <#if has_contatti && contatti?size gt 0> 
689                                                        <@navigatorLink sectionId="contacts" title="${languageUtil.get(locale, 'contacts')}" /> 
690                                                    </#if> 
691 
692                                                    <#if has_UO> 
693                                                        <@navigatorLink sectionId="office" title="${languageUtil.get(locale, 'organization-unit')}" /> 
694                                                    </#if> 
695 
696                                                    <#if IPAErogatore.getData()?has_content> 
697                                                        <@navigatorLink sectionId="ipa-erogatore" title="${languageUtil.get(locale, 'provider-code')}" /> 
698                                                    </#if> 
699 
700                                                    <#if SettoreMerceologico.getData()?has_content> 
701                                                        <@navigatorLink sectionId="settore-merceologico" title="${languageUtil.get(locale, 'commodity-sector')}" /> 
702                                                    </#if> 
703 
704                                                </ul> 
705                                            </div> 
706                                        </div> 
707                                    </div> 
708                                </div> 
709                            </div> 
710                        </div> 
711                    </div> 
712                </nav> 
713            </div> 
714        </aside> 
715        <div class="col-12 col-lg-8 offset-lg-1"> 
716            <div class="pt-4"> 
717                <#if AChiERivolto.getData()?has_content> 
718                    <article class="it-page-section mb-30" id="who-needs"> 
719                        <h2 class="title-xxlarge mb-3"><@liferay.language key="aimed-at" /></h2> 
720                        <div class="richtext-wrapper lora" data-element="service-addressed"> 
721                            ${AChiERivolto.getData()} 
722                        </div> 
723                    </article> 
724                </#if> 
725 
726                <#if Descrizione.getData()?has_content> 
727                    <article class="it-page-section mb-30" id="description"> 
728                        <h2 class="title-xxlarge mb-3"><@liferay.language key="description" /></h2> 
729                        <div class="richtext-wrapper lora"> 
730                            ${Descrizione.getData()} 
731                        </div> 
732                    </article> 
733                </#if> 
734 
735                <#if CoperturaGeografica.getData()?has_content> 
736                    <article class="it-page-section mb-30" id="copertura-geografica"> 
737                        <h2 class="title-xxlarge mb-3"><@liferay.language key="geographic-coverage" /></h2> 
738                        <div class="richtext-wrapper lora"> 
739                            <div class="d-flex flex-wrap gap-2 mt-10 mb-30 font-sans-serif"> 
740                                <div class="badge bg-primary"> 
741                                    ${CoperturaGeografica.getData()} 
742                                </div> 
743                            </div> 
744                        </div> 
745                    </article> 
746                </#if> 
747 
748                <#if ComeFare.getData()?has_content> 
749                    <article class="it-page-section mb-30" id="how-to"> 
750                        <h2 class="title-xxlarge mb-3"><@liferay.language key="how-to" /></h2> 
751                        <div class="richtext-wrapper lora" data-element="service-how-to"> 
752                            ${ComeFare.getData()} 
753                        </div> 
754                    </article> 
755                </#if> 
756 
757                <#if CosaServe.getData()?has_content> 
758                    <article class="it-page-section mb-30 has-bg-grey p-3" id="needed"> 
759                        <h2 class="title-xxlarge mb-3"><@liferay.language key="needed" /></h2> 
760                        <div class="richtext-wrapper lora" data-element="service-needed"> 
761                            ${CosaServe.getData()} 
762                        </div> 
763                    </article> 
764                </#if> 
765 
766                <#if CosaSiOttiene.getData()?has_content> 
767                    <article class="it-page-section mb-30" id="obtain"> 
768                        <h2 class="title-xxlarge mb-3"><@liferay.language key="obtained" /></h2> 
769                        <div class="richtext-wrapper lora" data-element="service-achieved"> 
770                            ${CosaSiOttiene.getData()} 
771                        </div> 
772                    </article> 
773                </#if> 
774 
775                <#if scadenze?size gt 0> 
776                    <article class="it-page-section mb-30" id="deadlines"> 
777                        <div class="cmp-timeline"> 
778                            <h2 class="title-xxlarge mb-3"><@liferay.language key="deadlines" /></h2> 
779                            <div class="richtext-wrapper lora" data-element="service-calendar-text"> 
780                                ${DescrizioneTempiScadenze.getData()} 
781                            </div> 
782                            <#if TempiEScadenze.getSiblings()?has_content> 
783                                <#list scadenze> 
784                                <div class="calendar-vertical mb-3" data-element="service-calendar-list"> 
785                                    <#items as scadenza> 
786                                        <#assign splitted = scadenza.data?split("-") /> 
787                                        <#if splitted?size == 2> 
788                                            <#assign 
789                                                expiration_year = "" 
790                                                expiration_day = splitted?first 
791                                                expiration_month = splitted?last 
792                                        /> 
793                                        <#elseif splitted?size == 3> 
794                                            <#assign 
795                                                expiration_year = splitted?first 
796                                                expiration_day = splitted?last 
797                                                expiration_month = splitted[1] 
798                                            /> 
799                                        </#if> 
800                                    <div class="calendar-date"> 
801                                        <h3 class="calendar-date-day text-center d-flex flex-column justify-content-center m-0"> 
802                                            <#if expiration_year?has_content> 
803                                            <small class="calendar-date-day__year">${expiration_year}</small> 
804                                            </#if> 
805                                            <#if expiration_day?has_content> 
806                                            <span class="title-xxlarge-regular d-flex justify-content-center">${expiration_day}</span> 
807                                            </#if> 
808                                            <#if expiration_month?has_content> 
809                                            <small class="calendar-date-day__month">${expiration_month}</small> 
810                                            </#if> 
811                                        </h3> 
812                                        <div class="calendar-date-description rounded bg-white my-2"> 
813                                            <div class="calendar-date-description-content"> 
814                                                <p class="mb-0 text-primary fw-semibold">${scadenza.etichetta}</p> 
815                                            </div> 
816                                        </div> 
817                                    </div> 
818                                    </#items> 
819                                </div> 
820                                </#list> 
821                            </#if> 
822                        </div> 
823                    </article> 
824                </#if> 
825 
826                <#if Costi.getData()?has_content> 
827                <article class="it-page-section mb-30" id="costs"> 
828                    <h2 class="title-xxlarge mb-3"><@liferay.language key="costs" /></h2> 
829                    <div class="richtext-wrapper lora"> 
830                        ${Costi.getData()} 
831                    </div> 
832                </article> 
833                </#if> 
834 
835                <#if ProcedureEsito.getData()?has_content> 
836                <article class="it-page-section mb-30" id="proc-esito"> 
837                    <h2 class="title-xxlarge mb-3"><@liferay.language key="outcome" /></h2> 
838                    <div class="richtext-wrapper lora"> 
839                        ${ProcedureEsito.getData()} 
840                    </div> 
841                </article> 
842                </#if> 
843 
844                <#if has_sportello || has_online> 
845                    <article class="it-page-section mb-30 has-bg-grey p-3 p-lg-4" id="service-access"> 
846                        <h2 class="mb-3"><@liferay.language key="service-access" /></h2> 
847                        <#if has_online> 
848                            <p class="text-paragraph lora mb-4"> 
849                                ${EtichettaDigitale.getData()} 
850                            </p> 
851                            <#if EtichettaPulsanteDigitale.getData()?has_content> 
852                                <#if has_required_login> 
853                                    <#if themeDisplay.isSignedIn()> 
854                                    <button type="button" class="btn btn-primary mobile-full" onclick="redirect('/portal${URLServizio.getData()}')"> 
855                                    <#else> 
856                                    <#assign escapedLandingURL = URLServizio.getData()?replace("#", "%23" ) /> 
857                                    <button type="button" class="btn btn-primary mobile-full" onclick="redirect('${themeDisplay.getThemeSetting('Login URL')}' + 'portal${escapedLandingURL}')"> 
858                                    </#if> 
859                                <#else> 
860                                    <button type="button" class="btn btn-primary mobile-full" onclick="redirect('/portal${URLServizio.getData()}')"> 
861                                </#if> 
862                                <span class=""> 
863                                    ${EtichettaPulsanteDigitale.getData()} 
864                                </span> 
865                                </button> 
866                            </#if> 
867                        </#if> 
868                        <#if has_sportello> 
869                            <p class="text-paragraph lora mt-4"> 
870                                ${EtichettaPrenotazione.getData()} 
871                            </p> 
872 
873                            <#if EtichettaPulsantePrenotazione.getData()?has_content> 
874                            <button type="button" class="btn btn-outline-primary t-primary bg-white mobile-full" onclick="redirect('/portal${URLPrenotazione.getData()}')" data-element="service-booking-access"> 
875                                <span>${EtichettaPulsantePrenotazione.getData()}</span> 
876                            </button> 
877                            </#if> 
878                            <#list sedi_sportello> 
879                                <h3 class="fs-5 text-secondary mt-5 mb-0"><@liferay.language key="service-offices" /></h3> 
880                                <div class="row"> 
881                                    <#items as sede> 
882 
883                                        <#if sede.nome?has_content> 
884                                            <div class="col-12 col-md-6 col-lg" style="min-width: 300px;"> 
885                                                <div class="card-wrapper rounded h-auto mt-10"> 
886                                                    <div class="card card-teaser card-teaser-info rounded shadow-sm p-3"> 
887                                                        <div class="card-body pe-3"> 
888                                                            <a class="card-title text-paragraph-regular-medium-semi mb-3 primary-color-b3" href="${sede.url}"> 
889                                                                ${sede.nome} 
890                                                            </a> 
891                                                            <p>${sede.descrizione}</p> 
892 
893                                                            <#if sede.indirizzo?has_content> 
894                                                            <small class="text-muted lora"> 
895                                                                ${sede.indirizzo} 
896                                                            </small> 
897                                                            </#if> 
898 
899                                                        </div> 
900 
901                                                        <#if sede.has_immagine > 
902                                                            <div class="avatar size-xl"> 
903                                                                <a href="${sede.url}"> 
904                                                                    <img 
905                                                                        class="w-100" 
906                                                                        style="aspect-ratio: 1/1;" 
907                                                                        alt="${sede.immagine.alt!sede.nome}" 
908                                                                        src="${sede.immagine.url}" 
909                                                                    /> 
910                                                                </a> 
911                                                            </div> 
912                                                        </#if> 
913                                                    </div> 
914                                                </div> 
915                                            </div> 
916                                        </#if> 
917                                    </#items> 
918                                </div> 
919                            </#list> 
920                        </#if> 
921                    </article> 
922                </#if> 
923 
924                <#if Vincoli.getData()?has_content> 
925                <article class="it-page-section mb-30" id="vincoli"> 
926                    <h2 class="title-xxlarge mb-3"><@liferay.language key="constraints" /></h2> 
927                    <div class="richtext-wrapper lora"> 
928                        ${Vincoli.getData()} 
929                    </div> 
930                </article> 
931                </#if> 
932 
933                <#if CasiParticolari.getData()?has_content> 
934                <article class="it-page-section mb-30" id="casi-particolari"> 
935                    <h2 class="title-xxlarge mb-3"><@liferay.language key="special-cases" /></h2> 
936                    <div class="richtext-wrapper lora"> 
937                        ${CasiParticolari.getData()} 
938                    </div> 
939                </article> 
940                </#if> 
941 
942                <#if UlterioriInformazioni.getData()?has_content> 
943                <article class="it-page-section mb-30" id="ulteriori-info"> 
944                    <h2 class="title-xxlarge mb-3"><@liferay.language key="additional-information" /></h2> 
945                    <div class="richtext-wrapper lora"> 
946                        ${UlterioriInformazioni.getData()} 
947                    </div> 
948                </article> 
949                </#if> 
950 
951                <#if has_condizioni_servizio> 
952                    <article class="it-page-section mb-30" id="conditions"> 
953                        <h2 class="title-xxlarge mb-3"><@liferay.language key="terms-of-service" /></h2> 
954                        <p class="text-paragraph lora"> 
955                            <@liferay.language key="terms-of-service-detail" /> 
956                        </p> 
957                        <#if CondizioniServizio.getSiblings()?has_content> 
958                            <#list CondizioniServizio.getSiblings()> 
959                                <div class="cmp-icon-link d-flex flex-wrap"> 
960                                    <#items as cur_CondizioniDiServizio> 
961                                    <a class="list-item icon-left d-inline-block p-3 me-2 mb-0 shadow-sm border border-light rounded" href="${cur_CondizioniDiServizio.File.getData()}" aria-label="Scarica ${languageUtil.format(locale, 'download-x', 'Condizioni di servizio', false)}" title="Scarica ${languageUtil.format(locale, 'download-x', 'Condizioni di servizio', false)}" data-element="service-file" 
962
963                                        <span class="list-item-title-icon-wrapper"> 
964                                            <svg class="icon icon-primary icon-sm me-1" aria-hidden="true"> 
965                                                <use href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-download"></use> 
966                                            </svg> 
967                                            <span class="list-item"> 
968                                                ${cur_CondizioniDiServizio.Etichetta.getData()} 
969                                            </span> 
970                                        </span> 
971                                    </a> 
972                                    </#items> 
973                                </div> 
974                            </#list> 
975                        </#if> 
976                    </article> 
977                </#if> 
978 
979                <#list documenti> 
980                    <article class="it-page-section mb-30 pt-4" id="documents"> 
981                        <h2 class="title-xxlarge mb-3"><@liferay.language key="documents" /></h2> 
982                        <div class="col-12 col-md-8 shadow p-3 mb-4 rounded"> 
983                            <#items as doc> 
984                                <div class="d-flex align-items-center ${doc?has_next?string('pb-3 border-bottom border-light mb-3', 'mt-3')}"> 
985                                    <svg class="icon icon-primary icon-lh me-2"> 
986                                        <use href="${themeDisplay.getPathThemeImages()}/sprite.svg#it-external-link"></use> 
987                                    </svg> 
988                                    <a class="text-decoration_none fw-semibold t-primary" href="${doc.url}"> 
989                                        ${doc.name} 
990                                    </a> 
991                                </div> 
992                            </#items> 
993                        </div> 
994                    </article> 
995                </#list> 
996 
997                <#list contatti> 
998                <article class="it-page-section mb-30" id="contacts"> 
999                    <h2 class="title-xxlarge mb-3"><@liferay.language key="contacts" /></h2> 
1000                    <div class="row" data-element="service-area"> 
1001                        <#items as wallet_contatti> 
1002                            <div class="col-12 col-md-6 pe-3"> 
1003                                <div class="col-11 p-3 shadow-sm rounded"> 
1004                                    <#list wallet_contatti.contatti as contatto> 
1005                                        <div> 
1006                                            <span class="fw-semibold"> 
1007                                                <@liferay.language key="${contatto.tipo?replace(' ', '-')}" />:</span> 
1008                                            <#assign url_type="" /> 
1009                                            <#if 
1010                                                contatto.tipo == "Email" 
1011                                                || contatto.tipo == "PEC" 
1012
1013                                                <#assign url_type="mailto:" /> 
1014                                            <#elseif 
1015                                                    contatto.tipo == "Telefono" 
1016                                                    || contatto.tipo == "Whatsapp" 
1017                                                    || contatto.tipo == "Telegram" 
1018
1019                                                <#assign url_type = "tel:" /> 
1020                                            </#if> 
1021                                            <span class="ms-1"> 
1022                                                <a 
1023                                                    href="${url_type}${contatto.valore}" 
1024                                                    target="_blank" 
1025                                                    class="text-primary"> 
1026                                                    ${contatto.valore} 
1027                                                </a> 
1028                                            </span> 
1029                                        </div> 
1030                                    </#list> 
1031                                </div> 
1032                            </div> 
1033                        </#items> 
1034                    </div> 
1035                </article> 
1036                </#list> 
1037 
1038                <#if has_UO> 
1039                <article id="office"> 
1040                    <h2 class="mb-3" data-element="service-area"><@liferay.language key="organization-unit" /> <@liferay.language key="manager" /></h2> 
1041                    <div class="row"> 
1042                        <div class="col-12 col-md-8 col-lg-6"> 
1043                            <div class="card-wrapper rounded h-auto mt-10"> 
1044                                <div class="card card-teaser card-teaser-info rounded shadow-sm p-3"> 
1045                                    <div class="card-body pe-3"> 
1046                                        <a class="card-title text-paragraph-regular-medium-semi mb-3 primary-color-b3" href="/portal/-/${url_UO}"> 
1047                                            ${nome_UO} 
1048                                        </a> 
1049                                        <#if descrizione_UO?has_content> 
1050                                        <p>${descrizione_UO}</p> 
1051                                        </#if> 
1052                                        <#list contatti_UO > 
1053                                        <div class="pt-3"> 
1054                                            <#items as contatto> 
1055                                            <div class="col-12 px-0"> 
1056                                                <div class="col-11 px-0"> 
1057                                                    <div> 
1058                                                        <span class="fw-semibold"><@liferay.language key="${contatto.tipo?replace(' ', '-')}" />:</span> 
1059                                                        <#assign url_type = "" /> 
1060                                                        <#if 
1061                                                            contatto.tipo == "Email" 
1062                                                            || contatto.tipo == "PEC" 
1063
1064                                                            <#assign url_type = "mailto:" /> 
1065                                                        <#elseif 
1066                                                            contatto.tipo == "Telefono" 
1067                                                            || contatto.tipo == "Whatsapp" 
1068                                                            || contatto.tipo == "Telegram" 
1069
1070                                                            <#assign url_type = "tel:" /> 
1071                                                        </#if> 
1072 
1073                                                        <span class="ms-1"> 
1074                                                            <a 
1075                                                                href="${url_type}${contatto.testo}" 
1076                                                                target="_blank" 
1077                                                                class="text-primary" 
1078
1079                                                                ${contatto.testo} 
1080                                                            </a> 
1081                                                        </span> 
1082                                                    </div> 
1083                                                </div> 
1084                                            </div> 
1085                                            </#items> 
1086                                        </div> 
1087                                        </#list> 
1088                                    </div> 
1089 
1090                                    <#if immagine_UO?has_content && immagine_UO.url?has_content> 
1091                                    <div class="avatar size-xl"> 
1092                                        <a href="/portal/-/${url_UO}"> 
1093                                            <img 
1094                                                class="w-100" 
1095                                                style="aspect-ratio: 1/1;" 
1096                                                alt="${immagine_UO.alt!}" 
1097                                                src="${immagine_UO.url}" 
1098                                            /> 
1099                                        </a> 
1100                                    </div> 
1101 
1102                                    </#if> 
1103                                </div> 
1104                            </div> 
1105                        </div> 
1106                    </div> 
1107                </article> 
1108                </#if> 
1109 
1110                <#if IPAErogatore.getData()?has_content> 
1111                <article class="it-page-section mb-30" id="ipa-erogatore"> 
1112                    <h2 class="title-xxlarge mb-3"><@liferay.language key="provider-code" /></h2> 
1113                    <div class="richtext-wrapper lora"> 
1114                        ${IPAErogatore.getData()} 
1115                    </div> 
1116                </article> 
1117                </#if> 
1118 
1119                <#if SettoreMerceologico.getData()?has_content> 
1120                <article class="it-page-section mb-30" id="settore-merceologico"> 
1121                    <h2 class="title-xxlarge mb-3"><@liferay.language key="commodity-sector" /></h2> 
1122                    <div class="richtext-wrapper lora"> 
1123                        ${SettoreMerceologico.getData()} 
1124                    </div> 
1125                </article> 
1126                </#if> 
1127 
1128                <#-- ARGOMENTI E CATEGORIE --> 
1129                <div class="border-top border-light pt-4 mt-2 mb-30"> 
1130                    <span class="text-paragraph-small fw-semibold"><@liferay.language key="topics" />:</span> 
1131 
1132                    <ul class="d-flex flex-wrap gap-2 mt-10 mb-3"> 
1133                        <#list argomenti as argomento> 
1134                        <li> 
1135                            <a class="chip chip-simple" href="${argomento.url}"> 
1136                                <span class="chip-label">${argomento.name}</span> 
1137                            </a> 
1138                        </li> 
1139                        </#list> 
1140                    </ul> 
1141                </div> 
1142                <div> 
1143                    <#list categorieServizio> 
1144                    <span class="text-paragraph-small fw-semibold"><@liferay.language key="service-category" />:</span> 
1145                    <ul class="d-flex flex-wrap gap-2 mt-10 mb-3"> 
1146                        <#items as cat> 
1147                        <li> 
1148                            <a 
1149                                href="${cat.url}" 
1150                                class="chip chip-simple" 
1151                                data-element="service-topic" 
1152
1153                                <span class="chip-label"> 
1154                                    ${cat.name} 
1155                                </span> 
1156                            </a> 
1157                        </li> 
1158                        </#items> 
1159                    </ul> 
1160                    </#list> 
1161                    <#-- DATA ULTIMA MODIFICA --> 
1162                    <#assign 
1163                        modifiedDate = .vars['reserved-article-modified-date'].getData()?split(", ")[1]?split(" +")[0] 
1164                        displayModifiedDate = modifiedDate?datetime("dd MMM yyyy hh:mm:ss")?datetime 
1165                    /> 
1166                    <p class="text-paragraph-small mb-0 lora"> 
1167                        <span class="fw-semibold"><@liferay.language key="last-update-date" />: </span> 
1168                        <span> 
1169                            ${displayModifiedDate?string.short} 
1170                        </span> 
1171                    </p> 
1172                    <#list lifeEvents> 
1173                    <div> 
1174                        <#items as evento_life> 
1175                            <span class="sr-only"> 
1176                                ${evento_life} 
1177                            </span> 
1178                        </#items> 
1179                    </div> 
1180                    </#list> 
1181                    <#list businessEvents> 
1182                    <div> 
1183                        <#items as evento_business> 
1184                            <span class="sr-only"> 
1185                                ${evento_business} 
1186                            </span> 
1187                        </#items> 
1188                    </div> 
1189                    </#list> 
1190                </div> 
1191            </div> 
1192        </div> 
1193    </div> 
1194</div> 
1195<style> 
1196.blu-finmatica .calendar-vertical .calendar-date .calendar-date-day::before { 
1197    top: 50%; 
1198    translate: 0 -50%; 
1199
1200.blu-finmatica .calendar-vertical .calendar-date .calendar-date-day::after { 
1201    top: 50%; 
1202    translate: 0 -50%; 
1203
1204#navbarNavProgress .menu-wrapper .link-list-wrapper .link-list .nav-item a.nav-link, 
1205#navbarNavProgress .menu-wrapper .link-list-wrapper .link-list .nav-item a.nav-link.active { 
1206    border-left: none !important; 
1207    padding: 0 24px !important; 
1208
1209</style> 
1210<script defer> 
1211 
1212    document.querySelectorAll(".mail-anchor").forEach(anchor => anchor.href = "mailto:&subject=${Titolo.getData()}&body=" + window.location.href) 
1213 
1214    function redirect(url) { 
1215        window.location.href = url; 
1216
1217 
1218    function shareOn(type) { 
1219        let articleUrl = window.location.href; 
1220        const mapping = { 
1221            "facebook": "https://facebook.com/sharer/sharer.php?u=" + articleUrl, 
1222            "twitter": "https://twitter.com/intent/tweet/?text=" + articleUrl, 
1223            "linkedin": "http://www.linkedin.com/sharing/share-offsite/?url=" + articleUrl, 
1224            "whatsapp": "whatsapp://send?text=" + articleUrl 
1225
1226 
1227        window.open(mapping[type], "_blank"); 
1228        return 
1229
1230 
1231    function bringMeTo(id) { 
1232        document.getElementById(id).scrollIntoView({behavior: 'smooth'}); 
1233
1234 
1235</script> 
1236 
1237<#macro navigatorLink sectionId title> 
1238<#local desc = "" /> 
1239 
1240<#if title?? && title?has_content> 
1241    <#local desc = title /> 
1242<#else> 
1243    <#local desc = sectionId /> 
1244</#if> 
1245 
1246<li class="nav-item"> 
1247    <a 
1248        class="nav-link active" 
1249        onclick="javascript: event.preventDefault(); bringMeTo('${sectionId}')" 
1250        role="button" 
1251        aria-label="${languageUtil.get(locale, 'go-to-section')}: ${title}" 
1252        href="#" 
1253
1254        <span class="title-medium">${title}</span> 
1255    </a> 
1256</li> 
1257</#macro>