Une erreur s'est produite lors du traitement du modèle.
The following has evaluated to null or missing:
==> formconfig.formFields  [in template "20115#20151#CONTACT" at line 133, column 52]

----
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: #list formconfig.formFields.getSiblin...  [in template "20115#20151#CONTACT" at line 133, column 45]
----
1<#assign serviceContext=staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
2    <#if serviceContext.getThemeDisplay().getThemeSetting("v2-look-and-feel")?has_content && serviceContext.getThemeDisplay().getThemeSetting("v2-look-and-feel")!=""> 
3        <#assign v2_enabled=serviceContext.getThemeDisplay().getThemeSetting("v2-look-and-feel")?boolean /> 
4        <#else> 
5            <#assign v2_enabled=false /> 
6    </#if> 
7    <#if (mandatoryContactFormFields.isMandatoryContactType.getData())?? && getterUtil.getBoolean(mandatoryContactFormFields.isMandatoryContactType.getData())> 
8        <#assign isMandatoryContactType="required"> 
9    <#else> 
10        <#assign isMandatoryContactType=""> 
11    </#if> 
12    <#if (mandatoryContactFormFields.isMandatoryName.getData())?? && getterUtil.getBoolean(mandatoryContactFormFields.isMandatoryName.getData())> 
13        <#assign isMandatoryName="required"> 
14    <#else> 
15        <#assign isMandatoryName=""> 
16    </#if> 
17    <#if (mandatoryContactFormFields.isMandatoryEmail.getData())?? && getterUtil.getBoolean(mandatoryContactFormFields.isMandatoryEmail.getData())> 
18        <#assign isMandatoryEmail="required"> 
19    <#else> 
20        <#assign isMandatoryEmail=""> 
21    </#if> 
22    <#if (mandatoryContactFormFields.isMandatoryPhone.getData())?? && getterUtil.getBoolean(mandatoryContactFormFields.isMandatoryPhone.getData())> 
23        <#assign isMandatoryPhone="required"> 
24    <#else> 
25        <#assign isMandatoryPhone=""> 
26    </#if> 
27    <#if (mandatoryContactFormFields.isMandatoryDescription.getData())?? && getterUtil.getBoolean(mandatoryContactFormFields.isMandatoryDescription.getData())> 
28        <#assign isMandatoryDescription="required"> 
29    <#else> 
30        <#assign isMandatoryDescription=""> 
31    </#if> 
32 
33    <#if v2_enabled> 
34        <!-- /Page Contact --> 
35        <section class="page-contact sheme-grease-light"> 
36            <!-- hero-banner --> 
37            <div class="hero-banner"> 
38                <div class="hero-banner__mask"> 
39                    <#if (Background.getData())?has_content> 
40                        <picture> 
41                            <img class="lazyload" src="${Background.getData()}" data-fileentryid="${Background.getAttribute("fileEntryId")}" data-src="${Background.getData()}" data-srcset="${Background.getData()}" /> 
42                        </picture> 
43                    </#if> 
44                    <div class="hero-banner__mask"> 
45                        <div class="hero-banner__container"> 
46                            <div class="hero-banner__content"> 
47                                <h2 class="font-display-4 color-white"> 
48                                    ${htmlUtil.unescape(Title.getData())} 
49                                </h2> 
50                                <p class="hero-banner__text font-medium color-white"> 
51                                    ${htmlUtil.unescape(Title.MainText.getData())} 
52                                </p> 
53                            </div> 
54                        </div> 
55                    </div> 
56                </div> 
57            </div> 
58            <!-- /hero-banner --> 
59            <div class="article-full__container container"> 
60                <div class="article-full__row pt-5 pb-5"> 
61                    <div class="article-full__left--t"> 
62                        <div class="article-full__content--text"> 
63                            <div class="article-full__resumen"> 
64                                <#if (formconfig.formTitle.getData())?has_content && (formconfig.actionUrl.getData())?has_content && (formconfig.orgid.getData())?has_content> 
65                                    <#assign serviceContext=staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
66                                        <#assign themeDisplay=serviceContext.getThemeDisplay() /> 
67                                        <#assign currentUrl=themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
68                                        <h3 class="article-full__left--title font-x-big font-bold-publicoheadline"> 
69                                            ${htmlUtil.unescape(formconfig.formTitle.getData())} 
70                                        </h3> 
71                                        <form id="contactForm" class="t_salesforce" action="${formconfig.actionUrl.getData()}" method="POST" onSubmit="sendForm()"> 
72                                            <input type=hidden name="retURL" value="${formconfig.retURL.getData()}"> 
73                                            <fieldset class="form__group pt-3"> 
74                                                <label for="type"> 
75                                                    <@liferay.language key="neo.contact.form.type.label" /> 
76                                                </label> 
77                                                <select id="type" name="type" ${isMandatoryContactType}> 
78                                                    <option value=""> 
79                                                        <@liferay.language key="neo.contact.form.type.none" /> 
80                                                    </option> 
81                                                    <#if formconfig.customOptionsFields??> 
82                                                        <#list formconfig.customOptionsFields.getSiblings() as customOptions> 
83                                                            <option value="${customOptions.customValue.getData()}"> 
84                                                                ${htmlUtil.unescape(customOptions.customLabel.getData())} 
85                                                            </option> 
86                                                        </#list> 
87                                                        <#else> 
88                                                            <option value="Complaints / Acknowledgements"> 
89                                                                <@liferay.language key="neo.contact.form.type.complaints" /> 
90                                                            </option> 
91                                                            <option value="Claims Office"> 
92                                                                <@liferay.language key="neo.contact.form.type.claimsoffice" /> 
93                                                            </option> 
94                                                            <option vablue="Customer Service"> 
95                                                                <@liferay.language key="neo.contact.form.type.customerservice" /> 
96                                                            </option> 
97                                                    </#if> 
98                                                </select> 
99                                            </fieldset> 
100                                            <fieldset class="form__group pt-3"> 
101                                                <label for="name"> 
102                                                    <@liferay.language key="neo.contact.form.contact.name" /> 
103                                                </label> 
104                                                <input id="name" maxlength="80" name="name" size="20" type="text" ${isMandatoryName} /> 
105                                            </fieldset> 
106                                            <fieldset class="form__group pt-3"> 
107                                                <label for="email"> 
108                                                    <@liferay.language key="neo.contact.form.contact.email" /> 
109                                                </label><input id="email" maxlength="80" name="email" size="20" type="email" class="t_textfield" ${isMandatoryEmail} /> 
110                                            </fieldset> 
111                                            <fieldset class="form__group pt-3"> 
112                                                <label for="phone"> 
113                                                    <@liferay.language key="neo.contact.form.contact.phone" /> 
114                                                </label><input id="phone" maxlength="40" name="phone" size="20" type="text" class="t_textfield" ${isMandatoryPhone} /> 
115                                            </fieldset> 
116                                            <fieldset class="form__group pt-3"> 
117                                                <label for="description"> 
118                                                    <@liferay.language key="neo.contact.form.contact.description" /> 
119                                                </label><textarea name="description" class="t_textarea" ${isMandatoryDescription}></textarea> 
120                                            </fieldset> 
121                                            <#if formconfig.captchaField?has_content> 
122                                                <fieldset class="form__group"> 
123                                                    <input class="capture hide" type="checkbox" id="${formconfig.captchaField.getData()!}" name="${formconfig.captchaField.getData()!}" value="true"> 
124                                                </fieldset> 
125                                                <#else> 
126                                                    <fieldset class="form__group"> 
127                                                        <input class="capture hide" type="checkbox" id="Captureuser" name="Captureuser" value="true"> 
128                                                    </fieldset> 
129                                            </#if> 
130                                            <#list formconfig.hiddenFields.getSiblings() as hiddenFields> 
131                                                <input type=hidden name="${hiddenFields.hiddenName.getData()}" id="${hiddenFields.hiddenId.getData()}" value="${hiddenFields.hiddenValue.getData()}"> 
132                                            </#list> 
133                                            <#list formconfig.formFields.getSiblings()! as formFields> 
134                                                <#assign fieldLabel=formFields.fieldLabel.getData()! /> 
135                                                <!-- <#assign fieldLabel = fieldLabel?remove_beginning("<p>")> --> 
136                                                <!-- <#assign fieldLabel = fieldLabel?remove_ending("<p>")> --> 
137                                                <#if formFields.isMandatory?? && formFields.isMandatory.getData()=="true"> 
138                                                    <#assign isMandatory="required"> 
139                                                        <#else> 
140                                                            <#assign isMandatory=""> 
141                                                </#if> 
142                                                <#if fieldLabel?has_content> 
143                                                    <#if formFields.fieldType.getData()?contains("checkbox")> 
144                                                        <fieldset class="form__group formFieldCheckbox"> 
145                                                            <input type="checkbox" id="${formFields.fieldId.getData()!}" name="${formFields.fieldId.getData()!}" value="true" ${isMandatory}> 
146                                                            <span style="padding-left:0.3em;"> 
147                                                                ${htmlUtil.unescape(fieldLabel)} 
148                                                            </span> 
149                                                            <label for="${formFields.fieldId.getData()!}" class="t_label"></label> 
150                                                        </fieldset> 
151                                                        <#else> 
152                                                            <fieldset class="form__group pt-3"> 
153                                                                <label for="${formFields.fieldId.getData()!}"> 
154                                                                    ${htmlUtil.unescape(fieldLabel)} 
155                                                                </label> 
156                                                                <#if (formFields.hideInputField.getData())?? && getterUtil.getBoolean(formFields.hideInputField.getData())> 
157                                                                    <#else> 
158                                                                        <input type="text" id="${formFields.fieldId.getData()!}" name="${formFields.fieldId.getData()!}" ${isMandatory}> 
159                                                                </#if> 
160                                                            </fieldset> 
161                                                    </#if> 
162                                                </#if> 
163                                            </#list> 
164                                            <div class="pt-3"> 
165                                                <button type="submit" name="submit" class="btn btn--primary text-uppercase mt-2"> 
166                                                    <@liferay.language key="send" /> 
167                                                </button> 
168                                            </div> 
169                                        </form> 
170                                </#if> 
171                            </div> 
172                        </div> 
173                    </div> 
174                    <div class="article-full__right"> 
175                        <!-- Detail 1 --> 
176                        <div class="article-full__detail sheme-white"> 
177                            <div class="article-full__container pb-1"> 
178                                <p class="font-bold-publicoheadline font-display-6 pb-3"> 
179                                    ${htmlUtil.unescape(AxaContactTitle.getData())} 
180                                </p> 
181                            <#if Number.getData()?has_content && Number.getData()?trim!=""> 
182                                <a href="tel:${Number.getData()}" class="link link--primary-link"><i class="icon-call pr-1"></i> 
183                                    ${htmlUtil.unescape(Number.getData())} 
184                                </a> 
185                                <p> 
186                                    ${Number.Info.getData()} 
187                                </p> 
188                            </#if> 
189                            </div> 
190                            <#if Email.getData()?has_content && Email.getData()?trim!=""> 
191                                <div class="article-full__container pb-2"> 
192                                    <a href="mailto:${Email.getData()}" class="link link--primary-link"><i class="icon-email pr-1"></i> 
193                                        ${Email.getData()} 
194                                    </a> 
195                                </div> 
196                            </#if> 
197                            <#if OptionTitle.getSiblings()?has_content> 
198                                <#list OptionTitle.getSiblings() as cur_OptionTitle> 
199                                    <div class="article-full__container pb-2"> 
200                                        <h3 class="article-full__detail--title"> 
201                                            ${htmlUtil.unescape(cur_OptionTitle.getData())} 
202                                        </h3> 
203                                        <p> 
204                                            ${htmlUtil.unescape(cur_OptionTitle.Description.getData())} 
205                                        </p> 
206                                    </div> 
207                                </#list> 
208                            </#if> 
209                        </div> 
210                    </div> 
211                </div> 
212            </div> 
213            <script> 
214            validateSelect(); 
215            function validateSelect(){ 
216                const select = document.getElementById("type"); 
217                const opcionesValidas = Array.from(select.options).filter(opt => opt.value.trim() !== ""); 
218                if (opcionesValidas.length == 1) { 
219                    select.value = opcionesValidas[0].value; 
220
221
222            function sendForm() { 
223                var element1 = document.createElement("input"); 
224                element1.type = "hidden"; 
225                element1.value = "${formconfig.orgid.getData()!}"; 
226                element1.name = "orgid"; 
227                document.getElementById("contactForm").appendChild(element1); 
228                dataLayer.push({ 
229                    'event': 'form_submit', 
230                    'form_name': 'Contact', 
231                    'contact_reason': document.getElementById("type").value, 
232                    'ip_address': themeDisplay.getRemoteAddr() 
233                }); 
234
235 
236            function onSubmit() { 
237                dataLayer.push({ 
238                    'event': 'form_submit', 
239                    'form_name': 'Contact', 
240                    'contact_reason': document.getElementById("type").value, 
241                    'ip_address': themeDisplay.getRemoteAddr() 
242                }); 
243
244            </script> 
245            <style> 
246            .form__group>span>p>a { 
247                color: #007bff; 
248
249 
250            fieldset.formFieldCheckbox ul { 
251                list-style-type: none; 
252                padding-left: 0; 
253
254 
255            fieldset.formFieldCheckbox { 
256                font-size: 0.75rem; 
257                padding: 0.35em 1em 0.625em; 
258
259 
260            fieldset.formFieldCheckbox input { 
261                position: relative; 
262                top: 2.5px; 
263
264            </style> 
265        </section> 
266        <!-- /Page Contact --> 
267        <#else> 
268            <section class="t_contact" xmlns="http://www.w3.org/1999/html"> 
269                <#if (Background.getData())?has_content> 
270                    <header class="t_contact__header t_block is-colored" style="background-image: url('${Background.getData()}')"> 
271                        <#else> 
272                            <header class="t_contact__header t_block is-colored"> 
273                </#if> 
274                <h2 class="t_mainTitle"> 
275                    ${Title.getData()} 
276                </h2> 
277                <p class="t_mainText"> 
278                    ${Title.MainText.getData()} 
279                </p> 
280                </header> 
281                <div class="t_main t_contact__content"> 
282                    <h3 class="t_contact__mainTitle"> 
283                        ${AxaContactTitle.getData()} 
284                    </h3> 
285                    <ul class="t_contact__infos"> 
286                        <li class="t_contact__info"> 
287                            <span class="t_contact__infoIcon"> 
288                                <svg width="14" height="14" class="t_contact__infoPicto" xmlns="http://www.w3.org/2000/svg" role="presentation"> 
289                                    <use href="#phone" xlink:href="#phone" /> 
290                                </svg> 
291                            </span> 
292                            <div class="t_contact__infoText"> 
293                                <p class="t_contact__infoText__inner"> 
294                                    ${Number.getData()} 
295                                </p> 
296                                <p class="t_contact__infoText__help"> 
297                                    ${Number.Info.getData()} 
298                                </p> 
299                            </div> 
300                        </li> 
301                        <#if Email.getData()?has_content && Email.getData()?trim!=""> 
302                            <li class="t_contact__info"> 
303                                <span class="t_contact__infoIcon"> 
304                                    <svg width="14" height="14" class="t_contact__infoPicto" xmlns="http://www.w3.org/2000/svg" role="presentation"> 
305                                        <use href="#enveloppe" xlink:href="#enveloppe" /> 
306                                    </svg> 
307                                </span> 
308                                <div class="t_contact__infoText"> 
309                                    <p class="t_contact__infoText__inner"> 
310                                        <a class="t_contact__infoText__innerLink" href="mailto:${Email.getData()}"> 
311                                            ${Email.getData()} 
312                                        </a> 
313                                    </p> 
314                                </div> 
315                            </li> 
316                        </#if> 
317                    </ul> 
318                    <ul class="t_contact__options"> 
319                        <#if OptionTitle.getSiblings()?has_content> 
320                            <#list OptionTitle.getSiblings() as cur_OptionTitle> 
321                                <li class="t_contact__option"> 
322                                    <h3 class="t_contact__option__title"> 
323                                        ${htmlUtil.unescape(cur_OptionTitle.getData())} 
324                                    </h3> 
325                                    <p class="t_contact__option__text"> 
326                                        ${htmlUtil.unescape(cur_OptionTitle.Description.getData())} 
327                                    </p> 
328                                </li> 
329                            </#list> 
330                        </#if> 
331                    </ul> 
332                    <#if (formconfig.formTitle.getData())?has_content && (formconfig.actionUrl.getData())?has_content && (formconfig.orgid.getData())?has_content> 
333                        <#assign serviceContext=staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
334                            <#assign themeDisplay=serviceContext.getThemeDisplay() /> 
335                            <#assign currentUrl=themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
336                            <h3 class="t_contact__mainTitle"> 
337                                ${htmlUtil.unescape(formconfig.formTitle.getData())} 
338                            </h3> 
339                            <form id="contactForm" class="t_salesforce" action="${formconfig.actionUrl.getData()}" method="POST" onSubmit="sendForm()"> 
340                                <input type=hidden name="retURL" value="${formconfig.retURL.getData()}"> 
341                                <#if formconfig.captchaField?has_content> 
342                                    <input class="capture" type="checkbox" id="${formconfig.captchaField.getData()!}" name="${formconfig.captchaField.getData()!}" value="true"> 
343                                    <#else> 
344                                        <input class="capture" type="checkbox" id="Captureuser" name="Captureuser" value="true"> 
345                                </#if> 
346                                <#list formconfig.hiddenFields.getSiblings() as hiddenFields> 
347                                    <input type=hidden name="${hiddenFields.hiddenName.getData()}" id="${hiddenFields.hiddenId.getData()}" value="${hiddenFields.hiddenValue.getData()}"> 
348                                </#list> 
349                                <label for="type" class="t_label"> 
350                                    <@liferay.language key="neo.contact.form.type.label" /><br /> 
351                                    <div class="t_select t_select--cms"> 
352                                        <select id="type" name="type" class="t_select__input" required> 
353                                            <option value=""> 
354                                                <@liferay.language key="neo.contact.form.type.none" /> 
355                                            </option> 
356                                            <#if formconfig.customOptionsFields??> 
357                                                <#list formconfig.customOptionsFields.getSiblings() as customOptions> 
358                                                    <option value="${customOptions.customValue.getData()}"> 
359                                                        ${htmlUtil.unescape(customOptions.customLabel.getData())} 
360                                                    </option> 
361                                                </#list> 
362                                                <#else> 
363                                                    <option value="Complaints / Acknowledgements"> 
364                                                        <@liferay.language key="neo.contact.form.type.complaints" /> 
365                                                    </option> 
366                                                    <option value="Claims Office"> 
367                                                        <@liferay.language key="neo.contact.form.type.claimsoffice" /> 
368                                                    </option> 
369                                                    <option value="Customer Service"> 
370                                                        <@liferay.language key="neo.contact.form.type.customerservice" /> 
371                                                    </option> 
372                                            </#if> 
373                                        </select> 
374                                        <svg class="t_select__arrow"> 
375                                            <use href="#chevron" xlink:href="#chevron" /> 
376                                        </svg> 
377                                    </div> 
378                                    <div class="t_inputText"> 
379                                        <label for="name" class="t_label"> 
380                                            <@liferay.language key="neo.contact.form.contact.name" /> 
381                                        </label> 
382                                        <input id="name" maxlength="80" name="name" size="20" type="text" class="t_textfield" required /> 
383                                    </div> 
384                                    <label for="email" class="t_label"> 
385                                        <@liferay.language key="neo.contact.form.contact.email" /> 
386                                    </label><input id="email" maxlength="80" name="email" size="20" type="text" class="t_textfield" required /> 
387                                    <label for="phone" class="t_label"> 
388                                        <@liferay.language key="neo.contact.form.contact.phone" /> 
389                                    </label><input id="phone" maxlength="40" name="phone" size="20" type="text" class="t_textfield" required /> 
390                                    <label for="description" class="t_label"> 
391                                        <@liferay.language key="neo.contact.form.contact.description" /> 
392                                    </label><textarea name="description" class="t_textarea" required></textarea> 
393                                    <#list formconfig.formFields.getSiblings()! as formFields> 
394                                        <#assign fieldLabel=formFields.fieldLabel.getData()! /> 
395                                        <!-- <#assign fieldLabel = fieldLabel?remove_beginning("<p>")> --> 
396                                        <!-- <#assign fieldLabel = fieldLabel?remove_ending("<p>")> --> 
397                                        <#if formFields.isMandatory?? && formFields.isMandatory.getData()=="true"> 
398                                            <#assign isMandatory="required"> 
399                                                <#else> 
400                                                    <#assign isMandatory=""> 
401                                        </#if> 
402                                        <#if formFields.fieldType.getData()?contains("checkbox")> 
403                                            <fieldset class="form__group formFieldCheckbox"> 
404                                                <input type="checkbox" id="${formFields.fieldId.getData()!}" name="${formFields.fieldId.getData()!}" value="true" ${isMandatory}> 
405                                                <span class="checkboxLabel" style="padding-left:0.3em; font-weight: 500;"> 
406                                                    ${htmlUtil.unescape(fieldLabel)} 
407                                                </span> 
408                                                <label for="${formFields.fieldId.getData()!}" class="t_label"></label> 
409                                                </input> 
410                                            </fieldset> 
411                                        </#if> 
412                                    </#list> 
413                                    <button type="submit" name="submit" class="t_button t_button--ghost"> 
414                                        <label class="t_button__label"> 
415                                            <@liferay.language key="send" /> 
416                                        </label> 
417                                    </button> 
418                            </form> 
419                    </#if> 
420                </div> 
421            </section> 
422            <script> 
423            validateSelect(); 
424            function validateSelect(){ 
425                const select = document.getElementById("type"); 
426                const opcionesValidas = Array.from(select.options).filter(opt => opt.value.trim() !== ""); 
427                if (opcionesValidas.length == 1) { 
428                    select.value = opcionesValidas[0].value; 
429
430
431            function sendForm() { 
432                var element1 = document.createElement("input"); 
433                element1.type = "hidden"; 
434                element1.value = "${formconfig.orgid.getData()!}"; 
435                element1.name = "orgid"; 
436                document.getElementById("contactForm").appendChild(element1); 
437                dataLayer.push({ 
438                    'event': 'form_submit', 
439                    'form_name': 'Contact', 
440                    'contact_reason': document.getElementById("type").value, 
441                    'ip_address': themeDisplay.getRemoteAddr() 
442                }); 
443
444 
445            function pushDataLayerContact() { 
446                dataLayer.push({ 
447                    'event': 'form_submit', 
448                    'form_name': 'Contact', 
449                    'contact_reason': document.getElementById("type").value, 
450                    'ip_address': themeDisplay.getRemoteAddr() 
451                }); 
452
453            </script> 
454 
455            <style> 
456            div.t_neo_cms .t_contact .t_main.t_contact__content #contactForm.t_salesforce input.capture { 
457                display: none; 
458
459 
460            .t_button--ghost>label.t_button__label { 
461                margin: 0; 
462
463 
464            fieldset.formFieldCheckbox { 
465                font-size: 0.75rem; 
466                padding: 0.35em 0em 0.625em; 
467
468 
469            fieldset.formFieldCheckbox input { 
470                position: relative; 
471                top: 2.5px; 
472
473            </style> 
474    </#if>