Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> structureService.getStructureNotiziaId() [in template "5474976011974331163#20119#44593" at line 9, column 31]
----
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 notiziaStructureId = structur... [in template "5474976011974331163#20119#44593" at line 9, column 1]
----
1<#assign error = false />
2<#assign errorMessage = "" />
3
4<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")>
5<#assign jac = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")>
6<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
7<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
8<#assign dlAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")>
9<#assign notiziaStructureId = structureService.getStructureNotiziaId()>
10<#assign eventoStructureId = structureService.getStructureEventoId()>
11<#assign argomentiVocabularyId = structureService.getVocabularyArgomentiId()>
12<#assign tipiNotiziaVocabularyId = structureService.getVocabularyTipinotiziaId()>
13<#assign tipiEventoVocabularyId = structureService.getVocabularyTipieventoId()>
14<#assign siteBaseUrl = structureService.getSiteBaseUrl(themeDisplay)>
15
16<#if entries?has_content>
17 <#list entries as curEntry>
18 <#assign assetRenderer = curEntry.getAssetRenderer()/>
19 <#if validator.isNotNull(assetRenderer)>
20 <#assign className = assetRenderer.getClassName() />
21 <#if className == "com.liferay.journal.model.JournalArticle">
22 <#assign ja = assetRenderer.getArticle() />
23 <#assign structureId = ja.getDDMStructureId() />
24 <#if structureId != notiziaStructureId && structureId != eventoStructureId>
25 <#assign error = true />
26 <#assign errorMessage = "Il template gestisce solo Web Content di tipo Notizia o Evento" />
27 </#if>
28 <#else>
29 <#assign error = true />
30 <#assign errorMessage = "Il template gestisce solo asset di tipo Web Content" />
31 </#if>
32 <#else>
33 <#assign error = true />
34 <#assign errorMessage = "Errore generico" />
35 </#if>
36 </#list>
37<#else>
38 <#assign error = true />
39 <#assign errorMessage = "Nessun contenuto selezionato: scegliere un contenuto di tipo Notizia o Evento" />
40</#if>
41
42<#if !error>
43 <#list entries as curEntry>
44 <#assign assetRenderer = curEntry.getAssetRenderer()/>
45 <#assign ja = assetRenderer.getArticle() />
46 <#assign structureId = ja.getDDMStructureId() />
47 <#if structureId == notiziaStructureId >
48 <#assign notizia = jac.getNotizia(ja) />
49 <#assign vocabularies = notizia.getCategories() />
50 </#if>
51 <#if structureId == eventoStructureId >
52 <#assign evento = jac.getEvento(ja) />
53 <#assign vocabularies = evento.getCategories() />
54 </#if>
55 <#assign urlTitle = ja.getUrlTitle() />
56 <#if (notizia?? && notizia?has_content) || (evento?? && evento?has_content) >
57 <#if notizia?? && notizia?has_content >
58 <#assign titolo = notizia.getTitolo() />
59 <#assign displayDate = notizia.getData() />
60 <#assign sottotitolo = notizia.getAbstract_() />
61 <#assign tipo = "novita" />
62 <#assign tutti = "/notizie" />
63 <#assign immagineprincipale = notizia.getImmagineprincipale() >
64 </#if>
65 <#if evento?? && evento?has_content >
66 <#assign titolo = evento.getTitolo() />
67 <#assign inizioDate = evento.getDataorainizio() />
68 <#assign fineDate = evento.getDataorafine() />
69 <#assign sottotitolo = evento.getDescrizionebreve() />
70 <#assign tipo = "eventi" />
71 <#assign tutti = "/eventi" />
72 <#assign immagineprincipale = evento.getImmagineprincipale() >
73 </#if>
74
75 <#if vocabularies?? && vocabularies?has_content >
76 <#list vocabularies as vocabularyId, categories>
77 <#if categories?? && categories?has_content && vocabularyId == tipiNotiziaVocabularyId >
78 <#list categories as category>
79 <#assign tipoAsset = category.getTitle(locale) >
80 <#assign paginaAsset = category.getDescription(locale)?replace('<[^>]+>','','r') >
81 </#list>
82 </#if>
83 <#if categories?? && categories?has_content && vocabularyId == tipiEventoVocabularyId >
84 <#list categories as category>
85 <#assign tipoAsset = category.getTitle(locale) >
86 <#assign paginaAsset = "/eventi/-/category_eventi/" + category.getCategoryId() >
87 </#list>
88 </#if>
89 </#list>
90 </#if>
91
92 <section id="head-section">
93 <h2 class="visually-hidden"><@liferay.language key="hp.sectop.evidenza" /></h2>
94 <div class="container">
95 <div class="row">
96 <div class="col-lg-6 order-2 order-lg-1">
97 <div class="card mb-5">
98 <div class="card-body pb-5 px-0">
99 <div class="category-top">
100 <svg class="icon icon-sm" aria-hidden="true">
101 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-calendar"></use>
102 </svg>
103 <span class="title-xsmall-semi-bold fw-semibold">${tipoAsset}</span>
104 <span class="data fw-normal">
105 <#if displayDate?? && displayDate?has_content>
106 ${displayDate?string["dd/MM/yyyy"]}
107 </#if>
108 <#if inizioDate?? && inizioDate?has_content>${inizioDate?string["dd/MM/yyyy HH:mm"]}</#if><#if fineDate?? && fineDate?has_content> - ${fineDate?string["dd/MM/yyyy HH:mm"]}</#if>
109 </span>
110 </div>
111 <a href="${siteBaseUrl}/w/${urlTitle}" class="text-decoration-none">
112 <h3 class="card-title">${titolo}</h3>
113 </a>
114 <p class="mb-4 pt-3 lora">${sottotitolo}</p>
115
116 <#if vocabularies?? && vocabularies?has_content >
117 <#list vocabularies as vocabularyId, categories>
118 <#if categories?? && categories?has_content && vocabularyId == argomentiVocabularyId >
119 <#list categories as category>
120 <#assign categoryLink = "" >
121 <#if category.getDescription()?? && category.getDescription()?has_content >
122 <#assign layoutDisplay = layoutLocalService.getLayout(category.getDescription()?number) >
123 <#if layoutDisplay?? && layoutDisplay?has_content>
124 <#assign categoryLink = layoutDisplay.getFriendlyURL(themeDisplay.getLocale()) />
125 </#if>
126 </#if>
127 <#if categoryLink?? && categoryLink?has_content >
128 <a class="chip chip-simple" href="${siteBaseUrl}${categoryLink}">
129 <span class="chip-label">${category.getTitle(locale)}</span>
130 </a>
131 <#else>
132 <div class="chip chip-simple text-button" data-element="service-status">
133 <span class="chip-label">${category.getTitle(locale)}</span>
134 </div>
135 </#if>
136 </#list>
137 </#if>
138 </#list>
139 </#if>
140
141 <a class="read-more pb-3" href="${siteBaseUrl}${tutti}">
142 <span class="text"><@liferay.language key="hp.sectop.${tipo}.tutti" /></span>
143 <svg class="icon">
144 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-arrow-right"></use>
145 </svg>
146 </a>
147 </div>
148 </div>
149 </div>
150 <#if immagineprincipale?? && immagineprincipale.getImmagine()?? && immagineprincipale.getImmagine().getPublicUrl()??>
151 <#assign fileEntryImg = dlFileEntryService.getDLFileEntry(immagineprincipale.getImmagine().getFileEntryId()?number) />
152 <#assign fileVersionImg = dlAppLocalService.getFileVersion(fileEntryImg.getFileVersion().getFileVersionId()) />
153
154 <#assign titleImg = "" />
155 <#if immagineprincipale.getTitolo()?? && immagineprincipale.getTitolo()?has_content>
156 <#assign titleImg = immagineprincipale.getTitolo() />
157 </#if>
158
159 <div class="col-lg-6 order-1 order-lg-2 px-0 px-lg-3">
160 <div class="ratio-4x3">
161 <@adaptive_media_image.img fileVersion=fileVersionImg title="" alt="${immagineprincipale.getImmagine().getAlt()}" class="img-fluid" />
162 </div>
163 </div>
164 </#if>
165 </div>
166 </div>
167 </section>
168 </#if>
169 </#list>
170<#else>
171 <div style="border: 1px solid red; padding:20px;">
172 <h3 style="color: red;">ERRORE:</h3>
173 <h3 style="color: red;">${errorMessage}</h3>
174 </div>
175</#if>
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> structureService.getStructureInEvidenzaId() [in template "5474976011974331163#20119#44791" at line 8, column 34]
----
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 inEvidenzaStructureId = struc... [in template "5474976011974331163#20119#44791" at line 8, column 1]
----
1<#assign error = false />
2<#assign errorMessage = "" />
3
4<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")>
5<#assign jac = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")>
6<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
7<#assign dlAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")>
8<#assign inEvidenzaStructureId = structureService.getStructureInEvidenzaId()>
9
10<#assign siteBaseUrl = structureService.getSiteBaseUrl(themeDisplay)>
11
12<#if entries?has_content>
13 <#list entries as curEntry>
14 <#assign assetRenderer = curEntry.getAssetRenderer()/>
15 <#if validator.isNotNull(assetRenderer)>
16 <#assign className = assetRenderer.getClassName() />
17 <#if className == "com.liferay.journal.model.JournalArticle">
18 <#assign ja = assetRenderer.getArticle() />
19 <#assign structureId = ja.getDDMStructureId() />
20 <#if structureId != inEvidenzaStructureId>
21 <#assign error = true />
22 <#assign errorMessage = "Il template gestisce solo Web Content di tipo In Evidenza" />
23 </#if>
24 <#else>
25 <#assign error = true />
26 <#assign errorMessage = "Il template gestisce solo asset di tipo Web Content" />
27 </#if>
28 <#else>
29 <#assign error = true />
30 <#assign errorMessage = "Errore generico" />
31 </#if>
32 </#list>
33<#else>
34 <#assign error = true />
35 <#assign errorMessage = "Nessun contenuto selezionato: scegliere almeno un contenuto di tipo In Evidenza" />
36</#if>
37
38<#if !error>
39 <#assign imagecss = "card-teaser-image card-flex" >
40 <#assign cardimagecss = "ps-3" >
41
42 <section id="inevidenza">
43 <div class="section section-muted pb-90 pb-lg-50 px-lg-5 pt-0">
44 <div class="container">
45 <div class="row">
46 <div class="card-wrapper px-0 card-overlapping card-teaser-wrapper card-teaser-wrapper-equal card-teaser-block-${entries?size}">
47
48 <#list entries as curEntry>
49 <#assign assetRenderer = curEntry.getAssetRenderer()/>
50 <#assign ja = assetRenderer.getArticle() />
51 <#assign inEvidenza = jac.getInEvidenza(ja) />
52 <#if inEvidenza?? && inEvidenza?has_content>
53
54 <#assign urlimmagine = "" >
55 <#if inEvidenza.getImmagineprincipale()?? && inEvidenza.getImmagineprincipale().getImmagine()?? && inEvidenza.getImmagineprincipale().getImmagine().getPublicUrl()??>
56 <#assign urlimmagine = inEvidenza.getImmagineprincipale().getImmagine().getPublicUrl() >
57 </#if>
58
59 <#assign inevidenzalink = "" >
60 <#assign externallink = false >
61 <#if inEvidenza.getPagelink()?? && inEvidenza.getPagelink().getLayoutId()?? >
62 <#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
63 <#assign pageLayout = layoutLocalService.getLayout(inEvidenza.getPagelink().getGroupId()?eval, inEvidenza.getPagelink().getPrivateLayout(), inEvidenza.getPagelink().getLayoutId()?eval) >
64 <#if pageLayout?? >
65 <#assign inevidenzalink = siteBaseUrl + pageLayout.getFriendlyURL(locale) >
66 <#else>
67 <#assign inevidenzalink = inEvidenza.getPagelink().getLayoutId() >
68 </#if>
69 <#else>
70 <#if inEvidenza.getLinkdisppage()?? && inEvidenza.getLinkdisppage()?trim?length gt 0 >
71 <#assign inevidenzalink = inEvidenza.getLinkdisppage() >
72 <#else>
73 <#if inEvidenza.getLinkest()?? && inEvidenza.getLinkest()?trim?length gt 0 >
74 <#assign inevidenzalink = inEvidenza.getLinkest() >
75 <#assign externallink = true >
76 </#if>
77 </#if>
78 </#if>
79
80 <div class="card card-teaser <#if urlimmagine?has_content && urlimmagine?trim?length gt 0 >${imagecss}</#if> no-after rounded shadow-sm border border-light mb-0">
81 <#if urlimmagine?has_content && urlimmagine?trim?length gt 0 >
82 <div class="card-image-wrapper with-read-more">
83 </#if>
84 <div class="card-body <#if urlimmagine?has_content && urlimmagine?trim?length gt 0 >${cardimagecss}</#if> pb-5">
85 <#if inEvidenza.getSottotitolo()?? && inEvidenza.getSottotitolo()?has_content && inEvidenza.getSottotitolo()?trim?length gt 0 >
86 <div class="category-top">
87 <span class="title-xsmall-semi-bold fw-semibold">${inEvidenza.getSottotitolo()}</span>
88 </div>
89 </#if>
90 <h3 class="card-title text-paragraph-medium u-grey-light">${inEvidenza.getTitolo()}</h3>
91 <#if inEvidenza.getAbstract_()?? && inEvidenza.getAbstract_()?has_content && inEvidenza.getAbstract_()?trim?length gt 0 >
92 <p class="text-paragraph-card u-grey-light m-0">${inEvidenza.getAbstract_()}</p>
93 </#if>
94 </div>
95 <#if urlimmagine?has_content && urlimmagine?trim?length gt 0 >
96 <#assign fileEntryImg = dlFileEntryService.getDLFileEntry(inEvidenza.getImmagineprincipale().getImmagine().getFileEntryId()?number) />
97 <#assign fileVersionImg = dlAppLocalService.getFileVersion(fileEntryImg.getFileVersion().getFileVersionId()) />
98
99 <div class="card-image card-image-rounded pb-5">
100 <@adaptive_media_image.img fileVersion=fileVersionImg title="${inEvidenza.getImmagineprincipale().getTitolo()}" alt="${inEvidenza.getImmagineprincipale().getImmagine().getAlt()}" />
101 </div>
102 </#if>
103 <#if urlimmagine?has_content && urlimmagine?trim?length gt 0 >
104 </div>
105 </#if>
106 <#if inevidenzalink?has_content && inevidenzalink?trim?length gt 0 >
107 <a class="read-more <#if urlimmagine?has_content && urlimmagine?trim?length gt 0 >${cardimagecss}</#if>" href="${inevidenzalink}" <#if externallink >target="_blank"</#if> >
108 <span class="text"><#if inEvidenza.getTestolink()?has_content && inEvidenza.getTestolink()?trim?length gt 0 >${inEvidenza.getTestolink()}</#if></span>
109 <svg class="icon">
110 <use xlink:href="${themeDisplay.getPathThemeImages()}/bootstrap-italia/svg/sprites.svg#it-arrow-right"></use>
111 </svg>
112 </a>
113 </#if>
114
115 </div>
116
117 </#if>
118
119 </#list>
120 </div>
121 </div>
122 </div>
123 </div>
124 </section>
125
126<#else>
127 <div style="border: 1px solid red; padding:20px;">
128 <h3 style="color: red;">ERRORE:</h3>
129 <h3 style="color: red;">${errorMessage}</h3>
130 </div>
131</#if>
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> structureService.getStructureNotiziaId() [in template "5474976011974331163#20119#51473" at line 8, column 31]
----
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 notiziaStructureId = structur... [in template "5474976011974331163#20119#51473" at line 8, column 1]
----
1<#assign error = false />
2<#assign errorMessage = "" />
3
4<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")>
5<#assign jac = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")>
6<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
7<#assign dlAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")>
8<#assign notiziaStructureId = structureService.getStructureNotiziaId()>
9<#assign tipiNotiziaVocabularyId = structureService.getVocabularyTipinotiziaId()>
10<#assign siteBaseUrl = structureService.getSiteBaseUrl(themeDisplay)>
11
12<#if entries?has_content>
13 <#list entries as curEntry>
14 <#assign assetRenderer = curEntry.getAssetRenderer()/>
15 <#if validator.isNotNull(assetRenderer)>
16 <#assign className = assetRenderer.getClassName() />
17 <#if className == "com.liferay.journal.model.JournalArticle">
18 <#assign ja = assetRenderer.getArticle() />
19 <#assign structureId = ja.getDDMStructureId() />
20 <#if structureId != notiziaStructureId>
21 <#assign error = true />
22 <#assign errorMessage = "Il template gestisce solo Web Content di tipo Notizia" />
23 </#if>
24 <#else>
25 <#assign error = true />
26 <#assign errorMessage = "Il template gestisce solo asset di tipo Web Content" />
27 </#if>
28 <#else>
29 <#assign error = true />
30 <#assign errorMessage = "Errore generico" />
31 </#if>
32 </#list>
33<#else>
34 <#assign error = true />
35 <#assign errorMessage = "Nessun contenuto selezionato: scegliere almeno un contenuto di tipo Notizia" />
36</#if>
37
38<#if !error>
39 <section id="news">
40 <div class="section section-muted pb-90 pb-lg-50 px-lg-5 pt-5">
41 <div class="container">
42 <h2 class="text-secondary mb-4"><@liferay.language key="hp.secnovita.novita" /></h2>
43 <div class="row g-4">
44
45 <#list entries as curEntry>
46 <#assign assetRenderer = curEntry.getAssetRenderer()/>
47 <#assign ja = assetRenderer.getArticle() />
48 <#assign structureId = ja.getDDMStructureId() />
49 <#if structureId == notiziaStructureId >
50 <#assign notizia = jac.getNotizia(ja) />
51 <#assign vocabularies = notizia.getCategories() />
52 </#if>
53 <#if notizia?? && notizia?has_content >
54 <#assign urlTitle = notizia.getUrlTitle() />
55 <#assign titolo = notizia.getTitolo() />
56 <#assign displayDate = notizia.getData() />
57 <#assign sottotitolo = notizia.getAbstract_() />
58 <#assign immagineprincipale = notizia.getImmagineprincipale() >
59
60 <#if vocabularies?? && vocabularies?has_content >
61 <#list vocabularies as vocabularyId, categories>
62 <#if categories?? && categories?has_content && vocabularyId == tipiNotiziaVocabularyId >
63 <#list categories as category>
64 <#assign tipoNotizia = category.getTitle(locale) >
65 <#assign paginaTipoNotizia = category.getDescription(locale)?replace('<[^>]+>','','r') >
66 </#list>
67 </#if>
68 </#list>
69 </#if>
70
71 <div class="col-md-6 col-xl-4">
72 <div class="card-wrapper border border-light rounded shadow-sm">
73 <div class="card no-after rounded">
74 <#if immagineprincipale?? && immagineprincipale.getImmagine()?? && immagineprincipale.getImmagine().getPublicUrl()?? && immagineprincipale.getImmagine().getPublicUrl()?has_content>
75 <div class="img-responsive-wrapper">
76 <div class="img-responsive img-responsive-panoramic">
77 <#assign fileEntryImg = dlFileEntryService.getDLFileEntry(immagineprincipale.getImmagine().getFileEntryId()?number) />
78 <#assign fileVersionImg = dlAppLocalService.getFileVersion(fileEntryImg.getFileVersion().getFileVersionId()) />
79
80 <#assign titoloImmagine = notizia.getTitolo() />
81 <#if immagineprincipale?? && immagineprincipale.getTitolo()?? && immagineprincipale.getTitolo()?has_content>
82 <#assign titoloImmagine = immagineprincipale.getTitolo() />
83 </#if>
84 <figure class="img-wrapper">
85 <@adaptive_media_image.img fileVersion=fileVersionImg title="${titoloImmagine}" alt="${immagineprincipale.getImmagine().getAlt()}" />
86 </figure>
87 </div>
88 </div>
89 </#if>
90
91 <div class="card-body">
92 <div class="category-top">
93 <a title="${tipoNotizia}" class="category text-decoration-none" href="${siteBaseUrl}${paginaTipoNotizia}" data-element="news-category-link" >${tipoNotizia}</a>
94 <span class="data">${displayDate?string["dd/MM/yyyy"]}</span>
95 </div>
96 <a href="${siteBaseUrl}/w/${urlTitle}" class="text-decoration-none" data-element="news-link">
97 <h3 class="card-title">${titolo}</h3>
98 </a>
99 <p class="card-text text-secondary">${sottotitolo}</p>
100 </div>
101 </div>
102 </div>
103 </div>
104
105 </#if>
106 </#list>
107 <!--end card-->
108
109 </div>
110 <div class="text-center">
111 <a href="${siteBaseUrl}/notizie" title="<@liferay.language key="hp.secnovita.tutti" />" class="btn btn-primary mt-40"><@liferay.language key="hp.secnovita.tutti" /></a>
112 </div>
113 </div>
114 </div>
115 </section>
116<#else>
117 <div style="border: 1px solid red; padding:20px;">
118 <h3 style="color: red;">ERRORE:</h3>
119 <h3 style="color: red;">${errorMessage}</h3>
120 </div>
121</#if>