Torna su
Logo Comune di Avetrana

Comune di Avetrana

Christmas Camp - Comune di Avetrana

Indietro Christmas Camp

Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy190.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy190 object "com.liferay.document.library.internal.service.FriendlyURLDLFileEntryLocalServiceWrapper@695ba094"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign dlFileEntry = dlFileEntryLoca...  [in template "281621#281649#296381" at line 727, column 65]
----
1<#if themeDisplay.getLayout().isPrivateLayout()==false> 
2	 
3	<#-- instanceId --> 
4	<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") /> 
5	 
6	<#-- Etichette --> 
7	<#-- categorie --> 
8	<#assign label_vai_pagina_ricerca = languageUtil.get(locale , "label_vai_pagina_ricerca")/> 
9	<#assign label_argomenti = languageUtil.get(locale , "label_argomenti")/> 
10	<#assign label_altro = languageUtil.get(locale , "label_altro")/> 
11	<#assign label_categorie = languageUtil.get(locale , "label_categorie")/> 
12	<#assign label_cerca_contenuti_argomento = languageUtil.get(locale , "label_cerca_contenuti_argomento")/> 
13	<#assign label_cerca_contenuti_categoria = languageUtil.get(locale , "label_cerca_contenuti_categoria")/> 
14	<#-- varie --> 
15	<#assign label_ulteriori_informazioni = languageUtil.get(locale , "label_ulteriori_informazioni")/> 
16	<#assign label_ultimo_aggiornamento = languageUtil.get(locale , "label_ultimo_aggiornamento")/> 
17	<#-- indice pagina --> 
18	<#assign label_vai_alla_pagina = languageUtil.get(locale , "label_vai_alla_pagina")/> 
19	<#assign label_vai_sezione = languageUtil.get(locale , "label_vai_sezione")/> 
20	<#assign label_torna_indietro = languageUtil.get(locale , "label_torna_indietro")/> 
21	<#assign label_chiudi = languageUtil.get(locale , "label_chiudi")/> 
22	<#assign label_indice_pagina = languageUtil.get(locale , "label_indice_pagina")/> 
23	<#-- galleria --> 
24	<#assign js_slide_precedente = languageUtil.get(locale , "js_slide_precedente")/> 
25	<#assign js_slide_successiva = languageUtil.get(locale , "js_slide_successiva")/> 
26	<#assign js_vai_prima_slide = languageUtil.get(locale , "js_vai_prima_slide")/> 
27	<#assign js_vai_ultima_slide = languageUtil.get(locale , "js_vai_ultima_slide")/> 
28	<#assign js_vai_slide = languageUtil.get(locale , "js_vai_slide")/> 
29	<#assign js_vai_pagina = languageUtil.get(locale , "js_vai_pagina")/> 
30	<#assign js_attiva_autoplay = languageUtil.get(locale , "js_attiva_autoplay")/> 
31	<#assign js_pausa_autoplay = languageUtil.get(locale , "js_pausa_autoplay")/> 
32	 
33	<#-- struttura articolo --> 
34	<#assign label_identificativo = languageUtil.get(locale , "label_identificativo")/> 
35	<#assign label_protocollo = languageUtil.get(locale , "label_protocollo")/> 
36	<#assign label_data_protocollo = languageUtil.get(locale , "label_data_protocollo")/> 
37	<#assign label_descrizione = languageUtil.get(locale , "label_descrizione")/> 
38	<#assign label_documento = languageUtil.get(locale , "label_documento")/> 
39	<#assign label_gallery = languageUtil.get(locale , "label_gallery")/> 
40	<#assign label_autore = languageUtil.get(locale , "label_autore")/> 
41	<#assign label_ufficio_responsabile = languageUtil.get(locale , "label_ufficio_responsabile")/> 
42	<#assign label_autori = languageUtil.get(locale , "label_autori")/> 
43	<#assign label_formati_disponibili = languageUtil.get(locale , "label_formati_disponibili")/> 
44	<#assign label_servizi = languageUtil.get(locale , "label_servizi")/> 
45	<#assign label_date = languageUtil.get(locale , "label_date")/> 
46	<#assign label_data_inizio = languageUtil.get(locale , "label_data_inizio")/> 
47	<#assign label_data_fine = languageUtil.get(locale , "label_data_fine")/> 
48	<#assign label_riferimenti_normativi = languageUtil.get(locale , "label_riferimenti_normativi")/> 
49	<#assign label_documenti = languageUtil.get(locale , "label_documenti")/> 
50	<#assign label_dataset = languageUtil.get(locale , "label_dataset")/> 
51	<#assign label_download = languageUtil.get(locale , "label_download")/> 
52	<#assign label_file = languageUtil.get(locale , "label_file")/> 
53	<#assign label_in_formato = languageUtil.get(locale , "label_in_formato")/> 
54	 
55	<#-- Ricavo servizi utili in seguito --> 
56	<#-- Servizio per ricavare l'oggetto layout --> 
57	<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
58	<#-- Servizio utile per ricavare i documenti della DM --> 
59	<#assign dlFileEntryLocalService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') /> 
60	 
61	<#-- Inclusione template con macros e relativi servizi --> 
62	<#include "${templatesPath}/COMMON_MACROS" /> 
63	 
64	<#-- campi personalizzati --> 
65	<#-- ricavo dai campi personalizzati i valori degli elenco pagine Novita' --> 
66	<#assign RICERCA_PAGE_URL = "" /> 
67	<#assign ARGOMENTI_VOCABULARY_ID = "" /> 
68	<#if validator.isNotNull(themeDisplay.getLayout().getGroup().getExpandoBridge()) > 
69		<#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("argomenti_vocabulary_id"))) > 
70			<#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("argomenti_vocabulary_id")??> 
71				<#assign ARGOMENTI_VOCABULARY_ID = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("argomenti_vocabulary_id")/> 
72			</#if> 
73		</#if> 
74		<#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("ricerca_page_url"))) > 
75			<#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("ricerca_page_url")??> 
76				<#assign RICERCA_PAGE_URL = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("ricerca_page_url")/> 
77				<#-- data la pagina dell'elenco, ne ricavo la regular url --> 
78				<#if RICERCA_PAGE_URL?has_content> 
79					<#assign ricercaPageLayout = layoutLocalService.getFriendlyURLLayout(groupId, false, RICERCA_PAGE_URL) /> 
80					<#if ricercaPageLayout??> 
81						<#assign ricercaPageUrl = ricercaPageLayout.getRegularURL(request) /> 
82						<#if ricercaPageUrl??>						 
83							<#assign RICERCA_PAGE_URL = ricercaPageUrl /> 
84						</#if> 
85					</#if> 
86				</#if>	 
87			</#if> 
88		</#if> 
89	</#if> 
90	 
91	<#-- HTML --> 
92	<div class="detail-card documenti-detail-card"> 
93	 
94		<#-- intestazione articolo --> 
95		<div class="container"> 
96			<div class="row"> 
97				<div class="col-lg-8"> 
98				 
99					<#-- struttura: title (titolo) - obbligatorio --> 
100					<#if validator.isNotNull(title) && validator.isNotNull(title.getData())> 
101						<h1>${title.getData()}</h1> 
102					</#if> 
103					 
104					<#-- struttura: abstract (descrizione breve) - obbligatorio --> 
105					<#if validator.isNotNull(abstract) && validator.isNotNull(abstract.getData())> 
106						<p>${abstract.getData()}</p> 
107					</#if> 
108				 
109					<#-- identificativo, protocollo e data protocollo --> 
110					<#if (validator.isNotNull(identifier) && validator.isNotNull(identifier.getData())) ||  
111						(validator.isNotNull(protocol) && validator.isNotNull(protocol.getData())) ||  
112						(validator.isNotNull(date) && validator.isNotNull(date.getData())) 
113
114						<div class="row"> 
115							<#-- struttura: identifier (identificativo) --> 
116							<#if validator.isNotNull(identifier) && validator.isNotNull(identifier.getData())> 
117								<div class="col-lg"> 
118									<small>${label_identificativo}:</small> 
119									<p class="fw-semibold font-monospace">${identifier.getData()}</p> 
120								</div> 
121							</#if> 
122 
123							<#-- struttura: protocol (protocollo) --> 
124							<#if validator.isNotNull(protocol) && validator.isNotNull(protocol.getData())> 
125								<div class="col-lg"> 
126									<small>${label_protocollo}:</small> 
127									<p class="fw-semibold font-monospace">${protocol.getData()}</p> 
128								</div> 
129							</#if> 
130 
131							<#-- struttura: date (data del protocollo) - obbligatorio --> 
132							<#if validator.isNotNull(date) && validator.isNotNull(date.getData())> 
133								<div class="col-lg"> 
134									<small>${label_data_protocollo}:</small> 
135									<#assign date_Data = getterUtil.getString(date.getData())> 
136									<#if validator.isNotNull(date_Data)> 
137										<#assign date_DateObj = dateUtil.parseDate("yyyy-MM-dd", date_Data, locale)> 
138										<p class="fw-semibold font-monospace">${dateUtil.getDate(date_DateObj, "dd MMM yyyy", locale)}</p> 
139									</#if> 
140								</div> 
141							</#if> 
142						</div> 
143					</#if> 
144				</div> 
145				 
146				<#-- blocco funzionalita trasversali --> 
147				<div class="col-lg-3 offset-lg-1"> 
148				 
149					<#-- Inclusione template con macros e relativi servizi --> 
150					<#include "${templatesPath}/COMMON_SHARE_FUNCTIONS" /> 
151					 
152					<#-- categorie: poichè ci possono essere piu' categorie appartenenti a vari vocabolari, separo quelle degli ARGOMENTI dalle altre -->				 
153					<#assign categorie = [] /> 
154					<#assign categorieArgomenti = [] /> 
155					<#assign categorieAltre = [] /> 
156	 
157					<#-- recupero l'elenco delle categorie da visualizzare --> 
158					<#assign categorie = getListCategoryByArticlePrimKey( journalArticleResourcePrimKey ) /> 
159	 
160					<#-- ciclo le categorie e le raggruppo in due array distinti --> 
161					<#if categorie?? && (categorie?size > 0)> 
162						<#list categorie as curCat> 
163							<#if validator.isNotNull(curCat) && curCat != ""> 
164								<#if curCat.getVocabularyId() == getterUtil.getLong(ARGOMENTI_VOCABULARY_ID)> 
165									<#assign categorieArgomenti = categorieArgomenti + [curCat] /> 
166								<#else> 
167									<#assign categorieAltre = categorieAltre + [curCat] /> 
168								</#if> 
169							</#if> 
170						</#list> 
171						 
172						<div class="row mt-4 mb-4"> 
173							<#-- categorie ARGOMENTI --> 
174							<#if categorieArgomenti?? && (categorieArgomenti?size > 0)> 
175								<div class="col-md-auto mb-2"> 
176									<div><small>${label_argomenti}</small></div> 
177									<#list categorieArgomenti as curCat> 
178										<#if validator.isNotNull(curCat) && curCat != ""> 
179											<a class="chip-link" href="${RICERCA_PAGE_URL}?categoryIds=${curCat.getCategoryId()}" title="${label_cerca_contenuti_argomento}"> 
180												<div class="chip chip-simple chip-primary"> 
181													<span class="chip-label">${curCat.getTitle(locale)}</span> 
182												</div> 
183											</a> 
184										</#if> 
185									</#list> 
186								</div> 
187							</#if> 
188							 
189							<#-- altre categorie --> 
190							<#if categorieAltre?? && (categorieAltre?size > 0)> 
191								<div class="col-md-auto mb-2"> 
192									<div><small>${label_categorie}</small></div> 
193									<#list categorieAltre as curCat> 
194										<#if validator.isNotNull(curCat) && curCat != ""> 
195											<a class="chip-link" href="${RICERCA_PAGE_URL}?categoryIds=${curCat.getCategoryId()}" title="${label_cerca_contenuti_categoria}"> 
196												<div class="chip chip-simple chip-primary"> 
197													<span class="chip-label">${curCat.getTitle(locale)}</span> 
198												</div> 
199											</a> 
200										</#if> 
201									</#list> 
202								</div> 
203							</#if> 
204						</div> 
205						 
206					</#if> 
207				</div> 
208			</div> 
209		</div> 
210		 
211		<#-- sezione immagine principale --> 
212		<#-- struttura: image (immagine principale) --> 
213		<#if validator.isNotNull(image) && validator.isNotNull(image.getData())> 
214			<#attempt> 
215				<div class="main-image-wrapper my-3"> 
216					<div class="row"> 
217						<div class="col-12 p-0"> 
218							<figure class="img-full"> 
219								<#assign imageAltCaption = htmlUtil.escapeAttribute(title.getData()) /> 
220								 
221								<img src="${image.getData()}" class="figure-img img-fluid" alt="${imageAltCaption}"> 
222							</figure> 
223						</div> 
224					</div> 
225				</div> 
226			<#recover> 
227				<#-- in caso di problemi non visualizzo nulla -->	 
228			</#attempt> 
229		</#if> 
230		 
231		<#-- sezione contenuto pagina --> 
232		<div class="container"> 
233			<div class="row border-top row-column-border row-column-menu-left"> 
234				 
235				<#-- aside --> 
236				<aside class="col-lg-4"> 
237					<#-- indice di pagina --> 
238					<#-- inizio blocco aside con ancore, gestite sia a livello desktop che mobile --> 
239					<nav class="navbar it-navscroll-wrapper navbar-expand-lg it-bottom-navscroll affix-top"> 
240						<button aria-controls="navbarNav_${instanceId}_${articleId}" aria-expanded="false" aria-label="Toggle navigation" class="custom-navbar-toggler" data-target="#navbarNav_${instanceId}_${articleId}" type="button"> 
241							<span class="it-list"></span>${label_indice_pagina} 
242						</button> 
243						<div class="navbar-collapsable" id="navbarNav_${instanceId}_${articleId}"> 
244							<div class="overlay"> </div> 
245							<div class="close-div visually-hidden"> 
246								<button class="btn close-menu" type="button"> 
247									<span class="it-close"></span>${label_chiudi} 
248								</button> 
249							</div> 
250							<a class="it-back-button" href="#"> 
251								<svg class="icon icon-sm icon-primary align-top"> 
252									<use xlink:href="/o/portale-istituzionale-theme/svg/sprite.svg#it-chevron-left"></use> 
253								</svg> 
254								<span>${label_torna_indietro}</span> 
255							</a> 
256							<div class="menu-wrapper"> 
257								<div class="link-list-wrapper menu-link-list"> 
258									<h3 class="no_toc">${label_indice_pagina}</h3> 
259	 
260									<#-- num ancora: serve per individuare la prima ancora che deve avere la classe active --> 
261									<#assign anchorNum = 0 /> 
262	 
263									<#-- elenco ancore del menu laterale di pagina -->			 
264									<ul class="link-list"> 
265									 
266										<#-- descrizione --> 
267										<#if validator.isNotNull(description) && validator.isNotNull(description.getData())> 
268											<#assign anchorNum = anchorNum + 1 /> 
269											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
270												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#description_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_descrizione}"> 
271													<span>${label_descrizione}</span> 
272												</a> 
273											</li> 
274										</#if> 
275 
276										<#-- documento --> 
277										<#if validator.isNotNull(attachmentSection.attachment) && validator.isNotNull(attachmentSection.attachment.getData())> 
278											<#assign anchorNum = anchorNum + 1 /> 
279											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
280												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#attachment_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_documento}"> 
281													<span>${label_documento}</span> 
282												</a> 
283											</li> 
284										</#if> 
285										 
286										<#-- galleria immagini - verifico che ci sia almeno una img ed uso la variabile booleana successivamente --> 
287										<#assign existImageGallery = false /> 
288										<#list imageGallerySection.getSiblings() as curImageGallerySection> 
289											<#if validator.isNotNull(curImageGallerySection.galleryImage) && validator.isNotNull(curImageGallerySection.galleryImage.getData())> 
290												<#attempt> 
291													<#assign existImageGallery = true /> 
292												<#recover> 
293													<#-- se l'img per qualche motivo da errore, non imposto la variabile -->																								 
294												</#attempt> 
295											</#if> 
296											<#if existImageGallery> 
297												<#break> 
298											</#if>											 
299										</#list> 
300										<#if existImageGallery> 
301											<#assign anchorNum = anchorNum + 1 /> 
302											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
303												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#imageGallery_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_gallery}"> 
304													<span>${label_gallery}</span> 
305												</a> 
306											</li> 
307										</#if> 
308										 
309										<#-- ufficio responsabile - verifico che esista --> 
310										<#assign existResponsibleOffice = false /> 
311										<#-- responsibleOffice è un web content --> 
312										<#if validator.isNotNull(responsibleOffice) && validator.isNotNull(responsibleOffice.getData())> 
313											<#attempt> 
314												<#assign webContentData = jsonFactoryUtil.createJSONObject(responsibleOffice.getData()) /> 
315												<#if webContentData?? && webContentData.title??> 
316													<#assign existResponsibleOffice = true /> 
317												</#if> 
318											<#recover> 
319												<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
320											</#attempt> 
321										</#if> 
322										<#if existResponsibleOffice> 
323											<#assign anchorNum = anchorNum + 1 /> 
324											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
325												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#responsibleOffice_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_ufficio_responsabile}"> 
326													<span>${label_ufficio_responsabile}</span> 
327												</a> 
328											</li> 
329										</#if> 
330										 
331										<#-- autori documento --> 
332										<#if validator.isNotNull(authors) && validator.isNotNull(authors.getData())> 
333											<#assign anchorNum = anchorNum + 1 /> 
334											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
335												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#authors_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_autori}"> 
336													<span>${label_autori}</span> 
337												</a> 
338											</li> 
339										</#if> 
340										 
341										<#-- formati documento --> 
342										<#if validator.isNotNull(availableFormats) && validator.isNotNull(availableFormats.getData())> 
343											<#assign anchorNum = anchorNum + 1 /> 
344											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
345												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#availableFormats_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_formati_disponibili}"> 
346													<span>${label_formati_disponibili}</span> 
347												</a> 
348											</li> 
349										</#if> 
350										 
351										<#-- servizi: verifico che ci sia almeno un web content servizio ed uso la variabile booleana successivamente --> 
352										<#assign existServices = false /> 
353										<#-- attachment è un web content --> 
354										<#if service.getSiblings()?has_content> 
355											<#list service.getSiblings() as curService> 
356												<#if validator.isNotNull(curService) && validator.isNotNull(curService.getData())> 
357													<#attempt> 
358														<#assign webContentData = jsonFactoryUtil.createJSONObject(curService.getData()) /> 
359														<#if webContentData?? && webContentData.title??> 
360															<#assign existServices = true /> 
361														</#if> 
362													<#recover> 
363														<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
364													</#attempt> 
365												</#if> 
366												<#if existServices> 
367													<#break> 
368												</#if>	 
369											</#list> 
370										</#if> 
371										<#if existServices> 
372											<#assign anchorNum = anchorNum + 1 /> 
373											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
374												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#services_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_servizi}"> 
375													<span>${label_servizi}</span> 
376												</a> 
377											</li> 
378										</#if> 
379										 
380										<#-- date inizio e fine validità --> 
381										<#if (validator.isNotNull(startDate) && validator.isNotNull(startDate.getData())) || (validator.isNotNull(endDate) && validator.isNotNull(endDate.getData()))> 
382											<#assign anchorNum = anchorNum + 1 /> 
383											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
384												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#date_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_date}"> 
385													<span>${label_date}</span> 
386												</a> 
387											</li> 
388										</#if> 
389										 
390										<#-- riferimenti normativi --> 
391										<#if validator.isNotNull(normativeReferences) && validator.isNotNull(normativeReferences.getData())> 
392											<#assign anchorNum = anchorNum + 1 /> 
393											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
394												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#normativeReferences_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_riferimenti_normativi}"> 
395													<span>${label_riferimenti_normativi}</span> 
396												</a> 
397											</li> 
398										</#if> 
399										 
400										<#-- documenti: verifico che ci sia almeno un web content documento ed uso la variabile booleana successivamente --> 
401										<#assign existAttachments = false /> 
402										<#-- relatedAttachment è un web content --> 
403										<#if relatedAttachment.getSiblings()?has_content> 
404											<#list relatedAttachment.getSiblings() as curRelatedAttachment> 
405												<#if validator.isNotNull(curRelatedAttachment) && validator.isNotNull(curRelatedAttachment.getData())> 
406													<#attempt> 
407														<#assign webContentData = jsonFactoryUtil.createJSONObject(curRelatedAttachment.getData()) /> 
408														<#if webContentData?? && webContentData.title??> 
409															<#assign existAttachments = true /> 
410														</#if> 
411													<#recover> 
412														<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
413													</#attempt> 
414												</#if> 
415												<#if existAttachments> 
416													<#break> 
417												</#if>	 
418											</#list> 
419										</#if> 
420										<#if existAttachments> 
421											<#assign anchorNum = anchorNum + 1 /> 
422											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
423												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#attachments_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_documenti}"> 
424													<span>${label_documenti}</span> 
425												</a> 
426											</li> 
427										</#if> 
428										 
429										<#-- dataset: verifico che ci sia almeno un web content dataset ed uso la variabile booleana successivamente --> 
430										<#assign existDatasets = false /> 
431										<#-- dataset è un web content --> 
432										<#if dataset.getSiblings()?has_content> 
433											<#list dataset.getSiblings() as curDataset> 
434												<#if validator.isNotNull(curDataset) && validator.isNotNull(curDataset.getData())> 
435													<#attempt> 
436														<#assign webContentData = jsonFactoryUtil.createJSONObject(curDataset.getData()) /> 
437														<#if webContentData?? && webContentData.title??> 
438															<#assign existDatasets = true /> 
439														</#if> 
440													<#recover> 
441														<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
442													</#attempt> 
443												</#if> 
444												<#if existDatasets> 
445													<#break> 
446												</#if>	 
447											</#list> 
448										</#if> 
449										<#if existDatasets> 
450											<#assign anchorNum = anchorNum + 1 /> 
451											<li class="nav-item <#if anchorNum == 1>active</#if>"> 
452												<a class="nav-link <#if anchorNum == 1>active</#if>" href="#dataset_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_dataset}"> 
453													<span>${label_dataset}</span> 
454												</a> 
455											</li> 
456										</#if> 
457										 
458										 
459										 
460										<#-- ulteriori informazioni: ancora sempre presente per via della data ultimo aggiornamento --> 
461										<#assign anchorNum = anchorNum + 1 /> 
462										<li class="nav-item <#if anchorNum == 1>active</#if>"> 
463											<a class="nav-link <#if anchorNum == 1>active</#if>" href="#moreInfo_${instanceId}_${articleId}" title="${label_vai_sezione} ${label_ulteriori_informazioni}"> 
464												<span>${label_ulteriori_informazioni}</span> 
465											</a> 
466										</li> 
467										 
468									</ul> 
469								</div> 
470							</div> 
471						</div> 
472					</nav> 
473					<#-- fine indice di pagina --> 
474				</aside> 
475				<#-- fine aside --> 
476				 
477				<#-- contenuto della pagina --> 
478				<div class="col-lg-8 it-page-sections-container p-4 border-left only-desktop"> 
479					 
480					<#-- struttura: description (descrizione completa) - obbligatorio --> 
481					<#if validator.isNotNull(description) && validator.isNotNull(description.getData())> 
482						<article class="it-page-section anchor-offset mb-4" id="description_${instanceId}_${articleId}"> 
483							<h4>${label_descrizione}</h4> 
484							<div class="font-serif"> 
485								${description.getData()} 
486							</div> 
487						</article> 
488					</#if> 
489					 
490					<#-- struttura: attachment (Documento) --> 
491					<#if validator.isNotNull(attachmentSection.attachment) && validator.isNotNull(attachmentSection.attachment.getData())> 
492						<article class="it-page-section anchor-offset mb-4" id="attachment_${instanceId}_${articleId}"> 
493							<h4>${label_documento}</h4> 
494							 
495							<#attempt> 
496								<#-- ricavo la size del documento --> 
497								<#-- a partire dal link, lo splitto e ricavo il secondo ed il 5 argomento che mi servono per il metodo successivo --> 
498								<#assign dlFileEntrySize = "" /> 
499								<#assign parts = (attachmentSection.attachment.getData())?split("/") /> 
500								<#assign groupId = parts[2] /> 
501								<#assign uuId = parts[5]?split("?")[0] /> 
502								 
503								<#assign dlFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(uuId,groupId?number) />									 
504								 
505								<#assign dlFileEntrySize = dlFileEntry.getSize() /> 
506								<#assign dlFileEntryExtension = dlFileEntry.getExtension()?upper_case?trim /> 
507								 
508								<#-- trasformo la dimensione in KB --> 
509								<#if (dlFileEntrySize gt 0) > 
510									<#assign dlFileEntrySize = (dlFileEntrySize / 1000) + " KB"/> 
511								</#if> 
512		 
513								<#-- ricavo il titolo dell'allegato: se nn c'è passo un titolo generico --> 
514								<#assign attachmentHeader = label_documento /> 
515								<#if validator.isNotNull(attachmentSection.attachmentTitle) && validator.isNotNull(attachmentSection.attachmentTitle.getData()) > 
516									<#assign attachmentHeader = htmlUtil.escapeAttribute(attachmentSection.attachmentTitle.getData()) /> 
517								</#if> 
518								 
519								<#-- visualizzo il link dell'allegato -->  
520								<div class="card card-teaser shadow rounded"> 
521									<svg class="icon"> 
522										<use xlink:href="/o/portale-istituzionale-theme/svg/sprite.svg#it-clip"></use> 
523									</svg> 
524									<div class="card-body"> 
525										<h5 class="card-title"> 
526											<a href="${attachmentSection.attachment.getData()}" target="_blank" title='${label_file} <#if dlFileEntryExtension != "">${label_in_formato} ${dlFileEntryExtension}</#if> - ${dlFileEntrySize}'> 
527												<strong>${attachmentHeader}</strong> 
528											</a> 
529										</h5> 
530										<#if validator.isNotNull(attachmentSection.attachmentDescription) && validator.isNotNull(attachmentSection.attachmentDescription.getData()) > 
531											<div class="card-text"><small>${attachmentSection.attachmentDescription.getData()}</small></div> 
532										</#if> 
533									</div> 
534								</div> 
535							<#recover> 
536								<#-- non visualizzo nulla -->															 
537							</#attempt>					 
538						</article> 
539					</#if> 
540					 
541					<#-- struttura: imageGallerySection con i campi figli, immagine, autore e didascalia --> 
542					<#-- costruisco l'html agid per la galleria che usa il plugin splide --> 
543					<#if existImageGallery> 
544						<article class="it-page-section anchor-offset mb-4" id="imageGallery_${instanceId}_${articleId}"> 
545							<h4>${label_gallery}</h4> 
546							 
547							<section id="imageGalleryWrapper_${instanceId}_${articleId}" class="it-carousel-wrapper it-carousel-landscape-abstract it-full-carousel it-big-img splide" aria-label="${label_gallery}"> 
548								<div class="splide__track"> 
549									<ul class="splide__list"> 
550										<#list imageGallerySection.getSiblings() as curImageGallerySection> 
551											<#-- tutto il codice lo inserisco dopo il controllo dell'esistenza dell'img --> 
552											<#if validator.isNotNull(curImageGallerySection.galleryImage) && validator.isNotNull(curImageGallerySection.galleryImage.getData())> 
553												<#attempt> 
554													<#-- imposto l'alt per ogni immagine: ricavo la didascalia, se esiste, altrimenti uso il valore di default uguale al titolo obbligatorio --> 
555													<#assign altCaption = htmlUtil.escapeAttribute(title.getData()) /> 
556													<#if validator.isNotNull(curImageGallerySection.galleryImageCaption) && validator.isNotNull(curImageGallerySection.galleryImageCaption.getData())> 
557														<#assign altCaption = htmlUtil.escapeAttribute(curImageGallerySection.galleryImageCaption.getData()) /> 
558													</#if> 
559											 
560													<li class="splide__slide"> 
561														<div class="it-single-slide-wrapper"> 
562															<div class="card-wrapper"> 
563																<div class="card card-img no-after border-0 shadow-none m-0"> 
564																	<div class="img-responsive-wrapper"> 
565																		<div class="img-responsive"> 
566																			<div class="img-wrapper"> 
567																				<img src="${curImageGallerySection.galleryImage.getData()}" alt="${altCaption}"> 
568																			</div> 
569																		</div> 
570																	</div> 
571																	<#if  
572																		(validator.isNotNull(curImageGallerySection.galleryImageAuthor) && validator.isNotNull(curImageGallerySection.galleryImageAuthor.getData())) || 
573																		(validator.isNotNull(curImageGallerySection.galleryImageCaption) && validator.isNotNull(curImageGallerySection.galleryImageCaption.getData())) 
574
575																		<div class="card-body text-center p-2"> 
576																			<#if validator.isNotNull(curImageGallerySection.galleryImageCaption) && validator.isNotNull(curImageGallerySection.galleryImageCaption.getData())> 
577																				<p class="mb-0"><small>${curImageGallerySection.galleryImageCaption.getData()}</small></p> 
578																			</#if> 
579																			<#if validator.isNotNull(curImageGallerySection.galleryImageAuthor) && validator.isNotNull(curImageGallerySection.galleryImageAuthor.getData())> 
580																				<p><small>${label_autore}: ${curImageGallerySection.galleryImageAuthor.getData()}</small></p> 
581																			</#if> 
582																		</div> 
583																	</#if> 
584																</div> 
585															</div> 
586														</div> 
587													</li>	 
588												<#recover> 
589													<#-- in caso di problemi non visualizzo nulla --> 
590												</#attempt> 
591											</#if>					 
592										</#list> 
593									</ul> 
594								</div> 
595							</section> 
596						</article> 
597					</#if> 
598					 
599					<#-- struttura: responsibleOffice (ufficio responsabile): obbligatorio --> 
600					<#if existResponsibleOffice> 
601						<article class="it-page-section anchor-offset mb-4" id="responsibleOffice_${instanceId}_${articleId}"> 
602							<h4>${label_ufficio_responsabile}</h4> 
603							 
604							<#if validator.isNotNull(responsibleOffice) && validator.isNotNull(responsibleOffice.getData())> 
605								<#attempt> 
606									<#assign webContentData = jsonFactoryUtil.createJSONObject(responsibleOffice.getData()) /> 
607																			 
608									<#if webContentData?? && webContentData.classPK??> 
609										<#-- ricavo il classPK --> 
610										<#assign webContent_classPK = webContentData.classPK?number /> 
611										<#-- ricavo il journal article --> 
612										<#assign webContent_ja = journalArticleLocalService.getLatestArticle(webContent_classPK) /> 
613										<#-- ricavo il nome della struttura --> 
614										<#assign webContent_jaStructureName = webContent_ja.getDDMStructure().getName(locale) /> 
615										<#-- ricavo il valore della structrurekey --> 
616										<#assign webContent_jaStructureKey = webContent_ja.getDDMStructureKey() />	 
617 
618										<#if webContent_ja??> 
619											<#-- ricavo l'url title associato all'articolo --> 
620											<#assign webContent_jaUrlTitle= webContent_ja.getUrlTitle() /> 
621											 
622											<#-- inizializzo le variabili usate in seguito --> 
623											<#assign responsibleOfficeTitle = "", responsibleOfficeMainOffice = "" /> 
624											 
625											<#-- applico la funzione getFieldValue per ricavare i dati che mi servono --> 
626											<#-- title - campo obbligatorio --> 
627						                    <#assign responsibleOfficeTitle = getFieldValue(webContent_ja, 'title') /> 
628 
629											<#-- main office --> 
630						                    <#assign responsibleOfficeMainOffice = getFieldValue(webContent_ja, 'mainOffice') /> 
631											 
632											<#-- ricavo dal web content mainOffice annidato nuovamente i dati che servono --> 
633											<#if validator.isNotNull(responsibleOfficeMainOffice)> 
634												<#assign responsibleOfficeMainOffice_webContentData = jsonFactoryUtil.createJSONObject(responsibleOfficeMainOffice) /> 
635												 
636												<#if responsibleOfficeMainOffice_webContentData?? && responsibleOfficeMainOffice_webContentData.classPK??> 
637													<#-- ricavo il classPK --> 
638													<#assign responsibleOfficeMainOffice_webContent_classPK = responsibleOfficeMainOffice_webContentData.classPK?number /> 
639													<#-- ricavo il journal article --> 
640													<#assign responsibleOfficeMainOffice_webContent_ja = journalArticleLocalService.getLatestArticle(responsibleOfficeMainOffice_webContent_classPK) /> 
641													<#-- ricavo il nome della struttura --> 
642													<#assign responsibleOfficeMainOffice_webContent_jaStructureName = responsibleOfficeMainOffice_webContent_ja.getDDMStructure().getName(locale) /> 
643													<#-- ricavo il valore della structrurekey --> 
644													<#assign responsibleOfficeMainOffice_webContent_jaStructureKey = responsibleOfficeMainOffice_webContent_ja.getDDMStructureKey() />	 
645											 
646													<#if responsibleOfficeMainOffice_webContent_ja??> 
647														<#-- ricavo l'url title associato all'articolo --> 
648														<#assign responsibleOfficeMainOffice_webContent_jaUrlTitle= responsibleOfficeMainOffice_webContent_ja.getUrlTitle() /> 
649														 
650														<#-- inizializzo le variabili usate in seguito --> 
651														<#assign responsibleOfficeMainOfficeAddress = "", responsibleOfficeMainOfficeImage = "", imageUrl = ""/> 
652														 
653														<#-- applico la funzione getFieldValue per ricavare i dati che mi servono --> 
654														<#-- address --> 
655									                    <#assign responsibleOfficeMainOfficeAddress = getFieldValue(responsibleOfficeMainOffice_webContent_ja, 'address') /> 
656 
657														<#-- image --> 
658									                    <#assign responsibleOfficeMainOfficeImage = getFieldValue(responsibleOfficeMainOffice_webContent_ja, 'image') /> 
659									                     
660									                    <#if validator.isNotNull(responsibleOfficeMainOfficeImage)> 
661															<#assign imageJson = jsonFactoryUtil.createJSONObject(responsibleOfficeMainOfficeImage) /> 
662															<#if imageJson?? && imageJson?has_content && imageJson.uuid?? && imageJson.groupId??> 
663																<#assign imageDlFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(imageJson.uuid,imageJson.groupId?number) /> 
664																<#assign imageUrl = "/documents/"+groupId+"/"+imageDlFileEntry.getFolderId()+"/"+imageDlFileEntry.getFileName()+"/"+imageJson.uuid /> 
665															</#if> 
666														</#if> 
667													</#if> 
668												</#if> 
669											</#if> 
670										</#if> 
671									</#if> 
672									 
673									<#-- html --> 
674									<#if validator.isNotNull(responsibleOfficeTitle)> 
675										<div class="row"> 
676											<div class="col-12 col-sm-8"> 
677												<div class="card card-teaser rounded shadow p-4"> 
678													<div class="card-body"> 
679														<h5 class="card-title"> 
680															<a href="/-/${webContent_jaUrlTitle}" title="${label_vai_alla_pagina} ${htmlUtil.escapeAttribute(responsibleOfficeTitle)}"> 
681																${responsibleOfficeTitle} 
682															</a> 
683														</h5> 
684														<#if validator.isNotNull(responsibleOfficeMainOfficeAddress)> 
685															<div class="card-text"> 
686																<p>${responsibleOfficeMainOfficeAddress}</p> 
687															</div> 
688														</#if> 
689													</div> 
690													<#if validator.isNotNull(imageUrl)> 
691														<div class="avatar size-xl"> 
692															<img src="${imageUrl}" alt="${htmlUtil.escapeAttribute(responsibleOfficeTitle)}"> 
693														</div> 
694													</#if> 
695												</div> 
696											</div> 
697										</div> 
698									</#if> 
699									 
700								<#recover> 
701									<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
702								</#attempt> 
703							</#if> 
704						</article> 
705					</#if> 
706					 
707					<#-- struttura: authors (autori) --> 
708					<#if validator.isNotNull(authors) && validator.isNotNull(authors.getData())> 
709						<article class="it-page-section anchor-offset mb-4" id="authors_${instanceId}_${articleId}"> 
710							<h4>${label_autori}</h4> 
711							<div class="font-serif"> 
712								${authors.getData()} 
713							</div> 
714						</article> 
715					</#if> 
716 
717					<#-- struttura: availableFormats (formati disponibili) - obbligatorio --> 
718					<#if validator.isNotNull(availableFormats) && validator.isNotNull(availableFormats.getData())> 
719						<article class="it-page-section anchor-offset mb-4" id="authors_${instanceId}_${articleId}"> 
720							<h4>${label_formati_disponibili}</h4> 
721							<div class="font-serif"> 
722								<#assign dlFileEntrySize = "" /> 
723								<#assign parts = (attachmentSection.attachment.getData())?split("/") /> 
724								<#assign groupId = parts[2] /> 
725								<#assign uuId = parts[5]?split("?")[0] /> 
726								 
727								<#assign dlFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(uuId,groupId?number) />									 
728								 
729								<#assign dlFileEntrySize = dlFileEntry.getSize() /> 
730								<#assign dlFileEntryExtension = dlFileEntry.getExtension()?trim /> 
731								 
732								.${dlFileEntryExtension} 
733							</div> 
734						</article> 
735					</#if> 
736					 
737					<#-- struttura: service (servizio) : ripetibile --> 
738					<#if existServices> 
739						<article class="it-page-section anchor-offset mb-4" id="services_${instanceId}_${articleId}"> 
740							<h4>${label_servizi}</h4> 
741							 
742							<div class="card-wrapper card-teaser-wrapper"> 
743								<#list service.getSiblings() as curService> 
744									<#if validator.isNotNull(curService) && validator.isNotNull(curService.getData())> 
745										<#attempt> 
746											<#assign webContentData = jsonFactoryUtil.createJSONObject(curService.getData()) /> 
747	 
748											<#if webContentData?? && webContentData.classPK??> 
749												<#-- ricavo il classPK --> 
750												<#assign webContent_classPK = webContentData.classPK?number /> 
751												<#-- ricavo il journal article --> 
752												<#assign webContent_ja = journalArticleLocalService.getLatestArticle(webContent_classPK) /> 
753												<#-- ricavo il nome della struttura --> 
754												<#assign webContent_jaStructureName = webContent_ja.getDDMStructure().getName(locale) /> 
755												<#-- ricavo il valore della structrurekey --> 
756												<#assign webContent_jaStructureKey = webContent_ja.getDDMStructureKey() />	 
757		 
758												<#if webContent_ja??> 
759													<#-- ricavo l'url title associato all'articolo --> 
760													<#assign webContent_jaUrlTitle= webContent_ja.getUrlTitle() /> 
761													 
762													<#-- inizializzo le variabili usate in seguito --> 
763													<#assign curServiceTitle = "" /> 
764													 
765													<#-- applico la funzione getFieldValue per ricavare i dati che mi servono --> 
766													<#-- title --> 
767								                    <#assign curServiceTitle = getFieldValue(webContent_ja, 'title') /> 
768	 
769												</#if> 
770											</#if> 
771											 
772											<#-- html --> 
773											<#if validator.isNotNull(curServiceTitle)> 
774												<div class="card card-teaser rounded shadow p-4"> 
775													<svg class="icon"> 
776														<use xlink:href="/o/portale-istituzionale-theme/svg/sprite.svg#it-pa"></use> 
777													</svg> 
778													<div class="card-body"> 
779														<h5 class="card-title"> 
780															<a href="/-/${webContent_jaUrlTitle}" title="${label_vai_alla_pagina} ${htmlUtil.escapeAttribute(curServiceTitle)}"> 
781																${curServiceTitle} 
782															</a> 
783														</h5> 
784													</div> 
785												</div> 
786											</#if> 
787											 
788										<#recover> 
789											<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
790										</#attempt> 
791									</#if> 
792								</#list> 
793							</div> 
794						</article> 
795					</#if> 
796					 
797					 
798					<#-- struttura: startDate, endDate  --> 
799					<#if (validator.isNotNull(startDate) && validator.isNotNull(startDate.getData())) || (validator.isNotNull(endDate) && validator.isNotNull(endDate.getData()))> 
800						<article class="it-page-section anchor-offset mb-4" id="date_${instanceId}_${articleId}"> 
801							<h4>${label_date}</h4> 
802 
803							<#if validator.isNotNull(startDate) && validator.isNotNull(startDate.getData())> 
804								<div class="point-list-wrapper my-4"> 
805									<div class="point-list"> 
806										<div class="point-list-aside point-list-primary"> 
807											<#assign startDate_Data = getterUtil.getString(startDate.getData()) /> 
808											<#if validator.isNotNull(startDate_Data)> 
809												<#assign startDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", startDate_Data, locale) /> 
810												<div class="point-date font-monospace">${dateUtil.getDate(startDate_DateObj, "dd", locale)}</div> 
811												<div class="point-month font-monospace">${dateUtil.getDate(startDate_DateObj, "MMM", locale)}</div> 
812											</#if> 
813										</div> 
814										<div class="point-list-content"> 
815											<div class="card card-teaser shadow rounded m-0"> 
816												<div class="card-body"> 
817													<h5 class="card-title mb-0"> 
818														${label_data_inizio} 
819													</h5> 
820												</div> 
821											</div> 
822										</div> 
823									</div> 
824								</div> 
825							</#if> 
826							 
827							<#-- struttura: endDate (data fine) --> 
828							<#if validator.isNotNull(endDate) && validator.isNotNull(endDate.getData())> 
829								<div class="point-list-wrapper my-4"> 
830									<div class="point-list"> 
831										<div class="point-list-aside point-list-primary"> 
832											<#assign endDate_Data = getterUtil.getString(endDate.getData()) /> 
833											<#if validator.isNotNull(endDate_Data)> 
834												<#assign endDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", endDate_Data, locale) /> 
835												<div class="point-date font-monospace">${dateUtil.getDate(endDate_DateObj, "dd", locale)}</div> 
836												<div class="point-month font-monospace">${dateUtil.getDate(endDate_DateObj, "MMM", locale)}</div> 
837											</#if> 
838										</div> 
839										<div class="point-list-content"> 
840											<div class="card card-teaser shadow rounded m-0"> 
841												<div class="card-body"> 
842													<h5 class="card-title mb-0"> 
843														${label_data_fine} 
844													</h5> 
845												</div> 
846											</div> 
847										</div> 
848									</div> 
849								</div> 
850							</#if> 
851						</article> 
852					</#if> 
853 
854					<#-- struttura: normativeReferences (riferimenti normativi) --> 
855					<#if validator.isNotNull(normativeReferences) && validator.isNotNull(normativeReferences.getData())> 
856						<article class="it-page-section anchor-offset mb-4" id="normativeReferences_${instanceId}_${articleId}"> 
857							<h4>${label_riferimenti_normativi}</h4> 
858							<div class="font-serif"> 
859								${normativeReferences.getData()} 
860							</div> 
861						</article> 
862					</#if> 
863					 
864					<#-- struttura: attachment (Documento): ripetibile --> 
865					<#-- ciclo per ottenere il singolo allegato obbligatorio incluso nel web content Documento -->	 
866					<#if existAttachments> 
867						<article class="it-page-section anchor-offset mb-4" id="attachments_${instanceId}_${articleId}"> 
868							<h4>${label_documenti}</h4> 
869							 
870							<div class="card-wrapper card-teaser-wrapper"> 
871								<#list relatedAttachment.getSiblings() as curRelatedAttachment> 
872									<#if validator.isNotNull(curRelatedAttachment) && validator.isNotNull(curRelatedAttachment.getData())> 
873										<#attempt> 
874											<#assign webContentData = jsonFactoryUtil.createJSONObject(curRelatedAttachment.getData()) /> 
875																					 
876											<#if webContentData?? && webContentData.classPK??> 
877												<#-- ricavo il classPK --> 
878												<#assign webContent_classPK = webContentData.classPK?number /> 
879												<#-- ricavo il journal article --> 
880												<#assign webContent_ja = journalArticleLocalService.getLatestArticle(webContent_classPK) /> 
881												<#-- ricavo il nome della struttura --> 
882												<#assign webContent_jaStructureName = webContent_ja.getDDMStructure().getName(locale) /> 
883												<#-- ricavo il valore della structrurekey --> 
884												<#assign webContent_jaStructureKey = webContent_ja.getDDMStructureKey() />	 
885	 
886												<#if webContent_ja??> 
887													<#-- ricavo l'url title associato all'articolo --> 
888													<#assign webContent_jaUrlTitle= webContent_ja.getUrlTitle() /> 
889													 
890													<#-- inizializzo le variabili usate in seguito --> 
891													<#assign curRelatedAttachmentFile = "", fileUrl = "", curRelatedAttachmentTitle = "" /> 
892													 
893													<#-- applico la funzione getFieldValue per ricavare i dati che mi servono --> 
894													<#-- allegato: obbligatorio --> 
895								                    <#assign curRelatedAttachmentFile = getFieldValue(webContent_ja, 'attachment') /> 
896								                    <#if validator.isNotNull(curRelatedAttachmentFile)> 
897														<#assign fileJson = jsonFactoryUtil.createJSONObject(curRelatedAttachmentFile) /> 
898														<#if fileJson?? && fileJson?has_content && fileJson.uuid?? && fileJson.groupId??> 
899															<#assign dlFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(fileJson.uuid,fileJson.groupId?number) /> 
900															<#assign fileUrl = "/documents/"+groupId+"/"+dlFileEntry.getFolderId()+"/"+dlFileEntry.getFileName()+"/"+fileJson.uuid /> 
901														</#if>	 
902													</#if>	 
903													 
904													<#-- titolo allegato: obbligatorio --> 
905								                    <#assign curRelatedAttachmentTitle = getFieldValue(webContent_ja, 'attachmentTitle') /> 
906													 
907													<#-- html --> 
908													<#if validator.isNotNull(fileUrl) && validator.isNotNull(curRelatedAttachmentTitle)> 
909														<div class="card card-teaser shadow p-4 mt-3 rounded"> 
910															<svg class="icon"> 
911																<use xlink:href="/o/portale-istituzionale-theme/svg/sprite.svg#it-clip"></use> 
912															</svg> 
913															<div class="card-body"> 
914																<h5 class="card-title"> 
915																	<a href="${fileUrl}" target="_blank" title="${label_download} ${htmlUtil.escapeAttribute(curRelatedAttachmentTitle)}">${curRelatedAttachmentTitle}</a> 
916																</h5> 
917															</div> 
918														</div> 
919													</#if> 
920													 
921												</#if> 
922											</#if> 
923										<#recover> 
924											<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
925										</#attempt> 
926									</#if> 
927								</#list> 
928							</div> 
929						</article> 
930					</#if> 
931 
932					<#-- struttura: dataset (Dataset): ripetibile --> 
933					<#-- ciclo per ottenere il singolo allegato obbligatorio incluso nel web content Dataset -->	 
934					<#if existDatasets> 
935						<article class="it-page-section anchor-offset mb-4" id="dataset_${instanceId}_${articleId}"> 
936							<h4>${label_dataset}</h4> 
937							 
938							<div class="card-wrapper card-teaser-wrapper "> 
939								<#list dataset.getSiblings() as curDataset> 
940									<#if validator.isNotNull(curDataset) && validator.isNotNull(curDataset.getData())> 
941										<#attempt> 
942											<#assign webContentData = jsonFactoryUtil.createJSONObject(curDataset.getData()) /> 
943																					 
944											<#if webContentData?? && webContentData.classPK??> 
945												<#-- ricavo il classPK --> 
946												<#assign webContent_classPK = webContentData.classPK?number /> 
947												<#-- ricavo il journal article --> 
948												<#assign webContent_ja = journalArticleLocalService.getLatestArticle(webContent_classPK) /> 
949												<#-- ricavo il nome della struttura --> 
950												<#assign webContent_jaStructureName = webContent_ja.getDDMStructure().getName(locale) /> 
951												<#-- ricavo il valore della structrurekey --> 
952												<#assign webContent_jaStructureKey = webContent_ja.getDDMStructureKey() />	 
953	 
954												<#if webContent_ja??> 
955													<#-- ricavo l'url title associato all'articolo --> 
956													<#assign webContent_jaUrlTitle= webContent_ja.getUrlTitle() /> 
957													 
958													<#-- inizializzo le variabili usate in seguito --> 
959													<#assign curDatasetAttachment = "", fileUrl = "", curDatasetAttachmentTitle = "" /> 
960													 
961													<#-- applico la funzione getFieldValue per ricavare i dati che mi servono --> 
962													<#-- allegato: obbligatorio --> 
963								                    <#assign curDatasetAttachment = getFieldValue(webContent_ja, 'attachment') /> 
964								                     
965								                    <#if validator.isNotNull(curDatasetAttachment)> 
966														<#assign fileJson = jsonFactoryUtil.createJSONObject(curDatasetAttachment) /> 
967														<#if fileJson?? && fileJson?has_content && fileJson.uuid?? && fileJson.groupId??> 
968															<#assign dlFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(fileJson.uuid,fileJson.groupId?number) /> 
969															<#assign fileUrl = "/documents/"+groupId+"/"+dlFileEntry.getFolderId()+"/"+dlFileEntry.getFileName()+"/"+fileJson.uuid /> 
970														</#if>	 
971													</#if>	 
972													 
973													<#-- titolo allegato: obbligatorio --> 
974								                    <#assign curDatasetAttachmentTitle = getFieldValue(webContent_ja, 'attachmentTitle') /> 
975													 
976													<#-- html --> 
977													<#if validator.isNotNull(fileUrl) && validator.isNotNull(curDatasetAttachmentTitle)> 
978														<div class="card card-teaser shadow p-4 mt-3 rounded"> 
979															<svg class="icon"> 
980																<use xlink:href="/o/portale-istituzionale-theme/svg/sprite.svg#it-clip"></use> 
981															</svg> 
982															<div class="card-body"> 
983																<h5 class="card-title"> 
984																	<a href="${fileUrl}" target="_blank" title="${label_download} ${htmlUtil.escapeAttribute(curDatasetAttachmentTitle)}">${curDatasetAttachmentTitle}</a> 
985																</h5> 
986															</div> 
987														</div> 
988													</#if> 
989													 
990												</#if> 
991											</#if> 
992										<#recover> 
993											<#-- se il web content per qualche motivo da errore, non imposto la variabile --> 
994										</#attempt> 
995									</#if> 
996								</#list> 
997							</div> 
998						</article> 
999					</#if> 
1000					 
1001					<#-- struttura: moreInformation --> 
1002					<article class="it-page-section anchor-offset mb-4" id="moreInfo_${instanceId}_${articleId}"> 
1003						<h4>${label_ulteriori_informazioni}</h4> 
1004					</article> 
1005					 
1006					<#-- data ultimo aggiornamento --> 
1007					<article id="last-modified-date" class="anchor-offset mb-4"> 
1008						<p class="font-serif">${label_ultimo_aggiornamento}</p> 
1009						<h6><strong>${articleModifiedDate}</strong></h6> 
1010					</article> 
1011	 
1012				</div> 
1013			</div> 
1014		</div> 
1015	</div> 
1016	 
1017	<script> 
1018		// 	inizializzazione galleria immagini se ci sono img 
1019		<#if existImageGallery> 
1020			new Splide( '#imageGalleryWrapper_${instanceId}_${articleId}',{ 
1021				arrows: false, 
1022				i18n: { 
1023					prev: "${js_slide_precedente}", 
1024					next: "${js_slide_successiva}", 
1025					first: "${js_vai_prima_slide}", 
1026					last: "${js_vai_ultima_slide}", 
1027					slideX: "${js_vai_slide}" + " %s", 
1028					pageX: "${js_vai_pagina}" + " %s", 
1029					play: "${js_attiva_autoplay}", 
1030					pause: "${js_pausa_autoplay}" 
1031
1032			} ).mount(); 
1033		</#if> 
1034	</script> 
1035	 
1036</#if> 
Contatti

Comune di Avetrana
Provincia di Taranto
Via Vittorio Emanuele, 19, 74020
Avetrana (TA)

 

Telefono: 0999707766
Fax: 0999704336

Posta Elettronica Certificata:
prot.comune.avetrana@pec.rupar.puglia.it