处理模板时发生错误。
Java method "com.liferay.portal.kernel.util.DateUtil_IW.parseDate(String, String, Locale)" threw an exception when invoked on com.liferay.portal.kernel.util.DateUtil_IW object "com.liferay.portal.kernel.util.DateUtil_IW@103d351d"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign modifiedDate = dateUtil.parse... [in template "20095#20120#147126" at line 343, column 14]
----
1<#include "${templatesPath}/46861" />
2
3<#-- Template per Struttura Eventi -->
4<section>
5 <div class="container">
6 <div class="row">
7 <div class="col-12">
8 <div>
9 <h2 data-element="evento-title">${Titolo.getData()}</h2>
10 <#if (DescIntroduttiva.getData())??>
11 <p class="d-none d-lg-block" data-element="evento-description">${DescIntroduttiva.getData()}</p>
12 </#if>
13 </div>
14 <#assign articleCategories=getCategoriesOfArticle()>
15 <#if articleCategories?has_content>
16 <#list articleCategories as catEntry>
17 <a class="chip chip-simple" href="#" data-element="service-topic">
18 <span class="chip-label">${(catEntry)}</span>
19 </a>
20 </#list>
21 </#if>
22 </div>
23 </div>
24 </div>
25</section>
26
27<div class="container py-lg-5">
28 <div class="row">
29 <aside class="col-12 col-lg-4">
30 <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one">
31 <nav class="navbar it-navscroll-wrapper navbar-expand-lg it-bottom-navscroll it-right-side" data-bs-navscroll="">
32 <button class="custom-navbar-toggler" type="button" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation" data-bs-toggle="navbarcollapsible" data-bs-target="#navbarNav"><span class="it-list"></span>1. Introduzione</button>
33 <div class="progress custom-navbar-progressbar">
34 <div class="progress-bar it-navscroll-progressbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>
35 </div>
36 <div class="navbar-collapsable" id="navbarNav" tabindex="-1">
37 <div class="menu-wrapper" tabindex="-1">
38 <button type="button" class="it-back-button btn w-100 text-start">
39 <svg class="icon icon-sm icon-primary align-top">
40 <use href="${themeDisplay.getPathThemeImages()}/svg/sprites.svg#it-chevron-left" xlink:href="/bootstrap-italia/dist/svg/sprites.svg#it-chevron-left"></use>
41 </svg>
42 <span>Indietro</span>
43 </button>
44 <div class="link-list-wrapper">
45 <h3>Indice della Pagina</h3>
46 <div class="progress">
47 <div class="progress-bar it-navscroll-progressbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>
48 </div>
49 <ul class="link-list">
50 <li class="nav-item">
51 <a class="nav-link" href="#" data-anchor="cos_e">Cos'è</a>
52 </li>
53 <li class="nav-item">
54 <a class="nav-link" href="#" data-anchor="a_chi_e_rivolto">A chi è rivolto</a>
55 </li>
56 <li class="nav-item">
57 <a class="nav-link" href="#" data-anchor="luogo">Luogo</a>
58 </li>
59 <li class="nav-item">
60 <a class="nav-link" href="#" data-anchor="date_e_orari">Date e orari</a>
61 </li>
62 <li class="nav-item">
63 <a class="nav-link" href="#" data-anchor="costi">Costi</a>
64 </li>
65 <li class="nav-item">
66 <a class="nav-link" href="#" data-anchor="documenti">Documenti</a>
67 </li>
68 <li class="nav-item">
69 <a class="nav-link" href="#" data-anchor="contatti">Contatti</a>
70 </li>
71 <li class="nav-item">
72 <a class="nav-link" href="#" data-anchor="ulteriori_informazioni">Ulteriori informazioni</a>
73 </li>
74 </ul>
75 </div>
76 </div>
77 </div>
78 </nav>
79 </div>
80 </aside>
81 <section class="col-12 col-lg-8 it-page-sections-container">
82 <article id="cos_e" class="it-page-section anchor-offset">
83 <h2 class="my-3">Cos'è</h2>
84 <div>
85 <#if (RichText67639145.getData())??>
86 ${RichText67639145.getData()}
87 </#if>
88 </div>
89 </article>
90 <article id="a_chi_e_rivolto" class="it-page-section anchor-offset">
91 <h2 class="my-3">A chi è rivolto</h2>
92 <div>
93 <#if CheckboxMultiple72556199?? && CheckboxMultiple72556199.getData()?has_content>
94 <#assign selectedJson = CheckboxMultiple72556199.getData()?eval>
95 <#if selectedJson?is_sequence && (selectedJson?size > 0)>
96
97 <#assign labelMap = {
98 "opzione25221982": "Bambini",
99 "opzione51030050": "Adulti",
100 "opzione36729429": "Tutti"
101 }>
102
103 <#list selectedJson as value>
104 <#if labelMap[value]??>
105 <div class="chip chip-success chip-lg chip-simple">
106 <span class="chip-label">${labelMap[value]}</span>
107 </div>
108 </#if>
109 </#list>
110 </#if>
111 </#if>
112 </div>
113 </article>
114 <article id="luogo" class="it-page-section anchor-offset">
115 <h2 class="my-3">Luogo</h2>
116 <div class="row">
117 <div class="col-12 col-md-6 col-lg-6">
118 <blockquote class="blockquote blockquote-card">
119 <div class="it-card it-card-profile it-card-height-full">
120 <div class="it-card-profile-header">
121 <div class="it-card-profile">
122 <h4 class="it-card-profile-name h6">
123 <#assign denominazione = Fieldset07238902.Text79089474.getData()!"">
124 <#if (Fieldset07238902.Text79089474.getData())??>
125 <a class="text-secondary" href="${Fieldset07238902.LinkToLayout39817045.getFriendlyUrl()}">${denominazione}</a>
126 <#else>
127 <a class="text-secondary" href="javascript:void(0)">${denominazione}</a>
128 </#if>
129 </h4>
130 <#if (Fieldset07238902.Text63272287.getData())??>
131 <p class="it-card-profile-role">${Fieldset07238902.Text63272287.getData()}</p>
132 </#if>
133 </div>
134 <div class="avatar size-xl">
135 <#if (Fieldset07238902.Image31004809.getData())?? && Fieldset07238902.Image31004809.getData() != "">
136 <img alt="${Fieldset07238902.Image31004809.getAttribute("alt")}" data-fileentryid="${Fieldset07238902.Image31004809.getAttribute("fileEntryId")}" src="${Fieldset07238902.Image31004809.getData()}" />
137 <#else>
138 <p aria-hidden="true">NP</p>
139 </#if>
140 </div>
141 </div>
142 <div class="it-card-body">
143 <dl class="it-card-description-list">
144 <#if (Fieldset07238902.Campo91771558.getData())??>
145 <div>
146 <dt><i aria-hidden="true" class="fa fa-map"></i></dt>
147 <dd>${Fieldset07238902.Campo91771558.getData()}</dd>
148 </div>
149 </#if>
150 <div>
151 <dt>Orari al pubblico:</dt>
152 </div>
153 <div>
154 <dd>
155 <#if Fieldset07238902.Fieldset44992350.getSiblings()?has_content>
156 <#-- Mapping giorni della settimana -->
157 <#assign giorniMap = {
158 "opzione35340432": "Lun",
159 "opzione72786642": "Mar",
160 "opzione21043243": "Mer",
161 "opzione02796194": "Gio",
162 "opzione53917768": "Ven",
163 "opzione63975786": "Sab",
164 "opzione17074195": "Dom"
165 }>
166 <div class="accordion border-0">
167 <div class="accordion-item">
168 <h2 class="accordion-header " id="heading1c">
169 <button class="accordion-button d-flex align-items-baseline collapsed border-0 ps-0 pt-0 text-secondary fw-normal fs-6" type="button" data-bs-toggle="collapse" data-bs-target="#collapse1c" aria-expanded="false" aria-controls="collapse1c">
170 <i aria-hidden="true" class="fa fa-clock-o"></i> Orario ${denominazione}:
171 </button>
172 </h2>
173 <div id="collapse1c" class="accordion-collapse collapse lightgrey-bg-c1" role="region" aria-labelledby="heading1c">
174 <div class="accordion-body">
175 <#list Fieldset07238902.Fieldset44992350.getSiblings() as cur_Fieldset07238902_Fieldset44992350>
176 <#if cur_Fieldset07238902_Fieldset44992350.Select24806510.getData()??>
177 <#assign giornoRef = cur_Fieldset07238902_Fieldset44992350.Select24806510.getData()>
178 <#if giorniMap[giornoRef]??>
179 <div class="row">
180 <div class="col-3"><span class="fw-bold">${giorniMap[giornoRef]}</span></div>
181 <div class="col-9">
182 <#if cur_Fieldset07238902_Fieldset44992350.Fieldset74203877.getSiblings()?has_content>
183 <ul class="list-unstyled">
184 <#list cur_Fieldset07238902_Fieldset44992350.Fieldset74203877.getSiblings() as curOrario>
185 <li>
186 <#if curOrario.Text24122847.getData()??>
187 <span>${curOrario.Text24122847.getData()}</span>
188 </#if>
189 <#if curOrario.Campo34334180.getData()??>
190 <span> - ${curOrario.Campo34334180.getData()}</span>
191 </#if>
192 </li>
193 </#list>
194 </ul>
195 </#if>
196 </div>
197 </div>
198 </#if>
199 </#if>
200 </#list>
201 <#if (Fieldset07238902.Campo62645127.getData())??>
202 <div>${Fieldset07238902.Campo62645127.getData()}</div>
203 </#if>
204 </div>
205 </div>
206 </div>
207 </div>
208 </dd>
209 </#if>
210 </div>
211 </dl>
212 </div>
213 </div>
214 </blockquote>
215 </div>
216 </div>
217 <#if Geolocation80590149?? && (Geolocation80590149.getData() != "")>
218 <#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(Geolocation80590149.getData())>
219 <#assign latitude = geolocationJSONObject.getDouble("lat")>
220 <#assign longitude = geolocationJSONObject.getDouble("lng")>
221
222 <div class="geolocation-section">
223
224 <div id="map-${.now?long}" style="width: 100%; height: 400px;"></div>
225
226 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
227 <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
228
229 <script>
230 (function() {
231 var mapId = 'map-${.now?long}';
232 var map = L.map(mapId).setView([${latitude}, ${longitude}], 15);
233
234 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
235 attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
236 }).addTo(map);
237
238 L.marker([${latitude}, ${longitude}]).addTo(map);
239 })();
240 </script>
241 </div>
242 </#if>
243 </article>
244 <article id="date_e_orari" class="it-page-section anchor-offset">
245 <h2 class="my-3">Date e orari</h2>
246 <#if (Fieldset45344499.RichText73162356.getData())??>
247 <p>${Fieldset45344499.RichText73162356.getData()}</p>
248 </#if>
249 <div>
250 <#if Fieldset45344499.Fieldset33483506.getSiblings()?has_content>
251 <ul class="timeline">
252 <#if Fieldset45344499.Fieldset33483506.getSiblings()?has_content>
253 <#list Fieldset45344499.Fieldset33483506.getSiblings() as cur_Evento>
254 <#assign cur_Evento_Data = getterUtil.getString(cur_Evento.Date78078749.getData())>
255 <#if validator.isNotNull(cur_Evento_Data)>
256 <#assign Fieldset45344499_Fieldset33483506_Date78078749_DateObj = dateUtil.parseDate("yyyy-MM-dd", cur_Evento_Data, locale)>
257 <li class="event">
258 <div class="time">
259 <div class="year">${dateUtil.getDate(Fieldset45344499_Fieldset33483506_Date78078749_DateObj, "yyyy", locale)}</div>
260 <div class="day">${dateUtil.getDate(Fieldset45344499_Fieldset33483506_Date78078749_DateObj, "dd", locale)}</div>
261 <div class="month">${dateUtil.getDate(Fieldset45344499_Fieldset33483506_Date78078749_DateObj, "MMM", locale)}</div>
262 </div>
263 <#if (cur_Evento.Text10993484.getData())??>
264 <blockquote class="blockquote blockquote-card">
265 <div class="description">
266 <h4 class="mb-0">${cur_Evento.Text10993484.getData()}</h4>
267 </div>
268 </blockquote>
269 </#if>
270 </li>
271 </#if>
272 </#list>
273 </#if>
274 </ul>
275 </#if>
276 </div>
277 </article>
278 <article id="costi" class="it-page-section anchor-offset">
279 <h2 class="my-3">Costi</h2>
280 <div>
281 <#if (costi.getData())??>
282 <p>${costi.getData()}</p>
283 </#if>
284 </div>
285 </article>
286 <article id="documenti" class="it-page-section anchor-offset">
287 <h2 class="my-3">Documenti</h2>
288 <#if documenti?? && documenti.getSiblings()?has_content>
289 <#assign documentFolderAndEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")>
290 <#list documenti.getSiblings() as cur_documenti>
291 <#if cur_documenti.getData()?? && cur_documenti.getData() != "">
292 <#assign link=cur_documenti.getData()?substring(1)?split("/") />
293 <#assign groupId=themeDisplay.getScopeGroupId() />
294 <#assign uuid=link[7]?split("?")?first />
295 <#assign file=documentFolderAndEntryLocalService.getFileEntryByUuidAndGroupId(uuid,groupId) />
296 <#assign fileSizeHuman=getFileSizeHuman(file.getSize()) />
297 <#assign mimeType=file.getMimeType() />
298 <#assign fileNameWithoutExt = file.getFileName()?replace("+", " ")?keep_before_last(".")>
299 <div class="row">
300 <div class="col-12 col-md-6 col-lg-6">
301 <div class="it-card it-card-banner it-card-inline rounded shadow-sm border">
302 <!--card first child is all the card content: title (link) + body + footer -->
303 <div class="it-card-inline-content">
304 <h3 class="it-card-title h6">
305 <a <#if cur_documenti?? && cur_documenti.TitoloAll?? && cur_documenti.TitoloAll.getData()?has_content>title="${cur_documenti.TitoloAll.getData()}"</#if> href="/documents/${file.getGroupId()}/${file.getFolderId()}/${file.getTitle()}/${file.getUuid()}?download=true">
306 ${fileNameWithoutExt?html}
307 </a>
308 </h3>
309 <div class="it-card-body">
310 <p class="it-card-subtitle fs-6">
311 (File ${mimeType} ${fileSizeHuman}) <br>
312 ${file.getDescription()}
313 </p>
314 </div>
315 </div>
316 <!--card second child is the icon (optional)-->
317 <div class="it-card-banner-icon-wrapper">
318 <svg class="icon icon-secondary icon-md" aria-hidden="true"><use href="${themeDisplay.getPathThemeImages()}/svg/sprites.svg#it-clip"></use></svg>
319 </div>
320 </div>
321 </div>
322 </div>
323 </#if>
324 </#list>
325 </#if>
326 </article>
327 <article id="contatti" class="it-page-section anchor-offset">
328 <h2 class="my-3">Contatti</h2>
329 <div>
330 <#if (contatti.getData())??>
331 ${contatti.getData()}
332 </#if>
333 </div>
334 </article>
335 <article id="ulteriori_informazioni" class="it-page-section anchor-offset">
336 <h2 class="my-3">Ulteriori informazioni</h2>
337 <div>
338 <#if (UlterioriInformazioni.getData())??>
339 <p>${UlterioriInformazioni.getData()}</p>
340 </#if>
341 <#if .vars["reserved-article-modified-date"]?? && .vars["reserved-article-modified-date"].data??>
342 <#assign modifiedDateString = .vars["reserved-article-modified-date"].data>
343 <#assign modifiedDate = dateUtil.parseDate("EEE, dd MMM yyyy HH:mm:ss Z", modifiedDateString, locale)>
344 <p class="mt-2"><strong>Ultimo aggiornamento:</strong> ${dateUtil.getDate(modifiedDate, "dd/MM/yyyy HH:mm", locale)}</p>
345 </#if>
346 </div>
347 </article>
348 </div>
349 </section>
350</div>
351
352
353<#function getCategoriesOfArticle>
354 <#assign
355 journalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
356 <#assign articleId=.vars['reserved-article-id'].getData() />
357 <#assign groupId=themeDisplay.getScopeGroupId() />
358 <#assign article=journalArticleLocalService.getArticle(groupId,articleId) />
359 <#assign
360 assetCategoryLocalService=staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"] />
361 <#assign resourcePrimaryKey=article.getResourcePrimKey() />
362 <#assign
363 categories=assetCategoryLocalService.getCategoryNames("com.liferay.journal.model.JournalArticle",resourcePrimaryKey) />
364 <#return categories />
365</#function>
Contatta il comune
- Leggi le domande frequenti
- Richiedi assistenza
- Chiama il numero +39 080-325.91.11
- Prenota appuntamento