Hiba jelentkezett a sablon feldolgozása során.
The following has evaluated to null or missing: ==> dvmCodigoBannerPA [in template "44758#44797#79356" at line 4, column 21] ---- 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 modeloId = dvmCodigoBannerPA [in template "44758#44797#79356" at line 4, column 1] ----
1<#assign contadorSKU = 0>
2<#assign contadorBannerSKU = 0>
3<#assign contadorBannerSKUImg = 0>
4<#assign modeloId = dvmCodigoBannerPA>
5
6
7<#if entries?has_content>
8 <#list entries as curEntry>
9 <#assign renderer = curEntry.getAssetRenderer()>
10 <#assign docXml = saxReaderUtil.read(renderer.getArticle().getContent()) />
11 <#assign modelo = docXml.valueOf("//dynamic-element[@name='Modelo']/dynamic-content/text()") />
12
13 <#if modeloId == modelo>
14 <#assign contadorSKU++>
15 </#if>
16 </#list>
17</#if>
18
19<#if (contadorSKU > 0) >
20 <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
21 <#if (contadorSKU > 1)>
22 <ol class="carousel-indicators">
23 <#list entries as entryBannerSKU>
24 <#assign renderer = entryBannerSKU.getAssetRenderer()>
25 <#assign docXml = saxReaderUtil.read(renderer.getArticle().getContent()) />
26 <#assign modelo = docXml.valueOf("//dynamic-element[@name='Modelo']/dynamic-content/text()") />
27 <#if modeloId == modelo>
28 <#assign contadorBannerSKU++>
29 <li data-target="#carouselExampleIndicators" data-slide-to="${contadorBannerSKU-1}" class="<#if contadorBannerSKU - 1 == 0>active</#if>"></li>
30 </#if>
31 </#list>
32 </ol>
33 </#if>
34 <div class="carousel-inner">
35 <#list entries as entryBannerSKUBody>
36 <#assign renderer = entryBannerSKUBody.getAssetRenderer()>
37 <#assign docXml = saxReaderUtil.read(renderer.getArticle().getContent()) />
38 <#assign modelo = docXml.valueOf("//dynamic-element[@name='Modelo']/dynamic-content/text()") />
39 <#if modeloId == modelo>
40 <#assign contadorBannerSKUImg++>
41
42 <#assign titulo = docXml.valueOf("//dynamic-element[@name='Titulo']/dynamic-content/text()") />
43 <#assign texto = docXml.valueOf("//dynamic-element[@name='Texto']/dynamic-content/text()") />
44 <#assign externo = docXml.valueOf("//dynamic-element[@name='Externo']/dynamic-content/text()") />
45 <#assign enlace = docXml.valueOf("//dynamic-element[@name='Enlace']/dynamic-content/text()") />
46
47 <#assign journalArticle = renderer.getArticle()>
48 <#assign document = saxReaderUtil.read(journalArticle.getContent()) >
49 <#assign rootElement = document.getRootElement()>
50 <#assign xPathSelector1 = saxReaderUtil.createXPath("dynamic-element[@name='HOME01']")>
51 <#assign imgNews1 = xPathSelector1.selectSingleNode(rootElement).getStringValue()>
52 <#assign imgJson1 = jsonFactoryUtil.createJSONObject(imgNews1)>
53 <#assign imagen1 = "/documents/"+ imgJson1.groupId +"/" +imgJson1.fileEntryId +"/"+ imgJson1.name +"/"+imgJson1.uuid >
54
55 <#assign xPathSelector2 = saxReaderUtil.createXPath("dynamic-element[@name='HOME02']")>
56 <#assign imgNews2 = xPathSelector2.selectSingleNode(rootElement).getStringValue()>
57 <#assign imgJson2 = jsonFactoryUtil.createJSONObject(imgNews2)>
58 <#assign imagen2 = "/documents/"+ imgJson2.groupId +"/" +imgJson2.fileEntryId +"/"+ imgJson2.name +"/"+imgJson2.uuid >
59
60 <#assign xPathSelector3 = saxReaderUtil.createXPath("dynamic-element[@name='HOME03']")>
61 <#assign imgNews3 = xPathSelector3.selectSingleNode(rootElement).getStringValue()>
62 <#assign imgJson3 = jsonFactoryUtil.createJSONObject(imgNews3)>
63 <#assign imagen3 = "/documents/"+ imgJson3.groupId +"/" +imgJson3.fileEntryId +"/"+ imgJson3.name +"/"+imgJson3.uuid >
64
65 <#assign xPathSelector4 = saxReaderUtil.createXPath("dynamic-element[@name='HOME04']")>
66 <#assign imgNews4 = xPathSelector4.selectSingleNode(rootElement).getStringValue()>
67 <#assign imgJson4 = jsonFactoryUtil.createJSONObject(imgNews4)>
68 <#assign imagen4 = "/documents/"+ imgJson4.groupId +"/" +imgJson4.fileEntryId +"/"+ imgJson4.name +"/"+imgJson4.uuid >
69
70 <style>
71 .d-block.w-100.img-lg_${entryBannerSKUBody?counter}{
72 min-height: 530px;
73 }
74 .d-block.w-100.img-md_${entryBannerSKUBody?counter}{
75 min-height: 320px;
76 }
77 .d-block.w-100.img-sm_${entryBannerSKUBody?counter}{
78 min-height: 375px;
79 }
80 .d-block.w-100.img-xs_${entryBannerSKUBody?counter}{
81 min-height: 375px;
82 }
83 .img-lg_${entryBannerSKUBody?counter} {
84 display: flex !important;
85 width: 100%;
86 height: auto;
87 background-image: url("${imagen1}");
88 background-repeat: no-repeat;
89 background-size: cover;
90 background-position: center;
91 }
92
93 .img-md_${entryBannerSKUBody?counter} {
94 display: none !important;
95 }
96 .img-sm_${entryBannerSKUBody?counter} {
97 display: none !important;
98 }
99
100 .img-xs_${entryBannerSKUBody?counter} {
101 display: none !important;
102 }
103
104 @media only screen and (max-width: 1600px) {
105 .d-block.w-100.img-lg_${entryBannerSKUBody?counter}{
106 min-height: 450px;
107 }
108 }
109 @media only screen and (max-width: 1024px) {
110 .d-block.w-100.img-lg_${entryBannerSKUBody?counter}{
111 min-height: 355px;
112 }
113 }
114 @media only screen and (max-width: 1024px) {
115 .d-block.w-100.img-md_${entryBannerSKUBody?counter}{
116 min-height: 260px;
117 }
118 }
119
120 @media only screen and (max-width: 795px) {
121 .img-lg_${entryBannerSKUBody?counter} {
122 display: none !important;
123 }
124 .img-md_${entryBannerSKUBody?counter} {
125 display: flex !important;
126 width: 100%;
127 height: auto;
128 background-image: url("${imagen1}");
129 background-repeat: no-repeat;
130 background-size: cover;
131 background-position: center;
132 }
133 .carousel {
134 min-height: 260px;
135 }
136 }
137
138 @media only screen and (max-width: 650px) {
139 .img-md_${entryBannerSKUBody?counter} {
140 display: none !important;
141 }
142 .img-sm_${entryBannerSKUBody?counter} {
143 display: flex !important;
144 width: 100%;
145 height: auto;
146 background-image: url("${imagen3}");
147 background-repeat: no-repeat;
148 background-size: cover;
149 background-position: center;
150 }
151 }
152
153 @media only screen and (max-width: 375px) {
154 .img-sm_${entryBannerSKUBody?counter} {
155 display: none !important;
156 }
157 .img-xs_${entryBannerSKUBody?counter} {
158 display: flex !important;
159 width: 100%;
160 height: auto;
161 background-image: url("${imagen4}");
162 background-repeat: no-repeat;
163 background-size: cover;
164 background-position: center;
165 }
166 }
167 </style>
168
169 <div class="carousel-item <#if contadorBannerSKUImg - 1 == 0>active</#if>">
170
171 <#if enlace?has_content>
172 <a href="${enlace}" target="<#if externo == 'true'>_blank<#else>_self</#if>">
173 <div class="d-block w-100 img-lg_${entryBannerSKUBody?counter}" ></div>
174 </a>
175 <a href="${enlace}" target="<#if externo == 'true'>_blank<#else>_self</#if>">
176 <div class="d-block w-100 img-md_${entryBannerSKUBody?counter}"></div>
177 </a>
178 <a href="${enlace}" target="<#if externo == 'true'>_blank<#else>_self</#if>">
179 <div class="d-block w-100 img-sm_${entryBannerSKUBody?counter}"></div>
180 </a>
181 <a href="${enlace}" target="<#if externo == 'true'>_blank<#else>_self</#if>">
182 <div class="d-block w-100 img-xs_${entryBannerSKUBody?counter}"></div>
183 </a>
184 <#else>
185 <div class="d-block w-100 img-lg_${entryBannerSKUBody?counter}"></div>
186 <div class="d-block w-100 img-md_${entryBannerSKUBody?counter}"></div>
187 <div class="d-block w-100 img-sm_${entryBannerSKUBody?counter}"></div>
188 <div class="d-block w-100 img-xs_${entryBannerSKUBody?counter}"></div>
189 </#if>
190
191
192 <#if titulo?has_content>
193 <div class="col-sm-12 col-sm-6 col-md-5 col-lg-4 banner-text">
194 <h3 class="h3-mb">${titulo}</h3>
195 <#if texto?has_content><p>${texto}</p></#if>
196 <#if enlace?has_content>
197 <div class="banner-btn">
198 <a href="${enlace}" class="btn btn-jeep" target="<#if externo == 'true'>_blank<#else>_self</#if>">Ver más</a>
199 </div>
200 </#if>
201 </div>
202 </#if>
203 </div>
204 </#if>
205 </#list>
206 </div>
207 <#if (contadorSKU > 1)>
208 <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
209 <i class="fas fa-angle-left"></i>
210 <span class="sr-only">Previous</span>
211 </a>
212 <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
213 <i class="fas fa-angle-right"></i>
214 <span class="sr-only">Next</span>
215 </a>
216 </#if>
217 </div>
218</#if>