S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> cur_cardGroup.cardIcon.getAttribute('alt') [in template "776318#776366#PP_NEW_MODAL_HEADER" at line 39, column 77]
----
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: ${cur_cardGroup.cardIcon.getAttribute... [in template "776318#776366#PP_NEW_MODAL_HEADER" at line 39, column 75]
----
1<div class="c-calc-modal">
2 <div class="container-fluid c-calc-header__container">
3 <div class="container">
4 <header class="c-calc-header">
5 <a href="/" class="c-calc-header__logo">
6 <#if headerLogo?? && headerLogo.getData()?? && headerLogo.getData() != "">
7 <img alt="${headerLogo.getAttribute('alt')}" data-fileentryid="${headerLogo.getAttribute('fileEntryId')}" src="${headerLogo.getData()}" />
8 </#if>
9 </a>
10 <#if closeButtonText?? && closeButtonText.getData()?? && closeButtonText.getData() != "">
11 <a href="#" class="c-calc-header__close js-close-header"> <span class="icon-arrow-right"></span> ${closeButtonText.getData()}</a>
12 </#if>
13 </header>
14 </div>
15 </div>
16
17
18 <div class="section-wrapper">
19 <div class="c-buttons-text c-buttons-text--seg section-wrapper">
20 <#if title?? && title.getData()?? && title.getData() != "">
21
22 <p class="c-buttons-text__title c-buttons-text__title--insuranceCard">
23 ${title.getData()}
24 </p>
25 </#if>
26 <p class="c-buttons-text__subtitle c-buttons-text__subtitle--insuranceCard">
27 <#if subtitle?? && subtitle.getData()?? && subtitle.getData() != "">
28 ${subtitle.getData()}
29 </#if>
30 </p>
31 </div>
32
33 <div id="insuranceCard--slider">
34 <div class="owl-slider js-modal-carousel owl-carousel owl-theme owl-loaded owl-drag" id="carouselTipoSeguros">
35 <#if cardGroup.getSiblings()?has_content>
36 <#list cardGroup.getSiblings() as cur_cardGroup>
37 <div class="c-insuranceCard">
38 <div class="c-insuranceCard__image">
39 <img alt="${cur_cardGroup.cardIcon.getAttribute('alt')}" data-fileentryid="${cur_cardGroup.cardIcon.getAttribute('fileEntryId')}" src="${cur_cardGroup.cardIcon.getData()}" />
40 </div>
41 <p>
42 <#if cur_cardGroup.cardTitle?? && cur_cardGroup.cardTitle.getData()?? && cur_cardGroup.cardTitle.getData() != "">
43 ${cur_cardGroup.cardTitle.getData()}
44 </#if>
45 </p>
46 <#assign linkTarget = "_self">
47 <#assign link = "#">
48 <#if cur_cardGroup.buttonLink?? && cur_cardGroup.buttonLink.getData()?? && cur_cardGroup.buttonLink.getData() != "">
49 <#assign link = cur_cardGroup.buttonLink.getData()>
50 </#if>
51 <#if cur_cardGroup.buttonTarget?? && cur_cardGroup.buttonTarget.getData()?? && cur_cardGroup.buttonTarget.getData() != "">
52 <#assign linkTarget = cur_cardGroup.buttonTarget.getData()>
53 </#if>
54 <a target="${linkTarget}" class="button variant-contained color-blue" href="${link}">
55 <span class="button__text">
56 <#if cur_cardGroup.cardButtonText?? && cur_cardGroup.cardButtonText.getData()?? && cur_cardGroup.cardButtonText.getData() != "">
57 ${cur_cardGroup.cardButtonText.getData()}
58 </#if>
59 </span>
60 </a>
61 </div>
62 </#list>
63 </#if>
64 </div>
65 </div>
66 <div class="c-insuranceContent">
67 <p class="c-insuranceContent__text--small">
68 <#if middleText?? && middleText.getData()?? && middleText.getData() != "">
69 ${middleText.getData()}
70 </#if>
71 </p>
72 <#if secondMiddleText?? && secondMiddleText.getData()?? && secondMiddleText.getData() != "" && middleLink?? && middleLink.getData()?? && middleLink.getData() != "" >
73 <#assign linkTarget = "_self">
74 <#if middleLinkTarget?? && middleLinkTarget.getData()?? && middleLinkTarget.getData() != "">
75 <#assign linkTarget = middleLinkTarget.getData()>
76 </#if>
77 <a class="button-transparent blue" href="${middleLink.getData()}" target="${linkTarget}">
78 ${secondMiddleText.getData()}
79 <span class="icon-arrow-right icon-chevron-right c-insurance-card__srrow-icon"></span>
80 </a>
81 </#if>
82 </div>
83 <div class="container-fluid">
84 <div class="c-insuranceContentCard">
85 <div class="c-insuranceContentCard__content">
86 <#if phoneCallGroup.callTitle?? && phoneCallGroup.callTitle.getData()?? && phoneCallGroup.callTitle.getData() != "">
87 <p class="c-insuranceContentCard__title">
88 ${phoneCallGroup.callTitle.getData()}
89 </p>
90 </#if>
91
92 <#if phoneCallGroup.callSubtitle?? && phoneCallGroup.callSubtitle.getData()?? && phoneCallGroup.callSubtitle.getData() != "">
93 <p class="c-insuranceContentCard__text">
94 ${phoneCallGroup.callSubtitle.getData()}
95 </p>
96 </#if>
97 </div>
98 <#assign CallLinkTarget = "_self">
99 <#assign callLink = "#">
100 <#if phoneCallGroup.callButtonLink?? && phoneCallGroup.callButtonLink.getData()?? && phoneCallGroup.callButtonLink.getData() != "">
101 <#assign callLink = phoneCallGroup.callButtonLink.getData()>
102 </#if>
103 <#if phoneCallGroup.callButtonTarget?? && phoneCallGroup.callButtonTarget.getData()?? && phoneCallGroup.callButtonTarget.getData() != "">
104 <#assign CallLinkTarget = phoneCallGroup.callButtonTarget.getData()>
105 </#if>
106 <#if phoneCallGroup.callButtonText?? && phoneCallGroup.callButtonText.getData()?? && phoneCallGroup.callButtonText.getData() != "">
107 <a class="button variant-outlined color-blue" href="${callLink}" target="${CallLinkTarget}">
108 <span class="button__text">
109 <svg fill="none" height="12" viewbox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"> <path d="M2.41 5.19C3.37614 7.07795 4.91206 8.61386 6.8 9.58L8.27 8.11C8.46816 7.92795 8.757 7.88442 9 8C9.76807 8.25245 10.5715 8.38073 11.38 8.38C11.712 8.40397 11.976 8.66802 12 9V11.33C12 11.7 11.7 12 11.33 12C5.07261 12 0 6.92739 0 0.67C0 0.299969 0.299969 0 0.67 0H3C3.37003 0 3.67 0.299969 3.67 0.67C3.65787 1.45912 3.76921 2.24528 4 3C4.07587 3.2406 4.01017 3.50341 3.83 3.68L2.41 5.19Z" fill="#00008F"></path> </svg>
110 ${phoneCallGroup.callButtonText.getData()}
111 </span>
112 </a>
113 </#if>
114 </div>
115
116 <div class="c-insuranceContentCard">
117 <div class="c-insuranceContentCard__content">
118 <#if officeGroup.officeTitle?? && officeGroup.officeTitle.getData()?? && officeGroup.officeTitle.getData() != "">
119 <p class="c-insuranceContentCard__title">
120 ${officeGroup.officeTitle.getData()}
121 </p>
122 </#if>
123 <#if officeGroup.officeSubtitle?? && officeGroup.officeSubtitle.getData()?? && officeGroup.officeSubtitle.getData() != "">
124 <p class="c-insuranceContentCard__text">
125 ${officeGroup.officeSubtitle.getData()}
126 </p>
127 </#if>
128 </div>
129 <#assign officeLinkTarget = "_self">
130 <#assign officeLink = "#">
131 <#if officeGroup.officeButtonLink?? && officeGroup.officeButtonLink.getData()?? && officeGroup.officeButtonLink.getData() != "">
132 <#assign officeLink = officeGroup.officeButtonLink.getData()>
133 </#if>
134 <#if officeGroup.officeButtonTarget?? && officeGroup.officeButtonTarget.getData()?? && officeGroup.officeButtonTarget.getData() != "">
135 <#assign officeLinkTarget = officeGroup.officeButtonTarget.getData()>
136 </#if>
137 <#if officeGroup.officeButtonText?? && officeGroup.officeButtonText.getData()?? && officeGroup.officeButtonText.getData() != "">
138 <a target="${officeLinkTarget}" class="button variant-outlined color-blue" href="#">
139 <span class="button__text">
140 ${officeGroup.officeButtonText.getData()}
141 </span>
142 </a>
143 </#if>
144 </div>
145 </div>
146</div>
147 </div>
148
149
150
151
152<script>
153
154 $( document ).ready(function() {
155 //let abNavPrev = '<svg class="ab-nav-prev" width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(-883.000000, -605.000000)"> <g transform="translate(883.000000, 605.000000)"> <g transform="translate(16.000000, 16.000000) scale(-1, 1) translate(-16.000000, -16.000000) "> <polygon points="0 0 32 0 32 32 0 32"></polygon> <polygon fill="#00008F" fill-rule="nonzero" points="13.2733333 2 10.4533333 4.82 19.6133333 14 10.4533333 23.18 13.2733333 26 25.2733333 14"></polygon> </g> </g> </g> </g></svg>';
156 //let abNavNext ='<svg class="ab-nav-next" width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(-883.000000, -605.000000)"><g transform="translate(883.000000, 605.000000)"> <g transform="translate(16.000000, 16.000000) scale(-1, 1) translate(-16.000000, -16.000000) "> <polygon points="0 0 32 0 32 32 0 32"></polygon><polygon fill="#00008F" fill-rule="nonzero" points="13.2733333 2 10.4533333 4.82 19.6133333 14 10.4533333 23.18 13.2733333 26 25.2733333 14"></polygon> </g> </g> </g> </g></svg>';
157
158 let abNavPrev = '<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9 15L2 8L9 1" stroke="#00008F" stroke-width="1.5" stroke-linecap="round"/></svg>';
159 let abNavNext = '<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L8 8L1 15" stroke="#00008F" stroke-width="1.5" stroke-linecap="round"/></svg>';
160
161 let chevron_l = '<svg xmlns="http://www.w3.org/2000/svg" width="35px" height="35px" viewBox="0 0 24 24"><path fill="#00008F" d="M14.41 18.16L8.75 12.5l5.66-5.66l.7.71l-4.95 4.95l4.95 4.95z"/></svg>';
162 let chevron_r = '<svg xmlns="http://www.w3.org/2000/svg" width="35px" height="35px" viewBox="0 0 24 24"><path fill="#00008F" d="M14.41 18.16L8.75 12.5l5.66-5.66l.7.71l-4.95 4.95l4.95 4.95z"/></svg>';
163
164
165 let detener;
166 let ind = 0;
167 let tiempo = 3000;
168 let activarAuto = false;
169
170 let modd = document.getElementsByClassName("c-calc-modal");
171 let carr = document.getElementsByClassName('js-modal-carousel');
172
173 let evnts = ["scroll", "touchmove", "touchstart", "touchend", "mousedown", "mouseup", "dragstart", "drag", "dragend", "dragenter", "dragover", "dragleave", "drop"];
174
175
176 window.addEventListener('resize', carouselResponsive);
177
178 evnts.forEach(e => {
179 modd[0].addEventListener(e, stopcarrousel);
180 carr[0].addEventListener(e, stopcarrousel);
181 })
182
183
184 let observer = new MutationObserver(function(mutations){
185 mutations.forEach(function(mutation){
186 if(mutation.type == 'attributes' && mutation.attributeName == 'class'){
187 $('.js-modal-carousel').trigger('stop.owl.autoplay');
188 changeIco();
189 waiting();
190 }
191 })
192 })
193
194 let config = {
195 attributes: true,
196 }
197
198 observer.observe(modd[0], config);
199
200
201 carouselResponsive();
202
203 function stopcarrousel(){
204 $('.js-modal-carousel').trigger('stop.owl.autoplay');
205 waiting();
206 }
207
208 function waiting(){
209 setTimeout(function(){
210 $('.js-modal-carousel').trigger('stop.owl.autoplay');
211 },tiempo)
212 }
213
214
215 /*
216 function activeAuto(){
217
218 if(!activarAuto){
219 $('.js-modal-carousel').trigger('play.owl.autoplay', [tiempo]);
220 $('.js-modal-carousel').addClass('autoplay-enabled');
221 activarAuto = true;
222 }
223
224 } */
225
226
227 function carouselResponsive () {
228
229 let wi = window.innerWidth;
230
231 $('.js-modal-carousel').owlCarousel({
232
233 autoplay:false,
234 autoplayTimeout:tiempo,
235 autoplayHoverPause:true,
236 navText: [abNavPrev, abNavNext],
237 margin:10,
238 loop:true,
239 responsive:{
240 0:{
241 items:1,
242 center:true,
243 stagePadding: 74,
244 slideBy: 1,
245 nav:false,
246 margin: 8
247 },
248 600:{
249 items:3,
250 slideBy:1,
251 nav:false,
252 margin: 16
253 },
254 1000:{nav:true,
255 items:4,
256 slideBy:1,
257 margin: 21,
258 stagePadding: 1 //5 muestra la card completa
259 }
260 }
261 })
262
263 $('.js-modal-carousel').trigger('stop.owl.autoplay');
264 waiting();
265
266
267 }
268
269 function tinyCarouselPaging() {
270 }
271
272 function changeIco(){
273
274 $(".owl-prev").empty();
275 $(".owl-next").empty();
276
277 $(".owl-next").append(chevron_r);
278 $(".owl-prev").append(chevron_l);
279 }
280
281 });
282</script>
S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> buttonText.button_style_0 [in template "776318#776366#SEG_PP_PROMO" at line 105, column 48]
----
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 styleButton = buttonText.butt... [in template "776318#776366#SEG_PP_PROMO" at line 105, column 25]
----
1<#-- Obtenemos del expando el campo personalizado de la analítica -->
2<#assign JournalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleService")>
3<#assign journalArticle = JournalArticleService.getArticle(groupId, .vars["reserved-article-id"].data)>
4
5<#if journalArticle??>
6 <#assign expandoBridge = journalArticle.getExpandoBridge()>
7 <#assign customAnalyticsProperties = expandoBridge.getAttribute("Campos Personalizados Analítica")>
8</#if>
9
10<#assign parameterMedofi = "" />
11
12<#if serviceLocator.findService("com.axa.publicportals.odh.service.OdhService")??>
13 <#assign AgentPresenceService = serviceLocator.findService("com.axa.publicportals.odh.service.OdhService")>
14 <#if AgentPresenceService.getPresenciaAgente(request)??>
15 <#assign agent = AgentPresenceService.getPresenciaAgente(request)>
16 <#if agent?? && agent?has_content>
17 <#assign parameterMedofi = agent.getMedofi() />
18 </#if>
19 </#if>
20</#if>
21
22<#assign presencePriority = Presencia.getData()>
23<#if presencePriority == '0'>
24 <#assign sectionTitle = section_title_0 >
25 <#assign cardBackground = background_color_0 >
26<#elseif presencePriority == '1'>
27 <#if parameterMedofi?has_content>
28 <#assign sectionTitle = section_title_1 >
29 <#assign cardBackground = background_color_1 >
30 <#else>
31 <#assign sectionTitle = section_title_0 >
32 <#assign cardBackground = background_color_0 >
33 </#if>
34<#elseif presencePriority == '2'>
35 <#if themeDisplay.isSignedIn()>
36 <#assign sectionTitle = section_title_2 >
37 <#assign cardBackground = background_color_2 >
38 <#else>
39 <#assign sectionTitle = section_title_0 >
40 <#assign cardBackground = background_color_0 >
41 </#if>
42</#if>
43<div class="c-promo-banners">
44 <#if (titleSize?? && titleSize.getData()?? && titleSize.getData() != "")>
45 <#assign titleSize = titleSize.getData() />
46 <#else>
47 <#assign titleSize = "h2" />
48 </#if>
49 <#if sectionTitle?? && sectionTitle.getData()?? && sectionTitle.getData() != "">
50 <${titleSize} class="c-promo-banners__title c-title">${sectionTitle.getData()}</${titleSize}>
51 </#if>
52 <div class="c-promo-banners__content container">
53 <#if cardBackground.getSiblings()?has_content >
54 <#list cardBackground.getSiblings() as card >
55 <#if presencePriority == '0' >
56 <#assign cardImage = card.card_image_0 >
57 <#assign cardTitle = card.card_title_0 >
58 <#assign cardSubtitle = card.card_subtitle_0 >
59 <#assign buttonText = card.button_text_0 >
60 <#assign styleButton = buttonText.button_style_0.getData() >
61 <#assign buttonTextIsDownload = buttonText.is_download_0 >
62 <#assign isDownload = getterUtil.getBoolean(buttonText.is_download_0.getData()) >
63 <#assign downloadable = buttonText.file_to_download_0 >
64 <#assign buttonLink = buttonText.button_link_0 >
65 <#assign secondaryButtonText = card.secondary_button_text_0 >
66 <#assign secondaryStyleButton = secondaryButtonText.secondary_button_style_0.getData() >
67 <#assign secondaryButtonTextIsDownload = secondaryButtonText.secondary_is_download_0 >
68 <#assign secondaryIsDownload = getterUtil.getBoolean(secondaryButtonText.secondary_is_download_0.getData()) >
69 <#assign secondaryDownloadable = secondaryButtonText.secondary_file_to_download_0 >
70 <#assign secondaryButtonLink = secondaryButtonText.secondary_button_link_0 >
71 <#assign smallText = card.small_text_0 >
72
73 <#assign linkTarget = "_self" />
74 <#if buttonLink.selectTarget_0?? && buttonLink.selectTarget_0.getData()?has_content>
75 <#assign linkTarget = buttonLink.selectTarget_0.getData() />
76 </#if>
77 <#elseif presencePriority == '1' >
78 <#if parameterMedofi?has_content >
79 <#assign cardImage = card.card_image_1 >
80 <#assign cardTitle = card.card_title_1 >
81 <#assign cardSubtitle = card.card_subtitle_1 >
82 <#assign buttonText = card.button_text_1 >
83 <#assign styleButton = buttonText.button_style_1.getData() >
84 <#assign buttonTextIsDownload = buttonText.is_download_1 >
85 <#assign isDownload = getterUtil.getBoolean(buttonText.is_download_1.getData()) >
86 <#assign downloadable = buttonText.file_to_download_1 >
87 <#assign buttonLink = buttonText.button_link_1 >
88 <#assign secondaryButtonText = card.secondary_button_text_1 >
89 <#assign secondaryStyleButton = secondaryButtonText.secondary_button_style_1.getData() >
90 <#assign secondaryButtonTextIsDownload = secondaryButtonText.secondary_is_download_1 >
91 <#assign secondaryIsDownload = getterUtil.getBoolean(secondaryButtonText.secondary_is_download_1.getData()) >
92 <#assign secondaryDownloadable = secondaryButtonText.secondary_file_to_download_1 >
93 <#assign secondaryButtonLink = secondaryButtonText.secondary_button_link_1 >
94 <#assign smallText = card.small_text_1 >
95
96 <#assign linkTarget = "_self" />
97 <#if buttonLink.selectTarget_1?? && buttonLink.selectTarget_1.getData()?has_content>
98 <#assign linkTarget = buttonLink.selectTarget_1.getData() />
99 </#if>
100 <#else>
101 <#assign cardImage = card.card_image_0 >
102 <#assign cardTitle = card.card_title_0 >
103 <#assign cardSubtitle = card.card_subtitle_0 >
104 <#assign buttonText = card.button_text_0 >
105 <#assign styleButton = buttonText.button_style_0.getData() >
106 <#assign buttonTextIsDownload = buttonText.is_download_0 >
107 <#assign isDownload = getterUtil.getBoolean(buttonText.is_download_0.getData()) >
108 <#assign downloadable = buttonText.file_to_download_0 >
109 <#assign buttonLink = buttonText.button_link_0 >
110 <#assign secondaryButtonText = card.secondary_button_text_0 >
111 <#assign secondaryStyleButton = secondaryButtonText.secondary_button_style_0.getData() >
112 <#assign secondaryButtonTextIsDownload = secondaryButtonText.secondary_is_download_0 >
113 <#assign secondaryIsDownload = getterUtil.getBoolean(secondaryButtonText.secondary_is_download_0.getData()) >
114 <#assign secondaryDownloadable = secondaryButtonText.secondary_file_to_download_0 >
115 <#assign secondaryButtonLink = secondaryButtonText.secondary_button_link_0 >
116 <#assign smallText = card.small_text_0 >
117
118 <#assign linkTarget = "_self" />
119 <#if buttonLink.selectTarget_0?? && buttonLink.selectTarget_0.getData()?has_content>
120 <#assign linkTarget = buttonLink.selectTarget_0.getData() />
121 </#if>
122 </#if>
123 <#elseif presencePriority == '2' >
124 <#if themeDisplay.isSignedIn() >
125 <#assign cardImage = card.card_image_2 >
126 <#assign cardTitle = card.card_title_2 >
127 <#assign cardSubtitle = card.card_subtitle_2 >
128 <#assign buttonText = card.button_text_2 >
129 <#assign styleButton = buttonText.button_style_2.getData() >
130 <#assign buttonTextIsDownload = buttonText.is_download_2 >
131 <#assign isDownload = getterUtil.getBoolean(buttonText.is_download_2.getData()) >
132 <#assign downloadable = buttonText.file_to_download_2 >
133 <#assign buttonLink = buttonText.button_link_2 >
134 <#assign secondaryButtonText = card.secondary_button_text_2 >
135 <#assign secondaryStyleButton = secondaryButtonText.secondary_button_style_2.getData() >
136 <#assign secondaryButtonTextIsDownload = secondaryButtonText.secondary_is_download_2 >
137 <#assign secondaryIsDownload = getterUtil.getBoolean(secondaryButtonText.secondary_is_download_2.getData()) >
138 <#assign secondaryDownloadable = secondaryButtonText.secondary_file_to_download_2 >
139 <#assign secondaryButtonLink = secondaryButtonText.secondary_button_link_2 >
140 <#assign smallText = card.small_text_2 >
141
142 <#assign linkTarget = "_self" />
143 <#if buttonLink.selectTarget_2?? && buttonLink.selectTarget_2.getData()?has_content>
144 <#assign linkTarget = buttonLink.selectTarget_2.getData() />
145 </#if>
146 <#else>
147 <#assign cardImage = card.card_image_0 >
148 <#assign cardTitle = card.card_title_0 >
149 <#assign cardSubtitle = card.card_subtitle_0 >
150 <#assign buttonText = card.button_text_0 >
151 <#assign styleButton = buttonText.button_style_0.getData() >
152 <#assign buttonTextIsDownload = buttonText.is_download_0 >
153 <#assign isDownload = getterUtil.getBoolean(buttonText.is_download_0.getData()) >
154 <#assign downloadable = buttonText.file_to_download_0 >
155 <#assign buttonLink = buttonText.button_link_0 >
156 <#assign secondaryButtonText = card.secondary_button_text_0 >
157 <#assign secondaryStyleButton = secondaryButtonText.secondary_button_style_0.getData() >
158 <#assign secondaryButtonTextIsDownload = secondaryButtonText.secondary_is_download_0 >
159 <#assign secondaryIsDownload = getterUtil.getBoolean(secondaryButtonText.secondary_is_download_0.getData()) >
160 <#assign secondaryDownloadable = secondaryButtonText.secondary_file_to_download_0 >
161 <#assign secondaryButtonLink = secondaryButtonText.secondary_button_link_0 >
162 <#assign smallText = card.small_text_0 >
163
164 <#assign linkTarget = "_self" />
165 <#if buttonLink.selectTarget_0?? && buttonLink.selectTarget_0.getData()?has_content>
166 <#assign linkTarget = buttonLink.selectTarget_0.getData() />
167 </#if>
168 </#if>
169 </#if>
170 <div class="c-promo-banner">
171 <#if card?? && card.getData()?has_content && card.getData()!=''>
172 <div class="c-promo-banner__wrapper" style="background-color:${card.getData()};">
173 <#else>
174 <div class="c-promo-banner__wrapper">
175 </#if>
176 <#if cardImage?? && cardImage.getData()?? && cardImage.getData() != "">
177 <div class="c-promo-banner__image">
178 <figure>
179 <img alt="${cardImage.getAttribute("alt")}" data-fileentryid="${cardImage.getAttribute("fileEntryId")}" src="${cardImage.getData()}" />
180 </figure>
181 </div>
182 </#if>
183 <#if cardTitle?? && cardTitle.getData()?has_content && cardTitle.getData()!='' && cardSubtitle?? && cardSubtitle.getData()?has_content && cardSubtitle.getData()!='' && buttonText?? && buttonText.getData()?has_content && buttonText.getData()!=''>
184 <div class="c-promo-banner__text">
185 <#else>
186 <div class="c-promo-banner__text c-promo-banner__text--incomplete">
187 </#if>
188
189 <#if (card.cardTitleSize?? && card.cardTitleSize.getData()?? && card.cardTitleSize.getData() != "")>
190 <#assign cardTitleSize = card.cardTitleSize.getData() />
191 <#else>
192 <#assign cardTitleSize = "p" />
193 </#if>
194 <#if cardTitle?? && cardTitle.getData()?has_content && cardTitle.getData()!=''>
195 <${cardTitleSize} class="c-promo-banner__title">${cardTitle.getData()}</${cardTitleSize}>
196 </#if>
197 <#if cardSubtitle?? && cardSubtitle.getData()?has_content && cardSubtitle.getData()!=''>
198 <#if cardTitle?? && cardTitle.getData()?has_content && cardTitle.getData()!=''>
199 <div class="c-promo-banner__subtitle">
200 <#else>
201 <div class="c-promo-banner__subtitle c-promo-banner__subtitle--lonely">
202 </#if>
203 ${cardSubtitle.getData()}
204 </div>
205 </#if>
206 <#if buttonText?? && buttonText.getData()?has_content && buttonText.getData()!=''>
207 <#if cardTitle?? && cardTitle.getData()?has_content && cardTitle.getData()!='' || cardSubtitle?? && cardSubtitle.getData()?has_content && cardSubtitle.getData()!='' >
208 <#if buttonTextIsDownload?? && buttonTextIsDownload.getData()?? && isDownload>
209 <a class="c-promo-banner__button button ${styleButton?has_content?then(styleButton, 'variant-contained')} color-blue analytics_interaccion_boton" href="${downloadable.getData()}" onclick="checkWebviewLink(this, event)" target="_blank" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'>
210 <#else>
211 <a target="${linkTarget}" class="c-promo-banner__button button ${styleButton?has_content?then(styleButton, 'variant-contained')} color-blue analytics_interaccion_boton" href="${buttonLink.getData()}" onclick="checkWebviewLink(this, event)" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'>
212 </#if>
213 <#else>
214 <#if isDownload >
215 <a class="c-promo-banner__button button ${styleButton?has_content?then(styleButton, 'variant-contained')} color-blue c-promo-banner__button--lonely analytics_interaccion_boton" href="${downloadable.getData()}" onclick="checkWebviewLink(this, event)" target="_blank" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'>
216 <#else>
217 <a target="${linkTarget}" class="c-promo-banner__button button ${styleButton?has_content?then(styleButton, 'variant-contained')} color-blue c-promo-banner__button--lonely analytics_interaccion_boton" href="${buttonLink.getData()}" onclick="checkWebviewLink(this, event)" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'>
218 </#if>
219 </#if>
220 <span class="button__text">${buttonText.getData()}</span>
221 </a><#-- Este código no está correctamente indentado porque se ha compactado intencionadamente de esta forma para evitar saltos de línea que generan espacios en blanco en el HTML renderizado. --></#if><#if
222 secondaryButtonText?? && secondaryButtonText.getData()?has_content && secondaryButtonText.getData()!=''
223 ><#if
224 cardTitle?? && cardTitle.getData()?has_content && cardTitle.getData()!='' || cardSubtitle?? && cardSubtitle.getData()?has_content && cardSubtitle.getData()!=''
225 ><#if
226 secondaryButtonTextIsDownload?? && secondaryButtonTextIsDownload.getData()?? && secondaryIsDownload
227 ><a
228 class="c-promo-banner__button button ${secondaryStyleButton?has_content?then(secondaryStyleButton, 'variant-contained')} color-blue analytics_interaccion_boton" href="${secondaryDownloadable.getData()}" onclick="checkWebviewLink(this, event)" target="_blank" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'
229 ><#else><a
230 target="${linkTarget}" class="c-promo-banner__button button ${secondaryStyleButton?has_content?then(secondaryStyleButton, 'variant-contained')} color-blue analytics_interaccion_boton" href="${secondaryButtonLink.getData()}" onclick="checkWebviewLink(this, event)" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'
231 ></#if><#else><#if
232 secondaryIsDownload
233 ><a
234 class="c-promo-banner__button button ${secondaryStyleButton?has_content?then(secondaryStyleButton, 'variant-contained')} color-blue c-promo-banner__button--lonely analytics_interaccion_boton" href="${secondaryDownloadable.getData()}" onclick="checkWebviewLink(this, event)" target="_blank" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'
235 ><#else><a
236 target="${linkTarget}" class="c-promo-banner__button button ${secondaryStyleButton?has_content?then(secondaryStyleButton, 'variant-contained')} color-blue c-promo-banner__button--lonely analytics_interaccion_boton" href="${secondaryButtonLink.getData()}" onclick="checkWebviewLink(this, event)" style="opacity: 1;" data-custom-properties='${customAnalyticsProperties}'
237 >
238 </#if>
239 </#if>
240 <span class="button__text">${secondaryButtonText.getData()}</span>
241 </a>
242 </#if>
243 <#if smallText?? && smallText.getData()?has_content && smallText.getData()!=''>
244 <p class="c-promo-banner__small-text">
245 ${smallText.getData()}
246 </p>
247 </#if>
248 </div>
249 </div>
250 </div>
251 </#list>
252 </#if>
253 </div>
254</div>