Financial highlights
Ultima quotazione 49,86€
Variazione -0,20%
28/10/2026 - 17:35
data source: Investis Digital
Financial highlights
Ultima quotazione 49,86€
Variazione -0,20%
28/10/2026 - 17:35
data source: Investis Digital
The following has evaluated to null or missing:
==> OverviewInformation [in template "20115#20151#26622616" at line 95, column 30]
----
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: #if OverviewInformation.ContentTitle... [in template "20115#20151#26622616" at line 95, column 25]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
2<#assign languageId = languageUtil.getLanguageId(locale) />
3<#assign InformationDate_DateObj = dateUtil.parseDate("EEE, dd MMM yyyy HH:mm:ss Z", .vars['reserved-article-display-date'].data, localeUtil.getDefault())>
4<#assign groupExpandoBridge = layout.getGroup().getExpandoBridge() />
5<#assign business_site = groupExpandoBridge.getAttribute("business-site", false) />
6<div class="newsandstories-detail">
7
8
9 <div class="sticky-container">
10 <#if HeroImage?has_content && HeroImage.getData()!="">
11 <div class="container-full-width header-safe-area black hero-image-small <#if !(HeroImage.HeroImageM?has_content) || HeroImage.HeroImageM.getData() ==''>product</#if>
12 <#if HeroImage.ImgLayerGrey?has_content && HeroImage.ImgLayerGrey.getData()!=""><#if getterUtil.getBoolean(HeroImage.ImgLayerGrey.getData())>news-grey</#if></#if>">
13 <#assign scalingDetails = {
14 "desktop": {"alternateImage": {}, "key": "h_560"},
15 "tl": {"alternateImage": HeroImage.HeroImageTl!, "key": "h_560"},
16 "tp": {"alternateImage": HeroImage.HeroImageTp!, "key": "h_560"},
17 "mobile": {"alternateImage": HeroImage.HeroImageM!, "key": "w_596"}
18 }>
19 <#assign slideImg = leonardo.adaptImage(HeroImage!, scalingDetails )>
20 <!-- Image Banner -->
21 <div class="hero-bottom-gradient">
22 <picture class="bg-picture">
23 <source
24 srcset="${slideImg.mobile?replace(" ", "%20")!}"
25 media="(max-width: 576px)"
26 >
27 <source
28 srcset="${slideImg.tablet_portrait?replace(" ", "%20")!}"
29 media="(max-width: 768px)"
30 >
31 <source
32 srcset="${slideImg.tablet_landscape?replace(" ", "%20")!}"
33 media="(max-width: 1024px)"
34 >
35 <img
36 class="img-fluid bg"
37 src="${slideImg.desktop?replace(" ", "%20")!}"
38 alt="${slideImg.alt_desktop!}"
39 >
40 </picture>
41 <div class="text-content container">
42 <#if OverviewInformation.ContentTitle.getData() != "">
43 <h1 class="title-hero-02 m-0"><@leonardo.escapeTitle title=OverviewInformation.ContentTitle.getData()/></h1>
44 </#if>
45 </div>
46 </div>
47 </div>
48 <#if HeroImage.HeroImageM.getData()?? && HeroImage.HeroImageM.getData() != "">
49 <script>
50 window.addEventListener("load", () => {
51 const EXPECTED_HEIGHT = 844;
52
53 const heroBlocks = document.querySelectorAll(
54 ".hero-image-small"
55 );
56
57 heroBlocks.forEach((heroBlock) => {
58 const picture = heroBlock.querySelector("picture.bg-picture");
59
60 if (!picture) return;
61
62 const mobileSource = Array.from(picture.querySelectorAll("source")).find(
63 (source) => source.media && source.media.includes("max-width: 576px")
64 );
65
66 if (!mobileSource) return;
67
68 const mobileSrc = (mobileSource.getAttribute("srcset") || "").trim();
69
70 const imageElement = new Image();
71
72 imageElement.onload = () => {
73 const height = imageElement.naturalHeight;
74 const isValidHeight = height >= EXPECTED_HEIGHT;
75
76 if (!isValidHeight) {
77 heroBlock.classList.add("product");
78 }
79
80 };
81
82 imageElement.onerror = () => {
83 console.warn("Errore nel caricamento della mobile image:", mobileSrc);
84 };
85
86 imageElement.src = mobileSrc;
87 });
88 });
89 </script>
90 </#if>
91 <#else>
92 <div class="container-full-width header-safe-area black">
93 <div class="container no-side-padding hero-image black">
94 <div class="text-content text-center hero-02-text-container">
95 <#if OverviewInformation.ContentTitle.getData() != "">
96 <h1 class="title-hero-02 m-0"><@leonardo.escapeTitle title=OverviewInformation.ContentTitle.getData()/></h1>
97 </#if>
98 </div>
99 </div>
100 </div>
101 </#if>
102 </div>
103
104 <#if business_site?? && business_site >
105 <@liferay_portlet["runtime"]
106 instanceId="primary_menu"
107 portletProviderAction=portletProviderAction.VIEW
108 portletName="com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet"
109 />
110 </#if>
111
112
113 <!-- Breadcrumbs -->
114 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
115 <#assign layoutObject = LayoutLocalService.getLayout(layout.getPlid()) />
116 <#assign layoutParent = LayoutLocalService.getLayout(layoutObject.getParentPlid()) />
117 <#assign layout = LayoutLocalService.getLayout(layoutObject.getPlid()) />
118 <#assign ancestors = layout.getAncestors() />
119 <#assign parentName = layoutParent.getName(locale) />
120 <#assign parentURL = layoutParent.getFriendlyURL(locale) />
121 <#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")>
122 <#assign guestUrl = GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getFriendlyURL() />
123 <#assign publicPageUrl = "/web"+guestUrl>
124 <#assign replaceUrl = "">
125
126 <#if themeDisplay.isSignedIn()>
127 <#assign publicPageUrl = "">
128 </#if>
129
130
131 <div class="portlet-breadcrumb">
132 <div class="container-full-width grey">
133 <div class="container">
134 <nav aria-label="Breadcrumb" class="breadcrumbs">
135 <ol>
136 <#list ancestors?reverse as ancestor>
137 <#if !ancestor.isHidden()>
138 <#assign url = ancestor.getFriendlyURL()!"">
139 <#if !url?ends_with("-node")>
140 <#assign fullUrl = themeDisplay.getPathFriendlyURLPublic()+guestUrl+ancestor.getFriendlyURL(locale)
141 href=fullUrl?replace(publicPageUrl,replaceUrl)!""
142 />
143 <li>
144 <a class="label-regular" title="${ancestor.getName(locale)}" href="${href}">${ancestor.getName(locale)}</a>
145 </li>
146 </#if>
147 </#if>
148 </#list>
149 <li class="border-0 text-truncate" style="flex:auto">
150 <span class="label-regular">${OverviewInformation.ContentTitle.getData()}</span>
151 </li>
152 </ol>
153 </nav>
154 </div>
155 </div>
156 </div>
157
158 <@leonardo.articleInfo .vars "(T) News and Stories Detail"/>
159
160 <div class="container-full-width padding-top padding-bottom">
161 <div class="container tight pagination-flex padding-bottom">
162 <div>
163 <#if OverviewInformation.ContentSubtitle.getData() != "">
164 <p class="body-medium">
165 <@leonardo.escapeTitle title=OverviewInformation.ContentSubtitle.getData()/>
166 </p>
167 </#if>
168 <#if (OverviewInformation.Abstract.getData())?has_content && (OverviewInformation.Abstract.getData()!)?length gt 1>
169 <div class="body-medium">
170 ${OverviewInformation.Abstract.getData()}
171 </div>
172 </#if>
173 </div>
174 <#if OverviewInformation.Occhiello?? && OverviewInformation.Occhiello.getData()!="">
175 <section id="history-caption">
176 <div class="history-caption-content">
177 <div class="description-label" style="color:black">
178 ${OverviewInformation.Occhiello.getData()?trim}
179 </div>
180 </div>
181 </section>
182 </#if>
183 </div>
184 <div class="pagination-flex">
185 <#if (OverviewInformation.SeparatorContent)?has_content>
186 <div class="pagination-flex">
187 <#list OverviewInformation.SeparatorContent.getSiblings() as currentArea>
188 <div class="container tight">
189 <#if currentArea?is_first>
190 <div class="label-light mb-32">
191 <#if OverviewInformation?? && (OverviewInformation.InformationLocation.getData())?has_content>
192 <@leonardo.escapeTitle title=OverviewInformation.InformationLocation.getData()/>,
193 </#if>
194 ${dateUtil.getDate(InformationDate_DateObj, "dd MMMM yyyy", locale)}
195 </div>
196 </#if>
197 <#if (currentArea.TitleContent)?has_content && currentArea.TitleContent.getData()!="">
198 <h2 class="title-medium mb-32">${currentArea.TitleContent.getData()!}</h2>
199 </#if>
200 <#if currentArea.ContentHtml?? && currentArea.ContentHtml.getData() != "">
201 <#assign htmlFormatted = leonardo.expandElementsInPage(currentArea.ContentHtml.getData())>
202 <div class="body-regular generic-web-content">
203 <div class="text-plus-button generic-web-content-text">
204 ${htmlFormatted}
205 </div>
206 </div>
207 </#if>
208 </div>
209
210 <#if currentArea.WebContentdpkw?? && currentArea.WebContentdpkw.getData() != "">
211 <div>
212 <#assign data = currentArea.WebContentdpkw.getData()/>
213 <#assign json = jsonFactoryUtil.createJSONObject(data) />
214 <#assign classPK = json.getLong("classPK") />
215 <#if (classPK >0) >
216 <#assign ja = journalArticleLocalService.getLatestArticle(classPK) />
217 <#assign jad = journalArticleLocalService.getArticleDisplay(ja, ja.getTemplateId(), "", languageId, 1, null, themeDisplay) />
218 ${jad.getContent()}
219 </#if>
220 </div>
221 </#if>
222 </#list>
223 </div>
224 </#if>
225
226 <#if AttachmentSeparator.Attachment.getData() != "" || LinkToPageSeparator.GenericLink.getData() != "" || LinkToPageSeparator.LinkToPage.getData() != "">
227 <div class="container tight pagination-flex">
228 <#if AttachmentSeparator.Attachment.getData() != "">
229 <#assign sizeAttach = AttachmentSeparator.getSiblings()?size />
230 <div class="card-interview <#if (sizeAttach > 1)>multiple</#if> download rounded-20">
231 <div class="card">
232 <#list AttachmentSeparator.getSiblings() as cur_Attach>
233 <#if cur_Attach.Attachment?? && cur_Attach.Attachment.getData() != "" >
234 <#assign file_info = leonardo.findFileEntryInfo(cur_Attach.Attachment.getData()) >
235 <a class="label-regular"
236 href="${file_info.downloadUrl}"
237 target="_blank"
238 title="${(file_info.title)!cur_Attach.AttachmentTitle.getData()!}">
239 <span>
240 ${cur_Attach.AttachmentTitle.getData()!(file_info.title)!}
241 </span>
242 </a>
243 </#if>
244 </#list>
245 </div>
246 </div>
247 </#if>
248 <#if LinkToPageSeparator.GenericLink.getData() != "" || LinkToPageSeparator.LinkToPage.getData() != "">
249 <#assign sizeLink = LinkToPageSeparator.getSiblings()?size />
250 <div class="card-interview <#if (sizeLink > 1)>multiple</#if>">
251 <div class="card">
252 <#list LinkToPageSeparator.getSiblings() as cur_Link>
253 <#assign targetUrl=leonardo.getTargetUrl(cur_Link.GenericLink, cur_Link.LinkToPage)!>
254 <#if targetUrl?has_content>
255 <#assign target=leonardo.getTarget(cur_Link.LinkTarget!)!>
256 <a class="label-regular"
257 href="${targetUrl}"
258 target = "${target}"
259 title="${cur_Link.LinkTitle.data!}">
260 <span>
261 ${cur_Link.LinkTitle.data!}
262 </span>
263 </a>
264 </#if>
265 </#list>
266 </div>
267 </div>
268 </#if>
269 </div>
270 </#if>
271 </div>
272 </div>
273</div>
274
275
276<!-- Meta Title and Meta Description -->
277<#assign
278title = ''
279metaTitle = ''
280abstract = ''
281metaDescription = ''
282shareTitle = ''
283shareDescription = ''
284imageFileName = ''
285ogType='article'
286>
287
288<#if OverviewInformation.ContentTitle?? && (OverviewInformation.ContentTitle.getData())?has_content>
289 <#assign title = OverviewInformation.ContentTitle.getData()>
290</#if>
291<#if OverviewInformation.MetaTitle?? && (OverviewInformation.MetaTitle.getData())?has_content>
292 <#assign metaTitle = OverviewInformation.MetaTitle.getData()>
293<#else>
294 <#assign metaTitle = title >
295</#if>
296
297<#if OverviewInformation.Abstract?? && (OverviewInformation.Abstract.getData())?has_content>
298 <#assign abstract = OverviewInformation.Abstract.getData()>
299</#if>
300
301<#if (.vars['reserved-article-description'].data)?? && (.vars['reserved-article-description'].data)?has_content>
302 <#assign metaDescription = (.vars['reserved-article-description'].data)>
303<#else>
304 <#assign metaDescription = abstract>
305</#if>
306<#if metaTitle != "" >
307 <#assign metaTitle = metaTitle?replace('<[^>]+>','','r')?replace('"','\'')?replace('\n',' ') >
308 <#assign VOID = portalUtil.setPageTitle(metaTitle, themeDisplay.request) />
309</#if>
310
311<#if (metaDescription)?has_content && (metaDescription) != "" >
312 <#assign metaDescription = (metaDescription)?replace('<[^>]+>','','r')?replace('"','\'')>
313 <#assign VOID = portalUtil.setPageDescription(metaDescription, themeDisplay.request) />
314</#if>
315
316<!-- Social Sharing -->
317<#if title != "" >
318 <#assign shareTitle = title?replace('<[^>]+>','','r')?replace('"','\'')?replace('<br>','\'')?replace('\n',' ')>
319</#if>
320<#assign shareDescription = metaDescription >
321<#if (PrimaryImage.getData())?has_content>
322 <#assign imageFileName = PrimaryImage.getData() >
323<#elseif (PrimaryImageAssoc.getData())?has_content >
324 <#assign imageFileName = PrimaryImageAssoc.getData() >
325</#if>
326<@leonardo.socialShareMetaAndLinks shareTitle=shareTitle shareDescription=shareDescription imageFileName=imageFileName ogType=ogType />
327
328
329<script>
330 $( document ).ready(function() {
331 $('meta[name=description]').removeAttr('lang');
332 });
333</script>
Ricevi gli ultimi aggiornamenti su Leonardo
Iscriviti2026-10-28T21:47:31Z
cookie_disclaimer:true
page_disclaimer :false