Points of interest

Let the journey begin!

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy172.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy172 object "com.liferay.document.library.internal.service.FriendlyURLDLFileEntryLocalServiceWrapper@70750e37"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign imageDlFileEntry = dlFileEntr...  [in template "20097#20123#285407" at line 74, column 57]
----
1<#-- instanceId --> 
2<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") /> 
3 
4<#-- Etichette --> 
5<#assign label_leggi_piu = languageUtil.get(locale , "label_leggi_piu")/> 
6<#assign label_punti_di_interesse = languageUtil.get(locale , "label_punti_di_interesse")/> 
7<#assign label_sottotitolo_punti_di_interesse = languageUtil.get(locale , "label_sottotitolo_punti_di_interesse")/> 
8 
9<#-- Ricavo servizi utili in seguito --> 
10<#-- Servizio utile per ricavare i documenti della DM --> 
11<#assign dlFileEntryLocalService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') /> 
12<#-- servizio utilizzato per recupare un vocabolario a partire dal suo id --> 
13<#assign poiRandomService = serviceLocator.findService("it.linksmt.duemari.assetpublisher.content.api.POIRandomService") /> 
14 
15<#assign entries = poiRandomService.getRandomGroupedByCategoriesPois(groupId) /> 
16<#-- Inclusione widget template con macros e relativi servizi --> 
17<#include "${templatesPath}/COMMON_MACROS" /> 
18 
19<#-- HTML --> 
20<#-- INIZIO ADT --> 
21<#if !entries?has_content> 
22	<#if !themeDisplay.isSignedIn()> 
23		${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
24	</#if> 
25	<section class="card-list poi-card-list bg-white container-full-bg pt-5"> 
26		<div class="container"> 
27			<div class="row"> 
28				<div class="col-12"> 
29					<div class="alert alert-info"> 
30						<@liferay_ui["message"] key="there-are-no-results" />  
31					</div> 
32				</div> 
33			</div> 
34		</div> 
35	</section>		 
36</#if> 
37 
38<#if entries?has_content> 
39	<section class="card-list poi-card-list bg-white container-full-bg"> 
40		<div class="slider-poi"> 
41			<div id="carousel_gallery_${instanceId}" class="owl-carousel owl-theme"> 
42				<#assign contatore = 0 /> 
43				<#list entries as curEntry> 
44					<#if curEntry.getClassName() == "com.liferay.journal.model.JournalArticle"> 
45						<#assign contatore = contatore + 1 />			 
46 
47						<#-- ricavo il journalArticle --> 
48						<#assign assetRenderer = curEntry.getAssetRenderer()/> 
49           				<#assign journalArticle = assetRenderer.getAssetObject() /> 
50           				 
51           				<#-- primary key journal article --> 
52						<#assign journalArticlePrimKey = journalArticle.resourcePrimKey/> 
53           				 
54           				<#-- ricavo la view url --> 
55			    		<#assign viewUrl = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
56						<#if assetLinkBehavior != "showFullContent"> 
57							<#assign viewUrl = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewUrl) />			 
58						</#if> 
59						 
60						<#-- inizializzo le variabili usate in seguito --> 
61						<#assign title = "", abstract = "", image = "", imageUrl = "", duration = "", idealPeriod = "" /> 
62						 
63						<#-- ricavo dalla struttura i dati che mi servono per creare le card --> 
64						<#-- struttura: title - campo obbligatorio --> 
65	                    <#assign title = getFieldValue(journalArticle, 'title') /> 
66 
67						<#-- struttura: abstract --> 
68	                    <#assign abstract = getFieldValue(journalArticle, 'abstract') /> 
69	                     
70						<#-- struttura: image - blocco ripetibile, prendo la prima --> 
71	                    <#assign image = getFieldValue(journalArticle, 'image') /> 
72	                    <#assign imageJson = jsonFactoryUtil.createJSONObject(image) /> 
73	                    <#if imageJson?? && imageJson?has_content && imageJson.uuid?? && imageJson.groupId??> 
74							<#assign imageDlFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(imageJson.uuid,imageJson.groupId?number) /> 
75							<#assign imageUrl = "/documents/"+groupId+"/"+imageDlFileEntry.getFolderId()+"/"+imageDlFileEntry.getFileName()+"/"+imageJson.uuid /> 
76						</#if> 
77						 
78						<#-- costruisco l'elemento dello slider --> 
79						<#if validator.isNotNull(imageUrl)> 
80							<div class="slider-wrap" style="background-image: url('${imageUrl?js_string}');"> 
81							<img class="img-fluid hide" src="${imageUrl}" alt="${htmlUtil.escapeAttribute(title)}" style="display:none;"> 
82						<#else> 
83							<div class="slider-wrap bg-primary"> 
84						</#if> 
85							<div class="container h-100"> 
86								<#-- forzo il contenitore al 100% di altezza --> 
87								<div class="row h-100"> 
88									<div class="col-md-10 col-lg-8 offset-lg-1 col-xl-6 offset-xl-1"> 
89										<div class="slider-content"> 
90											 
91											<#-- titolo --> 
92											<#if validator.isNotNull(title)> 
93												<h1 class="slider-title mb-4">${title}</h1> 
94											</#if> 
95 
96											<#-- abstract --> 
97											<#if validator.isNotNull(abstract)> 
98												<div class="slider-description d-none d-md-block mb-4">${abstract}</div> 
99											</#if> 
100											 
101											<#-- link --> 
102											<div class="slider-buttons"> 
103												<a class="btn btn-outline-white text-uppercase my-2 border-dotted" href="${viewUrl}" title="${label_leggi_piu}"> 
104			                    					${label_leggi_piu} 
105			                    				</a> 
106											</div> 
107										</div> 
108									</div> 
109								</div> 
110							</div> 
111						</div> 
112						<#-- fine slide --> 
113						 
114					</#if> 
115				</#list> 
116			</div> 
117		</div> 
118	</section> 
119	 
120	<script type="text/javascript"> 
121		$(document).ready(function(){ 
122			var owl = $('#carousel_gallery_${instanceId}');	 
123			// inizializzazione 
124			owl.owlCarousel({ 
125			    loop: true, 
126			    autoplay: true, 
127			    autoplaySpeed: 2000, 
128			    autoplayHoverPause: true, 
129			    nav: true, 
130			    navText: ['<span class="fas fa-chevron-left" aria-hidden="true"></span>','<span class="fas fa-chevron-right" aria-hidden="true"></span>'], 
131			    dots: false, 
132			    responsiveClass:true, 
133			    items: 1, 
134			    responsive:{ 
135			    	0:{ 
136			            items:1 
137			        }, 
138			        768:{ 
139			            items:1 
140			        }, 
141			        992:{ 
142			            items:1 
143
144
145			}) 
146			 
147			// navigazione con tastiera 
148			$(document.documentElement).keyup(function(event) {     
149		        if (event.keyCode == 37) { /*left key*/ 
150		            owl.trigger('prev.owl.carousel', [700]); 
151		        } else if (event.keyCode == 39) { /*right key*/ 
152		            owl.trigger('next.owl.carousel', [700]); 
153
154		    }); 
155			 
156		}); 
157	</script>	 
158</#if> 

Choose the geographical area and browse through over 600 cultural and natural beauties.