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@faebbf"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign fileEntry = DLFileEntryLocalS...  [in template "10154#10192#37106" in macro "getLinkAndAllegati" at line 371, column 97]
	- Reached through: @getLinkAndAllegati  [in template "10154#10192#37106" 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 = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] /> 
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 = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
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 = staticUtil["com.liferay.asset.kernel.service.AssetVocabularyServiceUtil"]> 
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	<#if ((TitoloAllegato?? && TitoloAllegato.getData()?has_content && TitoloAllegato.getSiblings()?has_content) 
335		|| (hasAllegato == "true")) || ((TitoloLinkUtile?? && TitoloLinkUtile.getData()?has_content && TitoloLinkUtile.getSiblings()?has_content) 
336		|| (hasLink == "true")) > 
337		<div class="col-md-4 portlet-column portlet-column-last" id="column-3"> 
338			<#if (TitoloAllegato?? && TitoloAllegato.getData()?has_content && TitoloAllegato.getSiblings()?has_content) 
339				|| (hasAllegato == "true")> 
340				 
341				<div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili"> 
342					<div class="rt-section-title-wrapper"> 
343						<h2 class="rt-section-title">Allegati</h2> 
344					</div> 
345 
346					<#if (TitoloAllegato?? && TitoloAllegato.getData()?has_content && TitoloAllegato.getSiblings()?has_content)> 
347 
348							<#assign allegati = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloAllegato']") /> 
349							<#list allegati as allegatoXML> 
350							 
351								<#assign titoloAllegato = allegatoXML.elementText("dynamic-content") /> 
352								<#assign allegato = allegatoXML.valueOf("//dynamic-element[@name='Allegato']/dynamic-content/text()") /> 
353								 
354								<#assign subfields = allegatoXML.elements("dynamic-element")> 
355								<#list subfields as subfield > 
356									<#if subfield.attributeValue("name") == "Allegato" && titoloAllegato?? && titoloAllegato != ""> 
357										<#assign allegato = subfield.elementText("dynamic-content") /> 
358										<#assign json = jsonFactoryUtil.createJSONObject(allegato) /> 
359													 
360										<#assign nameImg = json.getString("name") /> 
361										<#assign altImg = json.getString("alt") /> 
362										<#assign fileEntryId = json.getLong("fileEntryId") /> 
363										<#assign uuiD = json.getString("uuid") /> 
364										<#assign groupId = json.getLong("groupId") /> 
365 
366										<#if fileEntryId != 0> 
367											<#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(fileEntryId) />  
368											<#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />  
369										<#else> 
370											<#if groupId != 0 && uuiD != ""> 
371												<#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntryByUuidAndGroupId(uuiD,groupId) /> 
372												<#if fileEntry?? > 
373													<#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />  
374												</#if> 
375											</#if> 
376										</#if> 
377										<div class="rt-box rt-box--link"> 
378											<div class="rt-box__header"> 
379												<div class="rt-box__wrapper"> 
380													<div class="rt-box__title"> 
381														<a target="_blank" href="${fileUrl}" aria-label="Vedi ${titoloAllegato?html}" title="Vedi ${titoloAllegato?html}"> 
382															${titoloAllegato?html} 
383														</a> 
384													</div> 
385												</div> 
386												<div class="rt-box__icon"> 
387													<i aria-hidden="true" class="far fa-download"></i> 
388												</div> 
389											</div> 
390										</div> 
391 
392									</#if> 
393								</#list>		 
394							</#list> 
395 
396						</#if> 
397 
398						<#if hasAllegato == "true"> 
399							<#list currentArticleRelatedLinks as related_entry> 
400								<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
401								<#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
402								<#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
403 
404								<#if relatedAssetEntry.getClassName() == 'com.liferay.document.library.kernel.model.DLFileEntry' > 
405									<#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(relatedAssetEntryPrimKey) /> 
406									<#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() /> 
407									<#if fileEntry?? && fileUrl != ""> 
408										<#if fileEntry.getExtension() == 'mp3'> 
409											<div class="rt-box rt-box--link rt-box--audio"> 
410												<div class="rt-box__header"> 
411													<div class="rt-box__wrapper"> 
412														<div class="rt-box__title"> 
413															<a title="Scarica ${fileEntry.getTitle()}" aria-label="Scarica ${fileEntry.getTitle()}" href="${fileUrl}" target="_blank"> 
414																${fileEntry.getTitle()} 
415															</a> 
416														</div> 
417														<audio controls> 
418															<source src="${fileUrl}" type="audio/ogg"> 
419															<source src="${fileUrl}" type="audio/mpeg"> 
420																Il tuo browser non supporta questo tipo di oggetto html 
421														</audio> 
422													</div> 
423												</div> 
424											</div> 
425										<#else> 
426											<div class="rt-box rt-box--link"> 
427												<div class="rt-box__header"> 
428													<div class="rt-box__wrapper"> 
429														<div class="rt-box__title"> 
430															<a target="_blank" href="${fileUrl}" aria-label="Vedi ${fileEntry.getTitle()}" title="Vedi ${fileEntry.getTitle()}"> 
431																${fileEntry.getTitle()} 
432															</a> 
433														</div> 
434													</div> 
435 
436													<div class="rt-box__icon"> 
437														<i aria-hidden="true" class="far fa-download"></i> 
438													</div> 
439												</div> 
440											</div> 
441										</#if> 
442									</#if> 
443								</#if> 
444							</#list> 
445						</#if> 
446 
447 
448				</div> 
449 
450			</#if>  
451			<#if (TitoloLinkUtile?? && TitoloLinkUtile.getData()?has_content && TitoloLinkUtile.getSiblings()?has_content) 
452				|| (hasLink == "true") > 
453 
454				 
455				<div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili"> 
456					<div class="rt-section-title-wrapper"> 
457						<h2 class="rt-section-title">Link</h2> 
458					</div> 
459						 
460						<#if (TitoloLinkUtile?? && TitoloLinkUtile.getData()?has_content && TitoloLinkUtile.getSiblings()?has_content)> 
461 
462							<#assign links = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloLinkUtile']") /> 
463							<#list links as linkXML> 
464								<#assign titoloLink = linkXML.elementText("dynamic-content") /> 
465								<#assign link = linkXML.valueOf("//dynamic-element[@name='Link']/dynamic-content/text()") /> 
466								 
467								<#assign subfields = linkXML.elements("dynamic-element")> 
468								<#list subfields as subfield > 
469									<#if subfield.attributeValue("name") == "Link" && titoloLink?? && titoloLink != ""> 
470										<#assign link = subfield.elementText("dynamic-content") /> 
471										<div class="rt-box rt-box--link"> 
472											<div class="rt-box__header"> 
473												<div class="rt-box__wrapper"> 
474													<div class="rt-box__title"> 
475														<#if link?html?starts_with("www")> 
476															<a target="_blank" href="//${link?html}" aria-label="Vedi ${titoloLink?html}" title="Vedi ${titoloLink?html}"> 
477																${titoloLink?html} 
478															</a> 
479														<#else> 
480															<a target="_blank" href="${link?html}" aria-label="Vedi ${titoloLink?html}" title="Vedi ${titoloLink?html}"> 
481																${titoloLink?html} 
482															</a> 
483														</#if> 
484														 
485													</div> 
486												</div> 
487 
488												<div class="rt-box__icon"> 
489													<i aria-hidden="true" class="far fa-link"></i> 
490												</div> 
491											</div> 
492										</div> 
493 
494										 
495									</#if>                             
496								</#list> 
497							</#list> 
498 
499							 
500						</#if> 
501						 
502						 
503						<#if hasLink == "true"> 
504							<#list currentArticleRelatedLinks as related_entry> 
505								<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
506								<#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
507								<#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
508 
509								<#if relatedAssetEntry.getClassName() == 'com.liferay.journal.model.JournalArticle' > 
510									<#assign relatedArticle = JournalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
511									<#if relatedArticle?? && relatedArticle != ""> 
512										<div class="rt-box rt-box--link"> 
513											<div class="rt-box__header"> 
514												<div class="rt-box__wrapper"> 
515													<div class="rt-box__title"> 
516														<a target="_blank" href="/-/${relatedArticle.getUrlTitle()}" aria-label="Vedi ${relatedArticle.getTitle()}" title="Vedi ${relatedArticle.getTitle()}"> 
517															${relatedArticle.getTitle()} 
518														</a> 
519													</div> 
520												</div> 
521 
522												<div class="rt-box__icon"> 
523													<i aria-hidden="true" class="far fa-link"></i> 
524												</div> 
525											</div> 
526										</div> 
527									</#if> 
528								</#if> 
529							</#list> 
530						</#if> 
531				</div> 
532			</#if> 
533		    
534		</div> 
535	</#if> 
536</#macro> 
537 
538<#macro getPhotogallery> 
539    <#if (FotoGallery?? && FotoGallery.getData()?has_content && FotoGallery.getSiblings()?has_content)> 
540        <#assign galleries = docXml.getRootElement().selectNodes("//dynamic-element[@name='FotoGallery']") /> 
541        <#list galleries as galleryXML> 
542 
543            <#assign gallery = galleryXML.elementText("dynamic-content") /> 
544            <#if gallery?? > 
545                <#assign galleriaFotoJson = jsonFactoryUtil.createJSONObject(gallery) /> 
546                <#assign classPKGalleriaFoto = galleriaFotoJson.getLong("classPK") /> 
547                <#if (classPKGalleriaFoto > 0)> 
548                    <#assign galleriaFotoAsset = AssetEntryLocalServiceUtil.fetchEntry("com.liferay.journal.model.JournalArticle", classPKGalleriaFoto) /> 
549                    <#if galleriaFotoAsset?? > 
550                        <#assign assetRendererGalleriaFoto = galleriaFotoAsset.getAssetRenderer() /> 
551                        <#assign articleGalleriaFoto = assetRendererGalleriaFoto.getArticle() />  
552                        <#assign articleContentFoto = journalContentUtil.getContent(articleGalleriaFoto.groupId, articleGalleriaFoto.articleId, "", locale.toString(), themeDisplay) /> 
553                         
554                        ${articleContentFoto} 
555                    </#if> 
556                </#if>  
557            </#if> 
558        </#list> 
559    </#if> 
560</#macro> 
561 
562<#macro getEbook> 
563 
564	<#if (TitoloEbook?? && TitoloEbook.getData()?has_content && TitoloEbook.getSiblings()?has_content)> 
565		<div class="col-md-4 portlet-column portlet-column-last" id="column-3"> 
566		<div class="rt-section rt-section--sidebar" aria-label="Lista dei link utili"> 
567			<div class="rt-section-title-wrapper"> 
568				<h2 class="rt-section-title">Ebook</h2> 
569			</div> 
570				 
571				<#if (TitoloEbook?? && TitoloEbook.getData()?has_content && TitoloEbook.getSiblings()?has_content)> 
572 
573					<#assign ebooks = docXml.getRootElement().selectNodes("//dynamic-element[@name='TitoloEbook']") /> 
574					<#list ebooks as ebookXML> 
575					 
576						<#assign titoloEbook = ebookXML.elementText("dynamic-content") /> 
577						<#assign ebook = ebookXML.valueOf("//dynamic-element[@name='Ebook']/dynamic-content/text()") /> 
578						 
579						<#assign subfields = ebookXML.elements("dynamic-element")> 
580						<#list subfields as subfield > 
581							<#if subfield.attributeValue("name") == "Ebook" && titoloEbook?? && titoloEbook != ""> 
582								<#assign ebook = subfield.elementText("dynamic-content") /> 
583								<#assign json = jsonFactoryUtil.createJSONObject(ebook) /> 
584											 
585								<#assign nameImg = json.getString("name") /> 
586								<#assign altImg = json.getString("alt") /> 
587								<#assign fileEntryId = json.getLong("fileEntryId") /> 
588								<#assign uuiD = json.getString("uuid") /> 
589								<#assign groupId = json.getLong("groupId") /> 
590 
591								<#if fileEntryId != 0> 
592									<#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(fileEntryId) />  
593									<#assign fileUrl = "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />  
594								<#else> 
595									<#if groupId != 0 && uuiD != ""> 
596										<#assign fileEntry = DLFileEntryLocalServiceUtil.getFileEntryByUuidAndGroupId(uuiD,groupId) /> 
597										<#if fileEntry?? > 
598											<#assign fileUrl = "/o/pdfjs/web/viewer.jsp?file=/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + fileEntry.getTitle() + "/" + fileEntry.getUuid() />  
599										</#if> 
600									</#if> 
601								</#if> 
602								<div class="rt-box rt-box--link"> 
603									<div class="rt-box__header"> 
604										<div class="rt-box__wrapper"> 
605											<div class="rt-box__title"> 
606												<a target="_blank" href="${fileUrl}" aria-label="Vedi ${titoloEbook?html}" title="Vedi ${titoloEbook?html}"> 
607													${titoloEbook?html} 
608												</a> 
609											</div> 
610										</div> 
611										<div class="rt-box__icon"> 
612											<i aria-hidden="true" class="far fa-download"></i> 
613										</div> 
614									</div> 
615								</div> 
616 
617							</#if> 
618						</#list>		 
619					</#list> 
620 
621				</#if> 
622		</div> 
623		</div> 
624	</#if> 
625 
626</#macro> 
627 
628 
629<#macro getEditIcon> 
630	<#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
631        <#if renderResponse?? > 
632            <#assign redirectURL = renderResponse.createRenderURL() /> 
633 
634            ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
635            ${redirectURL.setWindowState("pop_up")} 
636 
637            <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 
638 
639            <#if validator.isNotNull(editPortletURL)> 
640                <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 
641 
642                <@liferay_ui["icon"] 
643                    cssClass="icon-monospaced visible-interaction" 
644                    icon="pencil" 
645                    markupView="lexicon" 
646                    message=title 
647                    url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 
648                /> 
649            </#if> 
650        </#if>     
651	</#if> 
652</#macro>