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}&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 + "${quoting_block.Button.getFriendlyUrl()}", 'ghost', "${quoting_block.Button.LinkText.getData()}")">
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 + "${header.Visual.ButtonLeft.getFriendlyUrl()}", 'secondary red', "${header.Visual.ButtonLeft.ButtonLeftText.getData()}")">
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 + "${header.Visual.ButtonRight.getFriendlyUrl()}", 'ghost', "${header.Visual.ButtonRight.ButtonRightText.getData()}")">
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}&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 + "${quoting_block.Button.getFriendlyUrl()}", 'ghost', "${quoting_block.Button.LinkText.getData()}")">
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>
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("${cur_Title_Items.getFriendlyUrl()}", "${htmlUtil.unescape(cur_Title.getData())}","${htmlUtil.unescape(cur_Title_Items.ItemsText.getData())}")">
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("${htmlUtil.unescape(cur_TitleSocial_SocialLink.getData())}", "${alt}")">
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>