Winter sun inspiration

An error occurred while processing the template.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")  [in template "20115#20151#BLOGARTICLE" at line 14, column 46]

----
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: #assign assetCategoryPropertyLocalSer...  [in template "20115#20151#BLOGARTICLE" at line 14, column 1]
----
1<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
2<#assign v2_enabled = getterUtil.getBoolean(serviceContext.getThemeDisplay().getThemeSetting("v2-look-and-feel"), false) /> 
3 
4<#assign url="#"> 
5<#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] /> 
6<#assign url=PortalUtil.getCurrentCompleteURL(request) /> 
7<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
8<#assign portalURL = serviceContext.getThemeDisplay().getPortalURL() /> 
9<#assign description = .vars['reserved-article-description'].data?replace("<[^>]+>","","r") /> 
10<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
11<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
12<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService") /> 
13<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
14<#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") /> 
15<#assign journalArticleId = .vars['reserved-article-id'].data> 
16<#assign title = .vars['reserved-article-title'].data> 
17<#assign displayDate = .vars['reserved-article-display-date'].data> 
18<#assign originalLocale = locale /> 
19<#setting locale = localeUtil.getDefault() /> 
20<#assign displayDate = displayDate?datetime("EEE, dd MMM yyyy HH:mm:ss Z") /> 
21<#assign displayDateFormatted = displayDate?string["dd-MM-yyyy"] /> 
22<#assign journalArticle = journalArticleLocalService.getArticle(groupId,journalArticleId)/> 
23<#assign articleResourcePK = journalArticle.getArticleResourceUuid()> 
24<#assign assetEntry = assetEntryLocalService.fetchEntry(groupId,articleResourcePK) /> 
25<#assign summary = assetEntry.getSummary(locale) /> 
26<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(assetEntry.getEntryId()) /> 
27<#assign categoryList = assetEntry.getCategories() /> 
28<#assign tagsList = assetEntry.getTags() /> 
29<#assign currentLayoutPath = portalUtil.getLayoutFriendlyURL(layoutLocalService.getLayout(serviceContext.getPlid()),themeDisplay) /> 
30<#assign currentLayoutName = layoutLocalService.getLayout(serviceContext.getPlid()).getName(locale) /> 
31<#assign currentLayoutHTMLTitle = layoutLocalService.getLayout(serviceContext.getPlid()).getHTMLTitle(locale) /> 
32<#assign separatorFriendlyURL = "/-/" /> 
33<#assign back_message = languageUtil.get(locale, "back-to-x") /> 
34<#assign back_message = back_message?replace("{0}", currentLayoutName) /> 
35<#assign H1Title = (header.H1Title.getData())!"" /> 
36<#assign image = (header.Visual.getData())!"" /> 
37<#assign fileEntryId = (header.Visual.getAttribute("fileEntryId"))!"" /> 
38 
39<script nonce='${cspNonce}' type="application/ld+json"> 
40
41		"@context": "https://schema.org", 
42		"@type": "BlogPosting", 
43		"mainEntityOfPage": { 
44			"@type": "WebPage", 
45			"@id": "${url}" 
46		}, 
47		"headline":"${H1Title}", 
48		"description":"${description}", 
49		"image": "${image}", 
50		"author": { 
51			"@type": "Organization", 
52			"name": "AXA Assistance" 
53		}, 
54		"publisher": { 
55			"@type": "Organization", 
56			"name": "AXA Assistance", 
57			"logo": { 
58			"@type": "ImageObject", 
59			"url": "" 
60
61		}, 
62		"datePublished": "${displayDate}" 
63
64</script> 
65 
66<#if v2_enabled> 
67 
68<!-- Article --> 
69 
70    <#if (header.Visual.whiteMask.getData())?? && getterUtil.getBoolean(header.Visual.whiteMask.getData())> 
71    	<#assign maskColor = "white-mask" /> 
72	<#else> 
73		<#assign maskColor = "black-mask" /> 
74	</#if> 
75	<#-- 
76	<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
77	<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
78	 --> 
79	<#-- Header section --> 
80	<#-- TODO: if we have related content, then we should had the class ".t_fullArticle--hasAside" to the article element right below --> 
81	<#assign hasRelated=false /> 
82	<#if (currentArticleRelatedLinks?size>0)> 
83		<#assign hasRelated=true /> 
84		<article class="article-full"> 
85	<#else> 
86		<article class="article-full"> <#-- OR  --> 
87	</#if> 
88	<!-- item --> 
89    <!-- hero-banner hero-banner--slim --> 
90    <div class="hero-banner"> 
91        <div class="hero-banner__mask ${maskColor}"> 
92            <picture> 
93                <img class="lazyload" src="${image}" data-fileentryid="${fileEntryId}" data-src="${image}" data-srcset="${image}" /> 
94            </picture> 
95            <div class="hero-banner__mask ${maskColor}"> 
96                <div class="hero-banner__container"> 
97                    <div class="hero-banner__content text-left"> 
98						<#if H1Title != ""> 
99							<h1 class="font-bold-publicoheadline font-display-4 ${maskColor}-text">${H1Title}</h1> 
100						<#else> 
101							<h1 class="font-bold-publicoheadline font-display-4 ${maskColor}-text">${title}</h1> 
102						</#if> 
103                        <p class="hero-banner__text font-medium ${maskColor}-text">${currentLayoutHTMLTitle}</p> 
104                    </div> 
105                </div> 
106            </div> 
107        </div> 
108    </div> 
109    <!-- /hero-banner --> 
110 
111    <div class="article-full__content pb-4"> 
112        <div class="article-full__container container"> 
113 
114			<!-- tag --> 
115			<#if TopContent?has_content> 
116				<div class="tg__tag"> 
117					<div class="tg__tag--container"> 
118						<#-- TAGS --> 
119						<#if (tagsList?size > 0) > 
120							<ul class="tg__tag--list"> 
121								<#list tagsList as tag> 
122									<li class="tg__tag--element"> 
123										<a class="t_tag__link" href="${currentLayoutPath}?p_r_p_tag=${tag.getName()}"> 
124											${tag.getName()} 
125										</a> 
126									</li> 
127								</#list> 
128							</ul> 
129						</#if> 
130					</div> 
131				</div> 
132			</#if> 
133            <!-- tag --> 
134 
135            <div class="article-full__row"> 
136                <div class="article-full__left"> 
137 
138					<section class="article-full__text"> 
139						<#if (summary?trim?has_content)> 
140							<p><strong>${summary}</strong></p> 
141						</#if> 
142						<#if TopContent?has_content> 
143							${TopContent.getData()} 
144						</#if> 
145						<#if hasRelated> 
146							<aside class="t_article__related t_article__related--desktop"> 
147								<div class="t_article__relatedInner"> 
148								<h2 class="t_article__relatedTitle"><@liferay.language key="related-assets" /></h2> 
149								<#list currentArticleRelatedLinks as related_entry> 
150									<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
151									<#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
152									<#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
153									<#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
154									<#assign relatedArticleId = relatedArticle.getArticleId() /> 
155									<#assign relatedArticleURL = relatedArticle.getUrlTitle() /> 
156									<#assign relatedArticleTitle = relatedArticle.getTitle(locale) /> 
157									<p class="t_smallText"> 
158										<a href="${themeDisplay.getURLCurrent()?split("/-/")[0]}${separatorFriendlyURL}${relatedArticleURL}">${relatedArticleTitle}</a> 
159									</p> 
160								</#list> 
161								</div> 
162							</aside> 
163						</#if> 
164					</section> 
165 
166				<#-- Mid content --> 
167				<#if mid_content.getData()?has_content> 
168					<section class="article-full__text"> 
169						<p>${mid_content.getData()}</p> 
170					</section> 
171				</#if> 
172 
173				<#-- Bottom content --> 
174					<#if bottom_content.getData()?has_content> 
175					<section class="article-full__text"> 
176						<p>${bottom_content.getData()}</p> 
177					</section> 
178					</#if> 
179 
180                </div> 
181                <div class="article-full__right"> 
182                    <!-- Detail 1 --> 
183                    <aside class="article-full__detail"> 
184 
185                        <div class="article-full__container color-white"> 
186 
187						<#if (relatedArticles.relatedLinkToPage.getSiblings())?has_content> 
188						<#list relatedArticles.relatedLinkToPage.getSiblings() as relatedArticle> 
189							<#if relatedArticle?index=0 && relatedArticle.getData()?has_content> 
190 
191								<div class="article-full__container color-white"> 
192								<h2 class="font-bold-publicoheadline font-display-5 pb-3"><@liferay.language key="related-assets" /></h2> 
193								<div class="article-full__detail--data font-normal"> 
194								<#assign layout = relatedArticle.getData()?eval/> 
195								<#if layout.name?? && layout.name?trim!=""> 
196									<#assign pageTitle = layout.name /> 
197								<#elseif layout.label?? && layout.label?trim!=""> 
198									<#assign pageTitle = layout.label /> 
199								<#else> 
200									<#assign pageTitle = "---" /> 
201								</#if> 
202								<p class="article-full__detail--title"><a href="${relatedArticle.getFriendlyUrl()}">${pageTitle}</a></p> 
203							<#elseif relatedArticle.getData()?has_content> 
204								<#assign layout = relatedArticle.getData()?eval/> 
205								<#if layout.name?? && layout.name?trim!=""> 
206									<#assign pageTitle = layout.name /> 
207								<#elseif layout.label?? && layout.label?trim!=""> 
208									<#assign pageTitle = layout.label /> 
209								<#else> 
210									<#assign pageTitle = "---" /> 
211								</#if> 
212								<p class="article-full__detail--title"><a href="${relatedArticle.getFriendlyUrl()}">${pageTitle}</a></p> 
213							</#if> 
214						</#list> 
215						<#if hasRelated> 
216								</div> 
217								</div> 
218						</#if> 
219							</#if> 
220 
221 
222							<#-- Sociallinks --> 
223							<div class="m-footer-small--desktop"> 
224								<div class="m-footer-small__disclaimer m-footer-small__disclaimer--center"> 
225								<div class="m-footer-small__list"> 
226 
227										<#if (header.list_image.getData())?has_content> 
228											<a class="m-footer-small__list-item" title="Facebook" href="javascript:fbShare('${url}', 'Fb Share', 'AXA Assistance', '${portalURL}${header.list_image.getData()}', 520, 350)"> 
229										<#else> 
230											<a class="m-footer-small__list-item" title="Facebook" href="javascript:fbShare('${url}', 'Fb Share', 'AXA Assistance', 'http://goo.gl/dS52U', 520, 350)"> 
231										</#if> 
232											<i class="icon-facebook"></i> 
233										</a> 
234 
235										<a href="http://twitter.com/share?url=${url}&text=${title}" class="m-footer-small__list-item"> 
236											<i class="icon-twitter"></i> 
237										</a> 
238 
239										<a href="https://www.linkedin.com/shareArticle?mini=true&url=${url?url('ISO-8859-1')}" class="m-footer-small__list-item"> 
240											<i class="icon-linkedin"></i> 
241										</a> 
242 
243										<a href="whatsapp://send?text=${title} - ${url?html}" class="m-footer-small__list-item"> 
244											<i class="icon-whatsapp"></i> 
245										</a> 
246 
247										<a href="mailto:?subject=${title}&amp;body=${title} - ${url?html}" class="m-footer-small__list-item"> 
248											<i class="icon-email"></i> 
249										</a> 
250 
251								</div> 
252							</div> 
253							</div> 
254							<#-- Sociallinks --> 
255 
256                        </div> 
257                    </aside> 
258 
259                </div> 
260            </div> 
261        </div> 
262    </div> 
263 
264	<#-- Get Quote section --> 
265 
266	<#if quoting_block.Title.getData()?trim?has_content || quoting_block.paragraph.getData()?trim?has_content > 
267		<section class="t_block t_quote t_quote--xlarge" style="background-color:${quoting_block.background_color.getData()!}"> 
268			<div class="t_block__inner t_quote__inner"> 
269				<h1 class="t_quoteTitle font-display-5 color-white font-medium-publicoheadline">${quoting_block.Title.getData()}</h1> 
270				<p class="t_mainText color-white font-medium">${quoting_block.paragraph.getData()}</p> 
271				<#if quoting_block.Button.LinkText.getData()?trim?has_content && quoting_block.Button.getFriendlyUrl()?trim?has_content > 
272					<div class="mt-2"> 
273						<a href="${quoting_block.Button.getFriendlyUrl()}" class="btn btn--light-white text-uppercase" onclick="pushDataLayerCTA(window.location.href + &quot;${quoting_block.Button.getFriendlyUrl()}&quot;, 'ghost', &quot;${quoting_block.Button.LinkText.getData()}&quot;)"> 
274							${quoting_block.Button.LinkText.getData()} 
275						</a> 
276					</div> 
277				</#if> 
278			</div> 
279		</section> 
280	</#if> 
281 
282	<#-- Splitted images section --> 
283 
284	<#if (splitted_images.split_image.getSiblings())?has_content> 
285	<!-- pictures--> 
286	<section class="pictures mt-5"> 
287		<div class="pictures__inline pictures__inline--container"> 
288		 <#list splitted_images.split_image.getSiblings() as image_splitted> 
289				<#if (image_splitted.getData()?has_content 
290				&& image_splitted.getAttribute("fileEntryId")?has_content 
291				&& image_splitted.getAttribute("fileEntryId")?has_content 
292				&& image_splitted.getAttribute("alt")?has_content)> 
293			<div class="pictures__inline pictures__inline--img-fluid"> 
294					<figure class="t_picture__element"> 
295						<img class="pictures__inline pictures__inline--card-img-top lazyload" data-fileentryid="${image_splitted.getAttribute("fileEntryId")}" alt="${image_splitted.getAttribute("alt")}" data-src="${image_splitted.getData()}" /> 
296					</figure> 
297				<div class="pictures__inline pictures__inline--card-img-overlay"> 
298					<p class="pictures__inline pictures__inline--card-title color-white font-bold-publicoheadline font-display-5 pb-3">${image_splitted.split_image_text.getData()}</p> 
299				</div> 
300			</div> 
301				</#if> 
302			</#list> 
303		</div> 
304	</section> 
305	<!-- pictures--> 
306	</#if> 
307 
308 
309	<#if (bottom_links.Picture.getSiblings()?has_content)!false> 
310		<section class="mt-1"> 
311		<h2 class="font-display-4 text-center font-medium-publicoheadline pt-3 pb-5">${bottom_links.bottom_content_title.getData()}</h2> 
312 
313		<div class="article-inline"> 
314 
315				<#list bottom_links.Picture.getSiblings() as cur_Picture> 
316					  <div class="article-inline__card"> 
317						<div class="article-inline__image"> 
318							<#if cur_Picture.getData()?? && cur_Picture.getData() != ""> 
319								<img class="lazyload t_insurance__listElement__picture" data-fileentryid="${cur_Picture.getAttribute("fileEntryId")}" alt="${cur_Picture.getAttribute("alt")}" data-src="${cur_Picture.getData()}" /> 
320							</#if> 
321						</div> 
322						<div class="article-inline__card-body"> 
323						  <h3 class="article-inline__title h2">${cur_Picture.bottom_content_subtitle.getData()}</h3> 
324						  <p class="article-inline__card-text"> 
325							${cur_Picture.Text.getData()} 
326						  </p> 
327						  <#if cur_Picture.Link.TextLink.getData()?? && cur_Picture.Link.TextLink.getData() != ""> 
328						  <div><a href="${cur_Picture.Link.getFriendlyUrl()}"class="link link--secondary-link icons--right icons--east">${cur_Picture.Link.TextLink.getData()}</a></div> 
329							</#if> 
330						</div> 
331					  </div> 
332				</#list> 
333		</div> 
334		</section> 
335		</#if> 
336 
337 
338</article> 
339 
340<!-- /Article --> 
341<#else> 
342	<#-- 
343	<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
344	<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
345	 --> 
346	<#-- Header section --> 
347	<#-- TODO: if we have related content, then we should had the class ".t_fullArticle--hasAside" to the article element right below --> 
348	<#assign hasRelated=false /> 
349	<#if (currentArticleRelatedLinks?size>0)> 
350		<#assign hasRelated=true /> 
351		<article class="t_fullArticle t_fullArticle--hasAside"> 
352	<#else> 
353		<article class="t_fullArticle"> <#-- OR  --> 
354	</#if> 
355	<!-- item --> 
356		<header> 
357		<#if image != ""> 
358			<div class="t_introduction t_block" style="background-image: url('${image}')"> 
359		<#else> 
360			<div class="t_introduction t_block"> 
361		</#if> 
362				<div class="t_backButton"> 
363					<a href="${currentLayoutPath}" class="t_backButton__btn"><svg class="t_backButton__icon" width="16" height="16" role="presentation" viewBox="0 0 13.6 9"> 
364							<path class="st0" d="M9.5,9C9.3,9,9.1,8.9,8.9,8.8c-0.4-0.3-0.5-1-0.2-1.4l1.5-1.9H1c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1h9.2L8.7,1.6   C8.4,1.2,8.4,0.6,8.9,0.2c0.4-0.3,1.1-0.3,1.4,0.2l3.3,4.1l-3.3,4.1C10.1,8.9,9.8,9,9.5,9z"></path> 
365						</svg>${back_message} 
366					</a> 
367				</div> 
368				<div class="t_introduction__inner t_block__inner"> 
369					<p class="t_introduction__subtitle">${currentLayoutHTMLTitle}</p> 
370					<#if (categoryList?size > 0)> 
371						<ul class="t_introduction__informations"> 
372							<li class="t_introduction__information"> 
373								<p class="t_introduction__informationWording"> 
374									<#list categoryList as category> 
375										<#assign categoryProperties = assetCategoryPropertyLocalService.getCategoryProperties(category.getCategoryId()) /> 
376										<#assign friendlyUrl = ""> 
377 
378										<#list categoryProperties as catProp> 
379											<#if catProp.getKey() == "friendly-url"> 
380												<#assign friendlyUrl = catProp.getValue()> 
381												<#break> 
382											</#if> 
383										</#list> 
384 
385										<#assign hrefUrl = (friendlyUrl != "")?then("${currentLayoutPath}/${friendlyUrl}", "${currentLayoutPath}?p_r_p_categoryId=${category.getCategoryId()}")> 
386 
387										<a href="${hrefUrl}">${category.getTitle(locale)}</a> 
388									</#list> 
389								</p> 
390							</li> 
391						</ul> 
392					</#if> 
393					<#if H1Title != ""> 
394						<h1 class="t_secondaryTitle">${H1Title}</h1> 
395					<#else> 
396						<h1 class="t_secondaryTitle">${title}</h1> 
397					</#if> 
398					<div class="t_introduction__ctas"> 
399						<#if (header.Visual.ButtonLeft.ButtonLeftText.getData())!"" != ""> 
400							<a href="${header.Visual.ButtonLeft.getFriendlyUrl()}" class="t_button t_button--secondary" onclick="pushDataLayerCTA(window.location.href + &quot;${header.Visual.ButtonLeft.getFriendlyUrl()}&quot;, 'secondary red', &quot;${header.Visual.ButtonLeft.ButtonLeftText.getData()}&quot;)"> 
401								<span class="t_button__label">${header.Visual.ButtonLeft.ButtonLeftText.getData()}</span> 
402							</a> 
403						</#if> 
404						<#if (header.Visual.ButtonRight.ButtonRightText.getData())!"" != ""> 
405							<a href="${header.Visual.ButtonRight.getFriendlyUrl()}" class="t_button t_button--ghost" onclick="pushDataLayerCTA(window.location.href + &quot;${header.Visual.ButtonRight.getFriendlyUrl()}&quot;, 'ghost', &quot;${header.Visual.ButtonRight.ButtonRightText.getData()}&quot;)"> 
406								<span class="t_button__label">${header.Visual.ButtonRight.ButtonRightText.getData()}</span> 
407							</a> 
408						</#if> 
409					</div> 
410					<p class="t_introduction__date">${displayDateFormatted}</p> 
411				</div> 
412 
413			</div> 
414	<#-- Top content --> 
415	<#if TopContent?has_content> 
416			<div class="t_article t_block__inner"> 
417				<#-- TAGS --> 
418				<#if (tagsList?size > 0) > 
419				<ul class="t_tags"> 
420					<#list tagsList as tag> 
421						<li class="t_tag"> 
422							<a class="t_tag__link" href="${currentLayoutPath}?p_r_p_tag=${tag.getName()}"> 
423								${tag.getName()} 
424							</a> 
425						</li> 
426					</#list> 
427				</ul> 
428				</#if> 
429				<#-- Sociallinks --> 
430				 <div class="t_socialLinks "> 
431					<p class="t_socialLinks__title"><@liferay.language key="share" />:</p> 
432					<ul class="t_socialLinks__list"> 
433						<li class="t_socialLinks__element"> 
434							<#if (header.list_image.getData())?has_content> 
435								<a class="t_socialLinks__link" title="Facebook" href="javascript:fbShare('${url}', 'Fb Share', 'AXA Assistance', '${portalURL}${header.list_image.getData()}', 520, 350)"> 
436							<#else> 
437								<a class="t_socialLinks__link" title="Facebook" href="javascript:fbShare('${url}', 'Fb Share', 'AXA Assistance', 'http://goo.gl/dS52U', 520, 350)"> 
438							</#if> 
439								<svg class="t_socialLinks__icon" xmlns="http://www.w3.org/2000/svg" role="presentation"> 
440									<title id="icon-svg-facebook">Facebook</title> 
441									<use xlink:href="#facebook" href="#facebook" /> 
442								</svg> 
443							</a> 
444						</li> 
445						<li class="t_socialLinks__element"> 
446							<a href="http://twitter.com/share?url=${url}&text=${title}" class="t_socialLinks__link popup twitter"> 
447								<svg class="t_socialLinks__icon" xmlns="http://www.w3.org/2000/svg" role="presentation"> 
448								<title id="icon-svg-twitter">Twitter</title> 
449									<use xlink:href="#twitter" href="#twitter" /> 
450								</svg> 
451							</a> 
452						</li> 
453 
454						<li class="t_socialLinks__element"> 
455							<a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=${url?url('ISO-8859-1')}" class="t_socialLinks__link"> 
456								<svg class="t_socialLinks__icon" xmlns="http://www.w3.org/2000/svg" role="presentation"> 
457									<title id="icon-svg-linkedin">Linkedin</title> 
458									<use xlink:href="#linkedin" href="#linkedin" /> 
459								</svg> 
460							</a> 
461						</li> 
462 
463						<li class="t_socialLinks__element"> 
464							<a href="whatsapp://send?text=${title} - ${url?html}" data-action="share/whatsapp/share" class="t_socialLinks__link"> 
465								<svg class="t_socialLinks__icon" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="icon-svg-whatsapp"> 
466									<title id="icon-svg-whatsapp">Whatsapp</title> 
467									<use xlink:href="#whatsapp" href="#whatsapp" /> 
468								</svg> 
469							</a> 
470						</li> 
471 
472						<li class="t_socialLinks__element"> 
473							<a href="mailto:?subject=${title}&amp;body=${title} - ${url?html}" class="t_socialLinks__link"> 
474								<svg class="t_socialLinks__icon" xmlns="http://www.w3.org/2000/svg" role="presentation"> 
475									<title id="icon-svg-enveloppe">Email</title> 
476									<use xlink:href="#enveloppe" href="#enveloppe" /> 
477								</svg> 
478							</a> 
479						</li> 
480 
481					</ul> 
482				</div> 
483			</div> 
484		</header> 
485 
486		<section class="t_article__content"> 
487			<div class="t_article__text"> 
488				<#if (summary?trim?has_content)> 
489					<p><strong>${summary}</strong></p> 
490				</#if> 
491				<#if TopContent?has_content> 
492					${TopContent.getData()} 
493				</#if> 
494			</div> 
495			<#if hasRelated> 
496				<aside class="t_article__related t_article__related--desktop"> 
497					<div class="t_article__relatedInner"> 
498					<h2 class="t_article__relatedTitle"><@liferay.language key="related-assets" /></h2> 
499					<#list currentArticleRelatedLinks as related_entry> 
500						<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
501						<#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
502						<#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
503						<#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
504						<#assign relatedArticleId = relatedArticle.getArticleId() /> 
505						<#assign relatedArticleURL = relatedArticle.getUrlTitle() /> 
506						<#assign relatedArticleTitle = relatedArticle.getTitle(locale) /> 
507						<p class="t_smallText"> 
508							<a href="${themeDisplay.getURLCurrent()?split("/-/")[0]}${separatorFriendlyURL}${relatedArticleURL}">${relatedArticleTitle}</a> 
509						</p> 
510					</#list> 
511					</div> 
512				</aside> 
513			</#if> 
514		</section> 
515	</#if> 
516	<#-- Get Quote section --> 
517		<#if quoting_block.Title.getData()?trim?has_content || quoting_block.paragraph.getData()?trim?has_content > 
518		<section class="t_block t_quote is-colored" style="background-color:${quoting_block.background_color.getData()!}"> 
519			<div class="t_block__inner t_quote__inner"> 
520				<h1 class="t_quoteTitle">${quoting_block.Title.getData()}</h1> 
521				<p class="t_mainText">${quoting_block.paragraph.getData()}</p> 
522				<#if quoting_block.Button.LinkText.getData()?trim?has_content && quoting_block.Button.getFriendlyUrl()?trim?has_content > 
523					<a href="${quoting_block.Button.getFriendlyUrl()}" class="t_button t_button--ghost" onclick="pushDataLayerCTA(window.location.href + &quot;${quoting_block.Button.getFriendlyUrl()}&quot;, 'ghost', &quot;${quoting_block.Button.LinkText.getData()}&quot;)"> 
524						<span class="t_button__label">${quoting_block.Button.LinkText.getData()}</span> 
525					</a> 
526				</#if> 
527			</div> 
528		</section> 
529		</#if> 
530		<#-- Mid content --> 
531		<#if mid_content.getData()?trim?has_content> 
532		<section class="t_text"> 
533			${mid_content.getData()} 
534		</section> 
535		</#if> 
536		<#-- Splitted images section --> 
537		<#if (splitted_images.split_image.getSiblings())?has_content> 
538		<ul class="t_picture t_block"> 
539		<#list splitted_images.split_image.getSiblings() as image_splitted> 
540			<#if image_splitted.getData()?trim?has_content> 
541				<li class="t_picture__item"> 
542					<figure class="t_picture__element"> 
543						<img class="lazyload t_picture__visual" data-fileentryid="${image_splitted.getAttribute("fileEntryId")}" alt="${image_splitted.getAttribute("alt")}" data-src="${image_splitted.getData()}" /> 
544						<figcaption class="t_picture__legend">${image_splitted.split_image_text.getData()}</figcaption> 
545					</figure> 
546				</li> 
547			</#if> 
548		</#list> 
549		</ul> 
550		</#if> 
551		<#-- Bottom content --> 
552		<#if bottom_content.getData()?trim?has_content> 
553		<section class="t_text"> 
554			${bottom_content.getData()} 
555		</section> 
556		</#if> 
557		<#-- Bottom links section --> 
558		<#if bottom_links?has_content> 
559		<section class="t_insurance"> 
560			<h2 class="t_secondaryTitle">${bottom_links.bottom_content_title.getData()}</h2> 
561			<ul class="t_insurance__list"> 
562			<#if (bottom_links.Picture.getSiblings()?has_content)!false> 
563				<#list bottom_links.Picture.getSiblings() as cur_Picture> 
564					<#if cur_Picture.getData()?trim?has_content> 
565					<li class="t_insurance__listElement"> 
566						<#if cur_Picture.getData()?? && cur_Picture.getData() != ""> 
567							<img class="lazyload t_insurance__listElement__picture" data-fileentryid="${cur_Picture.getAttribute("fileEntryId")}" alt="${cur_Picture.getAttribute("alt")}" data-src="${cur_Picture.getData()}" /> 
568						</#if> 
569						<div class="t_insurance__listElement__inner"> 
570							<h3 class="t_simpleTitle t_insurance__listElement__title">${cur_Picture.bottom_content_subtitle.getData()}</h3> 
571							<p class="t_smallText"> 
572								${cur_Picture.Text.getData()} 
573							</p> 
574							<a href="${cur_Picture.Link.getFriendlyUrl()}" class="t_link t_insurance__listElement__cta">${cur_Picture.Link.TextLink.getData()} 
575								<svg width="14" height="14" class="t_link__picto" xmlns="http://www.w3.org/2000/svg" role="presentation"> 
576									<use xlink:href="#full-arrow" href="#full-arrow" /> 
577								</svg> 
578							</a> 
579						</div> 
580					</li> 
581					</#if> 
582				</#list> 
583			</#if> 
584			</ul> 
585		</section> 
586		</#if> 
587	<#-- TODO: if we have related content, then we should had the same content in here (notice the difference in css class) --> 
588	<#if hasRelated> 
589		<aside class="t_article__related"> 
590			<div class="t_article__relatedInner"> 
591			<h2 class="t_article__relatedTitle"><@liferay.language key="related-assets" /></h2> 
592			<#list currentArticleRelatedLinks as related_entry> 
593				<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
594				<#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
595				<#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
596				<#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
597				<#assign relatedArticleId = relatedArticle.getArticleId() /> 
598				<#assign relatedArticleURL = relatedArticle.getUrlTitle() /> 
599				<#assign relatedArticleTitle = relatedArticle.getTitle(locale) /> 
600				<p class="t_smallText"> 
601					<a href="${separatorFriendlyURL}${relatedArticleURL}">${relatedArticleTitle}</a> 
602				</p> 
603			</#list> 
604			</div> 
605		</aside> 
606	</#if> 
607 
608	</article> 
609	<script nonce='${cspNonce}'> 
610	function googleplusbtn(url) { 
611	  sharelink = "https://plus.google.com/share?url="+url; 
612	  newwindow=window.open(sharelink,'name','height=350,width=520'); 
613	  if (window.focus) {newwindow.focus()} 
614	  return false; 
615
616	</script> 
617	<script nonce='${cspNonce}'> 
618		function fbShare(url, title, descr, image, winWidth, winHeight) { 
619			var winTop = (screen.height / 2) - (winHeight / 2); 
620			var winLeft = (screen.width / 2) - (winWidth / 2); 
621			window.open('http://www.facebook.com/sharer.php?s=100&p[title]=' + title + '&p[summary]=' + descr + '&p[url]=' + url + '&p[images][0]=' + image, 'sharer', 'top=' + winTop + ',left=' + winLeft + ',toolbar=0,status=0,width=' + winWidth + ',height=' + winHeight); 
622
623	</script> 
624	<script nonce='${cspNonce}'> 
625	  $('.popup').click(function(event) { 
626		var width  = 575, 
627			height = 400, 
628			left   = ($(window).width()  - width)  / 2, 
629			top	= ($(window).height() - height) / 2, 
630			url	= this.href, 
631			opts   = 'status=1' + 
632					 ',width='  + width  + 
633					 ',height=' + height + 
634					 ',top='	+ top	+ 
635					 ',left='   + left; 
636 
637		window.open(url, 'twitter', opts); 
638 
639		return false; 
640	  }); 
641	</script> 
642 
643</#if> 

TGTM - ABTA Footer

An error occurred while processing the template.
The following has evaluated to null or missing:
==> cspNonce  [in template "20115#20151#FOOTERSMALL" at line 129, column 18]

----
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: ${cspNonce}  [in template "20115#20151#FOOTERSMALL" at line 129, column 16]
----
1<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
2<#if serviceContext.getThemeDisplay().getThemeSetting("v2-look-and-feel")?has_content && serviceContext.getThemeDisplay().getThemeSetting("v2-look-and-feel")!=""> 
3	<#assign v2_enabled = serviceContext.getThemeDisplay().getThemeSetting("v2-look-and-feel")?boolean /> 
4	<#assign v2_enabled_language = serviceContext.getThemeDisplay().getThemeSetting("show-language-select")?boolean /> 
5<#else> 
6	<#assign v2_enabled = false /> 
7	<#assign v2_enabled_language = false /> 
8</#if> 
9 
10<#if v2_enabled> 
11	<!-- Footer --> 
12	<footer class="footer"> 
13		<div class="m-footer-small m-footer-small--top m-footer-small--desktop"> 
14		<div class="m-footer-small__container"> 
15			<div class="m-footer-small__disclaimer--list"> 
16			<div class="m-footer-small__list"> 
17				<#list Title.getSiblings() as cur_Title> 
18						<#if cur_Title.Items.getSiblings()?has_content> 
19						<#list cur_Title.Items.getSiblings() as cur_Title_Items> 
20						<#assign targetTitle = "_self" /> 
21						<#if cur_Title_Items.ItemsLinkTarget?? && cur_Title_Items.ItemsLinkTarget.getData()!=""> 
22							<#assign targetTitle = "${cur_Title_Items.ItemsLinkTarget.getData()}" /> 
23						</#if> 
24						<a target="${htmlUtil.unescape(targetTitle)}" href="${cur_Title_Items.getFriendlyUrl()}" class="m-footer-small__list-item m-footer-small__list-item--border" onclick="pushDataLayerNavigationLinksFooterSmall(&quot;${cur_Title_Items.getFriendlyUrl()}&quot;, &quot;${htmlUtil.unescape(cur_Title.getData())}&quot;,&quot;${htmlUtil.unescape(cur_Title_Items.ItemsText.getData())}&quot;)"> 
25							${htmlUtil.unescape(cur_Title_Items.ItemsText.getData())} 
26						</a> 
27							</#list> 
28					</#if> 
29				</#list> 
30				</div> 
31			</div> 
32 
33			<#assign hasSocialLink=false /> 
34			<#if TitleSocial.SocialLink.getSiblings()?has_content> 
35				<#if hasSocialLink=false> 
36					<#assign hasSocialLink=true /> 
37				</#if> 
38				<div class="m-footer-small__disclaimer"> 
39					<div class="m-footer-small__list"> 
40						<p class="m-footer-small__list-item--follow text-uppercase">${htmlUtil.unescape(TitleSocial.getData())}</p> 
41						<#list TitleSocial.SocialLink.getSiblings() as cur_TitleSocial_SocialLink> 
42							<#if hasSocialLink=false> 
43									<#assign hasSocialLink=true /> 
44							</#if> 
45								<#if cur_TitleSocial_SocialLink.SocialPicto?has_content> 
46								<#assign alt = cur_TitleSocial_SocialLink.SocialPicto.getAttribute("alt")!""> 
47                                	<a href="${htmlUtil.unescape(cur_TitleSocial_SocialLink.getData())}" class="m-footer-small__list-item" target="_blank" title="Facebook" onclick="pushDataLayerSocialLinksFooterSmall(&quot;${htmlUtil.unescape(cur_TitleSocial_SocialLink.getData())}&quot;, &quot;${alt}&quot;)"> 
48                                		<#if cur_TitleSocial_SocialLink.SocialPicto.getAttribute("fileEntryId")?has_content> 
49                                			<img class="lazyload" data-fileentryid="${cur_TitleSocial_SocialLink.SocialPicto.getAttribute("fileEntryId")}" alt="${cur_TitleSocial_SocialLink.SocialPicto.getAttribute("alt")}" data-src="${cur_TitleSocial_SocialLink.SocialPicto.getData()}" /> 
50                                		</#if> 
51                                	</a> 
52                                </#if> 
53						</#list> 
54					</div> 
55				</div> 
56			</#if> 
57		</div> 
58		</div> 
59 
60		<#if Policy.getData() != ""> 
61 
62			<#assign lang = themeDisplay.getLocale()> 
63			<#assign desc = themeDisplay.getLocale().getDisplayLanguage( themeDisplay.getLocale() )?cap_first> 
64 
65			<div class="m-footer-small m-footer-small--top"> 
66				<div class="m-footer-small__container"> 
67 
68					<#if v2_enabled_language> 
69						<div class="m-footer-small__disclaimer--list"> 
70							<div class="m-footer-small__list"> 
71								<!-- Country Selector --> 
72									<div class="m-footer-small__language"> 
73										<!-- Trigger --> 
74										<button class="m-footer-small__language-trigger"> 
75											<i class="icon-world"></i> ${htmlUtil.unescape(desc)}</button> 
76										<!-- / Trigger --> 
77										<!-- List --> 
78											<ul class="m-footer-small__language-list"> 
79												<!-- Language actually not show --> 
80												<#list languageUtil.getAvailableLocales( themeDisplay.getScopeGroupId() ) as lang> 
81													<#if lang.toString()!=themeDisplay.getLocale().toString()> 
82														<#assign desc = lang.getDisplayLanguage( lang )?cap_first> 
83 
84														<#assign currentURL = themeDisplay.getURLCurrent()> 
85														<#assign getLanguageCurrent = themeDisplay.getLanguageId()?split("_")?first /> 
86 
87														<li class="m-footer-small__language-item"> 
88															<a href="${themeDisplay.getPortalURL()}/${lang.toString()?split("_")?first}${currentURL?split("/"+getLanguageCurrent)?last}"> 
89																${htmlUtil.unescape(desc)} 
90															</a> 
91														</li> 
92													</#if> 
93												</#list> 
94										</ul> 
95										<!-- / List --> 
96									</div> 
97								<!-- / Country Selector --> 
98							</div> 
99						</div> 
100					</#if> 
101 
102					<#if v2_enabled_language> 
103						<div class="m-footer-small__disclaimer"> 
104					<#else> 
105						<div class="m-footer-small__disclaimer p-2"> 
106					</#if> 
107						<ul class="m-footer-small__list"> 
108							<li class="m-footer-small__list-item"> 
109								<a href="#"> 
110									${htmlUtil.unescape(Policy.getData())} <span class="color-white current-year"></span> 
111								</a> 
112							</li> 
113						</ul> 
114					</div> 
115 
116				</div> 
117			</div> 
118			<script nonce='${cspNonce}'> 
119				jQuery(document).ready(function ($) { 
120					$('.current-year').text((new Date).getFullYear()); 
121				}); 
122			</script> 
123		</#if> 
124 
125	</footer> 
126<!-- / Footer --> 
127</#if> 
128 
129<script nonce='${cspNonce}' type="text/javascript"> 
130    function pushDataLayerSocialLinksFooterSmall(url, socialNetwork) { 
131        dataLayer.push({ 
132            'event': 'social_link_click', 
133			'content_type': 'social link footer', 
134			'entry_name': socialNetwork, 
135			'link_type': 'external', 
136        	'link_href': url, 
137			'ip_address': themeDisplay.getRemoteAddr() 
138        }); 
139
140    function pushDataLayerNavigationLinksFooterSmall(url, category, entry) { 
141        dataLayer.push({ 
142            'event': 'footer_navigation_click', 
143            'content_type': 'footer navigation menu', 
144            'menu_categ': category, 
145            'entry_name': entry, 
146            'link_type': 'internal', 
147            'link_href': window.location.href + url, 
148			'ip_address': themeDisplay.getRemoteAddr() 
149        }); 
150
151</script>