Title Top HTML Halloween Zone
Eίσαι αρκετά γενναίος για να εξερευνήσεις
τις πιο spooky προσφορές;
τις πιο spooky προσφορές;
Εκδότης Αντικειμένων
Ένα σφάλμα εμφανίστηκε κατά την επεξεργασία του προτύπου.
The following has evaluated to null or missing: ==> offerArray[2] [in template "20116#20152#720355" at line 473, column 21] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to be 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 offerDay = offerArray[2]?number [in template "20116#20152#720355" at line 473, column 1] ----
1<style>
2
3
4.landing-paddings-home{
5 padding-left: 0;
6 padding-right: 0;
7}
8
9.landing-paddings{
10 padding-left: 0;
11 padding-right: 0;
12}
13 .taglib-social-bookmarks{
14 display: none;
15 }
16
17 .portlet-asset-publisher .portlet-title-text,
18 .portlet-asset-publisher .header-title,
19 .portlet-asset-publisher .h2 {
20 display: none;
21 }
22
23 .date_old{
24 filter: grayscale(1);
25 background-color: #545454 !important;
26 }
27 .img-container .url_old {
28 filter: grayscale(1);
29 background: transparent !important;
30 pointer-events: none;
31 cursor: default;
32 }
33
34
35 .old {
36 filter: grayscale(100%);
37 border-color: #545454 !important;
38 }
39
40 .old:after {
41 background: none;
42 background: none;
43 background: none;
44 filter: none;
45 }
46
47 .img-container .ribbon_old:before,
48 .img-container .ribbon_old:after{
49 filter: grayscale(1);
50 }
51
52 .img-container .external-urlOld {
53 padding: 5px 30px;
54 font-size: 18px;
55 display: block;
56 }
57
58
59
60 .img-container {
61 position: relative;
62 overflow: hidden;
63 width: 100%;
64 height: 470px;
65 background-position: center !important;
66 background-repeat: no-repeat !important;
67 font-family: 'SourceSansPro';
68 border-width: 4px;
69 border-color: rgb(201, 12, 18);
70 border-style: solid;
71 border-radius: 14px;
72 overflow: visible;
73 }
74
75 .img-container:after {
76 content:'';
77 position:absolute;
78 border-bottom-left-radius: 10px;
79 border-bottom-right-radius: 10px;
80 left:0;
81 top:0;
82 width:100%;
83 height:100%;
84 display:inline-block;
85 background: rgb(204,4,4);
86 background: -moz-linear-gradient(0deg, rgba(204,4,4,1) 0%, rgba(188,72,72,0) 100%);
87 background: -webkit-linear-gradient(0deg, rgba(204,4,4,1) 0%, rgba(188,72,72,0) 100%);
88 background: linear-gradient(0deg, rgba(204,4,4,1) 0%, rgba(188,72,72,0) 100%);
89 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#cc0404",endColorstr="#bc4848",GradientType=1);
90 }
91
92 .img-container .date-text {
93 font-family: 'SourceSansPro';
94 padding: 8px;
95 position: absolute;
96 z-index: 1;
97 top: -4px;
98 background: #c50016;
99 left: 50px;
100 text-align: center;
101 width: 70px;
102 height: 80px;
103 color: #fff;
104 font-weight: bold;
105 border-bottom-left-radius: 2px;
106 border-bottom-right-radius: 2px;
107 -webkit-box-shadow: 1px 1px 1px 1px rgb(0 0 0 / 20%);
108 -moz-box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.2);
109 box-shadow: 1px 1px 1px 1px rgb(0 0 0 / 20%);
110 font-size: 14px;
111 text-shadow: 2px 2px rgb(0 0 0 / 20%);
112 }
113
114 .img-container .date-text .date-div {
115 font-size: 36px;
116 margin: -25% 0 -24% 0;
117 }
118
119 .img-container .offer-title {
120 font-family: 'SourceSansPro';
121 position: absolute;
122 top: 42%;
123 left: 50%;
124 border-radius: 5px;
125 -webkit-transform: translate(-50%, -40%);
126 -moz-transform: translate(-50%, -40%);
127 -ms-transform: translate(-50%, -40%);
128 -o-transform: translate(-50%, -40%);
129 transform: translate(-50%, -40%);
130 color: #fff;
131 font-weight: normal;
132 font-size: 48px;
133 z-index: 1;
134 width: fit-content;
135 width: 80%;
136 line-height: 1;
137 font-weight: bold;
138 padding: 5px 10px;
139 text-align: center;
140 text-shadow: 3px 2px black;
141 display: -webkit-box;
142 -webkit-line-clamp: 2;
143 line-clamp: 2;
144 -webkit-box-orient: vertical;
145 overflow: hidden;
146 text-overflow: ellipsis;
147 }
148
149 .img-container .offer-description {
150 font-family: 'SourceSansPro';
151 color: #fff;
152 font-weight: normal;
153 font-size: 30px;
154 z-index: 1;
155 max-width: 80%;
156 text-align: center;
157 text-shadow: 2px 2px rgb(0 0 0);
158 line-height: 32px;
159 margin: 0 auto 35px;
160 display: -webkit-box;
161 -webkit-line-clamp: 3;
162 line-clamp: 3;
163 -webkit-box-orient: vertical;
164 overflow: hidden;
165 text-overflow: ellipsis;
166 }
167
168 .img-container .desc-url-container {
169 position: absolute;
170 bottom: 30px;
171 left: 50%;
172 -webkit-transform: translateX(-50%);
173 -moz-transform: translateX(-50%);
174 -ms-transform: translateX(-50%);
175 -o-transform: translateX(-50%);
176 transform: translateX(-50%);
177 z-index: 1;
178 width: 100%;
179 text-align: center;
180 padding: 10px 0;
181 }
182
183
184 .img-container .external-url {
185 padding: 6px 36px;
186 border: 2px solid rgb(40, 167, 69);
187 z-index: 1;
188 color: #fff !important;
189 text-decoration: none !important;
190 font-family: 'SourceSansPro';
191 font-weight: bold;
192 font-size: 30px;
193 border-radius: 7px;
194 box-shadow: 1px 1px 2px black;
195 border-radius: 50px;
196 background-color: rgb(40, 167, 69);
197 }
198
199 .terms-container {
200 overflow: hidden;
201 margin-top: 15px;
202 color: #fff;
203 background-color: rgba(0,0,0,.6);
204 padding: 40px;
205 margin-bottom: 32px;
206 }
207
208 .terms-container .terms-title {
209 text-align: center;
210 font-weight: bold;
211 font-size: 32px;
212 margin-bottom: 40px;
213 }
214
215 .terms-container .terms-content {
216 overflow-y: auto;
217 max-height: 500px;
218 padding-right: 16px;
219 font-weight: 400;
220 line-height: 37px;
221 font-size: 20px;
222}
223
224
225 .terms-container ::-webkit-scrollbar {
226 width: 22px;
227 scrollbar-width: auto;
228 scrollbar-color: #000000 #ffffff;
229 }
230
231 /* Track */
232 .terms-container ::-webkit-scrollbar-track {
233 -webkit-box-shadow: inset 0 0 6px rgba(255,255,255,0.8);
234 border-radius: 10px;
235 background: #ffffff;
236 }
237
238 /* Handle */
239 .terms-container ::-webkit-scrollbar-thumb {
240 -webkit-border-radius: 10px;
241 border-radius: 10px;
242 background: rgba(0,2,16,1);
243 border: 4px solid #ffffff;
244 }
245
246 .terms-container ::-webkit-scrollbar-thumb:window-inactive {
247 background: rgba(0,2,16,1);
248 }
249
250 .terms-container .terms-content{
251 scrollbar-width: thin;
252 scrollbar-color: rgba(0,2,16,1) rgba(255,255,255,0.8);
253 }
254
255 .terms-container .read-more,
256 .show-more-terms{
257 display: none;
258 }
259
260 .back-link-row {
261 margin: 30px 0px 15px 35px;
262 }
263
264 .back-link-row a {
265 color: white;
266 text-shadow: 2px 2px 4px black !important;
267 font-weight: 400 !important;
268 }
269
270 .back-link-row a:hover {
271 color: #eb2627 !important;
272 }
273
274 .back-link-row a span {
275 margin-right: 5px;
276 font-size: 11px;
277 }
278
279 .img-container .corner-ribbon-image {
280 position: absolute;
281 z-index: 1;
282 top: -4px;
283 right: -4px;
284 }
285
286 abbr {
287 text-decoration: none !important;
288 border: none !important;
289 }
290
291 @media screen and (max-width: 1380px) {
292
293 .img-container .offer-title {
294 font-size: 36px;
295 }
296
297 .img-container .offer-description {
298 font-size: 25px;
299 }
300 }
301
302 // @media screen and (max-width: 1200px) {
303 // .back-link-row {
304 // margin: 20px 0px 15px 32px;
305 // }
306 // }
307
308 @media screen and (max-width: 767px) {
309 .back-link-row {
310 margin: 5px 0px 10px 5px;
311 }
312
313 .terms-container .terms-content {
314 line-height: 20px;
315 font-size: 16px;
316 }
317
318 .landing-paddings{
319 padding-left: 20px;
320 padding-right: 20px;
321 }
322
323 .img-container{
324 height: 370px;
325 border-width: 4px;
326 border-color: rgb(201, 12, 18);
327 border-style: solid;
328 border-radius: 14px;
329 }
330
331 .img-container:after {
332 background: none;
333 background: none;
334 background: none;
335 background: none;
336 filter: none;
337 }
338
339 .img-container .date-text {
340 padding: 2px 10px;
341 left: 15px;
342 font-size: 14px;
343 width: 75px;
344 height: 75px;
345 }
346
347 .img-container .date-text .date-div {
348 font-size: 36px;
349 margin: -20%
350 }
351
352 .img-container .offer-title {
353 font-size: 30px;
354 top: 23%;
355 width: 95%;
356 left: 15px;
357 -webkit-transform: none;
358 -moz-transform: none;
359 -ms-transform: none;
360 -o-transform: none;
361 transform: none;
362 text-align: left;
363 padding: 0;
364 display: -webkit-box;
365 -webkit-line-clamp: 4;
366 line-clamp: 4;
367 -webkit-box-orient: vertical;
368 overflow: hidden;
369 text-overflow: ellipsis;
370 }
371
372 .img-container .desc-url-container {
373 bottom: 0;
374 padding: 15px;
375 background: rgb(187, 30, 44);
376 width: 100.5%;
377 border-bottom-left-radius: 10px;
378 border-bottom-right-radius: 10px;
379 }
380
381 .img-container .offer-description {
382 font-size: 16px;
383 width: 100%;
384 margin: auto auto 15px auto;
385 max-width: 100%;
386 text-align: left;
387 line-height: 20px;
388 }
389
390 .img-container .external-url {
391 padding: 3px 30px;
392 font-size: 18px;
393 display: block;
394 border-radius: 12px;
395 }
396
397
398 .terms-container {
399 padding: 10px 15px;
400 margin-bottom: 35px;
401 margin-top: 5px;
402 }
403
404 .terms-container .terms-title {
405 text-align: left;
406 font-size: 18px;
407 margin-bottom: 20px;
408 padding-left: 9px;
409 }
410
411 .terms-container .terms-content {
412 overflow: hidden;
413 position: relative;
414 max-height: 246px;
415 padding-right: 0px;
416 -webkit-mask-image: -webkit-gradient(linear, left 50%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
417 -webkit-transition: all 0.3s ease-in;
418 -moz-transition: all 0.3s ease-in;
419 -o-transition: all 0.3s ease-in;
420 transition: all 0.3s ease-in;
421 }
422
423 .terms-content ol {
424 padding-left: 30px;
425 }
426
427 .terms-content li {
428 padding-left: 5px;
429 }
430
431 .terms-content b, strong {
432 overflow-wrap: break-word;
433 }
434
435 .show-more-terms {
436 display: block;
437 text-align: center;
438 padding: 1px 0;
439 border: 1px solid #fff;
440 margin: 15px 9px;
441 cursor: pointer;
442 border-radius: 5px;
443 font-weight: 400;
444 }
445 }
446
447</style>
448
449<#assign curLangId = themeDisplay.getLanguageId()>
450<#assign twoLettersLang = curLangId?split("_")[0]>
451<#assign backText = "Back to Home (Calendar)"/>
452<#assign externalUrlText = "CLICK HERE"/>
453<#assign termsTitle = "TERMS & CONDITIONS"/>
454<#assign termsButtonText = "SHOW ALL TERMS"/>
455<#if twoLettersLang = "el">
456 <#assign backText = "Επιστροφή στην Αρχική (Ημερολόγιο)"/>
457 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
458 <#assign termsTitle = "ΟΡΟΙ ΚΑΙ ΠΡΟΫΠΟΘΕΣΕΙΣ"/>
459 <#assign termsButtonText = "ΔΕΙΤΕ ΠΕΡΙΣΣΟΤΕΡΑ"/>
460</#if>
461
462<#assign aDateTime = .now>
463<#assign aDate = aDateTime?date?iso_local>
464<#assign dateFormat1 = "EEE"/>
465<#assign dateFormat1Full = "EEEEE"/>
466<#assign dateFormat2 = "dd" />
467<#assign dateFormat3 = "MMM" />
468<#assign dateFormat3Full = "MMMMM" />
469<#assign offerDate_Data = getterUtil.getString(offerDate.getData())>
470<#assign offerDay = offerDate_Data />
471<#assign todayDay = aDate />
472<#assign offerArray = offerDate_Data?split("-") />
473<#assign offerDay = offerArray[2]?number />
474<#assign offerMonth = offerArray[1]?number />
475<#assign offerYear = offerArray[0]?number />
476<#assign currentArray = aDate?split("-") />
477<#assign todayDay = currentArray[2]?number />
478<#assign todayMonth = currentArray[1]?number />
479<#assign todayYear = currentArray[0]?number />
480
481<div class="container-fluid-1280 landing-paddings-home">
482 <div class="row">
483 <div class="col-sm-12 back-link-row">
484 <a href="/easter-egg-hunt"><span class="glyphicon glyphicon-chevron-left"></span>${backText}</a>
485 </div>
486 </div>
487 <#if (offerYear > todayYear)>
488 <#assign containerClass = "img-container" />
489 <#assign dateClass = "date-text" />
490 <#assign externalClass = "external-url" />
491 <#assign ribbonClass = "corner-ribbon-image" />
492 <#if twoLettersLang = "el">
493 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
494 <#else>
495 <#assign externalUrlText = "CLICK HERE"/>
496 </#if>
497 <#elseif offerYear == todayYear>
498 <#if (offerMonth > todayMonth)>
499 <#assign containerClass = "img-container" />
500 <#assign dateClass = "date-text" />
501 <#assign externalClass = "external-url" />
502 <#assign ribbonClass = "corner-ribbon-image" />
503 <#if twoLettersLang = "el">
504 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
505 <#else>
506 <#assign externalUrlText = "CLICK HERE"/>
507 </#if>
508 <#elseif offerMonth == todayMonth>
509 <#if offerDay < todayDay>
510 <#assign containerClass = "img-container old" />
511 <#assign dateClass = "date-text date_old" />
512 <#assign externalClass = "external-url url_old" />
513 <#assign ribbonClass = "corner-ribbon-image ribbon_old" />
514 <#if twoLettersLang = "el">
515 <#assign externalUrlText = "ΕΛΗΞΕ"/>
516 <#else>
517 <#assign externalUrlText = "EXPIRED"/>
518 </#if>
519 <#else>
520 <#assign containerClass = "img-container" />
521 <#assign dateClass = "date-text" />
522 <#assign externalClass = "external-url" />
523 <#assign ribbonClass = "corner-ribbon-image" />
524 <#if twoLettersLang = "el">
525 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
526 <#else>
527 <#assign externalUrlText = "CLICK HERE"/>
528 </#if>
529 </#if>
530 <#else>
531 <#assign containerClass = "img-container old" />
532 <#assign dateClass = "date-text date_old" />
533 <#assign externalClass = "external-url url_old" />
534 <#assign ribbonClass = "corner-ribbon-image ribbon_old" />
535 <#if twoLettersLang = "el">
536 <#assign externalUrlText = "ΕΛΗΞΕ"/>
537 <#else>
538 <#assign externalUrlText = "EXPIRED"/>
539 </#if>
540 </#if>
541 <#else>
542 <#assign containerClass = "img-container old" />
543 <#assign dateClass = "date-text date_old" />
544 <#assign externalClass = "external-url url_old" />
545 <#assign ribbonClass = "corner-ribbon-image ribbon_old" />
546 <#if twoLettersLang = "el">
547 <#assign externalUrlText = "ΕΛΗΞΕ"/>
548 <#else>
549 <#assign externalUrlText = "EXPIRED"/>
550 </#if>
551 </#if>
552 <div class="row">
553 <div class="col-sm-12 landing-paddings">
554 <div class="${containerClass}" style="background: url('${landingPageImage.getData()}')">
555 <div class="${dateClass}">
556 <#if validator.isNotNull(offerDate_Data)>
557 <#assign offerDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", offerDate_Data, locale)>
558
559 <div class="day-div"><abbr title="${dateUtil.getDate(offerDate_DateObj, dateFormat1Full, locale)}">${dateUtil.getDate(offerDate_DateObj, dateFormat1, locale)}</abbr></div>
560 <div class="date-div">${dateUtil.getDate(offerDate_DateObj, dateFormat2, locale)}</div>
561 <div class="month-div"><abbr title="${dateUtil.getDate(offerDate_DateObj, dateFormat3Full, locale)}">${dateUtil.getDate(offerDate_DateObj, dateFormat3, locale)}</abbr></div>
562 </#if>
563 </div>
564 <div class="offer-title">${offerTitle.getData()}</div>
565 <div class="desc-url-container">
566 <div class="offer-description">${offerDescription.getData()}</div>
567 <a href="#" class="${externalClass}" target="_self">${externalUrlText}</a>
568 </div>
569 </div>
570 <div class="terms-container" id="terms-container">
571 <div class="terms-title">${termsTitle}</div>
572 <div class="terms-content">
573 ${offerTerms.getData()}
574 </div>
575 <div class="show-more-terms">${termsButtonText}</div>
576 </div>
577 </div>
578 </div>
579</div>
580
581<script>
582 $(document).on('click', '.show-more-terms', function() {
583 $('.terms-content').css('-webkit-mask-image', 'unset');
584 $('.terms-content').css('max-height', '9999px');
585 $(this).hide();
586 })
587
588 $(document).on('click', '.external-url', function(e) {
589 e.preventDefault();
590 if (window.outerWidth >= 768) {
591 window.location = '${offerURL.getData()}';
592 }
593 else {
594 if ('${offerURLMobile.getData()}' !== '') {
595 window.location = '${offerURLMobile.getData()}';
596 }
597 else {
598 window.location = '${offerURL.getData()}';
599 }
600 }
601 })
602</script>