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