Asset Publisher

angle-left Offer 23-11-2020
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>