UEFA Champions League - DGO
حصل خطأ عند معالجة القالب.
The following has evaluated to null or missing: ==> Countdown.countdownDate [in template "20101#20128#248131" at line 16, column 41] ---- 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: #if Countdown?? && validator.isNotNul... [in template "20101#20128#248131" at line 16, column 1] ----
1<#function substituirCaminhoCDN(caminho)>
2 <#assign indice = caminho?last_index_of("/documents") + 1>
3 <#assign novoCaminho = caminho?substring(indice)>
4
5 <#return themeDisplay.getCDNBaseURL() + "/" + novoCaminho>
6</#function>
7
8<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
9<#assign themeDisplay = serviceContext.getThemeDisplay() />
10<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
11
12<#-- has countdown -->
13<#assign
14 hasCountDown = 'false'
15/>
16<#if Countdown?? && validator.isNotNull(Countdown.countdownDate.getData())>
17 <#assign hasCountDown = 'true' />
18</#if>
19
20<style>
21 .hero__buttons.buttons_active {
22 display: block;
23 }
24 .content_subtitle {
25 margin-bottom: 23px;
26 margin-top: 23px;
27 }
28
29 .dtv-landing-title {
30 font-weight: bold;
31 }
32
33 .hero .hero__content .button__cup_orange {
34 max-width: 350px;
35 width: 100%;
36 border-radius: 25px;
37 }
38
39 .dtvgo .button__cup_orange {
40 background: #fff !important;
41 color: #101010 !important;
42 }
43
44 .banner_img{
45 background-image: url(${substituirCaminhoCDN(BackgroundImage.Image51x0.getData())});
46 background-repeat: ${BackgroundImage.BackgroundRepeat.getData()};
47 background-position: ${BackgroundImage.BackgroundPosition1.getData()} ${BackgroundImage.BackgroundPosition2.getData()};
48 }
49
50 @media (min-width: 971px){
51 .banner #hero_main_dtv {
52 background-repeat: no-repeat !important;
53 background-position: center 18px !important;
54 background-size: contain !important;
55 }
56 }
57
58 @media (max-width: 438px)
59 {
60 .hero .hero__content .hero__title h1 {
61 font-size: 40px;
62 }
63 }
64
65 @media (max-width: 361px)
66 {
67 .hero .hero__content .hero__title h1 {
68 font-size: 30px;
69 line-height: 36px;
70 }
71 }
72
73 <#if hasCountDown == 'true'>
74 /*countdown*/
75 .countdown-section {
76 background-color: #077CC0;
77 position: absolute;
78 left: 0;
79 top: 16px;
80 z-index: 20;
81 width: 100%;
82 }
83
84 .text-center {
85 text-align: center;
86 }
87
88 .counter-div {
89 display: flex;
90 flex-direction: row;
91 gap: 4px;
92 justify-content: center;
93 font-size: 0.65rem;
94 color: #101010;
95 font-family: "Poppins",sans-serif;
96 font-weight: 600;
97 }
98
99 .counter-element {
100 width: fit-content;
101 display: contents;
102 flex-direction: column;
103 }
104
105 .number-div {
106 padding: 12px 0;
107 }
108
109 .element-text {
110 padding: 12px 0;
111 margin: 0;
112 font-weight: 600!important;
113 }
114
115 .counter-animate {
116 animation: slideInFromTop 0.5s ease-in-out;
117 }
118
119 .show {
120 opacity: 1;
121 }
122
123 @media screen and (min-width: 350px) {
124 .counter-div {
125 font-size: 0.75rem;
126 }
127 }
128
129 @media screen and (max-width: 600px) {
130 .counter-div {
131 gap: 5px;
132 }
133
134 .et-desktop {
135 display: none;
136 }
137 }
138
139 @media screen and (min-width: 601px) {
140 .et-mobile {
141 display: none;
142 }
143 }
144
145 @media screen and (max-width: 970px) {
146 .countdown-section {
147 top: 16px;
148 }
149 }
150
151 @media screen and (min-width: 1080px) {
152 .countdown-section {
153 top: 18px;
154 }
155 }
156
157 @keyframes slideInFromTop {
158 from {
159 transform: translateY(-80%);
160 opacity: 0;
161 }
162
163 to {
164 transform: translateY(0%);
165 opacity: 1;
166 }
167 </#if>
168</style>
169
170<#if (MobileBackgroundImage.Image3vvy.getData())?? && MobileBackgroundImage.Image3vvy.getData() != "">
171 <style>
172 @media (max-width: 767px) {
173 .banner_img {
174 background-image: url(${substituirCaminhoCDN(MobileBackgroundImage.Image3vvy.getData())});
175 background-size: contain;
176 }
177 }
178 </style>
179 <#else>
180 <style>
181 @media (max-width: 767px) {
182 .banner_img {
183 background-image: url('');
184 }
185 }
186 </style>
187</#if>
188
189<#assign notShowContent = 'false' />
190
191<#if currentUrl?contains('/br/') && currentUrl?contains('/inicio')>
192 <#assign notShowContent = 'true' />
193</#if>
194
195<#-- countdown GMT rules ->
196<#-- for AR, UY, BR -->
197<#assign GMT = '-0300' />
198
199<#if currentUrl?contains('/co/') || currentUrl?contains('/ec/') || currentUrl?contains('/pe/')>
200 <#assign GMT = '-0500' />
201<#elseif currentUrl?contains('/cl/')>
202 <#assign GMT = '-0400' />
203</#if>
204
205<div class="banner hero">
206 <#if hasCountDown == 'true'>
207 <!-- countdown -->
208 <section class="countdown-section" style="display:none">
209 <div class="text-center">
210 <div id="countDiv" class="counter-div">
211 <p class="element-text">Gran Hermano empieza en</p>
212 <div class="counter-element">
213 <div class="number-div">
214 <div class="days"></div>
215 </div>
216 <p class="element-text">dias,</p>
217 </div>
218 <div class="counter-element">
219 <div class="number-div">
220 <div class="hours"></div>
221 </div>
222 <p class="element-text">horas,</p>
223 </div>
224 <div class="counter-element">
225 <div class="number-div">
226 <div class="minutes"></div>
227 </div>
228 <p class="element-text et-mobile">min. y</p>
229 <p class="element-text et-desktop">minutos y</p>
230 </div>
231 <div class="counter-element">
232 <div class="number-div">
233 <div class="seconds"></div>
234 </div>
235 <p class="element-text et-mobile">seg.</p>
236 <p class="element-text et-desktop">segundos!</p>
237 </div>
238 </div>
239 </div>
240 </section>
241 <!-- //countdown -->
242 </#if>
243
244 <div id="hero_main_dtv" class="banner_img" data-image="${substituirCaminhoCDN(BackgroundImage.Image51x0.getData())}">
245 <div class="hero__content">
246
247 <div class="hero__box content--${GeneralConfiguration.TextBoxPosition.getData()}">
248 <div class="hero__title">
249 <h1 class="h1 ${Texts.TitleSubtitle.Title.TitleColor.getData()}">
250 ${Texts.TitleSubtitle.Title.TitleText.getData()}
251 </h1>
252 <h2 class="h4 ${Texts.TitleSubtitle.Subtitle.SubtitleColor.getData()}">
253 ${Texts.TitleSubtitle.Subtitle.SubtitleText.getData()}
254 </h2>
255 </div>
256
257 <div class="hero__block">
258
259 <#if TextPlans.PlanName.getSiblings()?has_content>
260 <#list TextPlans.PlanName.getSiblings() as cur_TextPlans_PlanName>
261 <p class="text-color-white"><span class="text-color-blue-light">${cur_TextPlans_PlanName.getData()}</span> ${cur_TextPlans_PlanName.PlanDescription.getData()}</p>
262 </#list>
263 </#if>
264
265 </div>
266
267 <div class="hero__buttons">
268 <#if Buttons.LinkToPageb2xm.getSiblings()?has_content>
269 <#list Buttons.LinkToPageb2xm.getSiblings() as cur_Buttons_LinkToPageb2xm>
270 <#assign buttonLink = cur_Buttons_LinkToPageb2xm.getFriendlyUrl()>
271
272 <#if cur_Buttons_LinkToPageb2xm.RedirectURL.getData() != ''>
273 <#assign buttonLink = cur_Buttons_LinkToPageb2xm.RedirectURL.getData()>
274 </#if>
275
276 <#-- sky+ conditions -->
277 <#if notShowContent == 'true'>
278 <#if buttonLink?contains('cadastrar')>
279 <#assign buttonLink = 'https://www.skymais.com.br/cadastrar'>
280 </#if>
281 <#if buttonLink?contains('acessar')>
282 <#assign buttonLink = 'https://www.skymais.com.br/acessar'>
283 </#if>
284 </#if>
285
286 <a class="button ${cur_Buttons_LinkToPageb2xm.ButtonColorBackground.getData()}" href="${buttonLink}">
287 ${cur_Buttons_LinkToPageb2xm.TextLink.getData()}
288 </a>
289 </#list>
290 </#if>
291 </div>
292
293 </div>
294
295 <div class="hero__icon">
296 <#-- sky+ conditions -->
297 <#if notShowContent == 'false'>
298 <a href="#planes">
299 <span class="bi bi-chevron-down chevron">
300 <#if (iconDown.getData())?? && iconDown.getData() != "">
301 <img id="chevronDown" alt="${iconDown.getAttribute("alt")}" data-fileentryid="${iconDown.getAttribute("fileEntryId")}" src="${substituirCaminhoCDN(iconDown.getData())}" />
302 </#if>
303 </span>
304 </a>
305 </#if>
306 </div>
307 </div>
308 </div>
309 </div>
310
311<script>
312 $(".hero__content .hero__buttons a").on( "click", function() {
313 idElement = "Button-" + $( this ).text().replace(/[\r\n]/gm, '').replaceAll(" ", "-").trim();
314 handleAddBannerHomeGTM(idElement, userGTM, sessionGTM)
315
316 if ($(this).is(":last-child") && location.pathname.includes(pageHome)) {
317 let dataLayer = {
318 "event": "interactions",
319 "eventParams": {
320 'section': 'home',
321 'v_category': 'login:login',
322 'v_action': 'navigation',
323 'v_label': 'enter-login',
324 'v_client_id': 'not logged',
325 'v_language': 'es',
326 'v_app_name': 'dgo-web',
327 'hash': 'e-010.011.001.000.000.052'
328 }
329 }
330 window.dataLayer.push(dataLayer);
331 }
332 });
333
334
335 $('.hero__icon a').on('click', function(event) {
336 event.preventDefault();
337 if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
338 || location.hostname == this.hostname) {
339
340 var target = $(this.hash);
341
342 target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
343 if (target.length) {
344 $('html,body').animate({
345 scrollTop: target.offset().top - 100
346 }, 1000);
347 return false;
348 }
349 }
350 });
351
352 if(userLanguage === "AR"){
353 var __clientId = "";
354 (function() {
355 try {
356 ga(function(tracker) {
357 __clientId = tracker.get('clientId')
358 var click = $._data($(document)[0], 'events').click.filter(function(click) {
359 return click.selector === ".plan__action .button__primary"
360 })[0]
361 click.handler = new Function('return ' + click.handler.toString().replace("location.href = directvar_gobasicocombo;", "location.href = directvar_gobasicocombo + '?' + __clientId;").replace("location.href = directvar_gofullcombo;", "location.href = directvar_gofullcombo + '?' + __clientId;"))()
362 })
363 } catch (e) {}
364 })()
365 }
366
367 <#if hasCountDown == 'true'>
368 /*countdown*/
369 function countDownDGO(endtime) {
370 "use strict";
371
372 var timeTotal = Date.parse(endtime) - Date.now(),
373 timeSeconds = Math.floor((timeTotal / 1000) % 60),
374 timeMinutes = Math.floor((timeTotal / 1000 / 60) % 60),
375 timeHours = Math.floor((timeTotal / (1000 * 60 * 60)) % 24),
376 timeDays = Math.floor(timeTotal / (1000 * 60 * 60 * 24));
377
378 return {
379 total: timeTotal,
380 seconds: timeSeconds,
381 minutes: timeMinutes,
382 hours: timeHours,
383 days: timeDays
384 };
385 }
386
387 function animateCounter(selector, targetValue) {
388 var $element = $(selector);
389 var currentValue = parseInt($element.text(), 10);
390
391 if (currentValue === targetValue) {
392 return;
393 }
394
395 $element.addClass("counter-animate");
396 $element.text(targetValue);
397
398 setTimeout(function () {
399 $element.addClass("show");
400 }, 10);
401
402 setTimeout(function () {
403 $element.removeClass("counter-animate show");
404 }, 500);
405 }
406
407 function startCalc(endtime) {
408 var timeTotal = countDownDGO(endtime);
409
410 animateCounter(".days", timeTotal.days);
411 animateCounter(".hours", timeTotal.hours);
412 animateCounter(".minutes", timeTotal.minutes);
413 animateCounter(".seconds", timeTotal.seconds);
414
415 if (timeTotal.total <= 0) {
416 clearInterval(timingNow);
417 document.querySelector('.countdown-section').style.display = 'none';
418 } else if (window.getComputedStyle(document.querySelector('.countdown-section')).getPropertyValue('display') == 'none') {
419 document.querySelector('.countdown-section').removeAttribute('style');
420 }
421 }
422
423 var DeadLine = new Date("${Countdown.countdownDate.getData()} 22:30:00");
424
425 const timingNow = setInterval(function () {
426 startCalc(DeadLine);
427 }, 1000);
428 </#if>
429</script>