An error occurred while processing the template.
Java method "jdk.proxy199.$Proxy767.getDirectLinks(long)" threw an exception when invoked on jdk.proxy199.$Proxy767 object "com.liferay.asset.link.service.impl.AssetLinkLocalServiceImpl@512878c0"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign AssetLinks = AssetLinkLocalSe... [in template "20116#20152#33020" at line 259, column 1]
----
1<#--
2Web content templates are used to lay out the fields defined in a web
3content structure.
4
5Please use the left panel to quickly add commonly used variables.
6Autocomplete is also available and can be invoked by typing "${".
7-->
8<#-- ATK-1068 Styles Start -->
9<style>
10 @media (min-width: 1025px) {
11 .articleAdtDiv {
12 margin-top: -20px !important;
13 margin-bottom: 50px !important;
14 }
15}
16
17@media (max-width: 1024px) {
18 .articleAdtDiv {
19 margin-bottom: 50px !important;
20 }
21}
22</style>
23<#-- ATK-1068 Styles End -->
24<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
25<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
26<#assign themeDisplay = serviceContext.getThemeDisplay() />
27<#assign preview = false/>
28
29<#if (themeDisplay.getURLCurrent()?contains("preview_article_content.jsp")) || (themeDisplay.getURLCurrent()?contains("preview_article_content_template.jsp"))>
30 <#assign preview = true />
31
32 <script data-senna-track="permanent"
33 src="/o/atk-dot-com-theme/js/react/dist/vendor.bundle.js"></script>
34
35 <script data-senna-track="permanent"
36 src="/o/atk-dot-com-theme/js/react/dist/bundle.js"></script>
37
38 <style data-senna-track="temporary" type="text/css">
39 :root {
40 --container-max-sm: 576px;
41 --h4-font-size: 22px;
42 --font-weight-bold: 700;
43 --rounded-pill: 50rem;
44 --navigation-submenu-item-float: left;
45 --display4-weight: 300;
46 --danger: #da1414;
47 --atk-row: absolute;
48 --display2-size: 5.5rem;
49 --body-bg: #f9f9f9;
50 --display2-weight: 300;
51 --display1-weight: 300;
52 --display3-weight: 300;
53 --box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);
54 --text-align-hero-text-container: center;
55 --cta-background-color: #F5F5F5;
56 --font-weight-lighter: lighter;
57 --h3-font-size: 36px;
58 --btn-outline-primary-hover-border-color: #0b5fff;
59 --transition-collapse: height .35s ease;
60 --blockquote-small-color: #6b6c7e;
61 --gray-200: #f1f2f5;
62 --btn-secondary-hover-background-color: #f7f8f9;
63 --gray-600: #6b6c7e;
64 --secondary: #6b6c7e;
65 --btn-outline-primary-color: #0b5fff;
66 --btn-link-hover-color: #004ad7;
67 --hr-border-color: rgba(0, 0, 0, .1);
68 --hr-border-margin-y: 1rem;
69 --light: #f1f2f5;
70 --btn-outline-primary-hover-color: #0b5fff;
71 --font-weight-read-more: 400;
72 --btn-secondary-background-color: #fff;
73 --btn-outline-secondary-hover-border-color: transparent;
74 --display3-size: 4.5rem;
75 --primary: #0b5fff;
76 --container-max-md: 768px;
77 --border-radius-sm: 0.1875rem;
78 --display-line-height: 1.2;
79 --font-family-hero-text: 'Graphik Web';
80 --h6-font-size: 0.8125rem;
81 --h2-font-size: 44px;
82 --aspect-ratio-4-to-3: 75%;
83 --font-family-read-more: 'Graphik Web';
84 --spacer-10: 10rem;
85 --font-family-semibold: 'Graphik Web';
86 --font-weight-normal: 400;
87 --dark: #272833;
88 --blockquote-small-font-size: 80%;
89 --h5-font-size: 0.875rem;
90 --blockquote-font-size: 1.25rem;
91 --transition-fade: opacity .15s linear;
92 --display4-size: 3.5rem;
93 --border-radius-lg: 0.375rem;
94 --btn-primary-hover-color: #fff;
95 --display1-size: 6rem;
96 --black: #000;
97 --gray-300: #e7e7ed;
98 --gray-700: #495057;
99 --btn-secondary-border-color: #cdced9;
100 --btn-outline-secondary-hover-color: #272833;
101 --purple: #7823DC;
102 --body-color: #111;
103 --btn-outline-secondary-hover-background-color: rgba(39, 40, 51, 0.03);
104 --font-weight-button-body: 400;
105 --btn-primary-color: #fff;
106 --btn-secondary-color: #6b6c7e;
107 --btn-secondary-hover-border-color: #cdced9;
108 --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);
109 --container-max-lg: 992px;
110 --btn-outline-primary-border-color: #0b5fff;
111 --aspect-ratio: 100%;
112 --cta-link-hover-color: #000;
113 --body-container: #fff;
114 --cta-link-color: #7823DC;
115 --aspect-ratio-16-to-9: 56.25%;
116 --box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
117 --white: #fff;
118 --portlet-bg-color: #272833;
119 --warning: #b95000;
120 --info: #2e5aac;
121 --hr-border-width: 1px;
122 --btn-link-color: #0b5fff;
123 --gray-400: #cdced9;
124 --font-weight-hero-text-h4: 100;
125 --gray-800: #393a4a;
126 --font-weight-semibold: 600;
127 --btn-outline-primary-hover-background-color: #f0f5ff;
128 --btn-primary-hover-background-color: #0053f0;
129 --btn-primary-background-color: #0b5fff;
130 --font-weight-heading4: 100;
131 --font-weight-hero-text-h1: 600;
132 --font-weight-heading3: 400;
133 --success: #287d3c;
134 --font-family-heading4: 'Graphik Web';
135 --font-family-heading3: 'Graphik Web';
136 --font-weight-heading2: 400;
137 --font-weight-heading1: 600;
138 --font-size-sm: 0.875rem;
139 --font-family-heading2: 'Graphik Web';
140 --btn-primary-border-color: #0b5fff;
141 --font-family-heading1: 'Graphik Web';
142 --font-family-base: 'Arabic', sans-serif;
143 --spacer-0: 0;
144 --font-family-monospace: 'Arabic', sans-serif;
145 --lead-font-size: 1.25rem;
146 --border-radius: 0.25rem;
147 --spacer-9: 9rem;
148 --font-weight-light: 300;
149 --btn-secondary-hover-color: #272833;
150 --spacer-2: 0.5rem;
151 --font-family-button-body: 'Graphik Web';
152 --spacer-1: 0.25rem;
153 --spacer-4: 1.5rem;
154 --spacer-3: 1rem;
155 --spacer-6: 4.5rem;
156 --spacer-5: 3rem;
157 --spacer-8: 7.5rem;
158 --border-radius-circle: 50%;
159 --spacer-7: 6rem;
160 --font-size-lg: 1.125rem;
161 --aspect-ratio-8-to-3: 37.5%;
162 --font-family-sans-serif: 'Arabic', sans-serif;
163 --gray-100: #f7f8f9;
164 --font-weight-bolder: 900;
165 --container-max-xl: 1280px;
166 --btn-outline-secondary-color: #6b6c7e;
167 --custom-black: #1E1E1E;
168 --gray-500: #a7a9bc;
169 --h1-font-size: 66px;
170 --gray-900: #272833;
171 --text-muted: #a7a9bc;
172 --btn-primary-hover-border-color: transparent;
173 --btn-outline-secondary-border-color: #cdced9;
174 --lead-font-weight: 300;
175 --font-size-base: 0.875rem;
176 }
177
178 .article-breadcrumb
179 a{
180 color: var(--purple) !important;
181 text-decoration: underline !important;
182 text-decoration-color: #E6E6E6 !important;
183 }
184
185 .article-figure
186 img{
187 max-width: 100% !important;
188 }
189
190 #articleDiv
191 {
192 word-wrap:break-word;
193 }
194
195 .buttonBodyContainer:hover
196 a{
197 color: #ffffff !important;
198 }
199
200 .black-to-garnet-author{
201 color: var(--custom-black) !important;
202 text-decoration: underline !important;
203 text-decoration-color: #E6E6E6 !important;
204 }
205
206 .article-square-bio:hover
207 a{
208 color: var(--purple) !important;
209 text-decoration: underline !important;
210 text-decoration-color: #E6E6E6 !important;
211 }
212
213 .atk-article
214 a{
215 color: var(--purple) !important;
216 text-decoration: underline !important;
217 text-decoration-color: #E6E6E6 !important;
218 }
219
220 .atk-article
221 a:hover{
222 text-decoration: none !important;
223 }
224 </style>
225
226</#if>
227
228<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
229<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
230<#--
2317.4 Upgrade start
232-->
233<#assign AssetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService")>
234<#--
2357.4 Upgrade end
236-->
237<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
238<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
239<#assign AssetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")/>
240<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
241<#assign PortletPreferencesLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.PortletPreferencesLocalService")/>
242<#assign PropertyFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil") />
243<#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")>
244<#assign LayoutSetService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutSetLocalService")>
245<#assign DynamicQueryFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil") />
246<#assign virtualHostLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.VirtualHostLocalService") />
247<#assign TemplateCustomService = serviceLocator.findService("template.custom.services.TemplateCustomService") />
248<#assign ArticleTemplateCustomService = serviceLocator.findService("template.custom.services.ArticleTemplateCustomService") />
249<#assign DynamicPDFGenerationCustomService = serviceLocator.findService("template.custom.services.DynamicPDFGenerationCustomService") />
250
251<#assign
252serviceContextThreadLocal = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"]
253themeDisplay = serviceContextThreadLocal.getServiceContext().getThemeDisplay()
254/>
255<#assign imageSaturationFilter = themeDisplay.getLayout().getExpandoBridge().getAttribute("Add-Image-Saturation-Filter")!false />
256
257<#assign CurrentJournalArticle = JournalArticleLocalService.getLatestArticle(groupId,.vars['reserved-article-id'].data)>
258<#assign CurrentAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",CurrentJournalArticle.getResourcePrimKey())>
259<#assign AssetLinks=AssetLinkLocalService.getDirectLinks(CurrentAssetEntry.getEntryId()) >
260
261<#assign PropertyFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil") />
262
263<#-- update name here if change asset library name -->
264<#assign assetLibGroup = GroupLocalService.getGroup(themeDisplay.getCompanyId(), "Kearney Global Asset Library") />
265<#if assetLibGroup?? >
266 <#assign assetLibGroupId = assetLibGroup.getGroupId() />
267</#if>
268
269<#assign assetLinkOrder = CurrentJournalArticle.getExpandoBridge().getAttribute("Related Asset Ordering")!"" />
270
271<#--
2727.4 Upgrade start
273-->
274<#assign plid = themeDisplay.getPlid()>
275<#--
2767.4 Upgrade end
277-->
278<#if !(preview)>
279<#-- ATK 40 changes start -->
280 <#assign portletId = themeDisplay.getPortletDisplay().getId()>
281
282 <#assign portletPreferences = PortletPreferencesLocalService.getPortletPreferences(plid, portletId)?first />
283
284 <#assign preferences = PortletPreferencesLocalService.fetchPreferences(portletPreferences.getCompanyId(), portletPreferences.getOwnerId(), portletPreferences.getOwnerType(), plid, portletId) />
285
286<#-- Macro used to get specific field text from an Asset Entry -->
287<#macro entryNode document field>
288 <#if document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content")??>
289 "${document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content").getText()?js_string}"
290 <#else>
291 ""
292 </#if>
293</#macro>
294
295<#-- Macro used to get specific portlet preference -->
296<#macro preference prefKey prefIndex defaultValue>
297 <#if portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value")??>
298 "${portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value").getText()?js_string}"<#return>
299 <#else>
300 "${defaultValue?js_string}"<#return>
301 </#if>
302</#macro>
303<#-- ATK 40 changes end -->
304</#if>
305
306<#if (preview)>
307<#-- ATK 40 changes start -->
308
309 <#assign portletId = (PortletPreferencesLocalService.getPortletPreferencesByPlid(themeDisplay.getPlid())?first).getPortletId() >
310
311 <#assign portletPreferences = PortletPreferencesLocalService.getPortletPreferences(plid, portletId)?first />
312
313 <#assign preferences = PortletPreferencesLocalService.fetchPreferences(portletPreferences.getCompanyId(), portletPreferences.getOwnerId(), portletPreferences.getOwnerType(), plid, portletId) />
314
315<#-- Macro used to get specific field text from an Asset Entry -->
316<#macro entryNode document field>
317 <#if document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content")??>
318 "${document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content").getText()?js_string}"
319 <#else>
320 ""
321 </#if>
322</#macro>
323
324<#-- Macro used to get specific portlet preference -->
325<#macro preference prefKey prefIndex defaultValue>
326 <#if portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value")??>
327 "${portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value").getText()?js_string}"<#return>
328 <#else>
329 "${defaultValue?js_string}"<#return>
330 </#if>
331</#macro>
332<#-- ATK 40 changes end -->
333</#if>
334
335<#-- ATK-659 -->
336<#assign displayDate = "" />
337<#if CurrentJournalArticle.getDisplayDate()?has_content>
338 <#assign displayDate = CurrentJournalArticle.getDisplayDate()?date?string('MMMM dd, yyyy') />
339</#if>
340<#-- schema vars starts -->
341<#assign modifiedDate = "" />
342<#if CurrentJournalArticle.getModifiedDate()?has_content>
343 <#assign modifiedDate = CurrentJournalArticle.getModifiedDate()?date?string('yyyy-MM-dd') />
344</#if>
345<#assign displayDateForSchema = "" />
346<#if CurrentJournalArticle.getDisplayDate()?has_content>
347 <#assign displayDateForSchema = CurrentJournalArticle.getDisplayDate()?date?string('yyyy-MM-dd') />
348</#if>
349
350<#assign imageurlschema = "" />
351<#assign currenturi = "" />
352<#if (ThumbnailSquare.getData())??>
353 <#if (ThumbnailSquare.getData())?contains("?")>
354 <#assign imageurlschema = (ThumbnailSquare.getData())?keep_before("?") />
355 <#else>
356 <#assign imageurlschema = ThumbnailSquare.getData() />
357 </#if>
358
359</#if>
360<#if themeDisplay.getURLCurrent()?has_content >
361 <#if (themeDisplay.getURLCurrent())?contains("?") >
362 <#assign currenturi = (themeDisplay.getURLCurrent())?keep_before("?") />
363 <#else>
364 <#assign currenturi = (themeDisplay.getURLCurrent()) />
365 </#if>
366</#if>
367<#assign pageurlcurrent = themeDisplay.getCDNBaseURL() + currenturi />
368<#assign answer =''>
369<#if Intro.getData()?has_content >
370 <#assign answer = htmlUtil.unescape(Intro.getData())/>
371 <#else>
372 <#if Content.getSiblings()?has_content>
373 <#list Content.getSiblings() as cur_Content>
374 <#if (cur_Content.getData())??>
375 <#assign withouthtml = htmlUtil.unescape(cur_Content.getData())?replace('<[^>]+>','','r') />
376 <#assign withouthtml = withouthtml?replace('\\n+','','r') />
377 <#assign withouthtml = withouthtml?replace('\\t+','','r') />
378 <#assign withouthtml = withouthtml?replace('\\r+','','r') />
379 <#assign withouthtml = withouthtml?replace(' ','','r') />
380 <#assign answer += withouthtml />
381 </#if>
382 </#list>
383 </#if>
384</#if>
385<#assign hasExternalHeroBanner = false />
386<#assign externalHeroBannerImageURL = "" />
387<#assign externalHeroBannerTitle = "" />
388<#assign externalHeroBannerSubTitle = "" />
389<#if HeroImage?? && HeroImage.getData() == "">
390 <#assign externalHeroBannerData = ArticleTemplateCustomService.getHeroBannerData(plid, assetLibGroup.getGroupId(), themeDisplay) />
391 <#assign hasExternalHeroBanner = externalHeroBannerData.hasExternalHeroBanner />
392 <#assign externalHeroBannerImageURL = externalHeroBannerData.externalHeroBannerImageURL />
393 <#assign externalHeroBannerTitle = externalHeroBannerData.externalHeroBannerTitle />
394 <#assign externalHeroBannerSubTitle = externalHeroBannerData.externalHeroBannerSubTitle />
395</#if>
396<#-- schema ends -->
397<div id="articleDiv">
398</div>
399
400<script>
401
402 var articleMetadata = {};
403 articleMetadata.slug = "${(htmlUtil.unescape(Slug.getData()))?js_string}";
404 articleMetadata.articleTitle = "${(htmlUtil.unescape(ArticleTitle.getData()))?js_string}";
405
406 <#assign heroImageId = "" />
407 <#assign heroImageFileName = "" />
408 <#assign heroMobileImageId = "" />
409 <#assign heroMobileImageFileName = "" />
410
411 <#if HeroImage??>
412 articleMetadata.heroImage = "${HeroImage.getData()?js_string}";
413 <#assign parts = HeroImage.getData()?split("/")!"">
414 <#if HeroImage.getAttribute("title")??>
415 <#assign heroImageFileName = HeroImage.getAttribute("title")/>
416 <#else>
417 <#assign heroImageFileName = parts[4]!"" />
418 </#if>
419 <#if HeroImage.getAttribute("fileEntryId")??>
420 <#assign heroImageId = HeroImage.getAttribute("fileEntryId") />
421 <#else>
422 <#attempt>
423 <#assign heroImageId = DLFileEntryLocalService.getFileEntryByFileName(parts[2]?number, parts[3]?number, heroImageFileName).getFileEntryId()!"" />
424 <#recover>
425 <#if HeroImage.getAttribute("uuid")?? >
426 <#assign heroImageUuid = HeroImage.getAttribute("uuid")>
427 </#if>
428 <#if HeroImage.getAttribute("groupId")??>
429 <#assign heroImageGroupId = HeroImage.getAttribute("groupId")?number>
430 </#if>
431 <#if heroImageUuid?has_content && heroImageGroupId != 0 >
432 <#attempt>
433 <#assign fileEntry = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(heroImageUuid,heroImageGroupId) />
434 <#recover>
435 <#assign fileEntry = "" />
436 </#attempt>
437 <#if fileEntry?? && fileEntry?has_content>
438 <#assign heroImageId = fileEntry.getFileEntryId() />
439 </#if>
440 </#if>
441 </#attempt>
442 </#if>
443 articleMetadata.imageFileEntryId = "${heroImageId}";
444 articleMetadata.imageName = "${heroImageFileName}";
445 articleMetadata.imageSaturationFilter = "${imageSaturationFilter?c}";
446 </#if>
447 <#if HeroMobile??>
448 articleMetadata.heroMobile = "${HeroMobile.getData()?js_string}";
449 <#assign partsMobile = HeroMobile.getData()?split("/")!"">
450 <#if HeroMobile.getAttribute("title")??>
451 <#assign heroMobileImageFileName = HeroMobile.getAttribute("title")/>
452 <#else>
453 <#assign heroMobileImageFileName = partsMobile[4]!"" />
454 </#if>
455 <#if HeroMobile.getAttribute("fileEntryId")??>
456 <#assign heroMobileImageId = HeroMobile.getAttribute("fileEntryId")>
457 <#else>
458 <#attempt>
459 <#assign heroMobileImageId = DLFileEntryLocalService.getFileEntryByFileName(partsMobile[2]?number, partsMobile[3]?number, heroMobileImageFileName).getFileEntryId()!"" />
460 <#recover>
461 <#if HeroMobile.getAttribute("uuid")??>
462 <#assign heroMobileUuid = HeroMobile.getAttribute("uuid")>
463 </#if>
464 <#if HeroMobile.getAttribute("groupId")??>
465 <#assign heroMobileGroupId = HeroMobile.getAttribute("groupId")?number>
466 </#if>
467 <#if heroMobileUuid?? && heroMobileGroupId??>
468 <#attempt>
469 <#assign heroMobileImageId = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(heroMobileUuid,heroMobileGroupId).getFileEntryId()!"" />
470 <#recover>
471 <#assign heroMobileImageId = 0 />
472 </#attempt>
473 </#if>
474 </#attempt>
475 </#if>
476 articleMetadata.mobileImageFileEntryId = "${heroMobileImageId}";
477 articleMetadata.mobileImageName = "${heroMobileImageFileName}";
478 articleMetadata.imageSaturationFilter = "${imageSaturationFilter?c}";
479 </#if>
480
481 <#--
482 Set articleMetadata.publicTestArticle to restrict social sharing functionality to a single article.
483 Otherwise, leave commented to allow social sharing on all articles.
484 -->
485 <#--articleMetadata.publicTestArticle = 'test-article-url';-->
486
487
488 <#if BiggerTitle??>
489 articleMetadata.biggerTitle = ${getterUtil.getBoolean(BiggerTitle.getData())?c};
490 <#else>
491 articleMetadata.biggerTitle = false;
492 </#if>
493
494 articleMetadata.subtitle = "${(htmlUtil.unescape(Subtitle.getData()))?js_string}";
495
496 <#assign introData = htmlUtil.unescape(Intro.getData())>
497 <#if !introData?contains("l2it-audio-player")>
498 <#if AddArticleAudio??>
499 <#assign addarticleaudio = getterUtil.getBoolean(AddArticleAudio.getData())>
500 <#else>
501 <#assign addarticleaudio = false>
502 </#if>
503 <#if addarticleaudio == true>
504 <#assign articleaudiotext = '<div id="l2it-audio-player"></div>' >
505 <#assign introData = introData + articleaudiotext>
506 </#if>
507 </#if>
508
509 articleMetadata.intro = "${introData?js_string}";
510
511 <#assign LandingArticle = false />
512 <#if LandingPage??>
513 articleMetadata.landingPage = '${getterUtil.getBoolean(LandingPage.getData())?c}';
514 <#assign LandingArticle = getterUtil.getBoolean(LandingPage.getData()) />
515 <#else>
516 articleMetadata.landingPage = false;
517 </#if>
518
519 <#if SocialLinks??>
520 <#if SocialLinks.getData() == "">
521 articleMetadata.socialLinks = true;
522 <#else>
523 articleMetadata.socialLinks = ${getterUtil.getBoolean(SocialLinks.getData())?c};
524 </#if>
525 <#else>
526 articleMetadata.socialLinks = false;
527 </#if>
528
529 <#if GraySeparator??>
530 <#if GraySeparator.getData() == "">
531 articleMetadata.graySeparator = true;
532 <#else>
533 articleMetadata.graySeparator = ${getterUtil.getBoolean(GraySeparator.getData())?c};
534 </#if>
535 <#else>
536 articleMetadata.graySeparator = false;
537 </#if>
538
539 <#if ShowParentBreadcrumb?? && LandingPage?? && getterUtil.getBoolean(LandingPage.getData()) == true>
540 articleMetadata.showParentBreadcrumb = ${getterUtil.getBoolean(ShowParentBreadcrumb.getData())?c}
541 <#else>
542 articleMetadata.showParentBreadcrumb = true;
543 </#if>
544
545 <#if BreadcrumbLabel??>
546 articleMetadata.parentBreadcrumbLabel = "${(htmlUtil.unescape(BreadcrumbLabel.getData()))?js_string}";
547 </#if>
548
549 <#if BreadcrumbURL??>
550 articleMetadata.parentBreadcrumbURL = "${BreadcrumbURL.getData()?js_string}";
551 </#if>
552
553 <#if Byline??>
554 articleMetadata.byline = "${(htmlUtil.unescape(Byline.getData()))?js_string}";
555 </#if>
556
557 <#if FeaturedContributor??>
558 articleMetadata.featuredContributor = "${htmlUtil.unescape(FeaturedContributor.getData())}"
559 </#if>
560
561 <#-- Removed as of ATK-1208 -- No longer needed -- Legacy -->
562 <#--
563 <#if PostArticleSlideShareKey?? && PostArticleSlideShareKey.PostArticleSlideshareContent??>
564 articleMetadata.postArticleSlideshareKey = "${PostArticleSlideShareKey.getData()}"
565
566 articleMetadata.postArticleSlideshareContent = "${PostArticleSlideShareKey.PostArticleSlideshareContent.getData()}"
567 </#if>
568 -->
569
570 var articleContents = [];
571 <#if Content.getSiblings()?has_content>
572 <#list Content.getSiblings() as cur_Content>
573
574 var images = [];
575
576 <#if cur_Content.PrimaryImage?has_content>
577 <#list cur_Content.PrimaryImage.getSiblings() as cur_PrimaryImage>
578 <#assign contentImageName = "" />
579 <#assign contentImageFileEntryId = "" />
580
581 <#if cur_PrimaryImage.getData() != "">
582 <#assign cur_PrimaryImageParts = cur_PrimaryImage.getData()?split("/")!"" />
583 <#if cur_PrimaryImage.getAttribute("title")??>
584 <#assign contentImageName = cur_PrimaryImage.getAttribute("title") />
585 <#else>
586 <#assign contentImageName = cur_PrimaryImageParts[4]!"" />
587 </#if>
588 <#if cur_PrimaryImage.getAttribute("fileEntryId")??>
589 <#assign contentImageFileEntryId = cur_PrimaryImage.getAttribute("fileEntryId") />
590 <#else>
591 <#attempt>
592 <#assign contentImageFileEntryId = DLFileEntryLocalService.getFileEntryByFileName(cur_PrimaryImageParts[2]?number, cur_PrimaryImageParts[3]?number, contentImageName).getFileEntryId()!"" />
593 <#recover>
594 <#if cur_PrimaryImage.getAttribute("uuid")??>
595 <#assign curImageUuid = cur_PrimaryImage.getAttribute("uuid")/>
596 </#if>
597 <#if cur_PrimaryImage.getAttribute("groupId")??>
598 <#assign curImageGroupId = cur_PrimaryImage.getAttribute("groupId")?number />
599 </#if>
600 <#if curImageUuid?? && curImageGroupId??>
601 <#assign contentImageFileEntryId = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(curImageUuid,curImageGroupId).getFileEntryId()!"" />
602 </#if>
603 </#attempt>
604 </#if>
605 </#if>
606
607 var image = {"imageURL": "${cur_PrimaryImage.getData()?js_string}", "imageFileEntryId": "${contentImageFileEntryId}", "imageFileName":"${contentImageName}", "imageSaturationFilter":"${imageSaturationFilter?c}"};
608
609 <#if cur_Content.PrimaryImage.SlideshowCaption??>
610 image["caption"] = "${(htmlUtil.unescape(cur_PrimaryImage.SlideshowCaption.getData()))?js_string}";
611 </#if>
612
613 image["sharingEnabled"] = ${(cur_PrimaryImage.SharingEnabled?? && cur_PrimaryImage.SharingEnabled.getData() == "true")?c};
614
615 images.push(image);
616
617 </#list>
618 </#if>
619
620 articleContents.push({
621 <#if cur_Content.FeatureSlug??>
622 slug: "${cur_Content.FeatureSlug.getData()?js_string}",
623 </#if>
624 <#if cur_Content.TextAlignment??>
625 textAlignment: "${cur_Content.TextAlignment.getData()?js_string}",
626 </#if>
627 content: "${(htmlUtil.unescape(cur_Content.getData()))?js_string}",
628 styling: "${cur_Content.stylingSelect.getData()?js_string}",
629 alternateText: "${(htmlUtil.unescape(cur_Content.AlternateText.getData()))?js_string}",
630 primaryImage: images,
631 secondaryImage: "${cur_Content.SecondaryMaskImage.getData()?js_string}",
632 buttonText: "${(htmlUtil.unescape(cur_Content.ButtonText.getData()))?js_string}",
633 buttonURL: "${cur_Content.ButtonURL.getData()?js_string}",
634 displayDate: "${displayDate}"
635 });
636
637
638 </#list>
639 </#if>
640
641 var bios = [];
642 <#assign articleGroup = GroupLocalService.getGroup(CurrentAssetEntry.getGroupId())
643 guestGroup = GroupLocalService.getFriendlyURLGroup(articleGroup.getCompanyId(), "/guest") />
644 <#--
645 Create list of groups that asset entries live in, so that linked bios can be retrieved by UUID
646 -->
647 <#assign assetLinkGroups = []>
648 <#if AssetLinks?has_content>
649 <#list AssetLinks as assetLink>
650 <#assign linkedAssetEntry = AssetEntryLocalService.getAssetEntry(assetLink.getEntryId2())>
651 <#assign assetLinkGroups = assetLinkGroups + [linkedAssetEntry.getGroupId()]>
652 </#list>
653 </#if>
654
655 //Create asset link ordering
656 var assetOrderArr = [];
657
658 <#list assetLinkOrder?split(",") as assetLinkUUID>
659 <#--
660 Find group which asset link is stored in and assign the resulting asset entry
661 -->
662 <#assign orderAssetEntry = "">
663
664 <#list assetLinkGroups as assetLinkGroupId>
665 <#assign orderAssetEntry = AssetEntryLocalService.fetchEntry(assetLinkGroupId, assetLinkUUID)!"">
666
667 <#if orderAssetEntry != "">
668 <#break />
669 </#if>
670 </#list>
671
672 <#if orderAssetEntry != "">
673 <#assign orderJournalArticle = JournalArticleLocalService.fetchLatestArticle(orderAssetEntry.getClassPK())!"">
674 <#if orderJournalArticle != "">
675 assetOrderArr.push("${orderJournalArticle.getArticleId()}");
676 </#if>
677 </#if>
678 </#list>
679
680 var assetOrderMap = {};
681
682 for(var order=1; order<assetOrderArr.length; order++) {
683 assetOrderMap[assetOrderArr[order-1]] = order;
684 }
685
686 var getAssetOrder = function(uuid) {
687 var order = assetOrderMap[uuid];
688 if(!order) {
689 order = Object.keys(assetOrderMap).length + 1;
690 assetOrderMap[uuid] = order;
691 }
692
693 return order;
694 };
695 <#assign authorlistschema = [] />
696 <#assign authorListForPdf = [] />
697
698 <#if Authors?? && Authors.getSiblings()?has_content>
699
700 var bioC =0;
701 <#list Authors.getSiblings() as cur_Authors>
702
703 <#if cur_Authors.getData() != "" >
704 <#assign cur_webContent_map = jsonFactoryUtil.createJSONObject(cur_Authors.getData())>
705 <#assign cur_webContent_classPK = cur_webContent_map.getString("classPK")>
706 <#if cur_webContent_classPK??>
707 <#if JournalArticleLocalService.fetchLatestArticle(cur_webContent_classPK?number)??>
708 <#assign articleK = JournalArticleLocalService.fetchLatestArticle(cur_webContent_classPK?number)>
709 <#assign articleKAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",articleK.getResourcePrimKey()) />
710
711 <#if articleKAssetEntry?? && articleKAssetEntry.getAssetRenderer()??>
712 <#assign xml = saxReaderUtil.read(articleKAssetEntry.getAssetRenderer().getArticle().getContentByLocale(themeDisplay.getLocale())) />
713
714
715
716 <#assign xml_fullName = xml.valueOf("//dynamic-element[@name='FullName']/dynamic-content/text()") />
717 <#assign xml_title = xml.valueOf("//dynamic-element[@name='Title']/dynamic-content/text()") />
718 <#assign xml_headshotImage = TemplateCustomService.getDocumentFileDetails(xml,"CutoutHeadshot",themeDisplay)/>
719
720 <#-- Split on '*****' to separate the ID+filename part and the URL -->
721 <#assign headshotxmlImageDetailParts = xml_headshotImage?split("*****")!"">
722
723 <#-- Extract the left and right parts -->
724 <#assign headshotxmlLeftPart = headshotxmlImageDetailParts[0]!"">
725 <#assign xml_headshotImage = headshotxmlImageDetailParts[1]!"">
726
727 <#-- From the left part, split on '+++++' to get the ID -->
728 <#assign headshotxmlImageFileEntryId = headshotxmlLeftPart?split("+++++")[0]!"">
729 <#assign headshotxmlImageFileName = headshotxmlLeftPart?split("+++++")[1]!"">
730
731 <#if xml_headshotImage?contains("&download=")>
732 <#assign xml_headshotImage = xml_headshotImage?keep_before("&download=")>
733 </#if>
734
735
736 var bio1 = {};
737 bio1.structureKey=('${articleK.getDDMStructure().getName("en_US")}');
738 bio1.weight= ++bioC;
739 bio1.fullName = '${(htmlUtil.unescape(xml_fullName))?js_string}';
740 bio1.headshot = '${xml_headshotImage?js_string}';
741 bio1.imageFileEntryId = '${headshotxmlImageFileEntryId?js_string}';
742 bio1.imageFileName = '${headshotxmlImageFileName?js_string}';
743 bio1.imageSaturationFilter = '${imageSaturationFilter?c}',
744 bio1.title = '${xml_title}';
745 <#if (articleGroup.getLiveGroupId() != 0 ) >
746 <#assign articleK = JournalArticleLocalService.getArticleByUrlTitle(assetLibGroupId, articleK.getUrlTitle()) />
747 </#if>
748 <#assign viewURL = '' />
749
750 <#if articleK.getDDMStructure().getName("en_US") == "Bio Page">
751 <#assign viewURL = TemplateCustomService.getArticleViewURL(articleK.getArticleId(),assetLibGroup,articleK.getGroupId(),themeDisplay,guestGroup.getGroupId())/>
752 <#if !(viewURL?has_content)>
753 <#assign viewURL = themeDisplay.getPortalURL() + "/about/people/bio/" + xml_fullName?lower_case?replace(" ", "-")/>
754 </#if>
755 </#if>
756
757 bio1.bioURL = '${viewURL}';
758 bios.push(bio1);
759 <#assign authorListForPdf = [xml_fullName + "::::::::" + xml_title + "++++++++" + viewURL + ";;;;;;;;" + headshotxmlImageFileEntryId] + authorListForPdf />
760 <#assign viewURLschema = ''/>
761 <#if viewURL?has_content>
762 <#assign viewURLschema = viewURL />
763 </#if>
764 <#assign authordataschema = {"url":viewURLschema, "jobTitle":xml_title, "name":xml_fullName} />
765 <#assign authorlistschema = authorlistschema + [authordataschema] />
766 </#if>
767 </#if>
768 </#if>
769 </#if>
770
771 </#list>
772
773 </#if>
774
775 <#assign oldwaytogetauthourforschema = false>
776 <#if authorlistschema?size == 0>
777 <#assign oldwaytogetauthourforschema = true>
778 </#if>
779
780 if (bios.length == 0){
781 <#assign authorCounter = authorListForPdf?size />
782 <#if AssetLinks?has_content>
783
784 <#list AssetLinks as assetLink>
785 <#assign linkedAssetEntry = AssetEntryLocalService.getAssetEntry(assetLink.getEntryId2())>
786 <#assign linkedJournalArticle = JournalArticleLocalService.getLatestArticle(linkedAssetEntry.getClassPK())>
787 <#assign xml = saxReaderUtil.read(linkedAssetEntry.getAssetRenderer().getArticle().getContentByLocale(themeDisplay.getLocale())) />
788 <#assign structureKey = linkedJournalArticle.getDDMStructure().getName("en_US") />
789
790 var bio = {};
791
792 <#assign xml_headshotDetails = TemplateCustomService.getDocumentFileDetails(xml,"CutoutHeadshot",themeDisplay)/>
793
794 <#-- Split on '*****' to separate the ID+filename part and the URL -->
795 <#assign headshotImageDetailParts = xml_headshotDetails?split("*****")!"">
796
797 <#-- Extract the left and right parts -->
798 <#assign headshotLeftPart = headshotImageDetailParts[0]!"">
799 <#assign xml_headshot = headshotImageDetailParts[1]!"">
800
801 <#-- From the left part, split on '+++++' to get the ID -->
802 <#assign headshotImageFileEntryId = headshotLeftPart?split("+++++")[0]!"">
803 <#assign headshotImageFileName = headshotLeftPart?split("+++++")[1]!"">
804
805
806 <#if xml_headshot?contains("&download=")>
807 <#assign xml_headshot = xml_headshot?keep_before("&download=")>
808 </#if>
809 <#if structureKey == "Bio Page" || structureKey == "Micro Bio" >
810 <#assign xml_fullName = xml.valueOf("//dynamic-element[@name='FullName']/dynamic-content/text()") />
811 <#assign xml_title = xml.valueOf("//dynamic-element[@name='Title']/dynamic-content/text()") />
812 bio.structureKey=('${structureKey}').trim();
813 bio.weight = getAssetOrder("${linkedJournalArticle.getArticleId()}");
814 bio.fullName = "${(htmlUtil.unescape(xml_fullName))?js_string}";
815 bio.position = "${xml.valueOf("//dynamic-element[@name='Position']/dynamic-content/text()")?js_string}";
816 bio.title = "${xml_title?js_string}";
817 bio.headshot = "${xml_headshot?js_string}";
818 bio.imageFileEntryId = "${headshotImageFileEntryId?js_string}";
819 bio.imageFileName = "${headshotImageFileName?js_string}";
820 bio.imageSaturationFilter ='${imageSaturationFilter?c}',
821 bio.description = "${xml.valueOf("//dynamic-element[@name='Description']/dynamic-content/text()")?js_string}";
822 bio.linkedInURL = "${xml.valueOf("//dynamic-element[@name='LinkedInURL']/dynamic-content/text()")?js_string}";
823
824 <#assign viewURL = '' />
825 <#if linkedJournalArticle.getDDMStructure().getName("en_US") == "Bio Page">
826 <#assign viewURL = themeDisplay.getPortalURL() + "/about/people/bio/" + xml_fullName?lower_case?replace(" ", "-")/>
827 </#if>
828
829 bio.bioURL = '${viewURL}';
830 bios.push(bio);
831
832 <#if authorCounter == 0>
833 <#assign authorListForPdf = [xml_fullName + "::::::::" + xml_title + "++++++++" + viewURL + ";;;;;;;;" + headshotImageFileEntryId] + authorListForPdf />
834 </#if>
835
836 <#assign viewURLschema = ''/>
837 <#if viewURL?has_content>
838 <#assign viewURLschema = viewURL />
839 </#if>
840
841 <#if oldwaytogetauthourforschema>
842 <#assign authordataschema = {"url":viewURLschema, "jobTitle":xml_title, "name":xml_fullName} />
843 <#assign authorlistschema = authorlistschema + [authordataschema] />
844 </#if>
845 </#if>
846 </#list>
847
848 bios.sort(function(bio1, bio2){
849 return bio1.weight - bio2.weight;
850 });
851 </#if>
852
853 }
854 <#assign assetCategories = AssetCategoryLocalService.getCategories(CurrentAssetEntry.getClassNameId(), CurrentAssetEntry.getClassPK())>
855
856 var articleCategories = [];
857
858 <#list assetCategories as category>
859 <#assign categoryVocabulary = AssetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId())>
860 <#assign categoryUrl = "#">
861
862 <#list AssetCategoryPropertyLocalService.getCategoryProperties(category.categoryId) as categoryProperty>
863
864 <#if categoryProperty.key == "url">
865 <#assign categoryUrl = categoryProperty.value>
866 </#if>
867 </#list>
868
869 articleCategories.push({
870 id: "${category.categoryId}",
871 name: "${category.name}",
872 url: "${categoryUrl}",
873 vocabularyName: "${categoryVocabulary.getName()?js_string}",
874 });
875 </#list>
876
877 articleMetadata.categories = articleCategories;
878 <#if LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false)??
879 && LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false).getThemeSetting("isMicroSite", "regular")?? >
880 <#assign isMicroSite = (LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")>
881 <#else>
882 <#assign isMicroSite = false>
883 </#if>
884
885 <#-- ATK-1384 -- 240212 is groupid for Microsite -->
886 <#assign siteName = "Kearney">
887 <#if GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getParentGroupId() == 240212>
888 <#assign siteName = GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getName("en_US")?cap_first />
889 </#if>
890
891 articleMetadata.isMicroSite = ${isMicroSite?c};
892 articleMetadata.groupName = "${articleGroup.getName("en_US")?js_string}";
893 articleMetadata.siteName = "${siteName?js_string}";
894 articleMetadata.groupFriendlyUrl = "${articleGroup.getFriendlyURL()?js_string}";
895
896 <#if ReadMoreURL??>
897 articleMetadata.readMoreURL = "${ReadMoreURL.getData()?js_string}";
898 <#else>
899 articleMetadata.readMoreURL = "";
900 </#if>
901
902 <#if ReadMoreTextOverride??>
903 articleMetadata.readMoreTextOverride = "${(htmlUtil.unescape(ReadMoreTextOverride.getData()))?js_string}";
904 <#else>
905 articleMetadata.readMoreTextOverride = "";
906 </#if>
907
908 <#if ContributorsTitleOverride??>
909 articleMetadata.contributorsTitleOverride = "${(htmlUtil.unescape(ContributorsTitleOverride.getData()))?js_string}";
910 <#else>
911 articleMetadata.contributorsTitleOverride = "";
912 </#if>
913
914 <#if ReadMoreOverlay??>
915 articleMetadata.readMoreOverlay = ${getterUtil.getBoolean(ReadMoreOverlay.getData())?c}
916 <#else>
917 articleMetadata.readMoreOverlay = false;
918 </#if>
919
920 var sidebarContents = [];
921 <#assign enableSidebar = false>
922 <#if EnableSidebar??>
923 <#assign enableSidebar = getterUtil.getBoolean(EnableSidebar.getData())>
924 </#if>
925 <#-- Check if Sidebar is enabled or not -->
926 <#if enableSidebar == true>
927
928 <#assign listingOfArticles = false>
929 <#assign singleAssetWithImage = false>
930 <#assign richTextSection = false>
931 <#assign listView = false>
932 <#if EnableSidebar.ListingOfArticles??>
933 <#assign listingOfArticles = getterUtil.getBoolean(EnableSidebar.ListingOfArticles.getData())>
934 </#if>
935 <#if EnableSidebar.SingleAssetWithImage??>
936 <#assign singleAssetWithImage = getterUtil.getBoolean(EnableSidebar.SingleAssetWithImage.getData())>
937 </#if>
938 <#if EnableSidebar.RichTextSection??>
939 <#assign richTextSection = getterUtil.getBoolean(EnableSidebar.RichTextSection.getData())>
940 </#if>
941 <#if EnableSidebar.ListView??>
942 <#assign listView = getterUtil.getBoolean(EnableSidebar.ListView.getData())>
943 </#if>
944
945 <#-- Web content with Link Structure -- ATK-1208 -->
946 <#if PostArticleSlideShareKeyFieldSet.PostArticleSlideShareKeyFieldSetFieldSet.PostArticleSlideshareContent?has_content>
947 <#assign linkAssetArticle = ArticleTemplateCustomService.getManualArticle(PostArticleSlideShareKeyFieldSet.PostArticleSlideShareKeyFieldSetFieldSet.PostArticleSlideshareContent.getData())!"null" />
948 <#if !linkAssetArticle?matches("null")>
949 <#assign jArt = JournalArticleLocalService.getLatestArticle(linkAssetArticle.getClassPK())>
950 <#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))>
951 <#assign structureName = jArt.getDDMStructure().getName("en_US")>
952 <#if structureName?matches("Link")>
953 var articleSidebarRichText = <@entryNode document=document field="ArticleSidebarRichText"/>;
954 var linkWebContentData = {
955 articleSidebarRichText: articleSidebarRichText
956 }
957 sidebarContents.push({
958 linkWebContentData:linkWebContentData,
959 componentType:"linkWebContent"
960 });
961 </#if>
962 </#if>
963 </#if>
964
965 <#-- If Asset publisher listing of articles is enabled -->
966 <#if listingOfArticles == true>
967
968 <#assign listOfArticlesTitles = "Related">
969 <#if EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListingOfArticlesFieldSet.ListingOfArticlesFieldSetFieldSet.getSiblings()?has_content>
970 <#list EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListingOfArticlesFieldSet.ListingOfArticlesFieldSetFieldSet.getSiblings() as assetArticleListEntry>
971 <#if assetArticleListEntry.ListingOfArticlesTitle.getData()?has_content>
972 <#assign listOfArticlesTitles = htmlUtil.unescape(assetArticleListEntry.ListingOfArticlesTitle.getData())>
973 </#if>
974 <#assign manualArticlesEntries = {}>
975 <#if assetArticleListEntry.SelectSidebarArticles??>
976 <#assign manualArticlesEntries = ArticleTemplateCustomService.getManualArticleList(assetArticleListEntry.SelectSidebarArticles.getSiblings())>
977 </#if>
978 var manualArticlesEntry = [];
979 <#if manualArticlesEntries?size > 0 >
980 <#list manualArticlesEntries as curEntry>
981 <#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())>
982 <#assign viewURL = TemplateCustomService.getSidebarArticleViewURL(themeDisplay,jArt,assetLibGroup)/>
983 var articleEntry = {"articleTitle": "${TemplateCustomService.getSidebarArticleTitle(themeDisplay,jArt,assetLibGroup)}","articleURL":"${viewURL}"};
984 manualArticlesEntry.push(articleEntry);
985 </#list>
986 <#else>
987 <#assign noOfFeatureArticle = "3">
988 <#if assetArticleListEntry.NoOfArticlesDisplayed.getData() != "0">
989 <#assign noOfFeatureArticle = assetArticleListEntry.NoOfArticlesDisplayed.getData()>
990 </#if>
991 <#assign manualArticlesEntries = ArticleTemplateCustomService.getRelatedArticles(CurrentAssetEntry.getEntryId(), CurrentAssetEntry.getClassTypeId(), noOfFeatureArticle, "Any")>
992 <#list manualArticlesEntries as curEntry>
993 <#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())>
994 <#assign viewURL = TemplateCustomService.getSidebarArticleViewURL(themeDisplay,jArt,assetLibGroup)/>
995 var articleEntry = {"articleTitle": "${TemplateCustomService.getSidebarArticleTitle(themeDisplay,jArt,assetLibGroup)}","articleURL":"${viewURL}"};
996 manualArticlesEntry.push(articleEntry);
997 </#list>
998 </#if>
999 sidebarContents.push({
1000 listingOfArticlesTitle:"${listOfArticlesTitles}",
1001 manualArticles:manualArticlesEntry,
1002 componentType:"listingOfArticles"
1003 });
1004 </#list>
1005 </#if>
1006
1007 </#if>
1008 <#-- Single Asset Image article -->
1009 <#if singleAssetWithImage == true>
1010 <#if EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.SingleAssetWithImageFieldSet.SingleAssetWithImageArticleFieldSet.getSiblings()?has_content>
1011 <#list EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.SingleAssetWithImageFieldSet.SingleAssetWithImageArticleFieldSet.getSiblings() as singleAssetEntry>
1012
1013 <#assign learnMoreText = "Learn more">
1014 <#assign enableTNSImage = true>
1015 <#assign enableSlug = true>
1016
1017 <#if singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.LearnMoreButtonText.getData()??>
1018 <#assign learnMoreText = htmlUtil.unescape(singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.LearnMoreButtonText.getData())/>
1019 </#if>
1020
1021 <#if singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableTNSImage??>
1022 <#assign enableTNSImage = getterUtil.getBoolean(singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableTNSImage.getData())/>
1023 </#if>
1024
1025 <#if singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableSlug??>
1026 <#assign enableSlug = getterUtil.getBoolean(singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableSlug.getData())>
1027 </#if>
1028
1029 <#assign singleAssetArticleData = jsonFactoryUtil.createJSONObject(singleAssetEntry.SingleAssetWithImageArticle.getData())/>
1030
1031 <#if singleAssetArticleData?has_content>
1032 <#assign singleAssetArticle = ArticleTemplateCustomService.getManualArticle(singleAssetEntry.SingleAssetWithImageArticle.getData())>
1033 <#assign jArt = JournalArticleLocalService.getLatestArticle(singleAssetArticle.getClassPK())>
1034 <#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))>
1035 <#assign structureName = jArt.getDDMStructure().getName("en_US")>
1036
1037 var componentType = "FEATURED_ARTICLE";
1038 var title = <@entryNode document=document field="ArticleTitle"/>;
1039 var subtitle = <@entryNode document=document field="Subtitle"/>;
1040 var description = <@entryNode document=document field="Description"/>;
1041 if (description == "") {
1042 description = <@entryNode document=document field="Intro"/>;
1043 }
1044 var slug = <@entryNode document=document field="Slug"/>;
1045 var linkTargetOverride = <@entryNode document=document field="LinkTargetOverride"/>;
1046
1047 if(linkTargetOverride == "" || linkTargetOverride == null) {
1048 linkTargetOverride = <@entryNode document=document field="LinkURL"/>;
1049 }
1050 <#-- ATK-1357 Changes Start -->
1051 var videoUrl = "";
1052 <#if structureName?matches('Video')>
1053 videoUrl = <@entryNode document=document field="VideoURL"/>;
1054 </#if>
1055 <#-- ATK-1357 Changes End -->
1056
1057 <#assign articleGroup = GroupLocalService.getGroup(jArt.getGroupId())>
1058
1059 <#if LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false)??&& LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular")??>
1060 <#assign isMicroSite = (LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")>
1061 <#else>
1062 <#assign isMicroSite = false>
1063 </#if>
1064
1065 var imageFileEntryId = 0;
1066 var imageFileName = "";
1067 var image = '${TemplateCustomService.getDocumentFileDetails(document,"ThumbnailSquare",themeDisplay)}';
1068 if (null == image || "" == image) {
1069 image = '${TemplateCustomService.getDocumentFileDetails(document,"Thumbnail",themeDisplay)}';
1070 }
1071 if (null == image) {
1072 image = "";
1073 }
1074
1075 if ((image) || image != "") {
1076 var [imageFileEntryId, restString] = image.split('+++++');
1077 var [imageFileName, image] = restString.split('*****');
1078 }
1079
1080 var singleAssetComponent = {
1081 slug: slug,
1082 title: title,
1083 subtitle: subtitle,
1084 description: description,
1085 structureName: '${structureName}',
1086 image: image.trim(),
1087 imageFileEntryId: imageFileEntryId,
1088 imageFileName: imageFileName,
1089 imageSaturationFilter:'${imageSaturationFilter?c}',
1090 groupFriendlyUrl: '${articleGroup.getFriendlyURL()}',
1091 isMicrosite: ${isMicroSite?c},
1092 linkTargetOverride: linkTargetOverride,
1093 videoUrl: videoUrl
1094 }
1095
1096 sidebarContents.push({
1097 singleAssetData: singleAssetComponent,
1098 componentType: "singleAsset",
1099 learnMoreTextValue: '${learnMoreText}',
1100 enableSlugValue: ${enableSlug?c},
1101 enableTNSImageValue: ${enableTNSImage?c}
1102 });
1103 </#if>
1104 </#list>
1105 </#if>
1106
1107 </#if>
1108 <#-- Rich Text Section -->
1109 <#if richTextSection == true>
1110 var richTextSectionData = [];
1111 <#if EnableSidebar.RichTextSection.RichTextSectionContent.getSiblings()?has_content>
1112 <#list EnableSidebar.RichTextSection.RichTextSectionContent.getSiblings() as richTextData>
1113 <#if (richTextData.getData())??>
1114 <#assign richTextSection = richTextData.getData()>
1115 richTextSectionData.push({
1116 richTextSectionContent: '${richTextSection?js_string}'
1117 });
1118 </#if>
1119 </#list>
1120 </#if>
1121
1122 sidebarContents.push({
1123 richTextContentData : richTextSectionData,
1124 componentType:"richTextContent"
1125 });
1126 </#if>
1127 <#-- List View -->
1128 <#if listView == true>
1129 <#if EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListViewFieldSet.ListViewFieldSetFieldSet.getSiblings()?has_content>
1130 <#list EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListViewFieldSet.ListViewFieldSetFieldSet.getSiblings() as listViewEntry>
1131
1132 var listViewComponentData = [];
1133 <#assign listViewTitle = "Related">
1134 <#assign displayListViewTitle = false>
1135
1136 <#if listViewEntry.ListViewTitleFieldSet.ListViewTitle.getData()??>
1137 <#assign listViewTitle = htmlUtil.unescape(listViewEntry.ListViewTitleFieldSet.ListViewTitle.getData())>
1138 </#if>
1139
1140 <#if listViewEntry.ListViewTitleFieldSet.ListViewTitleFieldSetFieldSet.DisplayListViewTitle.getData()??>
1141 <#assign displayListViewTitle = getterUtil.getBoolean(listViewEntry.ListViewTitleFieldSet.ListViewTitleFieldSetFieldSet.DisplayListViewTitle.getData())>
1142 </#if>
1143
1144 <#if listViewEntry.ListViewTextFieldSet.getSiblings()?has_content>
1145 <#list listViewEntry.ListViewTextFieldSet.getSiblings() as listViewData>
1146 <#assign listView = htmlUtil.unescape(listViewData.ListViewText.getData())>
1147 <#assign listlink = listViewData.ListViewTextFieldSetFieldSet.ListViewLink.getData()>
1148 listViewComponentData.push({
1149 listViewTitle: '${listView}',
1150 listViewLink: '${listlink}',
1151 });
1152 </#list>
1153 </#if>
1154
1155 sidebarContents.push({
1156 listViewData: listViewComponentData,
1157 componentType: "listView",
1158 listViewTitleValue: '${listViewTitle}',
1159 displayListViewTitleValue: ${displayListViewTitle?c}
1160 });
1161 </#list>
1162 </#if>
1163
1164 </#if>
1165
1166 </#if>
1167
1168 <#-- ATK - 902 Changes Start -->
1169 ATK.isArticlePage = 'false';
1170 <#if LandingArticle == false >
1171 <#if themeDisplay.getURLCurrent()?contains("/article/") || themeDisplay.getURLCurrent()?contains("/-/") || (themeDisplay.getURLCurrent()?contains("/alumni/alumni-profiles/") && !themeDisplay.getURLCurrent()?ends_with("/alumni/alumni-profiles/")) >
1172 ATK.isArticlePage = 'true';
1173 </#if>
1174 </#if>
1175 <#-- ATK - 902 Changes Over -->
1176
1177 <#if PDF?? && PDF.getData() != "">
1178 articleMetadata.pdf = "${PDF.getData()?js_string}"
1179 <#else>
1180 <#if !GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getName("en_US")?matches("Japan") && !GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getName("en_US")?matches("China")>
1181 <#assign pdfURL = DynamicPDFGenerationCustomService.getPdfUrl(CurrentJournalArticle, assetLibGroup, "Article-Pdf", themeDisplay, authorListForPdf, isMicroSite, LandingArticle, "pdf-boilerplate-code", externalHeroBannerImageURL, hasExternalHeroBanner, externalHeroBannerTitle, externalHeroBannerSubTitle) />
1182 articleMetadata.pdf = "${pdfURL?js_string}";
1183 </#if>
1184 </#if>
1185
1186 ATK.React.App.Article('articleDiv', articleMetadata, articleContents, bios, sidebarContents);
1187
1188 // Run embedded scripts after article renders.
1189 for (var i in articleContents) {
1190
1191 var re = /<script>(.+)<\/script>/gi;
1192 var thisExtractedScript = ['', ''];
1193
1194 while (null != (thisExtractedScript = re.exec(articleContents[i].content))) {
1195 window.eval(thisExtractedScript[1]);
1196 }
1197 }
1198
1199</script>
1200
1201<div class="atk-container">
1202 <hr class="after-25-px-phone" style="display: none;" id="hrfeatureArticle">
1203</div>
1204
1205
1206<div id="articleAdtDiv_${portletId}" class="articleAdtDiv" />
1207
1208<script>
1209<#assign enableRelatedInsights = false>
1210
1211<#if EnableRelatedInsights??>
1212 <#assign enableRelatedInsights = getterUtil.getBoolean(EnableRelatedInsights.getData())>
1213</#if>
1214<#if enableRelatedInsights == true>
1215<#assign multiArtBehavior = "Two Wide">
1216<#assign gridTitle = "Also of interest">
1217<#assign noOfFeatureArticle = "2">
1218<#assign featureDisplayType = "Image Left">
1219
1220<#assign fullWidthDisplay = "false">
1221<#assign greyBackground = "false">
1222<#assign extraSpacer = "None">
1223<#assign seeAllLink = "">
1224<#assign seeAllLinkText = "">
1225<#assign greyBackground = "false">
1226<#assign extraSpacer = "None">
1227<#assign autoplay = "false">
1228<#assign featureDisplayButtonType = "Visible">
1229<#assign featureDisplayButtonText = "">
1230
1231<#if GridTitle??>
1232 <#assign gridTitle = htmlUtil.unescape(GridTitle.getData())>
1233</#if>
1234<#if gridTitle?has_content>
1235 <#-- ATK-712: Code Start -->
1236 <#if gridTitle?matches("Related insights") || gridTitle?matches("Related Insights")>
1237 <#assign gridTitle = "Also of interest">
1238 </#if>
1239 <#-- ATK-712: Code End -->
1240<#else>
1241 <#assign gridTitle = "Also of interest">
1242</#if>
1243<#if MultipleArticleBehavior??>
1244 <#assign multiArtBehavior = MultipleArticleBehavior.getData()>
1245</#if>
1246<#if multiArtBehavior?has_content>
1247<#else>
1248 <#assign multiArtBehavior = "Two Wide">
1249</#if>
1250<#if NoOfFeatureArticles??>
1251 <#assign noOfFeatureArticle = NoOfFeatureArticles.getData()>
1252</#if>
1253<#if noOfFeatureArticle?has_content>
1254<#else>
1255 <#assign noOfFeatureArticle = "2">
1256</#if>
1257
1258<#assign featureDisplayType = preferences.getValue("featureDisTypeRelatedInsights", "Image Left")?js_string>
1259
1260<#assign jaEntries = {}>
1261<#if RelatedInsightsArticles??>
1262 <#assign jaEntries = ArticleTemplateCustomService.getManualArticleList(RelatedInsightsArticles.getSiblings())>
1263</#if>
1264
1265<#if jaEntries?size == 0 >
1266 <#assign jaEntries = ArticleTemplateCustomService.getRelatedArticles(CurrentAssetEntry.getEntryId(), CurrentAssetEntry.getClassTypeId(), noOfFeatureArticle, "Any")>
1267</#if>
1268
1269<#if jaEntries?size == 0 >
1270 <#assign gridTitle = " ">
1271<#else>
1272 $('#hrfeatureArticle').css('display','block');
1273</#if>
1274
1275var entries = [];
1276 <#if jaEntries?size > 0 >
1277 <#list jaEntries as curEntry>
1278
1279 <#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())>
1280 <#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))>
1281
1282 <#assign structureName = jArt.getDDMStructure().getName("en_US")>
1283
1284 var componentType = "FEATURED_ARTICLE";
1285
1286 var title = <@entryNode document=document field="ArticleTitle"/>;
1287
1288 var subtitle = <@entryNode document=document field="Subtitle"/>;
1289
1290 var description = <@entryNode document=document field="Description"/>;
1291 if (description == ""){
1292 description = <@entryNode document=document field="Intro"/>;
1293 }
1294
1295 var slug = <@entryNode document=document field="Slug"/>;
1296
1297 <#assign articleGroup = GroupLocalService.getGroup(jArt.getGroupId())>
1298
1299 <#if LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false)??
1300 && LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular")?? >
1301 <#assign isMicroSite = (LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")>
1302 <#else>
1303 <#assign isMicroSite = false>
1304 </#if>
1305
1306 var imageFileEntryId = 0;
1307 var imageFileName = "";
1308 var image = '${TemplateCustomService.getDocumentFileDetails(document,"ThumbnailSquare",themeDisplay)}';
1309 if (null == image || "" == image || ${(fullWidthDisplay == "true")?c}) {
1310 image = '${TemplateCustomService.getDocumentFileDetails(document,"Thumbnail",themeDisplay)}';
1311 }
1312 if (null == image) {
1313 image = "";
1314 }
1315
1316 if ((image) || image != "") {
1317 var [imageFileEntryId, restString] = image.split('+++++');
1318 var [imageFileName, image] = restString.split('*****');
1319 }
1320
1321 var componentData = {
1322 locale: "${locale}",
1323 structureName: "${structureName}",
1324 displayType: "${featureDisplayType}",
1325 slug: slug,
1326 title: title,
1327 subtitle: subtitle,
1328 description: description,
1329 image: image.trim(),
1330 imageFileEntryId: imageFileEntryId,
1331 imageFileName: imageFileName,
1332 imageSaturationFilter:'${imageSaturationFilter?c}',
1333 groupFriendlyUrl: '${articleGroup.getFriendlyURL()}',
1334 isMicrosite: ${isMicroSite?c},
1335 multiArtBehavior: '${multiArtBehavior}',
1336 featureDisplayButtonText: '${featureDisplayButtonText}',
1337 featureDisplayButtonType: '${featureDisplayButtonType}',
1338 componentType: componentType
1339 };
1340 <#if structureName == "Article">
1341
1342 var linkTargetOverride = <@entryNode document=document field="LinkTargetOverride"/>;
1343
1344 if (linkTargetOverride !== ""){
1345 componentData.link = linkTargetOverride;
1346 } else {
1347 <#assign assetCategories = AssetCategoryLocalService.getCategories(curEntry.getClassNameId(), curEntry.getClassPK())>
1348
1349 var articleCategories = [];
1350
1351 <#list assetCategories as category>
1352 <#assign categoryVocabulary = AssetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId())>
1353 <#assign categoryUrl = "#">
1354
1355 <#list AssetCategoryPropertyLocalService.getCategoryProperties(category.categoryId) as categoryProperty>
1356
1357 <#if categoryProperty.key == "url">
1358 <#assign categoryUrl = categoryProperty.value>
1359 </#if>
1360 </#list>
1361
1362 articleCategories.push({
1363 id: "${category.categoryId}",
1364 name: "${category.name}",
1365 url: "${categoryUrl}",
1366 vocabularyName: "${categoryVocabulary.getTitle(locale)}",
1367 });
1368
1369 </#list>
1370
1371
1372 componentData.categories = articleCategories;
1373 componentData.urlTitle = "${jArt.getUrlTitle()?js_string}";
1374 }
1375
1376 var byline = <@entryNode document=document field="Byline"/>;
1377 if (byline != null && byline != ""){
1378 componentData.byline = [];
1379 };
1380 </#if>
1381 <#if structureName == "Link" || structureName == "External Article" || structureName == "Video">
1382 var linkURL = <@entryNode document=document field="LinkURL"/>;
1383 if (linkURL !== ""){
1384 componentData.link = linkURL;
1385 }
1386 </#if>
1387 <#if structureName == "Video">
1388 var videoURL = <@entryNode document=document field="VideoURL"/>;
1389 if (videoURL !== ""){
1390 componentData.videoURL = videoURL;
1391 }
1392 </#if>
1393 entries.push(componentData);
1394 </#list>
1395 </#if>
1396
1397var componentVoiceSearch = "article";
1398var extraProps = {
1399 multiArtBehavior: "${multiArtBehavior}",
1400 gridTitle: "${gridTitle}",
1401 fullWidthDisplay: "${fullWidthDisplay}",
1402 greyBackground: "${greyBackground}",
1403 extraSpacer: "${extraSpacer}",
1404 seeAllLink: "${seeAllLink}",
1405 seeAllLinkText: "${seeAllLinkText}",
1406 componentVoiceSearch: componentVoiceSearch
1407 };
1408 ATK.React.Component.FeaturedMultiDisplay("articleAdtDiv_${portletId?js_string}", extraProps, entries);
1409</#if>
1410</script>
1411
1412<#compress>
1413<#if (htmlUtil.unescape(Slug.getData()))?lower_case == "article" >
1414 <script id ="article-structured-data" type="application/ld+json">
1415 {
1416 "@context": "https://schema.org",
1417 "@type": "Article",
1418 "dateModified" : "${modifiedDate}",
1419 "datePublished": "${displayDateForSchema}",
1420 <#if (ArticleTitle.getData())?has_content>"headline": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if>
1421 <#if answer?has_content>
1422 <#if answer?contains("l2it-audio-player")>
1423 <#assign answer = answer?json_string?keep_before_last('<div id') />
1424 <#else>
1425 <#assign answer = answer?json_string />
1426 </#if>
1427 "description" : "${answer}",</#if>
1428 <#if imageurlschema?has_content>"image" : "${imageurlschema}",</#if>
1429 "mainEntityOfPage": {
1430 "@type": "WebPage",
1431 "@id": "${pageurlcurrent}"
1432 },
1433 "author" : [
1434 <#if (authorlistschema?size > 0)>
1435 <#list authorlistschema as author>
1436 {
1437 "@type" : "Person",
1438 <#list author as cur_author_key, cur_author_value>
1439 <#if cur_author_key=="url" && cur_author_value?has_content>"${cur_author_key}" : "${cur_author_value}",</#if>
1440 <#if cur_author_key=="jobTitle" && cur_author_value?has_content>"${cur_author_key}" : "${cur_author_value}",</#if>
1441 <#if cur_author_key=="name" && cur_author_value?has_content>"${cur_author_key}" : "${cur_author_value}"</#if>
1442
1443 </#list>
1444 }<#if (author?index != (authorlistschema?size)-1)>,</#if>
1445 </#list>
1446 </#if>
1447 ],
1448 "publisher": {
1449 "@type": "Organization",
1450 "@id": "https://www.kearney.com#organization"
1451 }
1452 }
1453 </script>
1454<#elseif (htmlUtil.unescape(Slug.getData()))?lower_case == "question and answer" >
1455 <script id ="answer-structured-data" type="application/ld+json">
1456 {
1457 "@context": "https://schema.org",
1458 "@type": "FAQPage",
1459 "mainEntity": [{
1460 "@type": "Question",
1461 "name": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",
1462 "acceptedAnswer": {
1463 "@type": "Answer",
1464 <#if answer?has_content>
1465 <#if answer?contains("l2it-audio-player")>
1466 <#assign answer = answer?json_string?keep_before_last('<div id') />
1467 <#else>
1468 <#assign answer = answer?json_string />
1469 </#if>
1470 "text" : "${answer}",</#if>
1471 "author" : [
1472 <#if (authorlistschema?size > 0)>
1473 <#list authorlistschema as author>
1474 {
1475 "@type" : "Person",
1476 <#list author as cur_author_key, cur_author_value>
1477 <#if cur_author_key=="url" && cur_author_value?has_content>"${cur_author_key}" : "${cur_author_value}",</#if>
1478 <#if cur_author_key=="jobTitle" && cur_author_value?has_content>"${cur_author_key}" : "${cur_author_value}",</#if>
1479 <#if cur_author_key=="name" && cur_author_value?has_content>"${cur_author_key}" : "${cur_author_value}"</#if>
1480
1481 </#list>
1482 }<#if (author?index != (authorlistschema?size)-1)>,</#if>
1483 </#list>
1484 </#if>
1485 ]
1486 }
1487 }]
1488 }
1489 </script>
1490 </#if>
1491 </#compress>
1492
1493
1494 <script>
1495// Listen for Liferay's SPA navigation event
1496if (window.Liferay && Liferay.on) {
1497 Liferay.on('endNavigate', function() {
1498 // If the new page contains the audio player container, initialize Listen2It
1499 if (document.getElementById('l2it-audio-player')) {
1500 // Check if Listen2It has already been loaded; if not, load it.
1501 if (typeof Listen2It === 'undefined') {
1502 try {
1503 initialize(document, "listen2it-widget");
1504 }
1505 catch(error) {
1506 console.error("Error with Listen2it Audio:", error);
1507 }
1508 }
1509 else {
1510 // If the widget is already loaded, just initialize it for the new page
1511 try {
1512 initListen2It();
1513 }
1514 catch(error) {
1515 console.error("Error with initialization Listen2it Audio:", error);
1516 }
1517 }
1518 }
1519 });
1520}
1521</script>
1522
1523
1524 <script>
1525$(document).ready(function() {
1526
1527$("#linkedInShare").on( "click", function() {
1528 Analytics.track('socialShare',{
1529 'propertyName': 'socialShare',
1530 <#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if>
1531 'socialPlatform':'Linkedin',
1532 'pageURL':themeDisplay.getLayoutURL()
1533 });
1534 })
1535
1536 $("#twitterShare").on( "click", function() {
1537 Analytics.track('socialShare',{
1538 'propertyName': 'socialShare',
1539 <#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if>
1540 'socialPlatform':'Twitter',
1541 'pageURL':themeDisplay.getLayoutURL()
1542 });
1543 })
1544
1545 $("#facebookShare").on( "click", function() {
1546 Analytics.track('socialShare',{
1547 'propertyName': 'socialShare',
1548 <#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if>
1549 'socialPlatform':'Facebook',
1550 'pageURL':themeDisplay.getLayoutURL()
1551 });
1552 })
1553
1554 $("#printIcon").on( "click", function() {
1555 Analytics.track('printPage',{
1556 'propertyName': 'printPage',
1557 <#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if>
1558 'pageURL':themeDisplay.getLayoutURL()
1559 });
1560 })
1561
1562});
1563 </script>