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

Aggiornamenti

Vedi tutti

Sistema Informativo Regionale Integrato per il Governo del Territorio

Territorio e Paesaggio Informazione territoriale

Convenzione sottoscritta il 12 giugno 2020

Territorio e Paesaggio Informazione territoriale
Territorio e Paesaggio Informazione territoriale

Per scambiare informazioni e consigli sulle banche dati e sulla Infrastruttura Geografica toscana