Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy687.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy687 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@5c63e11a"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign article = JournalArticleLocal...  [in template "10154#10192#18700566" at line 13, column 1]
----
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>&nbsp;</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>