Raddoppio Pistoia-Montecatini, Ceccarelli: "Programma rispettato malgrado un imprevisto geologico" - Toscana Notizie
Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy683.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy683 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@6eb29ad4"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign currentArticle = JournalArtic... [in template "10154#10192#735807" in macro "getLinkAndAllegati" at line 402, column 9] - Reached through: @getLinkAndAllegati [in template "10154#10192#735807" at line 393, column 9] ----
1<#setting locale="it_IT">
2
3<#assign AssetEntryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
4<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
5
6<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
7<#assign journalArticleId = .vars['reserved-article-id'].data/>
8
9<#assign article = JournalArticleLocalService.getArticle(groupId, journalArticleId) />
10<#assign entry = AssetEntryLocalServiceUtil.fetchEntry("com.liferay.journal.model.JournalArticle", article.resourcePrimKey) />
11
12<#assign AssetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
13<#assign categoryList = AssetCategoryLocalServiceUtil.getAssetEntryAssetCategories(entry.entryId) />
14<#assign UserLocalServiceUtil = staticUtil["com.liferay.portal.kernel.service.UserLocalServiceUtil"]>
15<#assign DLFileEntryLocalServiceUtil = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') />
16
17<#assign currentArticle = JournalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
18<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() />
19<#assign currentArticleAssetEntry = AssetEntryLocalServiceUtil.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
20<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
21
22<#assign entryTitle = htmlUtil.escape(entry.getTitle(locale)?html) />
23
24<#assign siteBaseURL = themeDisplay.getPortalURL() />
25<#assign imagePath = themeDisplay.getTheme().getContextPath() + themeDisplay.getTheme().getImagesPath() />
26
27<#assign assetRenderer = entry.getAssetRenderer() />
28<#assign urlSocial = siteBaseURL + "/-/" + assetRenderer.getUrlTitle() />
29
30<#if article.getExpandoBridge().hasAttribute("TinyURL") >
31 <#assign urlSocialApp = article.getExpandoBridge().getAttribute("TinyURL")?html />
32
33 <#if urlSocialApp?? && urlSocialApp != "">
34 <#assign urlSocial = "http://w3.webrt.it" + urlSocialApp />
35 </#if>
36</#if>
37
38
39<#if Immagine.getData()?? && Immagine.getData() != "">
40 <#assign urlFullImage = siteBaseURL + Immagine.getData() />
41 <@liferay_util["html-top"] >
42 <meta content="${urlFullImage}" property="og:image" id="meta-default" />
43 </@>
44
45 <script type="text/javascript">
46 console.log(1);
47 $('meta[property="og:image"]').attr('content', '${urlFullImage}');
48
49 </script>
50</#if>
51
52<#assign appImagePath = "" />
53<#if Immagine.getData()?? && Immagine.getData() != "">
54 <#assign appImagePath = "http://toscana-notizie.it" + Immagine.getData() />
55<#else>
56 <#assign appImagePath = "http://toscana-notizie.it/" + imagePath + "/toscana-notizie-placeholder.png" />
57</#if>
58
59<#assign appSummary = "" />
60<#if entry.getSummary(locale)?? && entry.getSummary(locale) != "">
61 <#assign appSummary = entry.getSummary(locale) />
62</#if>
63
64
65
66
67<#assign Autori = [] />
68<#assign temi = [] />
69<#assign Provincia = [] />
70
71<#assign currentCategory = 0 />
72
73<#list categoryList as category>
74 <#assign AssetVocabularyServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetVocabularyServiceUtil"]>
75 <#assign assetVocabulary = AssetVocabularyServiceUtil.getVocabulary(category.getVocabularyId()) />
76 <#if assetVocabulary.getName() == "Temi">
77
78 <#if category.getParentCategory()??>
79 <#assign childCategory = category.getName()/>
80 <#else>
81 <#if (currentCategory?? && currentCategory != category.getCategoryId()) >
82 <#assign currentCategory = category.getCategoryId() />
83 <#assign parentCategory = category.getName()/>
84 <#assign temi = temi + [parentCategory] />
85 </#if>
86 </#if>
87
88 <#elseif assetVocabulary.getName() == "5. Autori">
89 <#assign Autori = Autori + [category.getName()] />
90 <#elseif assetVocabulary.getName() == "Provincia">
91 <#assign Provincia = Provincia + [category.getName()] />
92 </#if>
93</#list>
94
95<#list categoryList as category>
96 <#if category.getParentCategory()??>
97 <#assign childCategory = category.getName()/>
98 <#else>
99 <#assign parentCategory = category.getName()/>
100 </#if>
101</#list>
102
103<style>
104.header-title{
105 display:none;
106}
107.header-back-to{
108 display:none;
109}
110
111.hide-content{
112 visibility:hidden;
113 height : 0;
114 padding: 0px !important;
115 overflow: hidden;
116}
117
118.content_para{
119 float:none !important;
120}
121
122.hide-content img{
123 display:none;
124}
125</style>
126
127<#if Immagine.getData()?? && Immagine.getData() != "">
128 <#assign urlFullImage = siteBaseURL + Immagine.getData() />
129 <@liferay_util["html-top"] >
130 <meta content="${urlFullImage}" property="og:image" id="meta-default" />
131 </@>
132 <script type="text/javascript">
133 console.log(2);
134 $('meta[property="og:image"]').attr('content', '${urlFullImage}');
135
136 </script>
137</#if>
138
139<#assign classColumnLeft = "9" />
140
141<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
142
143<#assign hasLinkForColumn = "false" />
144<#list currentArticleRelatedLinks as related_entry>
145 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
146 <#assign relatedAssetEntry = AssetEntryLocalServiceUtil.getEntry(relatedAssetEntryId) />
147 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
148
149 <#if relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
150 <#assign hasLinkForColumn = "true" />
151 </#if>
152</#list>
153
154<#if (currentArticleRelatedLinks?? && currentArticleRelatedLinks?has_content) && hasLinkForColumn == "true" >
155 <#assign classColumnLeft = "8" />
156</#if>
157
158<section class="container rt-container" id="content">
159 <div class="row">
160 <!-- 1 -->
161 <div class="col-md-12 portlet-column portlet-column-only" id="column-1">
162 <!-- Subheader news -->
163 <section class="rt-subheader rt-subheader--news">
164 <div class="rt-subheader__top">
165 <div class="rt-subheader__category-wrapper">
166 <#list temi as category>
167 <div class="rt-subheader__category">
168 ${category}
169 </div>
170 </#list>
171 </div>
172
173 <div class="rt-subheader__publication">
174
175 <#assign nomeAutore = "" />
176 <#if Autori?? && (Autori?size > 0)>
177 <div class="rt-subheader__author">
178 di
179 <#list Autori as autore>
180 <#if autore != "redazione">
181 <#assign userAutore = UserLocalServiceUtil.getUserByScreenName(themeDisplay.getCompanyId(), autore) />
182 <#if userAutore?? && userAutore?has_content>
183 <#assign nomeAutore = userAutore.getFullName() />
184 </#if>
185 <#else>
186 <#assign nomeAutore = "Redazione" />
187 </#if>
188
189 <a title="Vai alla pagina dell'autore ${nomeAutore?html}" aria-label="Vai alla pagina dell'autore ${nomeAutore?html}" href="/autori/${nomeAutore?html}">
190 ${nomeAutore?html}
191 </a>
192
193 </#list>
194 </div>
195 </#if>
196
197
198 <#list Provincia as location>
199 <div class="rt-news-location">
200 <i aria-hidden="true" class="fas fa-map-marker-alt"></i> ${location}
201 </div>
202 </#list>
203
204 <#assign publishDate = .vars['reserved-article-display-date'].data />
205 <#assign publishDate = publishDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
206 <#assign dateFormatDayMonth = "dd MMMM yyyy">
207 <#assign dateFormatHours = "HH:mm">
208 <div class="rt-subheader__date">${publishDate?string(dateFormatDayMonth)?remove_beginning("0")}</div>
209 <div class="rt-subheader__time">${publishDate?string(dateFormatHours)?remove_beginning("0")}</div>
210 <a class="rt-subheader__button rt-subheader__button-print" onclick="window.print();" href="javascript:void(0);" title="Stampa l'articolo"><i aria-hidden="true" class="far fa-print"></i></a>
211 </div>
212 </div>
213
214 <div class="rt-subheader__wrapper">
215 <div class="rt-subheader__title-wrapper">
216 <h1 class="rt-subheader__title">
217 ${.vars['reserved-article-title'].data}
218 </h1><@getEditIcon />
219 </div>
220
221 <#if ImmagineApertura?? && ImmagineApertura.getData()?? && ImmagineApertura.getData() != "" && ImmagineApertura.getData() == "true" >
222 <#if Immagine.getData()?? && Immagine.getData() != "">
223
224 <#assign altIMG = "" />
225 <#if (Immagine.getAttribute("alt")?? || Immagine.getAttribute("fileEntryId")??)>
226 <#assign altIMG = Immagine.getAttribute("alt") />
227 <#else>
228 <#assign altIMG = .vars['reserved-article-title'].data />
229 </#if>
230
231 <div class="rt-subheader__cover-media" aria-label="${altIMG}" style="background-image: url('${Immagine.getData()}');">
232
233 </div>
234 <#if Descrizione?? && Descrizione.getData() != "">
235 <div class="rt-subheader__caption">
236 ${Descrizione.getData()}
237 </div>
238 </#if>
239 </#if>
240 </#if>
241
242 <#if entry.getSummary(locale)?? && entry.getSummary(locale) != "">
243 <div class="rt-subheader__excerpt">
244 ${entry.getSummary(locale)}
245 </div>
246 </#if>
247 </div>
248
249 </section>
250 </div>
251 </div>
252 <div class="row has-sidebar">
253 <#if Testo?? && Testo.getData() != "">
254 <div class="col-md-12 col-lg-${classColumnLeft} portlet-column portlet-column-first" id="column-2">
255 <div class="rt-page__content rt-page-content--left">
256 <div class="rt-page__content-text">
257
258 <#if ImmagineApertura?has_content && !getterUtil.getBoolean(ImmagineApertura.getData()) || (ImmagineApertura?has_content && (ImmagineApertura.getData() == "false" || ImmagineApertura.getData() == "")) >
259
260 <#if Immagine.getData()?? && Immagine.getData() != "">
261
262 <#assign altIMG = "" />
263 <#if (Immagine.getAttribute("alt")?? || Immagine.getAttribute("fileEntryId")??)>
264 <#assign altIMG = Immagine.getAttribute("alt") />
265 <#else>
266 <#assign altIMG = .vars['reserved-article-title'].data />
267 </#if>
268
269 <figure class="rt-image-align-left">
270 <img alt="${altIMG}" src="${Immagine.getData()}" />
271 <#if Descrizione?? && Descrizione.getData() != "">
272 <figcaption>${Descrizione.getData()}</figcaption>
273 </#if>
274 </figure>
275 </#if>
276 </#if>
277 <p>
278 ${Testo.getData()}
279 </p>
280 </div>
281 </div>
282
283 <div class="rt-btn-wrapper rt-btn-wrapper--right-align">
284 <div class="a2a_kit a2a_kit_size_32 a2a_default_style" data-a2a-title="${.vars['reserved-article-title'].data?html}">
285 <a class="a2a_button_facebook"></a>
286 <a class="a2a_button_twitter"></a>
287 <a class="a2a_button_email"></a>
288 <a class="a2a_button_whatsapp"></a>
289 <a class="a2a_button_linkedin"></a>
290 </div>
291 </div>
292 </div>
293 </#if>
294
295 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
296 <#if (currentArticleRelatedLinks?? && currentArticleRelatedLinks?has_content) >
297 <div class="col-md-12 col-lg-4 portlet-column portlet-column-last" id="column-3">
298
299 <#assign hasAllegato = "false" />
300 <#assign hasLink = "false" />
301 <#list currentArticleRelatedLinks as related_entry>
302 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
303 <#assign relatedAssetEntry = AssetEntryLocalServiceUtil.getEntry(relatedAssetEntryId) />
304 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
305
306 <#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' >
307 <#assign hasAllegato = "true" />
308 <#elseif relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
309 <#assign hasLink = "true" />
310 </#if>
311 </#list>
312
313 <#if (hasLink == "true") >
314 <div class="rt-sidebar-content">
315 <section class="rt-section rt-section--box rt-section--box-row rt-section--related rt-section--sidebar" aria-label="">
316 <div class="rt-section-title-wrapper">
317 <h3 class="rt-section-title">Notizie collegate</h3>
318 </div>
319 <div class="rt-section__wrapper">
320 <#list currentArticleRelatedLinks as related_entry>
321 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
322 <#assign relatedAssetEntry = AssetEntryLocalServiceUtil.getEntry(relatedAssetEntryId) />
323 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
324
325 <#if relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
326 <#assign relatedArticle = JournalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) />
327 <#if relatedArticle?? && relatedArticle != "">
328
329 <#assign assetRendererRelated = relatedAssetEntry.getAssetRenderer() />
330 <#assign rendererURLRelated = siteBaseURL + "/-/" + assetRendererRelated.getUrlTitle() />
331
332 <#assign docXml = saxReaderUtil.read(relatedArticle.getContent()) />
333
334 <#assign Immagine = docXml.valueOf("//dynamic-element[@name='Immagine']/dynamic-content/text()") />
335
336 <#assign fileUrl = "" />
337 <#assign altImg = "" />
338 <#if Immagine?has_content>
339 <#assign json = jsonFactoryUtil.createJSONObject(Immagine) />
340 <#assign nameImg = json.getString("name") />
341 <#assign altImg = json.getString("alt") />
342 <#assign fileEntryId = json.getLong("fileEntryId") />
343 <#assign uuiD = json.getString("uuid") />
344 <#assign groupId = json.getLong("groupId") />
345
346 <#if fileEntryId != 0>
347 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(fileEntryId) />
348 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
349 <#else>
350 <#if groupId != 0 && uuiD != "">
351 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntryByUuidAndGroupId(uuiD,groupId) />
352 <#if fileEntry?? >
353 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
354 </#if>
355 </#if>
356 </#if>
357 <#else>
358 <#assign fileUrl = imagePath + "/toscana-notizie-placeholder.png" />
359 </#if>
360
361
362 <div class="rt-box rt-box--has-image rt-box--has-image-small">
363 <div class="rt-box__image">
364 <img alt="Immagine ${relatedAssetEntry.getTitle(locale)?html}" src="${fileUrl?html}">
365
366 </div>
367
368 <div class="rt-box__text">
369 <div class="rt-box__publication">
370 <div class="rt-box__date">${relatedAssetEntry.publishDate?string["dd MMMM"]?remove_beginning("0")}</div>
371 <div class="rt-box__time">${relatedAssetEntry.publishDate?string["HH:mm"]?remove_beginning("0")}</div>
372 </div>
373
374 <div class="rt-box__title">
375 <a title="Vai alla pagina ${relatedAssetEntry.getTitle(locale)?html}" aria-label="Vai alla pagina ${relatedAssetEntry.getTitle(locale)?html}" href="${rendererURLRelated?html}">
376 ${relatedAssetEntry.getTitle(locale)?html}
377 </a>
378 </div>
379 </div>
380 </div>
381
382 </#if>
383 </#if>
384 </#list>
385 </div>
386 </section>
387 </div>
388 </#if>
389 </div>
390 </#if>
391 </div>
392
393 <@getLinkAndAllegati />
394
395</section>
396
397<#macro getLinkAndAllegati>
398 <#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
399 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
400 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
401
402 <#assign currentArticle = JournalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
403 <#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() />
404 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
405 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
406 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
407
408 <#assign hasAllegato = "false" />
409 <#assign hasLink = "false" />
410 <#if currentArticleRelatedLinks?? && currentArticleRelatedLinks?has_content>
411 <#list currentArticleRelatedLinks as related_entry>
412 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
413 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
414 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
415
416 <#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' >
417 <#assign hasAllegato = "true" />
418 <#elseif relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
419 <#assign hasLink = "true" />
420 </#if>
421 </#list>
422 </#if>
423
424 <#if (hasAllegato == "true")>
425 <div class="rt-container">
426 <div class="rt-wrapper">
427 <section class="rt-section rt-section--grid rt-section--grid-3" aria-label="Sezione link e allegati">
428 <div class="rt-section-title-wrapper">
429 <h2 class="rt-section-title"><i aria-hidden="true" class="far fa-paperclip"></i> Allegati</h2>
430 </div>
431
432 <div class="rt-section__wrapper">
433 <#if hasAllegato == "true">
434 <#list currentArticleRelatedLinks as related_entry>
435 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
436 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
437 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
438
439 <#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' >
440 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(relatedAssetEntryPrimKey) />
441 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
442 <#if fileEntry?? && fileUrl != "">
443 <#if fileEntry.getExtension() == 'mp3'>
444 <div class="rt-box rt-box--link rt-box--audio">
445 <div class="rt-box__header">
446 <div class="rt-box__wrapper">
447 <div class="rt-box__title">
448 <a title="Scarica ${fileEntry.getTitle()}" aria-label="Scarica ${fileEntry.getTitle()}" href="${fileUrl}" target="_blank">
449 ${fileEntry.getTitle()}
450 </a>
451 </div>
452 <audio controls>
453 <source src="${fileUrl}" type="audio/ogg">
454 <source src="${fileUrl}" type="audio/mpeg">
455 Il tuo browser non supporta questo tipo di oggetto html
456 </audio>
457 </div>
458 </div>
459 </div>
460 <#else>
461 <div class="rt-box rt-box--link">
462 <div class="rt-box__header">
463 <div class="rt-box__wrapper">
464 <div class="rt-box__title">
465 <a target="_blank" href="${fileUrl}" aria-label="Vedi ${fileEntry.getTitle()}" title="Vedi ${fileEntry.getTitle()}">
466 ${fileEntry.getTitle()}
467 </a>
468 </div>
469 </div>
470
471 <div class="rt-box__icon">
472 <i aria-hidden="true" class="far fa-download"></i>
473 </div>
474 </div>
475 </div>
476 </#if>
477 </#if>
478 </#if>
479 </#list>
480 </#if>
481 </div>
482 </section>
483 </div>
484 </div>
485 </#if>
486
487</#macro>
488
489
490<#macro getEditIcon>
491 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
492 <#if renderResponse??>
493 <#assign redirectURL = renderResponse.createRenderURL() />
494
495 ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")}
496 ${redirectURL.setWindowState("pop_up")}
497
498 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" />
499
500 <#if validator.isNotNull(editPortletURL)>
501 <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) />
502
503 <@liferay_ui["icon"]
504 cssClass="icon-monospaced visible-interaction"
505 icon="pencil"
506 markupView="lexicon"
507 message=title
508 url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});"
509 />
510 </#if>
511 </#if>
512 </#if>
513</#macro>
514
515<script type="text/javascript">
516 var a2a_config = a2a_config || {};
517 a2a_config.onclick = 1;
518 a2a_config.locale = "it";
519 a2a_config.num_services = 5;
520 a2a_config.title = '${.vars['reserved-article-title'].data?html}';
521 a2a_config.track_links = 'custom';
522 a2a_config.track_links_key = '${urlSocial?html}';
523 a2a_config.linkurl = '${urlSocial?html}';
524 a2a_config.linkname = 'aaaa ${.vars['reserved-article-title'].data?html}';
525
526 a2a_config.templates = a2a_config.templates || {};
527 a2a_config.templates.twitter = {
528 text: "${.vars['reserved-article-title'].data?html} ${urlSocial?html}",
529 related: "AddToAny,Twitter"
530 };
531
532</script>
533<script async src="https://static.addtoany.com/menu/page.js"></script>
Per migliorare l'esperienza di navigazione delle pagine e di fruizione dei servizi online, questo sito utilizza cookie tecnici e analitici. Per informazioni sui cookie dei siti di Regione Toscana e su come eventualmente disabilitarli, leggi la "privacy policy". Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque altro link nella pagina acconsenti all'uso dei cookie.