Une erreur s'est produite lors du traitement du modèle.
The following has evaluated to null or missing: ==> imgClass [in template "10110#2640274#72789502" at line 217, column 24] ---- 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: ${imgClass} [in template "10110#2640274#72789502" at line 217, column 22] ----
1<style>
2 .${randomNamespace} {
3 height: 510px;
4 background-color: #007CB1;
5 margin: 0;
6 }
7 .${randomNamespace} .banner-date {
8 color: #717171;
9 font-size: 16px;
10 font-weight: 400;
11 background-color: #FFF;
12 padding: 12px 24px;
13 border-radius: 40px;
14 margin-bottom: 32px;
15 display: inline-block;
16 }
17 .${randomNamespace} .banner-title {
18 font-size: 48px;
19 font-weight: 300;
20 color: #fff;
21 display: flex;
22 align-self: stretch;
23 }
24 .${randomNamespace}container .content-article, .${randomNamespace}container .article-details{
25 margin-bottom: 64px;
26 }
27 .${randomNamespace}container .news-article-abstract {
28 color: #000;
29 font-size: 16px;
30 font-weight: 400;
31 }
32 .${randomNamespace}container .base-article-content h3 {
33 color: #007CB1;
34 text-edge: cap;
35 font-size: 32px;
36 font-weight: 400;
37 }
38 .${randomNamespace}container .base-article-content {
39 color: #000;
40 font-size: 16px;
41 font-weight: 400;
42 }
43 .${randomNamespace}container .img1-container {
44 width: 706px;
45 border-radius: 8px;
46 margin-right: 8px;
47 }
48 .img-container {
49 width: 587px;
50 height: 453px;
51 }
52 .${randomNamespace}container img {
53 border-radius: 8px;
54 }
55 .${randomNamespace}container .img1-container,
56 .${randomNamespace}container .img2-container {
57 flex-shrink: 0;
58 border-radius: 8px;
59 height: 700px;
60 }
61 .${randomNamespace}container .img2-container {
62 width: 468px;
63 flex-shrink: 0;
64 border-radius: 8px;
65 }
66 .${randomNamespace}container .double-banner{
67 display: flex;
68 align-items: center;
69 margin-top:64px;
70 margin-bottom: 128px;
71 }
72 .${randomNamespace}container .container-attachments-title, .${randomNamespace}container .container-links-title {
73 display: flex;
74 justify-content: center;
75 align-items: center;
76 color: #000;
77 font-size: 48px;
78 font-weight: 300;
79 margin-bottom: 48px;
80 }
81 .${randomNamespace}container .attachment-container{
82 display: flex;
83 height: 150px;
84 padding: 32px;
85 justify-content: flex-start;
86 align-items: center;
87 border-radius: 8px;
88 border: 1px solid #E7E7E7;
89 margin-bottom: 64px;
90 }
91 .${randomNamespace}container .links-container {
92 display: flex;
93 width: 522px;
94 height: 150px;
95 padding: 32px;
96 justify-content: center;
97 align-items: center;
98 border-radius: 8px;
99 border: 1px solid #E7E7E7;
100 margin-bottom: 128px;
101 flex-grow: 1;
102 margin-right: 8px;
103 }
104 .${randomNamespace}container .attachment-link {
105 width: 50px;
106 height: 50px;
107 border-radius: 40px;
108 background-color: #007CB1;
109 background-image: url('/o/clivet-liferay-nuance-theme/images/icons/download.svg');
110 background-position: center center;
111 background-repeat: no-repeat;
112 background-size: 24px 24px;
113 }
114 .${randomNamespace}container .external-link {
115 display: flex;
116 justify-content: center;
117 align-items: center;
118 font-size: 24px;
119 width: 50px;
120 height: 50px;
121 border-radius: 40px;
122 background-color: #007CB1;
123 background-size: 24px 24px;
124 }
125 .${randomNamespace}container .row-links {
126 display: flex;
127 justify-content: space-between;
128 gap: 8px;
129 width: 100%;
130 margin: 0 auto;
131 }
132 .${randomNamespace}container .links-container:last-child {
133 margin-right: 0;
134 }
135 .${randomNamespace}container .social-container {
136 margin-top: 128px;
137 margin-bottom: 64px;
138 }
139 @media (max-width: 991px) {
140 .${randomNamespace}container .img1-container, .${randomNamespace}container .img2-container {
141 width: 344px;
142 height: auto;
143 }
144 .${randomNamespace}container .img1-container {
145 margin-bottom: 8px;
146 }
147 .${randomNamespace}container .img-container {
148 margin-bottom: 32px;
149 border-radius: 8px;
150 height: 265px;
151 }
152 .${randomNamespace}container .attachment-container {
153 margin-bottom: 8px;
154 }
155 .${randomNamespace}container .links-container {
156 margin-bottom: 8px;
157 }
158 .${randomNamespace}container .double-banner{
159 margin-bottom: 64px;
160 }
161 .${randomNamespace}container .container-attachments-title, .${randomNamespace}container .container-links-title {
162 display: flex;
163 font-size: 36px;
164 font-weight: 300;
165 margin-bottom: 24px;
166 }
167 .${randomNamespace}container .custom-attachments-container {
168 margin-bottom:64px;
169 }
170 .${randomNamespace}container .social-container {
171 margin-top: 64px;
172 margin-bottom: 48px;
173 }
174 }
175</style>
176<div class="${randomNamespace} container-fluid w-100 px-0 d-flex flex-column align-items-center justify-content-center">
177 <div class="position-absolute text-center">
178 <#assign Header_Date_Data = getterUtil.getString(Header.Date.getData())>
179 <#if validator.isNotNull(Header_Date_Data)>
180 <#assign Header_Date_DateObj = dateUtil.parseDate("yyyy-MM-dd", Header_Date_Data, locale)>
181 <div class="banner-date">${dateUtil.getDate(Header_Date_DateObj, "dd MMMM yyyy", locale)}</div>
182 </#if>
183 <div class="banner-title">${Header.Title.getData()}</div>
184 </div>
185</div>
186<div class="${randomNamespace}container container news-container">
187
188 <div class="social-container d-flex flex-row justify-content-center g-3 pb-5 pb-lg-0">
189 <a class="social spa-social" target="_blank" href="https://www.instagram.com/clivetspa1989/">
190 <img alt="Instagram logo" src="/o/clivet-liferay-nuance-theme/images/social/instagram.svg">
191 </a>
192 <a class="social spa-social" target="_blank" href="https://www.facebook.com/ClivetSPA/">
193 <img alt="Facebook logo" src="/o/clivet-liferay-nuance-theme/images/social/facebook.svg">
194 </a>
195 <a class="social spa-social" target="_blank" href="https://x.com/ClivetSpA">
196 <img alt="Twitter logo" src="/o/clivet-liferay-nuance-theme/images/social/twitter.svg">
197 </a>
198 <a class="social spa-social" target="_blank" href="https://www.linkedin.com/company/clivet-spa/">
199 <img alt="Linkedin logo" src="/o/clivet-liferay-nuance-theme/images/social/linkedin.svg">
200 </a>
201 </div>
202
203 <div class="content-article">
204 <#if Abstract.getData()?trim?has_content>
205 <div class="news-article-abstract">${Abstract.getData()}</div>
206 </#if>
207 </div>
208 <#if ImagePosition?? && (ImagePosition.getData() != "" && ImagePosition.getData() == "opzione93795976")> <!--right -->
209 <#assign imgClass = "col-12 col-lg-6 order-2 pl-3 text-right" />
210 <#assign contentClass = "col-12 col-lg-6 order-1" />
211 <#elseif ImagePosition?? && (ImagePosition.getData() != "" && ImagePosition.getData() == "opzione16176523")> <!--left -->
212 <#assign imgClass = "col-12 col-lg-6 order-1 pr-3 text-left" />
213 <#assign contentClass = "col-12 col-lg-6 order-2" />
214 </#if>
215 <div class="container article-details">
216 <div class="row">
217 <div class="${imgClass} img-container">
218 <#if Image.getData()?? && Image.getData() != "">
219 <img src="${Image.getData()}">
220 </#if>
221 </div>
222 <#if Content.getData()?trim?has_content>
223 <div class="${contentClass}">
224 <div class="base-article-content">${Content.getData()}</div>
225 <#if (LinkText.getData())?? && LinkText.getData() != "" && (PageLink.getData())??>
226 <a data-senna-off="true" class="article-link" href="${PageLink.getFriendlyUrl()}">${LinkText.getData()}</a>
227 </#if>
228 </div>
229 </#if>
230 </div>
231 </div>
232 <div class="container base-article-content">
233 <#if LongContent.getData()?trim?has_content>
234 <div class="news-article-long-content">${LongContent.getData()}</div>
235 </#if>
236 </div>
237 <#if Img1.getData()?? && Img1.getData() != "" || Img2.getData()?? && Img2.getData() != "">
238 <div class="container double-banner">
239 <div class="row flex-column flex-lg-row">
240 <#if Img1.getData()?? && Img1.getData() != "">
241 <div class="img1-container">
242 <img src="${Img1.getData()}">
243 </div>
244 </#if>
245 <#if Img2.getData()?? && Img2.getData() != "">
246 <div class="img2-container">
247 <img src="${Img2.getData()}">
248 </div>
249 </#if>
250 </div>
251 </div>
252 </#if>
253 <#if Attachments.getSiblings()?has_content>
254 <div class="container custom-attachments-container">
255 <#list Attachments.getSiblings() as cur_Attachments>
256 <#if cur_Attachments.TitleAttachment.getData()?trim != "">
257 <div class="container-attachments-title">${Attachments.getName()}</div>
258 <div class="attachment-container d-flex justify-content-between align-items-center">
259 <div class="attachment-title">${cur_Attachments.TitleAttachment.getData()}</div>
260 <a class="attachment-link" href="${cur_Attachments.UrlAttachment.getData()}" target="_blank"></a>
261 </div>
262 </#if>
263 </#list>
264 </div>
265 </#if>
266 <#if Link.getSiblings()?has_content>
267 <div class="container custom-links-container">
268
269 <#list Link.getSiblings() as cur_Link>
270 <#if cur_Link.TitleLink.getData()?trim != "">
271
272 <div class="container-links-title">${Link.getName()}</div>
273 <div class="row row-links">
274
275 <div class="links-container d-flex justify-content-between align-items-center">
276 <div class="link-title">${cur_Link.TitleLink.getData()}</div>
277 <a class="external-link" style="color:white !important;" href="${cur_Link.UrlLink.getData()}" target="_blank">></a>
278 </div>
279
280
281 </div>
282 </#if>
283 </#list>
284 </div>
285 </#if>
286
287</div>