Toscana: un mare di qualità
Il nostro mare
Tutte le sezioni
Chiudi il menù
Ambiente
Tutte le informazioni e i servizi della Regione che riguardano l‘ambiente e, in particolare, acque, energia, sostenibilità, inquinamento, mare, parchi, rifiuti, suolo e biodiversità.
Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy93.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy93 object "com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl@16e6506c"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign fileEntry = DLFileEntryLocalS... [in template "10154#10192#18700566" in macro "getLinkAndAllegati" at line 369, column 81] - Reached through: @getLinkAndAllegati [in template "10154#10192#18700566" at line 195, column 9] ----
1<#setting locale="it_IT">
2<#setting time_zone=timeZone.ID>
3
4<#assign hasCookie >
5 <@rt.checkCookieAcceptance siteId=themeDisplay.getScopeGroupId() cookieToCheck="third-party" />
6</#assign>
7
8<#assign AssetEntryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
9<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
10<#assign DLFileEntryLocalServiceUtil = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') />
11
12<#assign journalArticleId = .vars['reserved-article-id'].data/>
13<#assign article = JournalArticleLocalService.getArticle(groupId, journalArticleId) />
14<#assign entry = AssetEntryLocalServiceUtil.fetchEntry("com.liferay.journal.model.JournalArticle", article.resourcePrimKey) />
15
16<#assign assetRenderer = entry.getAssetRenderer() />
17<#assign entryTitle = htmlUtil.escape(entry.getTitle(locale)?html) />
18
19<#assign AssetCategoryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
20<#assign categoryList = AssetCategoryLocalServiceUtil.getAssetEntryAssetCategories(entry.entryId) />
21
22<#assign docXml = saxReaderUtil.read(article.getContent()) />
23
24<#assign rivoltoAChi = [] />
25<#assign temi = [] />
26
27<#list categoryList as category>
28 <#assign AssetVocabularyServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
29 <#assign assetVocabulary = AssetVocabularyServiceUtil.getVocabulary(category.getVocabularyId()) />
30 <#if assetVocabulary.getName() == "Temi">
31 <#assign temi = temi + [category] />
32 <#elseif assetVocabulary.getName() == "Rivolto a chi">
33 <#assign rivoltoAChi = rivoltoAChi + [category] />
34 </#if>
35</#list>
36
37<#list temi as category>
38 <#if category.getParentCategory()??>
39 <#assign child = category.getName()/>
40 <#else>
41 <#assign parent = category.getName()/>
42 </#if>
43</#list>
44
45<style>
46.header-title{
47 display:none;
48}
49.header-back-to{
50 display:none;
51}
52
53.hide-content{
54 visibility:hidden;
55 height : 0;
56 padding: 0px !important;
57}
58</style>
59
60 <#assign iconClass = "far fa-bell"/>
61 <#if TipologiaAggiornamento?? && TipologiaAggiornamento.getData() != "">
62 <!-- Icona e testo GENERICO -->
63 <#if TipologiaAggiornamento.getData()?upper_case == 'GENERICO'>
64 <#assign iconClass = "far fa-bell"/>
65 </#if>
66 <!-- Icona e testo AVVISO -->
67 <#if TipologiaAggiornamento.getData()?upper_case == 'AVVISO'>
68 <#assign iconClass = "far fa-bell"/>
69 </#if>
70 <!-- Icona e testo PROGETTO -->
71 <#if TipologiaAggiornamento.getData()?upper_case == 'PROGETTO'>
72 <#assign iconClass = "far fa-ruler-triangle"/>
73 </#if>
74 <!-- Icona e testo PUBBLICAZIONE -->
75 <#if TipologiaAggiornamento.getData()?upper_case == 'PUBBLICAZIONE'>
76 <#assign iconClass = "far fa-list-alt"/>
77 </#if>
78 <!-- Icona e testo DELIBERA -->
79 <#if TipologiaAggiornamento.getData()?upper_case == 'DELIBERA'>
80 <#assign iconClass = "far fa-newspaper"/>
81 </#if>
82 </#if>
83<div class="rt-subheader rt-subheader--no-bg rt-subheader--updates">
84 <div class="rt-subheader__wrapper">
85 <div class="rt-container">
86 <div class="rt-subheader__content">
87 <div class="rt-subheader__taxonomy">
88 <strong class="rt-subheader__taxonomy-label"><i aria-hidden="true" class="${iconClass}"></i> Aggiornamento in: </strong>
89 <#list temi as category>
90 <#if category.getParentCategory()??>
91 <#assign childCategory1 = category.getName()/>
92 <#if parentCategory1??>
93 <#if category.getParentCategory().getName() != parentCategory1>
94 <i aria-hidden="true" class="fas fa-circle"></i>
95 <#assign parentCategory1 = category.getParentCategory().getName()/>
96 <span class="rt-subheader__taxonomy-main">
97 <a title="Vai alla categoria ${parentCategory1}" aria-label="Vai alla categoria ${parentCategory1}" href="/${parentCategory1?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
98 ${parentCategory1}
99 </a>
100 </span>
101 </#if>
102 <#else>
103 <#assign parentCategory1 = category.getParentCategory().getName()/>
104 <span class="rt-subheader__taxonomy-main">
105 <a title="Vai alla categoria ${parentCategory1}" aria-label="Vai alla categoria ${parentCategory1}" href="/${parentCategory1?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
106 ${parentCategory1}
107 </a>
108 </span>
109 </#if>
110 <span class="rt-subheader__taxonomy-secondary">
111 <a title="Vai alla categoria ${childCategory1}" aria-label="Vai alla categoria ${childCategory1}" href="/${childCategory1?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
112 ${childCategory1}
113 </a>
114 </span>
115 <#else>
116 <#if parentCategory1??>
117 <#if category.getName() != parentCategory1>
118 <#assign parentCategory1 = category.getName()/>
119 <i aria-hidden="true" class="fas fa-circle"></i>
120 <span class="rt-subheader__taxonomy-main">
121 <a title="Vai alla categoria ${parentCategory1}" aria-label="Vai alla categoria ${parentCategory1}" href="/${parentCategory1?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
122 ${parentCategory1}
123 </a>
124 </span>
125 </#if>
126 <#else>
127 <#if category.getParentCategory()??>
128 <#assign parentCategory1 = category.getParentCategory().getName()/>
129 <span class="rt-subheader__taxonomy-main">
130 <a title="Vai alla categoria ${parentCategory1}" aria-label="Vai alla categoria ${parentCategory1}" href="/${parentCategory1?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
131 ${parentCategory1}
132 </a>
133 </span>
134 <#else>
135 <#assign parentCategory1 = category.getName()/>
136 <span class="rt-subheader__taxonomy-main">
137 <a title="Vai alla categoria ${parentCategory1}" aria-label="Vai alla categoria ${parentCategory1}" href="/${parentCategory1?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
138 ${parentCategory1}
139 </a>
140 </span>
141 </#if>
142 </#if>
143 </#if>
144 </#list>
145 </div>
146
147 <h2 class="rt-subheader__title">${.vars['reserved-article-title'].data} <@getEditIcon /> </h2>
148 <div class="rt-subheader__text">${entry.getSummary(locale)}</div>
149 <#if TipologiaAggiornamento?? && TipologiaAggiornamento.getData() != "">
150 <div class="rt-subheader__category">
151 <div class="rt-subheader__category-label">${TipologiaAggiornamento.getData()?upper_case}</div>
152 <i aria-hidden="true" class="${iconClass}"></i>
153 </div>
154 </#if>
155 <div class="rt-btn rt-btn-light rt-btn-round rt-btn-share" id="sharebtn">
156 <span class="rt-btn-round__label">Condividi</span> <i aria-hidden="true" class="fas fa-share"></i>
157 </div>
158 </div>
159 </div>
160 </div>
161</div>
162
163<section class="container rt-content" id="content">
164 <div class="row">
165 <div class="col-md-8 portlet-column portlet-column-first" id="column-2">
166 <div class="rt-page__content rt-page-content--left">
167 <div class="rt-page__content-text">
168 <#if TitoloSecondario?? && TitoloSecondario?has_content && TitoloSecondario.getData() != "" && TitoloSecondario.getData()?trim != "">
169 <div class="rt-page__content-emphasis">
170 ${TitoloSecondario.getData()}
171 </div>
172 </#if>
173 <#if UsaImmagine?? && UsaImmagine.getData() == "true" >
174 <#if ImmagineCopertina?? && ImmagineCopertina.getData()?? && ImmagineCopertina.getData() != "">
175 <div class="rt-page__content-main-image">
176 <#assign altImage = ""/>
177 <#if ImmagineCopertina.getAttribute("alt")?? >
178 <#assign altImage = ImmagineCopertina.getAttribute("alt") />
179 </#if>
180
181
182 <img alt="${altImage}" src="${ImmagineCopertina.getData()}" />
183 </div>
184 </#if>
185 </#if>
186 <#if ContenutoPrincipale??>
187 <@rt.pruneExternalContent html=ContenutoPrincipale.getData()?remove_beginning("<p> </p>") acceptedCookie=hasCookie?trim?boolean />
188 </#if>
189 </div>
190 </div>
191
192 <!-- TODO : INSERIRE PARTE MANCANTE -->
193 </div>
194
195 <@getLinkAndAllegati />
196
197 <@getEbook />
198
199
200 </div>
201
202<div class="col-md-12 portlet-column portlet-column-last" id="column-2">
203 <#if VideoGallery?? && VideoGallery.getData()?has_content>
204 <#assign galleriaVideoJson = jsonFactoryUtil.createJSONObject(VideoGallery.getData()) />
205 <#assign classPKGalleriaVideo = galleriaVideoJson.getLong("classPK") />
206 <#if (classPKGalleriaVideo > 0)>
207 <#assign galleriaVideoAsset = AssetEntryLocalServiceUtil.fetchEntry("com.liferay.journal.model.JournalArticle", classPKGalleriaVideo) />
208 <#if galleriaVideoAsset?? >
209 <#assign assetRendererGalleriaVideo = galleriaVideoAsset.getAssetRenderer() />
210 <#assign articleGalleriaVideo = assetRendererGalleriaVideo.getArticle() />
211 <#assign articleContentVideo = journalContentUtil.getContent(articleGalleriaVideo.groupId, articleGalleriaVideo.articleId, "", locale.toString(), themeDisplay) />
212
213 ${articleContentVideo}
214 </#if>
215 </#if>
216 </#if>
217
218 <@getPhotogallery />
219
220
221 </div>
222
223<div class="rt-update-informations">
224 <div class="rt-update-informations__row">
225
226 <div class="rt-update-informations__info">
227 <i aria-hidden="true" class="far fa-code-branch"></i>
228 <div class="rt-update-informations__info-label">Questo aggiornamento lo trovi in:</div>
229 <div class="rt-update-informations__info-value">
230 <#list temi as category>
231 <#if category.getParentCategory()??>
232 <#assign childCategory = category.getName()/>
233 <#if parentCategory??>
234 <#if category.getParentCategory().getName() != parentCategory>
235 <br>
236 <#assign parentCategory = category.getParentCategory().getName()/>
237 <a class="rt-update-informations__info-category" title="Vai alla categoria ${parentCategory}" aria-label="Vai alla categoria ${parentCategory}" href="/${parentCategory?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
238 <strong>${parentCategory}</strong>
239 </a>
240 </#if>
241 <#else>
242 <#assign parentCategory = category.getParentCategory().getName()/>
243 <a class="rt-update-informations__info-category" title="Vai alla categoria ${parentCategory}" aria-label="Vai alla categoria ${parentCategory}" href="/${parentCategory?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
244 <strong>${parentCategory}</strong>
245 </a>
246 </#if>
247 <a class="rt-update-informations__info-category" title="Vai alla categoria ${childCategory}" aria-label="Vai alla categoria ${childCategory}" href="/${childCategory?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
248 /${childCategory}
249 </a>
250 <#else>
251 <#if parentCategory??>
252 <#if category.getName() != parentCategory>
253 <#assign parentCategory = category.getName()/>
254 <br>
255 <a class="rt-update-informations__info-category" title="Vai alla categoria ${parentCategory}" aria-label="Vai alla categoria ${parentCategory}" href="/${parentCategory?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
256 <strong>${parentCategory}</strong>
257 </a>
258 </#if>
259 <#else>
260 <#if category.getParentCategory()??>
261 <#assign parentCategory = category.getParentCategory().getName()/>
262 <a class="rt-update-informations__info-category" title="Vai alla categoria ${parentCategory}" aria-label="Vai alla categoria ${parentCategory}" href="/${parentCategory?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
263 <strong>${parentCategory}</strong>
264 </a>
265 <#else>
266 <#assign parentCategory = category.getName()/>
267 <a class="rt-update-informations__info-category" title="Vai alla categoria ${parentCategory}" aria-label="Vai alla categoria ${parentCategory}" href="/${parentCategory?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}">
268 <strong>${parentCategory}</strong>
269 </a>
270 </#if>
271 </#if>
272 </#if>
273 </#list>
274 </div>
275 </div>
276
277 <div class="rt-update-informations__info rt-update-informations__info--updated">
278 <i aria-hidden="true" class="far fa-calendar-edit"></i>
279 <div class="rt-update-informations__info-label">Aggiornato al:</div>
280 <div class="rt-update-informations__info-value"><strong>${article.modifiedDate?string["dd.MM.yyyy"]}</strong></div>
281 </div>
282
283 <div class="rt-update-informations__info rt-update-informations__info--id">
284 <i aria-hidden="true" class="far fa-hashtag"></i>
285 <div class="rt-update-informations__info-label">Article ID:</div>
286 <div class="rt-update-informations__info-value"><strong>${article.getArticleId()}</strong></div>
287 </div>
288 </div>
289
290 <#if rivoltoAChi?? && (rivoltoAChi?size > 0) >
291 <div class="rt-update-informations__info rt-update-informations__info--interest">
292 <i aria-hidden="true" class="far fa-user-friends"></i>
293 <div class="rt-update-informations__info-label">Interessa a:</div>
294 <div class="rt-update-informations__info-value">
295 <#list rivoltoAChi as category>
296 <a class="rt-update-informations__info-category" title="Vai alla categoria ${category.getName()}" aria-label="Vai alla categoria ${category.getName()}" href="/${category.getName()?replace('\'', '-')?replace(' ', '-')?replace('à', 'a')?replace('ò', 'o')?replace('è', 'e')?replace('é', 'e')?replace('ù', 'u')?replace(',', '')?lower_case}"><strong>${category.getName()}</strong></a>
297 </#list>
298 </div>
299 </div>
300 </#if>
301
302</div>
303
304
305</section>
306
307
308<#macro getLinkAndAllegati>
309 <#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
310 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
311 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
312
313 <#assign currentArticle = JournalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
314 <#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() />
315 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
316 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
317 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
318
319 <#assign hasAllegato = "false" />
320 <#assign hasLink = "false" />
321 <#if currentArticleRelatedLinks?? && currentArticleRelatedLinks?has_content>
322 <#list currentArticleRelatedLinks as related_entry>
323 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
324 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
325 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
326
327 <#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' >
328 <#assign hasAllegato = "true" />
329 <#elseif relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
330 <#assign hasLink = "true" />
331 </#if>
332 </#list>
333 </#if>
334
335 <div class="col-md-4 portlet-column portlet-column-last" id="column-3">
336 <#if (TitoloAllegato?? && TitoloAllegato.getData()?has_content && TitoloAllegato.getSiblings()?has_content)
337 || (hasAllegato == "true")>
338
339 <div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili">
340 <div class="rt-section-title-wrapper">
341 <h2 class="rt-section-title">Allegati</h2>
342 </div>
343
344 <#if (TitoloAllegato?? && TitoloAllegato.getData()?has_content && TitoloAllegato.getSiblings()?has_content)>
345
346 <#assign allegati = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloAllegato']") />
347 <#list allegati as allegatoXML>
348
349 <#assign titoloAllegato = allegatoXML.elementText("dynamic-content") />
350 <#assign allegato = allegatoXML.valueOf("//dynamic-element[@name='Allegato']/dynamic-content/text()") />
351
352 <#assign subfields = allegatoXML.elements("dynamic-element")>
353 <#list subfields as subfield >
354 <#if subfield.attributeValue("name") == "Allegato" && titoloAllegato?? && titoloAllegato != "">
355 <#assign allegato = subfield.elementText("dynamic-content") />
356 <#assign json = jsonFactoryUtil.createJSONObject(allegato) />
357
358 <#assign nameImg = json.getString("name") />
359 <#assign altImg = json.getString("alt") />
360 <#assign fileEntryId = json.getLong("fileEntryId") />
361 <#assign uuiD = json.getString("uuid") />
362 <#assign groupId = json.getLong("groupId") />
363
364 <#if fileEntryId != 0>
365 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(fileEntryId) />
366 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
367 <#else>
368 <#if groupId != 0 && uuiD != "">
369 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntryByUuidAndGroupId(uuiD,groupId) />
370 <#if fileEntry?? >
371 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
372 </#if>
373 </#if>
374 </#if>
375 <div class="rt-box rt-box--link">
376 <div class="rt-box__header">
377 <div class="rt-box__wrapper">
378 <div class="rt-box__title">
379 <a target="_blank" href="${fileUrl}" aria-label="Vedi ${titoloAllegato?html}" title="Vedi ${titoloAllegato?html}">
380 ${titoloAllegato?html}
381 </a>
382 </div>
383 </div>
384 <div class="rt-box__icon">
385 <i aria-hidden="true" class="far fa-download"></i>
386 </div>
387 </div>
388 </div>
389
390 </#if>
391 </#list>
392 </#list>
393
394 </#if>
395
396 <#if hasAllegato == "true">
397 <#list currentArticleRelatedLinks as related_entry>
398 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
399 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
400 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
401
402 <#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' >
403 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(relatedAssetEntryPrimKey) />
404 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
405 <#if fileEntry?? && fileUrl != "">
406 <#if fileEntry.getExtension() == 'mp3'>
407 <div class="rt-box rt-box--link rt-box--audio">
408 <div class="rt-box__header">
409 <div class="rt-box__wrapper">
410 <div class="rt-box__title">
411 <a title="Scarica ${fileEntry.getTitle()}" aria-label="Scarica ${fileEntry.getTitle()}" href="${fileUrl}" target="_blank">
412 ${fileEntry.getTitle()}
413 </a>
414 </div>
415 <audio controls>
416 <source src="${fileUrl}" type="audio/ogg">
417 <source src="${fileUrl}" type="audio/mpeg">
418 Il tuo browser non supporta questo tipo di oggetto html
419 </audio>
420 </div>
421 </div>
422 </div>
423 <#else>
424 <div class="rt-box rt-box--link">
425 <div class="rt-box__header">
426 <div class="rt-box__wrapper">
427 <div class="rt-box__title">
428 <a target="_blank" href="${fileUrl}" aria-label="Vedi ${fileEntry.getTitle()}" title="Vedi ${fileEntry.getTitle()}">
429 ${fileEntry.getTitle()}
430 </a>
431 </div>
432 </div>
433
434 <div class="rt-box__icon">
435 <i aria-hidden="true" class="far fa-download"></i>
436 </div>
437 </div>
438 </div>
439 </#if>
440 </#if>
441 </#if>
442 </#list>
443 </#if>
444
445
446 </div>
447
448 </#if>
449 <#if (TitoloLinkUtile?? && TitoloLinkUtile.getData()?has_content && TitoloLinkUtile.getSiblings()?has_content)
450 || (hasLink == "true") >
451
452
453 <div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili">
454 <div class="rt-section-title-wrapper">
455 <h2 class="rt-section-title">Link</h2>
456 </div>
457
458 <#if (TitoloLinkUtile?? && TitoloLinkUtile.getData()?has_content && TitoloLinkUtile.getSiblings()?has_content)>
459
460 <#assign links = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloLinkUtile']") />
461 <#list links as linkXML>
462 <#assign titoloLink = linkXML.elementText("dynamic-content") />
463 <#assign link = linkXML.valueOf("//dynamic-element[@name='Link']/dynamic-content/text()") />
464
465 <#assign subfields = linkXML.elements("dynamic-element")>
466 <#list subfields as subfield >
467 <#if subfield.attributeValue("name") == "Link" && titoloLink?? && titoloLink != "">
468 <#assign link = subfield.elementText("dynamic-content") />
469 <div class="rt-box rt-box--link">
470 <div class="rt-box__header">
471 <div class="rt-box__wrapper">
472 <div class="rt-box__title">
473 <#if link?html?starts_with("www")>
474 <a target="_blank" href="//${link?html}" aria-label="Vedi ${titoloLink?html}" title="Vedi ${titoloLink?html}">
475 ${titoloLink?html}
476 </a>
477 <#else>
478 <a target="_blank" href="${link?html}" aria-label="Vedi ${titoloLink?html}" title="Vedi ${titoloLink?html}">
479 ${titoloLink?html}
480 </a>
481 </#if>
482
483 </div>
484 </div>
485
486 <div class="rt-box__icon">
487 <i aria-hidden="true" class="far fa-link"></i>
488 </div>
489 </div>
490 </div>
491
492
493 </#if>
494 </#list>
495 </#list>
496
497
498 </#if>
499
500
501 <#if hasLink == "true">
502 <#list currentArticleRelatedLinks as related_entry>
503 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
504 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
505 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
506
507 <#if relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' >
508 <#assign relatedArticle = JournalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) />
509 <#if relatedArticle?? && relatedArticle != "">
510 <div class="rt-box rt-box--link">
511 <div class="rt-box__header">
512 <div class="rt-box__wrapper">
513 <div class="rt-box__title">
514 <a target="_blank" href="/-/${relatedArticle.getUrlTitle()}" aria-label="Vedi ${relatedArticle.getTitle()}" title="Vedi ${relatedArticle.getTitle()}">
515 ${relatedArticle.getTitle()}
516 </a>
517 </div>
518 </div>
519
520 <div class="rt-box__icon">
521 <i aria-hidden="true" class="far fa-link"></i>
522 </div>
523 </div>
524 </div>
525 </#if>
526 </#if>
527 </#list>
528 </#if>
529 </div>
530 </#if>
531
532 </div>
533
534</#macro>
535
536<#macro getPhotogallery>
537 <#if (FotoGallery?? && FotoGallery.getData()?has_content && FotoGallery.getSiblings()?has_content)>
538 <#assign galleries = docXml.getRootElement().selectNodes("//dynamic-element[@name='FotoGallery']") />
539 <#list galleries as galleryXML>
540
541 <#assign gallery = galleryXML.elementText("dynamic-content") />
542 <#if gallery?? >
543 <#assign galleriaFotoJson = jsonFactoryUtil.createJSONObject(gallery) />
544 <#assign classPKGalleriaFoto = galleriaFotoJson.getLong("classPK") />
545 <#if (classPKGalleriaFoto > 0)>
546 <#assign galleriaFotoAsset = AssetEntryLocalServiceUtil.fetchEntry("com.liferay.journal.model.JournalArticle", classPKGalleriaFoto) />
547 <#if galleriaFotoAsset?? >
548 <#assign assetRendererGalleriaFoto = galleriaFotoAsset.getAssetRenderer() />
549 <#assign articleGalleriaFoto = assetRendererGalleriaFoto.getArticle() />
550 <#assign articleContentFoto = journalContentUtil.getContent(articleGalleriaFoto.groupId, articleGalleriaFoto.articleId, "", locale.toString(), themeDisplay) />
551
552 ${articleContentFoto}
553 </#if>
554 </#if>
555 </#if>
556 </#list>
557 </#if>
558</#macro>
559
560<#macro getEbook>
561
562 <#if (TitoloEbook?? && TitoloEbook.getData()?has_content && TitoloEbook.getSiblings()?has_content)>
563 <div class="col-md-4 portlet-column portlet-column-last" id="column-3">
564 <div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili">
565 <div class="rt-section-title-wrapper">
566 <h2 class="rt-section-title">Ebook</h2>
567 </div>
568
569 <#if (TitoloEbook?? && TitoloEbook.getData()?has_content && TitoloEbook.getSiblings()?has_content)>
570
571 <#assign ebooks = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloEbook']") />
572 <#list ebooks as ebookXML>
573
574 <#assign titoloEbook = ebookXML.elementText("dynamic-content") />
575 <#assign ebook = ebookXML.valueOf("//dynamic-element[@name='Ebook']/dynamic-content/text()") />
576
577 <#assign subfields = ebookXML.elements("dynamic-element")>
578 <#list subfields as subfield >
579 <#if subfield.attributeValue("name") == "Ebook" && titoloEbook?? && titoloEbook != "">
580 <#assign ebook = subfield.elementText("dynamic-content") />
581 <#assign json = jsonFactoryUtil.createJSONObject(ebook) />
582
583 <#assign nameImg = json.getString("name") />
584 <#assign altImg = json.getString("alt") />
585 <#assign fileEntryId = json.getLong("fileEntryId") />
586 <#assign uuiD = json.getString("uuid") />
587 <#assign groupId = json.getLong("groupId") />
588
589 <#if fileEntryId != 0>
590 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(fileEntryId) />
591 <#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
592 <#else>
593 <#if groupId != 0 && uuiD != "">
594 <#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntryByUuidAndGroupId(uuiD,groupId) />
595 <#if fileEntry?? >
596 <#assign fileUrl = "/o/pdfjs/web/viewer.jsp?file=/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />
597 </#if>
598 </#if>
599 </#if>
600 <div class="rt-box rt-box--link">
601 <div class="rt-box__header">
602 <div class="rt-box__wrapper">
603 <div class="rt-box__title">
604 <a target="_blank" href="${fileUrl}" aria-label="Vedi ${titoloEbook?html}" title="Vedi ${titoloEbook?html}">
605 ${titoloEbook?html}
606 </a>
607 </div>
608 </div>
609 <div class="rt-box__icon">
610 <i aria-hidden="true" class="far fa-download"></i>
611 </div>
612 </div>
613 </div>
614
615 </#if>
616 </#list>
617 </#list>
618
619 </#if>
620 </div>
621 </div>
622 </#if>
623
624</#macro>
625
626
627<#macro getEditIcon>
628 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
629 <#if renderResponse?? >
630 <#assign redirectURL = renderResponse.createRenderURL() />
631
632 ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")}
633 ${redirectURL.setWindowState("pop_up")}
634
635 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" />
636
637 <#if validator.isNotNull(editPortletURL)>
638 <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) />
639
640 <@liferay_ui["icon"]
641 cssClass="icon-monospaced visible-interaction"
642 icon="pencil"
643 markupView="lexicon"
644 message=title
645 url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});"
646 />
647 </#if>
648 </#if>
649 </#if>
650</#macro>
Risorse Correlate:
Aggiornamenti
Vedi tutti
Ambiente
Mare
PUBBLICAZIONE
Obiettivo il massimo coinvolgimento di cittadini e addetti ai lavori nell'individuazione delle strategie più idonee a raggiungere il buono stato ambientale dei nostri mari
Aggiornato al 15.11.2019
DELIBERA
Previsti interventi fino al 2023 per un importo totale di 115 milioni
Aggiornato al 15.11.2019