Da visitare
In questa sezione trovate i punti principali che potete visitare nel Comune di Salice Salentino
Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy86.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy86 object "com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl@13b1f92d"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign dlFileEntry = dlFileEntryServ... [in template "34140#34167#34799" at line 227, column 73] ----
1<#-- instance id -->
2<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") />
3
4<#-- etichette -->
5<#assign label_notizia = languageUtil.get(locale, "label_notizia") />
6<#assign label_evento = languageUtil.get(locale, "label_evento") />
7<#assign label_comunicato_stampa = languageUtil.get(locale, "label_comunicato_stampa") />
8<#assign label_vai_argomento = languageUtil.get(locale, "label_vai_argomento") />
9<#assign label_tutte_novita = languageUtil.get(locale, "label_tutte_novita") />
10<#assign label_leggi_piu = languageUtil.get(locale, "label_leggi_piu") />
11<#assign label_vai_alla_pagina = languageUtil.get(locale, "label_vai_alla_pagina") />
12<#assign label_leggi_notizia = languageUtil.get(locale, "label_leggi_notizia") />
13<#assign label_leggi_evento = languageUtil.get(locale, "label_leggi_evento") />
14<#assign label_leggi_comunicato = languageUtil.get(locale, "label_leggi_comunicato") />
15<#assign label_in_evidenza = languageUtil.get(locale, "label_in_evidenza") />
16
17<#-- Ricavo servizi utili in seguito -->
18<#-- Servizi utili per ricavare le categorie e relative properties -->
19<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
20
21<#-- Servizi utili pe ricavare le immagini dalla D&M -->
22<#assign dlFileEntryService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') />
23<#assign dlUtil = serviceLocator.findService('com.liferay.document.library.kernel.util.DLUtil') />
24<#assign dlAppService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLAppService') />
25
26<#-- Servizio per i layout di pagina -->
27<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
28
29<#-- Funzioni utilita -->
30<#-- Ripulisco stringa da caratteri speciali -->
31<#function escapeExtraChar text>
32 <#return text?replace("\"",""", "r")?replace("'","’", "r")>
33</#function>
34
35<#-- Verifico se il primo elemento di una lista esiste -->
36<#function firstOfListNotEmpty list>
37 <#assign result = false />
38 <#if list?? && list?has_content && list.getSiblings()?has_content && list.getSiblings()?first.getData()?has_content>
39 <#assign result = true />
40 </#if>
41 <#return result>
42</#function>
43
44<#-- Se il carattere indicato è il prefisso della categoria, indica che la stessa non deve essere mostrata a video, ma viene solo usata per scopi funzionali -->
45<#assign PREFIX_SERVICE_CATEGORY = "_" />
46
47<#-- Ricavo tutte le categorie associate ad un articolo a meno di quelle che hanno un prefisso "_" -->
48<#function getCategoryByArticlePrimKey articlePrimKey>
49 <#assign tmp = "" />
50 <#assign articleCatNames = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) />
51 <#if (articleCatNames?size > 0)>
52 <#list articleCatNames as category>
53 <#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY >
54 <#assign tmp = tmp + category.name + ", " />
55 </#if>
56 </#list>
57 <#assign tmp = tmp?keep_before_last(",") />
58 </#if>
59 <#return tmp>
60</#function>
61
62<#-- variante: restituisce solo la lista di oggetti category -->
63<#function getListCategoryByArticlePrimKey articlePrimKey>
64 <#assign listCategories = [] />
65 <#assign articleCat = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) />
66 <#if (articleCat?size > 0)>
67 <#list articleCat as category>
68 <#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY >
69 <#assign listCategories = listCategories + [category] />
70 </#if>
71 </#list>
72 </#if>
73 <#return listCategories>
74</#function>
75
76<#-- Verifico che la lista di elementi dell'asset siano journal article -->
77<#function isJournalArticle renderer>
78 <#return ("com.liferay.journal.model.JournalArticle" == renderer.getClassName() ) >
79</#function>
80<#function getElements renderer>
81 <#assign journalArticle = renderer.getArticle() />
82 <#assign document = saxReaderUtil.read(journalArticle.getContent()) />
83 <#assign rootElement = document.getRootElement() />
84 <#return rootElement.elements() >
85</#function>
86
87<#-- ricavo dai campi personalizzati i valori degli elenco pagine Novita' -->
88<#assign URL_PAGINA_NOVITA = "" />
89<#assign URL_PAGINA_NOTIZIE = "" />
90<#assign URL_PAGINA_COMUNICATI = "" />
91<#assign URL_PAGINA_EVENTI = "" />
92<#if validator.isNotNull(themeDisplay.getLayout().getGroup().getExpandoBridge()) >
93 <#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("pagina_novita"))) >
94 <#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_novita")??>
95 <#assign URL_PAGINA_NOVITA = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_novita")/>
96 <#-- data la pagina dell'elenco, ne ricavo la regular url -->
97 <#if URL_PAGINA_NOVITA?has_content>
98 <#assign paginaNovitaLayout = layoutLocalService.getFriendlyURLLayout(groupId, false, URL_PAGINA_NOVITA) />
99 <#if paginaNovitaLayout??>
100 <#assign paginaNovitaUrl = paginaNovitaLayout.getRegularURL(request) />
101 <#if paginaNovitaUrl??>
102 <#assign URL_PAGINA_NOVITA = paginaNovitaUrl />
103 </#if>
104 </#if>
105 </#if>
106 </#if>
107 </#if>
108 <#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("pagina_elenco_notizie"))) >
109 <#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_elenco_notizie")??>
110 <#assign URL_PAGINA_NOTIZIE = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_elenco_notizie")/>
111 <#-- data la pagina dell'elenco, ne ricavo la regular url -->
112 <#if URL_PAGINA_NOTIZIE?has_content>
113 <#assign paginaNotizieLayout = layoutLocalService.getFriendlyURLLayout(groupId, false, URL_PAGINA_NOTIZIE) />
114 <#if paginaNotizieLayout??>
115 <#assign paginaNotizieUrl = paginaNotizieLayout.getRegularURL(request) />
116 <#if paginaNotizieUrl??>
117 <#assign URL_PAGINA_NOTIZIE = paginaNotizieUrl />
118 </#if>
119 </#if>
120 </#if>
121 </#if>
122 </#if>
123 <#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("pagina_elenco_comunicati"))) >
124 <#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_elenco_comunicati")??>
125 <#assign URL_PAGINA_COMUNICATI = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_elenco_comunicati")/>
126 <#-- data la pagina dell'elenco, ne ricavo la regular url -->
127 <#if URL_PAGINA_COMUNICATI?has_content>
128 <#assign paginaComunicatiLayout = layoutLocalService.getFriendlyURLLayout(groupId, false, URL_PAGINA_COMUNICATI) />
129 <#if paginaComunicatiLayout??>
130 <#assign paginaComunicatiUrl = paginaComunicatiLayout.getRegularURL(request) />
131 <#if paginaComunicatiUrl??>
132 <#assign URL_PAGINA_COMUNICATI = paginaComunicatiUrl />
133 </#if>
134 </#if>
135 </#if>
136 </#if>
137 </#if>
138 <#if (( themeDisplay.getLayout().getGroup().getExpandoBridge().hasAttribute("pagina_elenco_eventi"))) >
139 <#if themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_elenco_eventi")??>
140 <#assign URL_PAGINA_EVENTI = themeDisplay.getLayout().getGroup().getExpandoBridge().getAttribute("pagina_elenco_eventi")/>
141 <#-- data la pagina dell'elenco, ne ricavo la regular url -->
142 <#if URL_PAGINA_EVENTI?has_content>
143 <#assign paginaEventiLayout = layoutLocalService.getFriendlyURLLayout(groupId, false, URL_PAGINA_EVENTI) />
144 <#if paginaEventiLayout??>
145 <#assign paginaEventiUrl = paginaEventiLayout.getRegularURL(request) />
146 <#if paginaEventiUrl??>
147 <#assign URL_PAGINA_EVENTI = paginaEventiUrl />
148 </#if>
149 </#if>
150 </#if>
151 </#if>
152 </#if>
153</#if>
154
155<#-- INIZIO ADT -->
156<#if !entries?has_content>
157 <#if !themeDisplay.isSignedIn()>
158 ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)}
159 </#if>
160 <section class="adt-comune adt-contenuti-evidenza bg-light">
161 <div class="container">
162 <div class="row">
163 <div class="col">
164 <h2 class="titolo-sezione mb-4">${label_in_evidenza}</h2>
165 </div>
166 </div>
167 <div class="alert alert-info">
168 <@liferay_ui["message"] key="there-are-no-results" />
169 </div>
170 </div>
171 </section>
172</#if>
173
174<#if entries?has_content>
175 <section class="adt-comune adt-contenuti-evidenza bg-light">
176 <div class="container">
177
178 <div class="row">
179 <div class="col">
180 <h2 class="titolo-sezione mb-4">${label_in_evidenza}</h2>
181 </div>
182 </div>
183
184 <div class="row">
185
186 <#assign contatore = 0 />
187
188 <#list entries as curEntry>
189 <#assign contatore = contatore + 1 />
190
191 <#assign renderer = curEntry.getAssetRenderer() />
192
193 <#-- verifico che sia un journal article -->
194 <#if isJournalArticle(renderer)>
195
196 <#-- ricavo il primekey -->
197 <#assign articlePrimKey = renderer.getArticle().getResourcePrimKey() />
198
199 <#-- ricavo il titolo -->
200 <#assign titolo = escapeExtraChar(curEntry.getTitle(locale)) />
201
202 <#-- ricavo la view url -->
203 <#assign viewUrl = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) />
204 <#if assetLinkBehavior != "showFullContent">
205 <#assign viewUrl = renderer.getURLViewInContext(renderRequest, renderResponse, viewUrl) />
206 </#if>
207
208 <#-- ricavo la struttura dell articolo-->
209 <#assign journalArticle = renderer.getArticle() />
210 <#assign journalArticleStructure = journalArticle.getDDMStructure().getName(locale) />
211
212 <#-- inizializzo le variabili che uso -->
213 <#assign categorie = [], title = "", date = "", start_date = "", image = "", abstract = "", paginaElencoUrl = "", pagineElencoNome = "", labelLeggi = "" >
214
215 <#-- recupero l'elenco delle categorie da visualizzare -->
216 <#assign categorie = getListCategoryByArticlePrimKey( articlePrimKey ) />
217
218 <#-- recupero i dati dalla struttura dell'articolo -->
219 <#list getElements(renderer) as dynamicElement>
220 <#if "title" == dynamicElement.attributeValue("name")>
221 <#assign title = dynamicElement.element("dynamic-content").getText() />
222 <#assign title = title?trim />
223 <#elseif "image" == dynamicElement.attributeValue("name")>
224 <#assign imageJString = dynamicElement.element("dynamic-content").getText() />
225 <#if imageJString?? && imageJString?has_content>
226 <#assign imageJson = imageJString?eval />
227 <#assign dlFileEntry = dlFileEntryService.getFileEntryByUuidAndGroupId(imageJson.uuid, imageJson.groupId?number) />
228 <#assign fileEntry = dlAppService.getFileEntry(dlFileEntry.fileEntryId) />
229 <#assign dlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, "") />
230 <#assign image = dlFile />
231 </#if>
232 <#elseif "date" == dynamicElement.attributeValue("name")>
233 <#assign date = dynamicElement.element("dynamic-content").getText() />
234 <#elseif "start_date" == dynamicElement.attributeValue("name")>
235 <#assign start_date = dynamicElement.element("dynamic-content").getText() />
236 <#elseif "abstract" == dynamicElement.attributeValue("name")>
237 <#assign abstract = dynamicElement.element("dynamic-content").getText() />
238 <#assign abstract = abstract?trim />
239 <#assign abstract = htmlUtil.extractText(abstract) />
240 </#if>
241 </#list>
242
243 <#-- recupero la pagina da associare al nome della struttura -->
244 <#if journalArticleStructure == "Notizia">
245 <#assign pagineElencoNome = label_notizia />
246 <#assign labelLeggi = label_leggi_notizia />
247 <#if URL_PAGINA_NOTIZIE !="">
248 <#assign paginaElencoUrl = URL_PAGINA_NOTIZIE />
249 </#if>
250 <#elseif journalArticleStructure == "Comunicato stampa">
251 <#assign pagineElencoNome = label_comunicato_stampa />
252 <#assign labelLeggi = label_leggi_comunicato />
253 <#if URL_PAGINA_COMUNICATI !="">
254 <#assign paginaElencoUrl = URL_PAGINA_COMUNICATI />
255 </#if>
256 <#elseif journalArticleStructure == "Evento">
257 <#assign pagineElencoNome = label_evento />
258 <#assign labelLeggi = label_leggi_evento />
259 <#if URL_PAGINA_EVENTI !="">
260 <#assign paginaElencoUrl = URL_PAGINA_EVENTI />
261 </#if>
262 </#if>
263
264 <#-- HTML -->
265 <div class="col-lg-4 mb-3">
266 <div class="card h-100">
267 <#if (validator.isNotNull(image) && image != "") || (validator.isNotNull(start_date))>
268 <div class="card-img-wrapper">
269 <#-- parso la data e la formatto -->
270 <#if validator.isNotNull(start_date)>
271 <#assign start_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", start_date, locale) />
272 <#assign start_date = dateUtil.getDate(start_date_DateObj, "dd-MMM", locale) />
273 </#if>
274 <#if validator.isNotNull(start_date) && start_date != "">
275 <#assign giorno_mese = start_date?split("-") />
276 <span class="card-calendar d-flex flex-column justify-content-center">
277 <span class="card-day">${giorno_mese[0]}</span>
278 <span class="card-month">${giorno_mese[1]}</span>
279 </span>
280 </#if>
281 <#-- immagine -->
282 <#if validator.isNotNull(image) && image != "">
283 <#attempt>
284 <img src="${image}" class="card-img-top" alt="${escapeExtraChar(title)}">
285 <#recover>
286 <#-- non viene visualizzato nulla -->
287 </#attempt>
288 </#if>
289 </div>
290 </#if>
291 <div class="card-body">
292 <#-- tipo di contenuto, e data -->
293 <div class="category-top">
294 <svg class="icon">
295 <use xlink:href="/o/comuni-theme/svg/sprite.svg#it-calendar"></use>
296 </svg>
297 <#-- data la pagina dell'elenco, ne ricavo la regular url -->
298 <#if paginaElencoUrl!= "">
299 <a class="category" href="${paginaElencoUrl}" title="${label_vai_alla_pagina} ${escapeExtraChar(pagineElencoNome)}">${pagineElencoNome}</a>
300 <#else>
301 <span>${pagineElencoNome}</span>
302 </#if>
303 <#-- parso la data e la formatto, solo se non Evento -->
304 <#if journalArticleStructure != "Evento">
305 <#if validator.isNotNull(date)>
306 <#assign date_DateObj = dateUtil.parseDate("yyyy-MM-dd", date, locale) />
307 <#assign date = dateUtil.getDate(date_DateObj, "dd MMMM yyyy", locale) />
308 </#if>
309 <#if validator.isNotNull(date) && date != "">
310 <span class="data">${date}</span>
311 </#if>
312 </#if>
313 </div>
314 <#-- titolo principale -->
315 <#if validator.isNotNull(title) && title != "">
316 <h2 class="h2 card-title">
317 <a href="${viewUrl}" title="${labelLeggi} ${escapeExtraChar(title)}">${title}</a>
318 </h2>
319 </#if>
320 <#-- abstract -->
321 <#if validator.isNotNull(abstract) && abstract != "">
322 <p class="card-text">${abstract}</p>
323 </#if>
324 <#-- categorie, se area tematica(argomento) ricavo il link alla relativa pagina -->
325 <#if categorie?? && (categorie?size > 0)>
326 <#list categorie as cur_cat>
327 <#if validator.isNotNull(cur_cat) && cur_cat != "">
328 <div class="chip chip-simple chip-primary no-link">
329 <span class="chip-label">${cur_cat.getName()}</span>
330 </div>
331 </#if>
332 </#list>
333 </#if>
334 </div>
335 </div>
336 </div>
337 </#if>
338 </#list>
339 </div>
340 </div>
341 </section>
342</#if>