Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing: ==> dlFileEntryService [in template "20096#20121#537827" at line 117, column 41] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign fileEntryImg = dlFileEntrySer... [in template "20096#20121#537827" at line 117, column 17] ----
1<#assign structureService=serviceLocator.findService("it.inera.structure.service.StructureService")>
2<#assign journalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
3<#assign siteBaseUrl = structureService.getSiteBaseUrl(themeDisplay)>
4
5<#assign jac = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")>
6<#assign journalArticleId = .vars['reserved-article-id'].data>
7<#assign ja = journalArticleLocalService.getArticle(groupId, journalArticleId)>
8<#assign pagina = jac.getPagina(ja) />
9
10<#assign modifieddate = pagina.getModifiedDate()?string["dd/MM/yyyy, HH:mm"]>
11<#assign tipiDocumentopubblicoVocabularyId = structureService.getVocabularyTipidocumentopubblicoId()>
12
13<div class="container">
14 <div class="row">
15 <div class="col-lg-8 px-lg-4 py-lg-2">
16 <h1 data-audio>
17 ${pagina.getTitolo()}
18 </h1>
19
20 <#if pagina.getSottotitolo()?? && pagina.getSottotitolo()?has_content>
21 <div data-audio>
22 ${pagina.getSottotitolo()}
23 </div>
24 </#if>
25 </div>
26
27 <div class="col-lg-3 offset-lg-1">
28 <div class="dropdown d-inline">
29 <button aria-label="<@liferay.language key="social.condivididesc" />" class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" type="button" id="shareActions" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
30 <svg class="icon" aria-hidden="true">
31 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-share"></use>
32 </svg>
33 <small><@liferay.language key="social.condividi" /></small>
34 </button>
35 <div class="dropdown-menu shadow-lg" aria-labelledby="shareActions">
36 <div class="link-list-wrapper">
37 <ul class="link-list share-btn" role="menu">
38 <li role="none">
39 <a data-id="fb" class="list-item" href="#" role="menuitem">
40 <svg class="icon" aria-hidden="true">
41 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-facebook"></use>
42 </svg>
43 <span><@liferay.language key="social.facebook" /></span>
44 </a>
45 </li>
46 <li role="none">
47 <a data-id="tw" class="list-item" href="#" role="menuitem">
48 <svg class="icon" aria-hidden="true">
49 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-twitter"></use>
50 </svg>
51 <span><@liferay.language key="social.twitter" /></span>
52 </a>
53 </li>
54 <li role="none">
55 <a data-id="in" class="list-item" href="#" role="menuitem">
56 <svg class="icon" aria-hidden="true">
57 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-linkedin"></use>
58 </svg>
59 <span><@liferay.language key="social.linkedin" /></span>
60 </a>
61 </li>
62 <li role="none">
63 <a data-id="wa" class="list-item" href="#" role="menuitem">
64 <svg class="icon" aria-hidden="true">
65 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-whatsapp"></use>
66 </svg>
67 <span><@liferay.language key="social.whatsapp" /></span>
68 </a>
69 </li>
70 </ul>
71 </div>
72 </div>
73 </div>
74 <div class="dropdown d-inline">
75 <button aria-label="<@liferay.language key="azioni.vedidesc" />" class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" type="button" id="viewActions" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
76 <svg class="icon" aria-hidden="true">
77 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-more-items"></use>
78 </svg>
79 <small><@liferay.language key="azioni.vedi" /></small>
80 </button>
81 <div class="dropdown-menu shadow-lg" aria-labelledby="viewActions">
82 <div class="link-list-wrapper">
83 <ul class="link-list share-btn" role="menu">
84 <li role="none">
85 <a data-id="print" class="list-item" href="#" role="menuitem">
86 <svg class="icon" aria-hidden="true">
87 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-print"></use>
88 </svg>
89 <span><@liferay.language key="azioni.stampa" /></span>
90 </a>
91 </li>
92 <li role="none">
93 <a class="list-item" href="#" role="menuitem" onclick="listenElements(this, '[data-audio]')">
94 <svg class="icon" aria-hidden="true">
95 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-hearing"></use>
96 </svg>
97 <span><@liferay.language key="azioni.ascolta" /></span>
98 </a>
99 </li>
100 <li role="none">
101 <a data-id="mail" class="list-item" href="#" role="menuitem">
102 <svg class="icon" aria-hidden="true">
103 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-mail"></use>
104 </svg>
105 <span><@liferay.language key="azioni.invia" /></span>
106 </a>
107 </li>
108 </ul>
109 </div>
110 </div>
111 </div>
112 </div>
113 </div>
114
115 <#if pagina.getImmagineprincipale()?? && pagina.getImmagineprincipale().getImmagine()?? && pagina.getImmagineprincipale().getImmagine().getUrl()?? && pagina.getImmagineprincipale().getImmagine().getUrl()?has_content>
116 <#assign immagineprincipale = pagina.getImmagineprincipale() >
117 <#assign fileEntryImg = dlFileEntryService.getDLFileEntry(immagineprincipale.getImmagine().getFileEntryId()?number) />
118 <#assign fileVersionImg = dlAppLocalService.getFileVersion(fileEntryImg.getFileVersion().getFileVersionId()) />
119
120 <div class="row" style="margin-top:20px">
121 <figure class="figure px-0 img-full">
122 <@adaptive_media_image.img fileVersion=fileVersionImg title="${immagineprincipale.getTitolo()}" alt="${immagineprincipale.getImmagine().getAlt()}" class="figure-img img-fluid" />
123 <figcaption class="figure-caption text-center pt-3">${immagineprincipale.getTitolo()}</figcaption>
124 </figure>
125 </div>
126 </#if>
127
128</div>
129
130<section class="section">
131 <div class="container">
132 <div class="row">
133 <div class="col-12 col-lg-4">
134 <div class="sidebar-1 mb-5" data-bs-toggle="sticky" data-bs-stackable="true">
135 <nav class="navbar it-navscroll-wrapper navbar-expand-lg" data-bs-navscroll="">
136 <div id="navbarNavProgress">
137 <div class="overlay"></div>
138 <div class="menu-wrapper">
139 <div class="link-list-wrapper dropdown">
140 <button class="btn btn-dropdown dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="true">
141 <h3><@liferay.language key="museo.pagina.indice" /></h3>
142 <svg class="icon ms-1" role="img">
143 <use href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-expand"></use>
144 </svg>
145 </button>
146 <div class="progress">
147 <div class="progress-bar it-navscroll-progressbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
148 </div>
149 <ul class="link-list dropdown-menu show" aria-labelledby="dropdownMenuButton">
150 <#if pagina.getParagrafi()?has_content>
151 <#list pagina.getParagrafi() as paragrafo>
152 <#if (paragrafo.getTitoloParagrafo())?? && (paragrafo.getTitoloParagrafo())?has_content >
153 <li class="nav-item"><a class="nav-link" href="#sec-${paragrafo?index}"><span>${paragrafo.getTitoloParagrafo()}</span></a></li>
154 </#if>
155 </#list>
156 </#if>
157 <#if pagina.getCollegamenti()?? && pagina.getCollegamenti()?has_content && pagina.getCollegamenti()[0]?has_content && pagina.getCollegamenti()[0].getClassPKLong()??>
158 <li class="nav-item">
159 <a class="nav-link" href="#contenuti_collegati">
160 <span class="title-medium"><@liferay.language key="Contenuti collegati" /></span>
161 </a>
162 </li>
163 </#if>
164 <#if pagina.getDocumenti()?? && pagina.getDocumenti()?has_content && pagina.getDocumenti()[0]?? && pagina.getDocumenti()[0]?has_content && pagina.getDocumenti()[0].getClassPKLong()?? >
165 <li class="nav-item">
166 <a class="nav-link" href="#documenti">
167 <span class="title-medium"><@liferay.language key="Documenti collegati" /></span>
168 </a>
169 </li>
170 </#if>
171 </ul>
172 </div>
173 </div>
174 </div>
175 </nav>
176 </div>
177 </div>
178 <div class="col-12 col-lg-8 it-page-sections-container">
179 <#if pagina.getParagrafi()?has_content>
180 <#list pagina.getParagrafi() as paragrafo>
181 <div <#if (paragrafo.getTitoloParagrafo())?? && (paragrafo.getTitoloParagrafo())?has_content >class="it-page-section" id="sec-${paragrafo?index}"</#if>>
182 <#if (paragrafo.getTitoloParagrafo())?? && (paragrafo.getTitoloParagrafo())?has_content >
183 <div class="infos-intro">
184 <h2 class="infos-title">${paragrafo.getTitoloParagrafo()}</h2>
185 </div>
186 </#if>
187 <#if (paragrafo.getTestoParagrafo())?? && (paragrafo.getTestoParagrafo())?has_content >
188 <div class="infos-container">
189 <div class="row richtext-wrapper">
190 ${paragrafo.getTestoParagrafo()}
191 </div>
192 </div>
193 </#if>
194
195 </div>
196 </#list>
197 </#if>
198
199 <#if pagina.getCollegamenti()?? && pagina.getCollegamenti()?has_content && pagina.getCollegamenti()[0]?has_content && pagina.getCollegamenti()[0].getClassPKLong()??>
200 <article id="contenuti_collegati" class="it-page-section anchor-offset mt-5 mb-5">
201 <h2 class="mb-3"><@liferay.language key="Contenuti collegati" /></h2>
202 <#assign allegati = pagina.getCollegamenti() />
203 <div class="mb-3" style="font-style:italic">Notizie, servizi e pagine collegati a questa notizia.</div>
204 <div class="row g-4">
205 <#list allegati as allegato>
206 <#assign assetType = "unknown" />
207 <#assign urlTitle = "#" />
208 <#assign titolo = "" />
209 <#assign sottotitolo = "" />
210 <#assign immaginePrincipaleCollegamento = "" />
211 <#if allegato?? && allegato?has_content && allegato.getClassPKLong()?? >
212 <#assign allegatoId = allegato.getClassPKLong() />
213
214 <#if allegatoId?? && allegatoId?has_content >
215 <#assign allegatoJA = journalArticleLocalService.getLatestArticle(allegatoId)>
216
217 <#if allegatoJA.getDDMStructureKey() = structureService.getStructurePaginaKey()>
218 <#assign allegatoObj = jac.getPagina(allegatoJA) />
219 <#assign assetType = "Pagina" />
220 <#assign urlTitle = allegatoObj.getUrlTitle() />
221 <#assign titolo = allegatoObj.getTitolo() />
222 <#assign sottotitolo = "" />
223 <#if allegatoObj.getSottotitolo()??>
224 <#assign sottotitolo = allegatoObj.getSottotitolo() />
225 </#if>
226 <#if allegatoObj.getImmagineprincipale()?? && allegatoObj.getImmagineprincipale().getImmagine()?? && allegatoObj.getImmagineprincipale().getImmagine().getUrl()?? && allegatoObj.getImmagineprincipale().getImmagine().getUrl()?has_content>
227 <#assign immaginePrincipaleCollegamento = allegatoObj.getImmagineprincipale().getImmagine().getUrl() >
228 </#if>
229 </#if>
230 <#if allegatoJA.getDDMStructureKey() = structureService.getStructureServizioKey()>
231 <#assign allegatoObj = jac.getServizio(allegatoJA) />
232 <#assign assetType = "Servizio" />
233 <#assign urlTitle = allegatoObj.getUrlTitle() />
234 <#assign titolo = allegatoObj.getTitolo() />
235 <#if allegatoObj.getSottotitolo()??>
236 <#assign sottotitolo = allegatoObj.getSottotitolo() />
237 </#if>
238 <#if allegatoObj.immagineprincipale?? && allegatoObj.immagineprincipale.immagine.getUrl()?? && allegatoObj.immagineprincipale.immagine.getUrl()?has_content >
239 <#assign immaginePrincipaleCollegamento = allegatoObj.getImmagineprincipale().getImmagine().getUrl() >
240 </#if>
241 </#if>
242 <#if allegatoJA.getDDMStructureKey() = structureService.getStructureNotiziaKey()>
243 <#assign allegatoObj = jac.getNotizia(allegatoJA) />
244 <#assign assetType = "Notizia" />
245 <#assign urlTitle = allegatoObj.getUrlTitle() />
246 <#assign titolo = allegatoObj.getTitolo() />
247 <#if allegatoObj.getAbstract_()??>
248 <#assign sottotitolo = allegatoObj.getAbstract_() />
249 </#if>
250 <#if allegatoObj.immagineprincipale?? && allegatoObj.immagineprincipale.immagine.getUrl()?? && allegatoObj.immagineprincipale.immagine.getUrl()?has_content >
251 <#assign immaginePrincipaleCollegamento = allegatoObj.getImmagineprincipale().getImmagine().getUrl() >
252 </#if>
253 </#if>
254 <div class="col-md-6 col-xl-4">
255 <div class="card-wrapper border border-light rounded shadow-sm">
256 <div class="card no-after rounded">
257 <#if immaginePrincipaleCollegamento?? && immaginePrincipaleCollegamento != "">
258 <#assign altImg = "Immagine principale"/>
259 <#assign titoloImg = "Immagine principale"/>
260 <div class="img-responsive-wrapper">
261 <div class="img-responsive img-responsive-panoramic">
262 <figure class="img-wrapper">
263 <img src="${immaginePrincipaleCollegamento}?width=450" title="${titoloImg}" alt="${altImg}">
264 </figure>
265 </div>
266 </div>
267 </#if>
268
269 <div class="card-body">
270 <div class="category-top">
271 <a title="${assetType}" class="category text-decoration-none" href="#" data-element="news-category-link" >${assetType}</a>
272 </div>
273 <a href="${siteBaseUrl}/w/${urlTitle}" class="text-decoration-none" data-element="news-link">
274 <h3 class="card-title">${titolo}</h3>
275 </a>
276 <p class="card-text text-secondary">${sottotitolo}</p>
277 </div>
278 </div>
279 </div>
280 </div>
281 </#if>
282 </#if>
283 </#list>
284
285 </div>
286 </article>
287 </#if>
288 <#if pagina.getDocumenti()?? && pagina.getDocumenti()?has_content && pagina.getDocumenti()[0]?? && pagina.getDocumenti()[0]?has_content && pagina.getDocumenti()[0].getClassPKLong()?? >
289 <section id="documenti">
290 <div class="pb-5">
291 <div class="container">
292 <div class="row row-title pt-md-5">
293 <div class="col-12">
294 <h3 class="text-secondary border-bottom pb-2 pb-lg-3">Documenti collegati</h3>
295 </div>
296 </div>
297 <div class="row mx-0">
298 <div class="card-wrapper px-0 card-teaser-wrapper card-teaser-wrapper-equal card-teaser-block-3 g-4">
299
300 <#list pagina.getDocumenti() as doc>
301 <#if doc?? && doc?has_content && doc.getClassPKLong()?? >
302 <#assign docId = doc.getClassPKLong() />
303 <#if docId?? && docId?has_content >
304 <#assign docJA = journalArticleLocalService.getLatestArticle(docId)>
305 <#if docJA.getDDMStructureKey() = structureService.getStructureDocumentoPubblicoKey()>
306 <#assign documentoPubblico = jac.getDocumentoPubblico(docJA) />
307
308 <#assign vocabularies = documentoPubblico.getCategories() />
309
310 <#assign urlTitle = documentoPubblico.getUrlTitle() />
311 <#assign titolo = documentoPubblico.getTitolo() />
312 <#assign sottotitolo = documentoPubblico.getAbstract_() />
313
314 <#if vocabularies?? && vocabularies?has_content >
315 <#list vocabularies as vocabularyId, categories>
316 <#if categories?? && categories?has_content && vocabularyId == tipiDocumentopubblicoVocabularyId >
317 <#list categories as category>
318 <#assign tipoDocumentoPubblico = category.getTitle(locale) >
319 <#assign paginaCategoriaDocumentoPubblico = "/documenti/-/category_documenti/" + category.getCategoryId() >
320 </#list>
321 </#if>
322 </#list>
323 </#if>
324
325 <div class="card card-teaser card-teaser-image card-flex no-after rounded shadow-sm border border-light mb-0">
326 <div class="card-image-wrapper with-read-more">
327 <div class="card-body p-3">
328 <div class="category-top">
329 <a href="${siteBaseUrl}${paginaCategoriaDocumentoPubblico}" class="title-xsmall-semi-bold fw-semibold text-decoration-none">${tipoDocumentoPubblico}</a>
330 </div>
331 <h4 class="card-title">
332 <a href="${siteBaseUrl}/-/${urlTitle}" class="text-decoration-none">${titolo}</a>
333 </h4>
334 <#if sottotitolo?? && sottotitolo?has_content >
335 <p class="text-paragraph-card m-0">${sottotitolo}</p>
336 </#if>
337 </div>
338 </div>
339 </div>
340
341 </#if>
342 </#if>
343 </#if>
344 </#list>
345
346 </div>
347 </div>
348 </div>
349 </div>
350 </section>
351 </#if>
352
353 <div class="description mb-5">
354 <div class="d-flex justify-content-between footer-text mt-5">
355 <div class="text-update"><strong><@liferay.language key="museo.pagina.ultimoaggiornamento" />: </strong>${modifieddate}</div>
356 </div>
357 </div>
358
359 </div>
360 </div>
361 </div>
362</section>