Une erreur s'est produite lors du traitement du modèle.
The following has evaluated to null or missing:
==> link_to_page.getData()?eval.name  [in template "20155#20195#RIBBON" at line 15, column 45]

----
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 linkLabel = 'aria-label="' + ...  [in template "20155#20195#RIBBON" at line 15, column 9]
----
1<#assign contentId = .vars['reserved-article-id'].data > 
2<#assign ribbonClass = "ribbon${contentId}" > 
3<#assign bgColor = '' > 
4<#assign ribbonImage = image.getData() > 
5 
6<#assign layout = themeDisplay.getLayout()> 
7<#assign bgColor = getFieldValueFromLayoutTree(layout, "bgColor")> 
8<#assign linkLabel = ''> 
9 
10<#if validator.isBlank(ribbonImage)> 
11    <#assign ribbonImageUrl = '' > 
12<#else> 
13    <#assign ribbonImageUrl = link_to_page.getFriendlyUrl() > 
14    <#if link_to_page.getData()?has_content> 
15        <#assign linkLabel = 'aria-label="'+link_to_page.getData()?eval.name?replace('"','&quot;') + '"'> 
16    </#if> 
17</#if> 
18 
19<#if validator.isBlank(ribbonImage) > 
20    <#assign ribbonImage = getFieldValueFromLayoutTree(layout, "ribbonImage") > 
21 
22    <#if ribbonImage?has_content> 
23        <#assign ribbonImageUrl = getFieldValueFromLayoutTree(layout, "ribbonImageUrl") > 
24    </#if> 
25</#if> 
26<#if (parentStructureFieldSet20570.sourceFieldSet.source.getData())?has_content> 
27	<#assign source = parentStructureFieldSet20570.sourceFieldSet/> 
28	<#assign poster = parentStructureFieldSet20570.poster /> 
29	<#assign hideControls = parentStructureFieldSet20570.hideControls /> 
30</#if> 
31 
32 
33 
34 
35<style> 
36 
37    .${ribbonClass} .ribbon-content { 
38        aspect-ratio: 1170/${height.getData()}; 
39        background-image: url('${ribbonImage}'); 
40
41 
42</style> 
43 
44<div class="hidden-phone ${ribbonClass} empa-background-color ${bgColor}"> 
45    <div class="container-xl"> 
46 
47        <#if !validator.isBlank(ribbonImageUrl)> 
48    <a href="${ribbonImageUrl}" ${linkLabel} 
49    <#else> 
50        <div 
51                </#if> 
52 
53                class="ribbon-content"> 
54            <#if source??> 
55                <#include "${templatesPath}/VIDEO-GENERIC" /> 
56            <#else> 
57                <div class="ribbon-overlay-text"> 
58                    ${overlay_text.getData()} 
59                </div> 
60            </#if> 
61 
62            <#if !validator.isBlank(ribbonImageUrl)> 
63            </a> 
64            <#else> 
65        </div> 
66        </#if> 
67    </div> 
68 
69</div> 
70 
71<#function getFieldValueFromLayoutTree layout fieldName> 
72     
73    <#attempt> 
74        <#local expandoValue = layout.getExpandoBridge().getAttribute(fieldName) /> 
75 
76        <#if (!(expandoValue?has_content) && !layout.isRootLayout())> 
77            <#return getFieldValueFromLayoutTree(layout.getAncestors()[0], fieldName)> 
78        </#if> 
79 
80        <#if expandoValue?has_content> 
81            <#return expandoValue[0]!""> 
82        <#else> 
83            <#return "" /> 
84        </#if> 
85    <#recover> 
86        <#return "" /> 
87    </#attempt> 
88 
89</#function> 

Bituminous Materials