Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing: ==> offerURLMobile [in template "20116#20152#553462" at line 432, column 20] ---- 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: ${offerURLMobile.getData()} [in template "20116#20152#553462" at line 432, column 18] ----
1<style>
2 .taglib-social-bookmarks{
3 display: none;
4 }
5
6 .portlet-asset-publisher .portlet-title-text,
7 .portlet-asset-publisher .header-title,
8 .portlet-asset-publisher .h2 {
9 display: none;
10 }
11
12 .img-container {
13 position: relative;
14 overflow: hidden;
15 width: 100%;
16 height: 400px;
17 background-position: right !important;
18 background-repeat: no-repeat !important;
19 font-family: 'OPAPExt';
20 }
21
22 .img-container:after {
23 content:'';
24 position:absolute;
25 left:0;
26 top:0;
27 width:100%;
28 height:100%;
29 display:inline-block;
30 background: -moz-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(194, 1, 22, 0.8) 110%); /* FF3.6+ */
31 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(194, 1, 22, 0.8)) color-stop(110%,transparent)); /* Chrome,Safari4+ */
32 background: -o-linear-gradient(top, rgba(0,0,0,0.1) 0%,rgba(194, 1, 22, 0.8) 110%); /* Opera 11.10+ */
33 background: -ms-linear-gradient(top, rgba(0,0,0,0.1) 0%,rgba(194, 1, 22, 0.8) 110%); /* IE10+ */
34 background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(194, 1, 22, 0.8) 110%); /* W3C */
35 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#be1622', endColorstr='#00000000',GradientType=0 ); /* IE6-9 */
36 }
37
38 .img-container .corner-ribbon {
39 width: 15%;
40 background: #ffbc5d;
41 color: #ffbc5d;
42 position: absolute;
43 top: 25px;
44 line-height: 32px;
45 right: -6px;
46 -ms-transform: rotate(45deg);
47 -webkit-transform: rotate(45deg);
48 transform: rotate(45deg);
49 z-index: 1;
50 }
51
52 .img-container .corner-ribbon:before,
53 .img-container .corner-ribbon:after {
54 content: '';
55 position: absolute;
56 top:0;
57 margin: 0 -1px; /* tweak */
58 width: 100%;
59 height: 100%;
60 background: #ffbc5d;
61 }
62
63 .img-container .corner-ribbon:before {
64 right:100%;
65 }
66
67 .img-container .corner-ribbon:after {
68 left:100%;
69 }
70
71 .img-container .external-url {
72 padding: 7px 35px;
73 border: 2px solid #1b9800;
74 background-color: #1b9800;
75 z-index: 1;
76 color: #fff !important;
77 text-decoration: none !important;
78 font-family: 'Futura Neu Bold';
79 font-size: 19px;
80 border-radius: 3px;
81 }
82
83 .img-container .date-text {
84 position: absolute;
85 z-index: 1;
86 top: 0;
87 background: #c50016;
88 left: 50px;
89 text-align: center;
90 width: 70px;
91 height: 70px;
92 color: #dbde71;
93 font-weight: bold;
94 border-bottom-left-radius: 2px;
95 border-bottom-right-radius: 2px;
96 -webkit-box-shadow: 1px 1px 1px 1px rgb(0 0 0 / 20%);
97 -moz-box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.2);
98 box-shadow: 1px 1px 1px 1px rgb(0 0 0 / 20%);
99 font-size: 16px;
100 text-shadow: 2px 2px rgb(0 0 0 / 20%);
101 }
102
103 .img-container .date-text .date-div {
104 font-size: 25px;
105 margin: -8%;
106 }
107
108 .img-container .offer-title {
109 font-family: 'OPAPExt';
110 position: absolute;
111 top: 33%;
112 left: 50%;
113 background: black;
114 border-radius: 5px;
115 -webkit-transform: skew(350deg, 0deg) translate(-50%, -40%);
116 -moz-transform: skew(350deg, 0deg) translate(-50%, -40%);
117 -ms-transform: skew(350deg, 0deg) translate(-50%, -40%);
118 -o-transform: skew(350deg, 0deg) translate(-50%, -40%);
119 transform: skew( 350deg, 0deg) translate(-50%, -40%);
120 color: #fff;
121 font-weight: bold;
122 font-size: 34px;
123 z-index: 1;
124 width: fit-content;
125 max-width: 65%;
126 padding: 5px 10px;
127 text-align: center;
128 text-shadow: 2px 2px rgb(0 0 0 / 20%);
129 -webkit-box-decoration-break: clone;
130 -o-box-decoration-break: clone;
131 box-decoration-break: clone;
132 }
133
134 .img-container .offer-description {
135 font-family: 'OPAPExt';
136 color: #fff;
137 font-weight: 500;
138 font-size: 21px;
139 z-index: 1;
140 width: 90%;
141 text-align: center;
142 text-shadow: 2px 2px rgb(0 0 0);
143 line-height: 1.1;
144 font-style: italic;
145 margin: 0 auto 30px;
146 display: -webkit-box;
147 -webkit-line-clamp: 4;
148 -webkit-box-orient: vertical;
149 overflow: hidden;
150 text-overflow: ellipsis;
151 }
152
153 .img-container .desc-url-container {
154 position: absolute;
155 bottom: 20px;
156 left: 50%;
157 -webkit-transform: translateX(-50%);
158 -moz-transform: translateX(-50%);
159 -ms-transform: translateX(-50%);
160 -o-transform: translateX(-50%);
161 transform: translateX(-50%);
162 z-index: 1;
163 width: 100%;
164 text-align: center;
165 padding: 10px 0;
166 }
167
168 .terms-container {
169 overflow: hidden;
170 margin-top: 20px;
171 color: #fff;
172 background-color: rgba(0,0,0,.6);
173 padding: 40px;
174 }
175
176 .terms-container .terms-title {
177 text-align: center;
178 font-weight: bold;
179 font-size: 21px;
180 margin-bottom: 40px;
181 }
182
183 .terms-container .terms-content {
184 overflow-y: auto;
185 max-height: 350px;
186 padding-right: 16px;
187 }
188
189 .terms-container ::-webkit-scrollbar {
190 width: 12px;
191 }
192
193 /* Track */
194 .terms-container ::-webkit-scrollbar-track {
195 -webkit-box-shadow: inset 0 0 6px rgba(255,255,255,0.8);
196 border-radius: 10px;
197 background: rgba(255,255,255,0.8);
198 }
199
200 /* Handle */
201 .terms-container ::-webkit-scrollbar-thumb {
202 -webkit-border-radius: 10px;
203 border-radius: 10px;
204 background: rgba(0,2,16,.9);
205
206 }
207 .terms-container ::-webkit-scrollbar-thumb:window-inactive {
208 background: rgba(0,2,16,.9);
209 }
210
211 .terms-container .terms-content{
212 scrollbar-width: thin;
213 scrollbar-color: rgba(0,2,16,.9) rgba(255,255,255,0.8);
214 }
215
216 .terms-container .read-more,
217 .show-more-terms{
218 display: none;
219 }
220
221 .back-link-row {
222 margin: 30px 0 15px;
223 }
224
225 .back-link-row a {
226 color: #fff;
227 text-shadow: 2px 2px rgb(0 0 0 / 30%);
228 }
229
230 .back-link-row a:hover {
231 color: #eb2627 !important;
232 }
233
234 .back-link-row a span {
235 margin-right: 5px;
236 }
237
238 .img-container .corner-ribbon-image {
239 position: absolute;
240 z-index: 1;
241 top: -4px;
242 right: -4px;
243 }
244
245 abbr {
246 text-decoration: none !important;
247 border: none !important;
248 }
249
250 @media screen and (max-width: 767px) {
251 .terms-container {
252 padding: 20px;
253 }
254
255 .terms-container .terms-title {
256 text-align: left;
257 font-size: 19px;
258 margin-bottom: 20px;
259 }
260
261 .terms-container .terms-content {
262 overflow: hidden;
263 position: relative;
264 max-height: 250px;
265 padding-right: 0px;
266 -webkit-mask-image: -webkit-gradient(linear, left 50%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
267 -webkit-transition: all 0.3s ease-in;
268 -moz-transition: all 0.3s ease-in;
269 -o-transition: all 0.3s ease-in;
270 transition: all 0.3s ease-in;
271 }
272
273 .show-more-terms {
274 display: block;
275 width: 100%;
276 text-align: center;
277 padding: 10px 0;
278 border: 1px solid #fff;
279 margin-top: 15px;
280 cursor: pointer;
281 border-radius: 5px;
282 }
283
284 .img-container{
285 border: 2px solid #c50016;
286 background-size: 200% 100% !important;
287 background-repeat: no-repeat !important;
288 }
289
290 .img-container:after {
291 background: -moz-linear-gradient(top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.9) 110%); /* FF3.6+ */
292 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.9)) color-stop(110%,transparent)); /* Chrome,Safari4+ */
293 background: -o-linear-gradient(top, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.9) 110%); /* Opera 11.10+ */
294 background: -ms-linear-gradient(top, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.9) 110%); /* IE10+ */
295 background: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.9) 110%); /* W3C */
296 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#00000000',GradientType=0 );
297 }
298
299 .img-container .date-text {
300 padding: 2px 10px;
301 left: 15px;
302 font-size: 14px;
303 }
304
305 .img-container .date-text .date-div {
306 font-size: 23px;
307 }
308
309 .img-container .offer-title {
310 font-size: 18px;
311 top: 22%;
312 line-height: 2.2;
313 max-width: 60%;
314 transform: skew(350deg, 0deg);
315 left: 2%;
316 text-align: left;
317 padding: 5px;
318 box-shadow: -55px 0px 0 0 black;
319 }
320
321 .img-container .desc-url-container {
322 bottom: 0;
323 padding: 15px;
324 background: #c50016;
325 width: 101%;
326 }
327
328 .img-container .offer-description {
329 font-size: 17px;
330 width: 100%;
331 margin: 0 0 20px;
332 }
333
334 .img-container .external-url {
335 padding: 5px 30px;
336 font-size: 16px;
337 display: block;
338 }
339
340 .img-container .corner-ribbon {
341 width: 20%;
342 line-height: 25px;
343 }
344
345 .img-container .corner-ribbon-image {
346 max-width: 90px !important;
347 }
348 }
349
350 @media screen and (max-width: 550px){
351 .img-container .offer-title {
352 max-width: 80%;
353 }
354 }
355
356 @media screen and (max-width: 350px){
357 .img-container .offer-title {
358 max-width: 90%;
359 }
360 }
361</style>
362
363<#assign curLangId = themeDisplay.getLanguageId()>
364<#assign twoLettersLang = curLangId?split("_")[0]>
365<#assign backText = "Back to Calendar"/>
366<#assign externalUrlText = "CLICK HERE"/>
367<#assign termsTitle = "Terms & Conditions"/>
368<#assign termsButtonText = "SEE MORE"/>
369<#if twoLettersLang = "el">
370 <#assign backText = "Επιστροφή στο Ημερολόγιο"/>
371 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
372 <#assign termsTitle = "Όροι και προϋποθέσεις"/>
373 <#assign termsButtonText = "ΔΕΙΤΕ ΠΕΡΙΣΣΟΤΕΡΑ"/>
374</#if>
375
376<#assign dateFormat1 = "EEE"/>
377<#assign dateFormat1Full = "EEEEE"/>
378<#assign dateFormat2 = "dd" />
379<#assign dateFormat3 = "MMM" />
380<#assign dateFormat3Full = "MMMMM" />
381<#assign offerDate_Data = getterUtil.getString(offerDate.getData())>
382
383<div class="container-fluid-1280">
384 <div class="row">
385 <div class="col-sm-12 back-link-row">
386 <a href="/daily-offers"><span class="glyphicon glyphicon-chevron-left"></span>${backText}</a>
387 </div>
388 </div>
389 <div class="row">
390 <div class="col-sm-12">
391 <div class="img-container" style="background: url('${landingPageImage.getData()}')">
392 <img class="corner-ribbon-image" src="/documents/20142/34235/landing-page-ribbon.png/8f939290-b493-9672-08a9-8934b1693a12?t=1620912699576"/>
393 <div class="date-text">
394 <#if validator.isNotNull(offerDate_Data)>
395 <#assign offerDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", offerDate_Data, locale)>
396
397 <div class="day-div"><abbr title="${dateUtil.getDate(offerDate_DateObj, dateFormat1Full, locale)}">${dateUtil.getDate(offerDate_DateObj, dateFormat1, locale)}</abbr></div>
398 <div class="date-div">${dateUtil.getDate(offerDate_DateObj, dateFormat2, locale)}</div>
399 <div class="month-div"><abbr title="${dateUtil.getDate(offerDate_DateObj, dateFormat3Full, locale)}">${dateUtil.getDate(offerDate_DateObj, dateFormat3, locale)}</abbr></div>
400 </#if>
401 </div>
402 <div class="offer-title">${offerTitle.getData()}</div>
403 <div class="desc-url-container">
404 <div class="offer-description">${offerDescription.getData()}</div>
405 <a href="#" class="external-url" target="_self">${externalUrlText}</a>
406 </div>
407 </div>
408 <div class="terms-container" id="terms-container">
409 <div class="terms-title">${termsTitle}</div>
410 <div class="terms-content">
411 ${offerTerms.getData()}
412 </div>
413 <div class="show-more-terms">${termsButtonText}</div>
414 </div>
415 </div>
416 </div>
417</div>
418
419<script>
420 $(document).on('click', '.show-more-terms', function() {
421 $('.terms-content').css('-webkit-mask-image', 'unset');
422 $('.terms-content').css('max-height', '9999px');
423 $(this).hide();
424 })
425
426 $(document).on('click', '.external-url', function(e) {
427 e.preventDefault();
428 if (window.outerWidth >= 768) {
429 window.location = '${offerURL.getData()}';
430 }
431 else {
432 if ('${offerURLMobile.getData()}' !== '') {
433 window.location = '${offerURLMobile.getData()}';
434 }
435 else {
436 window.location = '${offerURL.getData()}';
437 }
438 }
439 })
440</script>