Stories
Persone & Lavoro
18 Sep 26
The following has evaluated to null or missing:
==> localizedQuoteInsightsFieldSet.QuotePosition [in template "51632#51678#NEWS-SELLA-INSIGHTS" at line 167, column 55]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 localizedQuotePosition = loca... [in template "51632#51678#NEWS-SELLA-INSIGHTS" at line 167, column 21]
----
1<#include "${templatesPath}/2023-SELLA-MACRO" />
2<#include "${templatesPath}/SOCIAL-SHARE-MACRO" />
3
4<#assign articleId = .vars['reserved-article-id'].data />
5<#assign article = journalService.getArticle(getterUtil.getLong(scopeGroupId),articleId) />
6<#assign asset = assetService.getEntry('com.liferay.journal.model.JournalArticle',article.resourcePrimKey) />
7<#assign formatCategory = sella_tool.getCategoryFromVocabularyId(asset.getCategories(),formatVocabulary.vocabularyId, articleLocale) />
8<#assign topicsCategory = sella_tool.getCategoryFromVocabularyId(asset.getCategories(),topicsVocabulary.vocabularyId, articleLocale) />
9<#assign title = .vars['reserved-article-title'].data />
10<#assign jaAbstract = .vars['reserved-article-description'].data />
11<#assign absoluteURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
12
13<#assign localizedArticle = journal_template_tool.toMap(journal_template_tool.parseContent(article.resourcePrimKey,articleLocale)) />
14
15<#assign localizedTitleShownInsights = localizedArticle.titleShownInsights />
16<#assign localizedAbstractInsights = localizedArticle.abstractInsights />
17<#assign localizedBigImageCardInsights = localizedArticle.BigImageCardInsights />
18<#assign localizedReadTimeInsights = localizedArticle.ReadTimeInsights />
19<#assign localizedAuthorFullNameInsights = localizedArticle.AuthorFullNameInsights />
20<#assign localizedAuthorImageInsights = localizedArticle.AuthorImageInsights />
21<#assign localizedAuthorInsights = localizedArticle.AuthorInsights />
22<#assign localizedAuthorDescriptionInsights = localizedArticle.AuthorDescriptionInsights />
23<#assign localizedTestoInBreve = localizedArticle.TestoInBreve />
24<#assign localizedWhatsAppImg = localizedArticle.whatsappImg />
25
26<#assign localizedBodyInsightsFieldSet = localizedArticle.BodyInsightsFieldSet />
27
28<#assign localizedCardLinkedInInsightsFieldSet = localizedArticle.cardLinkedInInsightsFieldSet />
29<#assign localizedtitoloCardLinkedInInsights = localizedCardLinkedInInsightsFieldSet.titoloCardLinkedInInsights />
30<#assign localizedImmagineCardLinkedInInsights = localizedCardLinkedInInsightsFieldSet.immagineCardLinkedInInsights />
31<#assign localizedCardLinkedInCTAInsightsFieldSet = localizedCardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet />
32<#assign localizedCardLinkedInCTALinkToPageCTA = localizedCardLinkedInCTAInsightsFieldSet.linkToPageCTA />
33<#assign localizedCardLinkedInCTALinkTestualeCTA = localizedCardLinkedInCTAInsightsFieldSet.linkTestualeCTA />
34<#assign localizedCardLinkedInCTATestoCTA = localizedCardLinkedInCTAInsightsFieldSet.testoCTA />
35
36<#-- ja title -->
37<#if localizedTitleShownInsights?? && localizedTitleShownInsights != "" >
38 <#assign title = localizedTitleShownInsights />
39</#if>
40
41<#-- social media -->
42<#assign socialImg = ""/>
43<#assign whatsAppImg = ""/>
44
45<#if localizedBigImageCardInsights?? && localizedBigImageCardInsights?has_content>
46 <#if localizedBigImageCardInsights.fileEntryId?? && localizedBigImageCardInsights.fileEntryId != "">
47 <#assign socialImg = themeDisplay.getPortalURL() + sella_tool.getAdaptiveMediaSrc("800-x-533-px",localizedBigImageCardInsights.fileEntryId?number,localizedBigImageCardInsights.name) />
48 </#if>
49</#if>
50
51<#if localizedWhatsAppImg?? && localizedWhatsAppImg?has_content >
52 <#if localizedWhatsAppImg.fileEntryId?? && localizedWhatsAppImg.fileEntryId != "">
53 <#assign whatsAppImg = themeDisplay.getPortalURL() + sella_tool.getAdaptiveMediaSrc("300-x-300-px",localizedWhatsAppImg.fileEntryId?number,localizedWhatsAppImg.name) />
54 </#if>
55</#if>
56
57<@shareContent title="${title}" summary="${jaAbstract}" detailURL="${absoluteURL}" imageURL="${socialImg}" whatsAppImgURL="${whatsAppImg}" twitterImgURL="${socialImg}" />
58
59<article class="article-detail">
60 <div class="container">
61 <div class="row">
62 <div class="col-12 col-lg-8 offset-lg-2">
63 <div class="d-md-flex justify-content-md-between align-items-md-center">
64 <div class="article-detail__category d-flex">
65 <#if formatCategory?? && formatCategory != "" >
66 <div class="article-detail__format">${formatCategory}</div>
67 </#if>
68 <#if topicsCategory?? && topicsCategory != "" >
69 <div class="article-detail__topics">${topicsCategory}</div>
70 </#if>
71 </div>
72 <div>
73 <a href="${localizedDetailUrl}" title='${languageUtil.get(articleLocale, "article-change-language")}' class="article-detail__lang">${languageUtil.get(articleLocale, "article-change-language")}</a>
74 </div>
75 </div>
76 <h1 class="article-detail__title">
77 <#if localizedTitleShownInsights?? && localizedTitleShownInsights != "" >
78 ${localizedTitleShownInsights}
79 <#else>
80 ${article.getTitle()}
81 </#if>
82 </h1>
83 <#if localizedAbstractInsights?? && localizedAbstractInsights != "">
84 <div class="article-detail__abstract">${localizedAbstractInsights}</div>
85 </#if>
86 <#if showImageIntoArticle.data == "true">
87 <#if localizedBigImageCardInsights?? && localizedBigImageCardInsights?has_content>
88 <div class="article-detail__img-wrap mb-0">
89 <#if localizedBigImageCardInsights.url?? && localizedBigImageCardInsights.url != "">
90 <img src="${localizedBigImageCardInsights.url}" loading="lazy" alt="${article.getTitle()}" class="article-detail__img" />
91 <#else>
92 <img src="${journal_template_tool.getFileObjectUrl(localizedBigImageCardInsights, themeDisplay)}" loading="lazy" alt="${article.getTitle()}" class="article-detail__img" />
93 </#if>
94 </div>
95 <#if localizedBigImageCardInsights.alt?? && localizedBigImageCardInsights.alt != "">
96 <div class="article-detail__img-claim-main-img">${localizedBigImageCardInsights.alt}</div>
97 </#if>
98 </#if>
99 </#if>
100 <div class="article-detail__info">
101 <div class="d-md-flex justify-content-md-between align-items-md-center">
102 <div class="d-md-flex">
103 <div class="article-detail__date">${asset.getPublishDate()?string(dateTimeFormat)}</div>
104 <#if asset.getTags()?size gt 0>
105 <div class="article-detail__tags d-flex">
106 <#list asset.getTags() as tag>
107 <a href="${htmlUtil.escape(layout.getGroup().getDisplayURL(themeDisplay, false))}/risultati-ricerca?q=${tag.name}" title="${tag.name}">#${tag.name}</a>
108 </#list>
109 </div>
110 </#if>
111 </div>
112 <#if localizedReadTimeInsights?? && localizedReadTimeInsights != "">
113 <div class="article-detail__time"><span>Tempo di lettura </span>${localizedReadTimeInsights}</div>
114 </#if>
115 </div>
116 </div>
117 <#assign imgSrc = "" />
118 <#if localizedAuthorFullNameInsights?? && localizedAuthorFullNameInsights != "">
119 <#if localizedAuthorImageInsights?? && localizedAuthorImageInsights?has_content>
120 <#if localizedAuthorImageInsights.url?? && localizedAuthorImageInsights.url != "">
121 <#assign imgSrc = localizedAuthorImageInsights.url />
122 <#elseif journal_template_tool.getFileObjectUrl(localizedAuthorImageInsights, themeDisplay) != "">
123 <#assign imgSrc = journal_template_tool.getFileObjectUrl(localizedAuthorImageInsights, themeDisplay) />
124 </#if>
125
126 <#if imgSrc != "">
127 <div class="article-detail__author d-flex">
128 <div>
129 <img src="${imgSrc}" alt="${localizedAuthorFullNameInsights}" class="article-detail__author-img" />
130 </div>
131
132 <div class="article-detail__author-info d-flex">
133 <div class="article-detail__author-name">${localizedAuthorFullNameInsights}</div>
134 <#if localizedAuthorInsights?? && localizedAuthorInsights != "">
135 <div class="article-detail__author-role">${localizedAuthorInsights}</div>
136 </#if>
137 <#if localizedAuthorDescriptionInsights?? && localizedAuthorDescriptionInsights != "" >
138 <div class="article-detail__author-desc">
139 <p>${localizedAuthorDescriptionInsights}</p>
140 </div>
141 </#if>
142 </div>
143 </div>
144 </#if>
145 </#if>
146 </#if>
147 <#if localizedTestoInBreve?? && localizedTestoInBreve != "">
148 <div class="article-detail__btn-short text-right">
149 <button type="button" id="btn-short" class="btn-short d-inline-flex align-items-center">
150 <span class="text-uppercase">In breve</span>
151 <svg class="ico-svg" aria-hidden="true">
152 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#sella-time"></use>
153 </svg>
154 </button>
155 </div>
156 </#if>
157 </div>
158 </div>
159 </div>
160
161 <div class="article-detail__text">
162 <#if localizedBodyInsightsFieldSet?has_content>
163 <#list localizedBodyInsightsFieldSet as body>
164 <#if localizedBodyInsightsFieldSet?? && localizedBodyInsightsFieldSet?has_content>
165 <#assign localizedQuoteInsightsFieldSet = body.QuoteInsightsFieldSet />
166 <#assign localizedQuoteInsights = localizedQuoteInsightsFieldSet.QuoteInsights />
167 <#assign localizedQuotePosition = localizedQuoteInsightsFieldSet.QuotePosition />
168
169 <#assign localizedBodyInsights = body.BodyInsights />
170 <#assign localizedBigDetailImageInsights = body.BigDetailImageInsights />
171
172 <#assign localizedSliderImageInsightsFieldSet = body.SliderImageInsightsFieldSet />
173 </#if>
174
175 <div class="container">
176 <div class="row">
177 <#assign bodyClass = "col-12" />
178 <#if body?is_first && socialShareActive.data == "true">
179 <#assign bodyClass += " col-lg-7 order-lg-2" />
180 <#else>
181 <#assign bodyClass += " col-lg-8 offset-lg-2" />
182 </#if>
183 <div class="${bodyClass}">
184 <#if localizedQuoteInsights?? && localizedQuoteInsights != "">
185 <#assign quotePositionClass = "article-detail__blockquote" />
186 <#if localizedQuoteInsights == "left">
187 <#assign quotePositionClass += " article-detail__blockquote--left" />
188 </#if>
189 <blockquote class="${quotePositionClass}">
190 <svg class="ico-svg d-print-none" aria-hidden="true">
191 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#sella-quote"></use>
192 </svg>
193 ${localizedQuoteInsights}
194 </blockquote>
195 </#if>
196 <#if imgSrc == "">
197 <#if localizedAuthorFullNameInsights?? && localizedAuthorFullNameInsights != "">
198 <div class="article-detail__author d-flex">
199 <div>
200 <div class="article-detail__author-name">${localizedAuthorFullNameInsights}</div>
201 <#if localizedAuthorInsights?? && localizedAuthorInsights != "">
202 <div class="article-detail__author-role">${localizedAuthorInsights}</div>
203 </#if>
204 <#if localizedAuthorDescriptionInsights?? && localizedAuthorDescriptionInsights != "" >
205 <div class="article-detail__author-desc">
206 <p>${localizedAuthorDescriptionInsights}</p>
207 </div>
208 </#if>
209 </div>
210 </div>
211 </#if>
212 </#if>
213 <#if body?is_first>
214 <div class="article-detail__intro">
215 </#if>
216 <#if localizedBodyInsights?? && localizedBodyInsights != "">
217 <#assign localizedBody = journal_template_tool.getBodyWithFirstLetterStyled(localizedBodyInsights)/>
218 ${localizedBody}
219 </#if>
220 <#if body?is_first>
221 </div>
222 </#if>
223 <#if localizedBigDetailImageInsights?? && localizedBigDetailImageInsights?has_content>
224 <#if localizedBigDetailImageInsights.url?? && localizedBigDetailImageInsights.url != "">
225 <#assign localizedBigDetailImageInsightsUrl = localizedBigDetailImageInsights.url />
226 <#else>
227 <#assign localizedBigDetailImageInsightsUrl = journal_template_tool.getFileObjectUrl(localizedBigDetailImageInsights, themeDisplay) />
228 </#if>
229 <#if localizedBigDetailImageInsightsUrl != "">
230 <div class="article-detail__img-wrap">
231 <img src="${localizedBigDetailImageInsightsUrl}" loading="lazy" alt="${article.getTitle()}" class="article-detail__img" />
232 <#if localizedBigDetailImageInsights.alt?? && localizedBigDetailImageInsights.alt != "">
233 <div class="article-detail__img-claim">${localizedBigDetailImageInsights.alt}</div>
234 </#if>
235 </div>
236 </#if>
237 </#if>
238 </div>
239 <#if body?is_first && socialShareActive.data == "true">
240 <div class="col-12 col-lg-3 order-lg-1">
241 <#if imgSrc == "" && localizedAuthorFullNameInsights?? && localizedAuthorFullNameInsights != "" && localizedAuthorInsights?? && localizedAuthorInsights != "" && localizedAuthorDescriptionInsights?? && localizedAuthorDescriptionInsights != "">
242 <div class="widget-position-noimg-author-desc-role">
243 <#elseif imgSrc == "" && localizedAuthorFullNameInsights?? && localizedAuthorFullNameInsights != "" && localizedAuthorInsights?? && localizedAuthorInsights != "">
244 <div class="widget-position-noimg-author-role">
245 <#elseif imgSrc == "" && localizedAuthorFullNameInsights?? && localizedAuthorFullNameInsights != "" && localizedAuthorDescriptionInsights?? && localizedAuthorDescriptionInsights != "">
246 <div class="widget-position-noimg-author-desc">
247 <#elseif imgSrc == "" && localizedAuthorFullNameInsights?? && localizedAuthorFullNameInsights != "">
248 <div class="widget-position-noimg-author">
249 <#elseif imgSrc == "">
250 <div class="widget-position-noimg">
251 <#else>
252 <div>
253 </#if>
254 <div class="box-share">
255 <div class="box-share__title">${languageUtil.get(articleLocale, "share-and-participate")}</div>
256 <ul class="box-share__list d-flex">
257 <li class="box-share__item">
258 <a href="https://www.facebook.com/sharer/sharer.php?u=${absoluteURL}" title="Facebook" class="box-share__link d-flex">
259 <svg class="ico-svg" aria-hidden="true">
260 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#facebook-f"></use>
261 </svg>
262 </a>
263 </li>
264 <li class="box-share__item">
265 <a href="https://twitter.com/intent/tweet?text=${absoluteURL}" title="Twitter" class="box-share__link d-flex">
266 <svg class="ico-svg" aria-hidden="true">
267 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#square-x-twitter"></use>
268 </svg>
269 </a>
270 </li>
271 <li class="box-share__item">
272 <a href="https://www.linkedin.com/sharing/share-offsite/?url=${absoluteURL}" title="LinkedIn" class="box-share__link d-flex">
273 <svg class="ico-svg" aria-hidden="true">
274 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#linkedin-in"></use>
275 </svg>
276 </a>
277 </li>
278 <li class="box-share__item">
279 <a href="https://api.whatsapp.com/send?text=${absoluteURL}" title="WhatsApp" class="box-share__link d-flex">
280 <svg class="ico-svg" aria-hidden="true">
281 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#whatsapp"></use>
282 </svg>
283 </a>
284 </li>
285 </ul>
286 <div class="box-share__download">
287 <a href="javascript:window.print();" title="${languageUtil.get(articleLocale, 'download-article')}" class="d-flex justify-content-between align-items-center">
288 <span>${languageUtil.get(articleLocale, "download-article")}</span>
289 <svg class="ico-svg" aria-hidden="true">
290 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#sella-download"></use>
291 </svg>
292 </a>
293 </div>
294 </div>
295 </div>
296 </div>
297 </#if>
298 </div>
299 </div>
300
301 <#if localizedSliderImageInsightsFieldSet?? && localizedSliderImageInsightsFieldSet?has_content && localizedSliderImageInsightsFieldSet?first.SliderImageInsights?? && localizedSliderImageInsightsFieldSet?first.SliderImageInsights?has_content && localizedSliderImageInsightsFieldSet?first.SliderImageInsights.url?? && localizedSliderImageInsightsFieldSet?first.SliderImageInsights.url !="">
302 <div class="slider slider-photogallery-detail">
303 <#list localizedSliderImageInsightsFieldSet as slider>
304 <#if slider.SliderImageInsights??>
305 <#assign localizedSliderImageInsights = slider.SliderImageInsights />
306 <#if localizedSliderImageInsights?has_content>
307 <#if localizedSliderImageInsights.url?? && localizedSliderImageInsights.url != "">
308 <div>
309 <img src="${localizedSliderImageInsights.url}" loading="lazy" class="img-slider" alt="Immagine ${slider?index}" />
310 </div>
311 <#else>
312 <div>
313 <img src="${journal_template_tool.getFileObjectUrl(localizedSliderImageInsights, themeDisplay)}" loading="lazy" class="img-slider" alt="Immagine ${slider?index}" />
314 </div>
315 </#if>
316 </#if>
317 </#if>
318 </#list>
319 </div>
320 </#if>
321 </#list>
322 </#if>
323 <#if localizedtitoloCardLinkedInInsights?? && localizedtitoloCardLinkedInInsights != "">
324 <div class="container">
325 <div class="row">
326 <div class="col-12 col-lg-8 offset-lg-2">
327 <div class="box-contatto box-contatto--orange d-flex flex-column flex-md-row align-items-md-center">
328 <div class="box-contatto__text order-2 order-md-1">
329 <div class="box-contatto__title">${localizedtitoloCardLinkedInInsights}</div>
330 <#assign cardHref = "" />
331 <#if cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.linkToPageCTA?? && cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.linkToPageCTA.getFriendlyUrl() != "">
332 <#assign cardHref = cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.linkToPageCTA.getFriendlyUrl() />
333 <#elseif cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.linkTestualeCTA.getData()?? && cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.linkTestualeCTA.getData() != "">
334 <#assign cardHref = cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.linkTestualeCTA.getData() />
335 </#if>
336 <#if cardHref != "">
337 <a href="${cardHref}" title="Commenta" class="box-contatto__cta" data-senna-off="true">
338 <#if cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.testoCTA.getData()?? && cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.testoCTA.getData() != "">
339 ${cardLinkedInInsightsFieldSet.cardLinkedInCTAInsightsFieldSet.testoCTA.getData()}
340 </#if>
341 </a>
342 </#if>
343 </div>
344 <#if cardLinkedInInsightsFieldSet.immagineCardLinkedInInsights.getData()?? && cardLinkedInInsightsFieldSet.immagineCardLinkedInInsights.getData() != "">
345 <div class="order-1 order-md-2">
346 <img src="${cardLinkedInInsightsFieldSet.immagineCardLinkedInInsights.getData()}" loading="lazy" class="box-contatto__img" alt="Prendi parte alla discussione su LinkedIn" />
347 </div>
348 </#if>
349 </div>
350 </div>
351 </div>
352 </div>
353 </#if>
354 </div>
355</article>
356
357<#if localizedTestoInBreve?? && localizedTestoInBreve != "">
358 <div class="modal-short">
359 <div class="modal-short__scroll">
360 <button type="button" title="Chiudi il modale" aria-label="Chiudi il modale" class="modal-short__close">
361 <svg class="ico-svg d-print-none" aria-hidden="true">
362 <use xlink:href="${themeDisplay.getPathThemeImages()}/icons.svg#xmark"></use>
363 </svg>
364 </button>
365 <div class="container">
366 <div class="row">
367 <div class="col-12 col-lg-8 offset-lg-2">
368 <div class="modal-short__title">
369 <#if localizedTitleShownInsights?? && localizedTitleShownInsights != "" >
370 ${localizedTitleShownInsights}
371 <#else>
372 ${article.getTitle()}
373 </#if>
374 </div>
375 <div class="modal-short__info">
376 <div class="d-md-flex justify-content-md-between align-items-md-center">
377 <div class="d-md-flex">
378 <div class="modal-short__date">${asset.getPublishDate()?string(dateTimeFormat)}</div>
379 <#if asset.getTags()?size gt 0>
380 <div class="modal-short__tags d-flex">
381 <#list asset.getTags() as tag>
382 <a href="${htmlUtil.escape(layout.getGroup().getDisplayURL(themeDisplay, false))}/risultati-ricerca?q=${tag.name}" title="${tag.name}">#${tag.name}</a>
383 </#list>
384 </div>
385 </#if>
386 </div>
387 </div>
388 </div>
389 <div class="modal-short__subtitle">In breve</div>
390 <div class="modal-short__text">
391 ${localizedTestoInBreve}
392 </div>
393 <button type="button" class="modal-short__back">
394 Leggi il Longform completo
395 </button>
396 </div>
397 </div>
398 </div>
399 </div>
400 </div>
401</#if>