null Regolamento per l'assegnazione suoli nel P.I.P.

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> office_webContentData.classPK  [in template "34140#34167#38498" at line 425, column 119]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign cur_office_classPK = office_w...  [in template "34140#34167#38498" at line 425, column 89]
----
1<#-- ricavo i valori dei custom field con structureKey --> 
2<#if validator.isNotNull(themeDisplay.getLayout().getGroup().getExpandoBridge()) > 
3	<#assign STRUCTURE_KEY_UFFICIO = "" /> 
4	<#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("structure_key_ufficio"))) > 
5		<#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("structure_key_ufficio")??> 
6			<#assign STRUCTURE_KEY_UFFICIO = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("structure_key_ufficio")/> 
7		</#if> 
8	</#if> 
9</#if> 
10 
11<#-- instanceId --> 
12<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") /> 
13 
14<#-- etichette --> 
15<#assign label_regolamento = languageUtil.get(locale, "label_regolamento") /> 
16<#assign label_numero = languageUtil.get(locale, "label_numero") /> 
17<#assign label_del = languageUtil.get(locale, "label_del") /> 
18<#assign label_date = languageUtil.get(locale, "label_date") /> 
19<#assign label_data_inserimento = languageUtil.get(locale, "label_data_inserimento") /> 
20<#assign label_data_ultima_modifica = languageUtil.get(locale, "label_data_ultima_modifica") /> 
21<#assign label_ufficio = languageUtil.get(locale, "label_ufficio") /> 
22<#assign label_documenti = languageUtil.get(locale, "label_documenti") /> 
23<#assign label_ulteriori_informazioni = languageUtil.get(locale, "label_ulteriori_informazioni") /> 
24<#assign label_ultimo_aggiornamento = languageUtil.get(locale, "label_ultimo_aggiornamento") /> 
25<#assign label_responsabile_del_procedimento = languageUtil.get(locale, "label_responsabile_del_procedimento") /> 
26 
27<#assign label_condividi = languageUtil.get(locale, "label_condividi") /> 
28<#assign label_vedi_azioni = languageUtil.get(locale, "label_vedi_azioni") /> 
29<#assign label_argomenti = languageUtil.get(locale, "label_argomenti") /> 
30<#assign label_facebook = languageUtil.get(locale, "label_facebook") /> 
31<#assign label_twitter = languageUtil.get(locale, "label_twitter") /> 
32<#assign label_linkedin = languageUtil.get(locale, "label_linkedin") /> 
33<#assign label_whatsapp = languageUtil.get(locale, "label_whatsapp") /> 
34<#assign label_stampa = languageUtil.get(locale, "label_stampa") /> 
35<#assign label_invia = languageUtil.get(locale, "label_invia") /> 
36<#assign label_indice_pagina = languageUtil.get(locale, "label_indice_pagina") /> 
37 
38<#assign label_vai_sezione = languageUtil.get(locale, "label_vai_sezione") /> 
39<#assign label_vai_alla_pagina = languageUtil.get(locale, "label_vai_alla_pagina") /> 
40<#assign label_documento = languageUtil.get(locale, "label_documento") /> 
41<#assign label_data = languageUtil.get(locale, "label_data") /> 
42 
43<#-- Ricavo servizi utili in seguito --> 
44<#-- Servizo per ricavare le categorie --> 
45<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
46<#-- Servizio per ricavare dati del journal article --> 
47<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
48<#-- Servizio per ricavare il nome del gruppo corrente --> 
49<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
50<#-- Nome del sito --> 
51<#assign currentGroupName = groupLocalService.getGroup(groupId).getName(locale) /> 
52<#-- Servizio per ricavare l'oggetto layout --> 
53<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
54 
55<#-- Ricavo alcuni meta dati associati all'articolo --> 
56<#-- Ricavo article id --> 
57<#assign articleId = .vars['reserved-article-id'].data /> 
58<#-- Ricavo il titolo --> 
59<#assign titolo = .vars['reserved-article-title'].data /> 
60<#assign titolo = escapeExtraChar(titolo) /> 
61 
62<#-- Altri dati associati all'articolo che ricavo tramite API --> 
63<#assign article = journalArticleLocalService.getArticle( groupId,  articleId ) /> 
64 
65<#-- Data ultima modifica articolo --> 
66<#assign articleModifiedDateObj = article.getModifiedDate() /> 
67<#if validator.isNotNull(articleModifiedDateObj)> 
68	<#assign articleModifiedDate = dateUtil.getDate(articleModifiedDateObj, "dd/MM/yyyy, hh:mm", locale) /> 
69</#if> 
70 
71<#-- Url Title journal article --> 
72<#assign articleUrlTitle = article.getUrlTitle() /> 
73<#-- Primary key journal article --> 
74<#assign articlePrimKey = article.resourcePrimKey/> 
75 
76<#-- Se il carattere indicato è il prefisso della categoria, indica che la stessa non deve essere mostrata a video, ma viene solo usata per scopi funzionali --> 
77<#assign PREFIX_SERVICE_CATEGORY = "_" /> 
78 
79<#-- Ricavo tutte le categorie associate ad un articolo a meno di quelle che hanno un prefisso "_" --> 
80<#function getCategoryByArticlePrimKey articlePrimKey> 
81    <#assign tmp = "" />	 
82    <#assign articleCatNames = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) /> 
83	<#if (articleCatNames?size > 0)> 
84		<#list articleCatNames as category>	 
85			<#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY > 
86				<#assign tmp = tmp + category.name + ", " />	 
87			</#if> 
88		</#list> 
89		<#assign tmp = tmp?keep_before_last(",") />				 
90	</#if>  
91    <#return tmp> 
92</#function> 
93 
94<#-- Variante: restituisce solo la lista di oggetti category --> 
95<#function getListCategoryByArticlePrimKey articlePrimKey> 
96    <#assign listCategories = [] />	 
97    <#assign articleCat = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) /> 
98	<#if (articleCat?size > 0)> 
99		<#list articleCat as category>	 
100			<#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY > 
101				<#assign listCategories = listCategories + [category] />	 
102			</#if> 
103		</#list> 
104	</#if>  
105    <#return listCategories> 
106</#function> 
107 
108<#-- Funzione formatta euro  --> 
109<#function formatEuro amount> 
110	<#assign str = amount?replace("\\.","" "r")?replace(",","." "r")> 
111	<#assign x = str?number> 
112    <#return x?string[",##0.00"]> 
113</#function> 
114 
115<#-- Funzione escape su stringa  --> 
116<#function escapeExtraChar text> 
117    <#return text?replace("\"","&quot;", "r")?replace("'","&rsquo;", "r")> 
118</#function> 
119 
120<#-- Verifico se il primo elemento di una lista esiste --> 
121<#function firstOfListNotEmpty list> 
122    <#assign result = false /> 
123	<#if list?? && list?has_content && list.getSiblings()?has_content && list.getSiblings()?first.getData()?has_content> 
124    	<#assign result = true />  
125    </#if> 
126    <#return result> 
127</#function> 
128 
129<#-- Verifico che ci sia almeno un elemento in lista --> 
130<#function oneAtLeastOfListNotEmpty list> 
131	 <#assign esito = false /> 
132	 <#if list?? && list?has_content && list.getSiblings()?has_content> 
133	 	<#list list.getSiblings() as cur_elem> 
134	 		<#if cur_elem.getData()?has_content> 
135	    		<#assign esito = true /> 
136		    	<#break> 
137	    	</#if> 
138	 	</#list> 
139    </#if> 
140    <#return esito> 
141</#function> 
142 
143<#-- parso tutte le date della struttura --> 
144<#-- data dell'atto --> 
145<#if validator.isNotNull(start_date) && validator.isNotNull(start_date.getData())> 
146	<#assign start_date_string = getterUtil.getString(start_date.getData()) /> 
147	<#if validator.isNotNull(start_date_string) && start_date_string?trim != ""> 
148		<#assign start_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", start_date.getData(), locale) /> 
149		<#assign start_date_res = dateUtil.getDate(start_date_DateObj, "dd MMMM yyyy", locale) /> 
150		<#assign start_date_compact = dateUtil.getDate(start_date_DateObj, "dd-MMM-yy", locale) /> 
151	</#if> 
152</#if> 
153 
154<#-- data ultima modifica dell'atto --> 
155<#if validator.isNotNull(last_modification_date) && validator.isNotNull(last_modification_date.getData())> 
156	<#assign last_modification_date_string = getterUtil.getString(last_modification_date.getData()) /> 
157	<#if validator.isNotNull(last_modification_date_string) && last_modification_date_string?trim != ""> 
158		<#assign last_modification_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", last_modification_date.getData(), locale) /> 
159		<#assign last_modification_date_res = dateUtil.getDate(last_modification_date_DateObj, "dd MMMM yyyy", locale) /> 
160		<#assign last_modification_date_compact = dateUtil.getDate(last_modification_date_DateObj, "dd-MMM-yy", locale) /> 
161	</#if> 
162</#if> 
163 
164<#-- HTML --> 
165<section class="comuni-scheda scheda-regolamento"> 
166	<div class="container"> 
167		 
168		<#-- intro scheda + funzionalita trasversali --> 
169		<div class="row"> 
170			<div class="offset-lg-1 col-lg-6 col-md-8"> 
171				<section class="intro-sezione"> 
172					<#assign titoloScheda = escapeExtraChar(titolo) /> 
173					<#if validator.isNotNull(title) && validator.isNotNull(title.getData())> 
174						<h2 class="titolo-sezione">${title.getData()}</h2> 
175						<#assign titoloScheda = escapeExtraChar(title.getData()) /> 
176					</#if> 
177				</section> 
178			</div> 
179			 
180			<#-- blocco funzionalita trasversali --> 
181			<div class="offset-lg-1 col-lg-3 col-md-4"> 
182				<#-- condivisione sui social --> 
183				<#assign currentPageURL = themeDisplay.getPortalURL()+themeDisplay.getURLCurrent() /> 
184				<#assign companyName = themeDisplay.getCompany().getName() /> 
185				 
186				<#assign twitterUrl = "http://twitter.com/share?text=${companyName} - ${titoloScheda} &url=${currentPageURL}" /> 
187				<#assign facebookUrl = "http://www.facebook.com/sharer/sharer.php?u=${currentPageURL}" /> 
188				<#assign linkedinUrl = "https://www.linkedin.com/shareArticle?mini=true&url=${currentPageURL}&title=${companyName} - ${titoloScheda}" /> 
189				<#assign whatsappUrl = "https://api.whatsapp.com/send?text=${companyName} - ${titoloScheda} - ${currentPageURL}" /> 
190				 
191				<#-- condivisione social --> 
192				<div class="dropdown d-inline share-functions"> 
193					<button class="btn btn-dropdown dropdown-toggle btn-sm" type="button" id="shareActions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
194						<svg class="icon"> 
195							<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-share"></use> 
196						</svg> 
197						<span>${label_condividi}</span> 
198					</button> 
199					 
200					<div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
201						<div class="link-list-wrapper"> 
202							<ul class="link-list"> 
203								<li> 
204									<a class="list-item" href="${facebookUrl}" target="_blank"> 
205										<svg class="icon icon-sm"> 
206											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-facebook"></use> 
207										</svg> 
208										<span>${label_facebook}</span> 
209									</a> 
210								</li> 
211								<li> 
212									<a class="list-item" href="${twitterUrl}" target="_blank"> 
213										<svg class="icon icon-sm"> 
214											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-twitter"></use> 
215										</svg> 
216										<span>${label_twitter}</span> 
217									</a> 
218								</li> 
219								<li> 
220									<a class="list-item" href="${linkedinUrl}" target="_blank"> 
221										<svg class="icon icon-sm"> 
222											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-linkedin"></use> 
223										</svg> 
224										<span>${label_linkedin}</span> 
225									</a> 
226								</li> 
227								<li> 
228									<a class="list-item" href="${whatsappUrl}" target="_blank"> 
229										<svg class="icon icon-sm"> 
230											<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-whatsapp"></use> 
231										</svg> 
232										<span>${label_whatsapp}</span> 
233									</a> 
234								</li> 
235							</ul> 
236						</div> 
237					</div> 
238				</div> 
239			 
240				<#-- stampa + invia via email --> 
241				<#assign subjectEmail = companyName+" - "+titoloScheda /> 
242				<#assign bodyEmail = currentPageURL /> 
243				 
244				<div class="dropdown d-inline other-functions"> 
245					<button class="btn btn-dropdown dropdown-toggle btn-sm" type="button" id="viewActions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
246						<svg class="icon"> 
247							<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-more-items"></use> 
248						</svg> 
249						<span>${label_vedi_azioni}</span> 
250					</button> 
251					<div class="dropdown-menu shadow-lg" aria-labelledby="viewActions"> 
252						<div class="link-list-wrapper"> 
253							<ul class="link-list"> 
254								<li> 
255									<a class="list-item" href="javascript:void(0);" onclick="window.print();"> 
256										<svg class="icon icon-sm"> 
257              								<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-print"></use> 
258            							</svg> 
259            							<span>${label_stampa}</span> 
260									</a> 
261								</li> 
262								<li> 
263									<a class="list-item" href="mailto:?subject=${subjectEmail}&body=${bodyEmail}"> 
264										<svg class="icon icon-sm"> 
265              								<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-mail"></use> 
266            							</svg> 
267            							<span>${label_invia}</span> 
268									</a> 
269								</li> 
270							</ul> 
271						</div> 
272					</div>	 
273				</div> 
274				 
275				<#-- categorie --> 
276				<#assign categorie = [] /> 
277 
278				<#-- recupero l'elenco delle categorie da visualizzare --> 
279				<#assign categorie = getListCategoryByArticlePrimKey(articlePrimKey) /> 
280				 
281				<#if categorie?? && (categorie?size > 0)>	 
282					<div class="mt-4 mb-4"> 
283						<h6>${label_argomenti}</h6> 
284						<#list categorie as cur_cat> 
285							<#if validator.isNotNull(cur_cat) && cur_cat != ""> 
286								<div class="chip chip-simple chip-primary no-link"> 
287									<span class="chip-label">${cur_cat.getName()}</span> 
288								</div> 
289							</#if> 
290						</#list> 
291					</div> 
292				</#if> 
293			</div> 
294		</div> 
295	</div> 
296	 
297	<#-- dettaglio scheda --> 
298	<div class="container"> 
299		<div class="row"> 
300			<div class="col"> 
301				<section class="dettaglio-scheda border-top"> 
302					<div class="row">				 
303						<#-- menu ancore sinistra --> 
304						<div class="col-lg-3 col-md-4"> 
305							<aside class="left-anchor-menu"> 
306								 
307								<h4 class="left-anchor-menu-header" id="${instanceId}_${articleId}_left-anchor-menu-header" data-toggle="collapse" data-target="#${instanceId}_${articleId}_left-anchor-menu" aria-expanded="true" aria-controls="${instanceId}_${articleId}_left-anchor-menu"> 
308									<span>${label_indice_pagina}</span> 
309									<svg class="icon icon-sm"> 
310										<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-arrow-up"></use> 
311									</svg> 
312								</h4>							 
313								 
314								<div class="left-anchor-menu-separator"><div class="left-anchor-menu-separator-inner"></div></div> 
315								 
316								<div id="${instanceId}_${articleId}_left-anchor-menu" class="collapse show" aria-labelledby="${instanceId}_${articleId}_left-anchor-menu-header"> 
317									<div class="anchor-menu-wrapper"> 
318										<ul> 
319											<#-- gia ricavato nella sezione principale della scheda --> 
320											<#if start_date_compact?has_content || last_modification_date_compact?has_content> 
321												<li class="anchor-item"> 
322													<a class="anchor-link" href="#${instanceId}_${articleId}_date" title="${label_vai_sezione} ${label_date}">${label_date}</a>													 
323												</li> 
324											</#if> 
325											<#-- sezione ufficio --> 
326											<#if office?has_content> 
327												<li class="anchor-item"> 
328													<a class="anchor-link" href="#${instanceId}_${articleId}_ufficio" title="${label_vai_sezione} ${label_ufficio}">${label_ufficio}</a>													 
329												</li> 
330											</#if> 
331											<#-- sezione documenti --> 
332											<#if oneAtLeastOfListNotEmpty(attachment)> 
333												<li class="anchor-item"> 
334													<a class="anchor-link" href="#${instanceId}_${articleId}_attachments" title="${label_vai_sezione} ${label_documenti}">${label_documenti}</a>													 
335												</li> 
336											</#if>	 
337											<#-- sezione ulteriori informazioni + ultimo aggiornamento --> 
338											<li class="anchor-item"> 
339												<a class="anchor-link" href="#${instanceId}_${articleId}_further_information" title="${label_vai_sezione} ${label_ulteriori_informazioni}">${label_ulteriori_informazioni}</a>													 
340											</li> 
341										</ul> 
342									</div> 
343								</div> 
344							</aside> 
345						</div> 
346						 
347						<div class="col-lg-9 col-md-8"> 
348							<div class="border-left pl-md-4 pt-4"> 
349								<#-- sezione testo principale --> 
350								<#if  
351									(validator.isNotNull(description) && validator.isNotNull(description.getData())) 
352
353									<article class="page-section"> 
354										<div class="row"> 
355											<div class="col-12"> 
356												<div class="page-section-text"> 
357													<#if validator.isNotNull(description) && validator.isNotNull(description.getData())> 
358														${description.getData()} 
359													</#if> 
360												</div> 
361											</div> 
362										</div> 
363									</article>	 
364								</#if> 
365								 
366								<#-- sezione date dell' atto --> 
367								<#if start_date_compact?has_content || last_modification_date_compact?has_content> 
368									<article id="${instanceId}_${articleId}_date" class="page-section anchor-section"> 
369										<h4 class="h2">${label_date}</h4> 
370										<div class="row"> 
371											<div class="col-12"> 
372												<div class="point-list-wrapper my-4"> 
373												 
374													<#-- data dell'atto --> 
375													<#if start_date_compact?has_content> 
376														<#assign start_date_split = start_date_compact?split("-") />	 
377														<div class="point-list"> 
378															<div class="point-list-aside point-list-warning"> 
379																<div class="point-date">${start_date_split[0]}</div> 
380																<div class="point-month">${start_date_split[1]}/${start_date_split[2]}</div> 
381																<#-- <div class="point-year">${start_date_split[2]}</div> --> 
382															</div> 
383															<div class="point-list-content"> 
384																<div class="card m-0"> 
385																	<div class="card-body"> 
386																		<h5 class="h3 card-title m-0"><span>${label_data_inserimento}</span></h5> 
387																	</div> 
388																</div> 
389															</div> 
390														</div> 
391													</#if> 
392													 
393													<#-- data ultima modifica dell'atto --> 
394													<#if last_modification_date_compact?has_content> 
395														<#assign last_modification_date_split = last_modification_date_compact?split("-") />	 
396														<div class="point-list"> 
397															<div class="point-list-aside point-list-warning"> 
398																<div class="point-date">${last_modification_date_split[0]}</div> 
399																<div class="point-month">${last_modification_date_split[1]}/${last_modification_date_split[2]}</div> 
400																<#-- <div class="point-year">${last_modification_date_split[2]}</div> --> 
401															</div> 
402															<div class="point-list-content"> 
403																<div class="card m-0"> 
404																	<div class="card-body"> 
405																		<h5 class="h3 card-title m-0"><span>${label_data_ultima_modifica}</span></h5> 
406																	</div> 
407																</div> 
408															</div> 
409														</div> 
410													</#if> 
411													 
412												</div> 
413											</div> 
414										</div> 
415									</article>	 
416								</#if> 
417								 
418								<#-- sezione ufficio --> 
419								<article id="${instanceId}_${articleId}_ufficio" class="page-section anchor-section"> 
420									<div class="row"> 
421										<div class="col-12"> 
422											<h4 class="h2">${label_ufficio}</h4> 
423											<#assign office_webContentData = jsonFactoryUtil.createJSONObject(office.getData()) /> 
424											<#-- ricavo il classPK --> 
425											<#assign cur_office_classPK = office_webContentData.classPK?number /> 
426											<#-- ricavo il journal article --> 
427											<#assign cur_office_ja = journalArticleLocalService.getLatestArticle(cur_office_classPK) /> 
428											<#-- ricavo il nome della struttura --> 
429											<#assign cur_office_ja_structure_name = cur_office_ja.getDDMStructure().getName(locale) /> 
430											<#-- ricavo structureKey --> 
431											<#assign cur_office_ja_structureKey = cur_office_ja.getDDMStructureKey() /> 
432 
433											<#if cur_office_ja??> 
434												<#if cur_office_ja_structureKey == STRUCTURE_KEY_UFFICIO> 
435												 
436													<#-- ricavo l'url title associato all'articolo --> 
437													<#assign cur_office_ja_url_title= cur_office_ja.getUrlTitle() /> 
438												 
439													<#-- ricavo il metodo di saxReaderUtil utile per ricavare poi gli elementi della struttura --> 
440													<#assign document = saxReaderUtil.read(cur_office_ja.getContentByLocale(locale)) /> 
441													<#assign rootElement = document.getRootElement() /> 
442													 
443													<#-- inizio a ricavare i dati dalla struttura dell'articolo --> 
444													<#-- titolo --> 
445													<#assign title = "" /> 
446													<#assign title_xpath = saxReaderUtil.createXPath("dynamic-element[@name='title']") /> 
447													<#assign title = title_xpath.selectSingleNode(rootElement).getStringValue() /> 
448													<#assign title = title?trim /> 
449													 
450													<#if title?has_content> 
451														<div class="row"> 
452															<div class="col-lg-6"> 
453																<div class="card"> 
454																	<div class="card-body p-3"> 
455																		<h2 class="h2 card-title m-0 d-inline-flex"> 
456																			<div class="category-top mb-0 mr-2"> 
457																				<svg class="icon icon-primary"> 
458																					<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-pa"></use> 
459																				</svg> 
460																			</div> 
461																			<a href="/-/${cur_office_ja_url_title}" title="${label_vai_alla_pagina} ${escapeExtraChar(title)}"> 
462																				${title} 
463																			</a> 
464																		</h2> 
465																	</div> 
466																</div> 
467															</div> 
468														</div> 
469													</#if> 
470												</#if> 
471											</#if> 
472										</div> 
473									</div> 
474								</article> 
475								 
476								<#-- sezione documenti --> 
477								<#if oneAtLeastOfListNotEmpty(attachment)> 
478									<article id="${instanceId}_${articleId}_attachments" class="page-section anchor-section"> 
479										<h4 class="h2">${label_documenti}</h4>									 
480										<div class="row"> 
481											<#list attachment.getSiblings() as cur_attachment> 
482												<#if validator.isNotNull(cur_attachment) && validator.isNotNull(cur_attachment.getData())> 
483													<#attempt> 
484													 
485														<#-- ricavo la size del documento --> 
486														<#-- a partire dal link, lo splitto e ricavo il secondo ed il 5 argomento che mi servono per il metodo successivo --> 
487														<#assign dlFileEntrySize = "" /> 
488														<#assign parts = (cur_attachment.getData())?split("/") /> 
489														<#assign groupId = parts[2] /> 
490														<#assign uuId = parts[5]?split("?")[0] /> 
491														 
492														<#assign dlFileEntryService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') /> 
493														<#assign dlFileEntry = dlFileEntryService.getFileEntryByUuidAndGroupId(uuId,groupId?number) />									 
494														 
495														<#assign dlFileEntrySize = dlFileEntry.getSize() /> 
496														<#assign dlFileEntryExtension = dlFileEntry.getExtension()?upper_case?trim /> 
497														 
498														<#-- trasformo la dimensione in KB --> 
499														<#if (dlFileEntrySize gt 0) > 
500															<#assign dlFileEntrySize = (dlFileEntrySize / 1000) + " KB"/> 
501														</#if> 
502								 
503														<#-- ricavo il titolo dell'allegato: se nn c'è passo un titolo generico --> 
504														<#assign attachment_header = label_documento /> 
505														<#if validator.isNotNull(cur_attachment.attachment_header) && validator.isNotNull(cur_attachment.attachment_header.getData()) > 
506															<#assign attachment_header = cur_attachment.attachment_header.getData()?trim /> 
507														</#if> 
508														 
509														<#-- visualizzo il link dell'allegato -->  
510														<div class="col-lg-6"> 
511															<div class="card allegati-card"> 
512																<div class="card-body"> 
513																	<div class="allegato d-flex"> 
514																		<div class="icon-img-wrapper"> 
515																			<svg class="icon"> 
516																				<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-clip"></use> 
517																			</svg> 
518																		</div> 
519																		<div class="text-wrapper pl-3"> 
520																			<h5 class="h3 card-title m-0"> 
521																				<a href="${cur_attachment.getData()}" target="_blank" title='File <#if dlFileEntryExtension != "">in formato ${dlFileEntryExtension}</#if> - ${dlFileEntrySize}'> 
522																					<strong>${attachment_header}</strong> 
523																				</a> 
524																			</h5> 
525																			<#if cur_attachment.attachment_description?? && validator.isNotNull(cur_attachment.attachment_description) && validator.isNotNull(cur_attachment.attachment_description.getData()) > 
526																				<div class="card-text"><small>${cur_attachment.attachment_description.getData()}</small></div> 
527																			</#if> 
528																		</div> 
529																	</div> 
530																</div> 
531															</div> 
532														</div> 
533													<#recover> 
534														<#-- non visualizzo nulla -->															 
535													</#attempt>					 
536												</#if> 
537											</#list> 
538										</div> 
539									</article> 
540								</#if> 
541								 
542								<#-- sezione ulteriori informazioni + data ultimo aggiornamento --> 
543								<article id="${instanceId}_${articleId}_further_information" class="page-section anchor-section"> 
544									<h4 class="h2">${label_ulteriori_informazioni}</h4> 
545									<#if validator.isNotNull(further_information) && validator.isNotNull(further_information.getData())> 
546										<div class="row"> 
547											<div class="col-12"> 
548												<div class="callout"> 
549													<div class="callout-title"> 
550														<svg class="icon"> 
551															<use xlink:href="/o/comuni-theme/svg/sprite.svg#it-info-circle"></use> 
552														</svg> 
553													</div> 
554													<div class="callout-text"> 
555														${further_information.getData()} 
556													</div> 
557												</div> 
558											</div> 
559										</div> 
560									</#if>	 
561									<#-- data ultimo aggiornamento --> 
562									<div class="row"> 
563										<div class="col-12"> 
564											<p class="mb-0">${label_ultimo_aggiornamento}</p> 
565											<p><strong>${articleModifiedDate}</strong></p> 
566										</div> 
567									</div> 
568								</article> 
569								 
570							</div> 
571						</div> 
572					</div> 
573				</section> 
574			</div> 
575		</div> 
576	</div> 
577</section>