ME - Public Sector > Capability > Commerce, trade, and industry

An error occurred while processing the template.
The following has evaluated to null or missing:
==> (PortletPreferencesLocalService.getPortletPreferences(themeDisplay.getPlid(), portletId)?first)  [in template "20116#20152#33020" at line 249, column 53]

----
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 portletPreferencesXML = saxRe...  [in template "20116#20152#33020" at line 249, 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<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> 
9<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
10<#assign preview = false/> 
11 
12<#if (themeDisplay.getURLCurrent()?contains("preview_article_content.jsp")) || (themeDisplay.getURLCurrent()?contains("preview_article_content_template.jsp"))> 
13    <#assign preview = true />     
14     
15    <script data-senna-track="permanent" 
16				src="/o/atk-dot-com-theme/js/react/dist/vendor.bundle.js"></script> 
17	 
18	<script data-senna-track="permanent" 
19				src="/o/atk-dot-com-theme/js/react/dist/bundle.js"></script> 
20				 
21	<style data-senna-track="temporary" type="text/css"> 
22	:root { 
23		--container-max-sm: 576px; 
24		--h4-font-size: 22px; 
25		--font-weight-bold: 700; 
26		--rounded-pill: 50rem; 
27		--navigation-submenu-item-float: left; 
28		--display4-weight: 300; 
29		--danger: #da1414; 
30		--atk-row: absolute; 
31		--display2-size: 5.5rem; 
32		--body-bg: #f9f9f9; 
33		--display2-weight: 300; 
34		--display1-weight: 300; 
35		--display3-weight: 300; 
36		--box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075); 
37		--text-align-hero-text-container: center; 
38		--cta-background-color: #F5F5F5; 
39		--font-weight-lighter: lighter; 
40		--h3-font-size: 36px; 
41		--btn-outline-primary-hover-border-color: #0b5fff; 
42		--transition-collapse: height .35s ease; 
43		--blockquote-small-color: #6b6c7e; 
44		--gray-200: #f1f2f5; 
45		--btn-secondary-hover-background-color: #f7f8f9; 
46		--gray-600: #6b6c7e; 
47		--secondary: #6b6c7e; 
48		--btn-outline-primary-color: #0b5fff; 
49		--btn-link-hover-color: #004ad7; 
50		--hr-border-color: rgba(0, 0, 0, .1); 
51		--hr-border-margin-y: 1rem; 
52		--light: #f1f2f5; 
53		--btn-outline-primary-hover-color: #0b5fff; 
54		--font-weight-read-more: 400; 
55		--btn-secondary-background-color: #fff; 
56		--btn-outline-secondary-hover-border-color: transparent; 
57		--display3-size: 4.5rem; 
58		--primary: #0b5fff; 
59		--container-max-md: 768px; 
60		--border-radius-sm: 0.1875rem; 
61		--display-line-height: 1.2; 
62		--font-family-hero-text: 'Graphik Web'; 
63		--h6-font-size: 0.8125rem; 
64		--h2-font-size: 44px; 
65		--aspect-ratio-4-to-3: 75%; 
66		--font-family-read-more: 'Graphik Web'; 
67		--spacer-10: 10rem; 
68		--font-family-semibold: 'Graphik Web'; 
69		--font-weight-normal: 400; 
70		--dark: #272833; 
71		--blockquote-small-font-size: 80%; 
72		--h5-font-size: 0.875rem; 
73		--blockquote-font-size: 1.25rem; 
74		--transition-fade: opacity .15s linear; 
75		--display4-size: 3.5rem; 
76		--border-radius-lg: 0.375rem; 
77		--btn-primary-hover-color: #fff; 
78		--display1-size: 6rem; 
79		--black: #000; 
80		--gray-300: #e7e7ed; 
81		--gray-700: #495057; 
82		--btn-secondary-border-color: #cdced9; 
83		--btn-outline-secondary-hover-color: #272833; 
84		--purple: #7823DC; 
85		--body-color: #111; 
86		--btn-outline-secondary-hover-background-color: rgba(39, 40, 51, 0.03); 
87		--font-weight-button-body: 400; 
88		--btn-primary-color: #fff; 
89		--btn-secondary-color: #6b6c7e; 
90		--btn-secondary-hover-border-color: #cdced9; 
91		--box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175); 
92		--container-max-lg: 992px; 
93		--btn-outline-primary-border-color: #0b5fff; 
94		--aspect-ratio: 100%; 
95		--cta-link-hover-color: #000; 
96		--body-container: #fff; 
97		--cta-link-color: #7823DC; 
98		--aspect-ratio-16-to-9: 56.25%; 
99		--box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15); 
100		--white: #fff; 
101		--portlet-bg-color: #272833; 
102		--warning: #b95000; 
103		--info: #2e5aac; 
104		--hr-border-width: 1px; 
105		--btn-link-color: #0b5fff; 
106		--gray-400: #cdced9; 
107		--font-weight-hero-text-h4: 100; 
108		--gray-800: #393a4a; 
109		--font-weight-semibold: 600; 
110		--btn-outline-primary-hover-background-color: #f0f5ff; 
111		--btn-primary-hover-background-color: #0053f0; 
112		--btn-primary-background-color: #0b5fff; 
113		--font-weight-heading4: 100; 
114		--font-weight-hero-text-h1: 600; 
115		--font-weight-heading3: 400; 
116		--success: #287d3c; 
117		--font-family-heading4: 'Graphik Web'; 
118		--font-family-heading3: 'Graphik Web'; 
119		--font-weight-heading2: 400; 
120		--font-weight-heading1: 600; 
121		--font-size-sm: 0.875rem; 
122		--font-family-heading2: 'Graphik Web'; 
123		--btn-primary-border-color: #0b5fff; 
124		--font-family-heading1: 'Graphik Web'; 
125		--font-family-base: 'Arabic', sans-serif; 
126		--spacer-0: 0; 
127		--font-family-monospace: 'Arabic', sans-serif; 
128		--lead-font-size: 1.25rem; 
129		--border-radius: 0.25rem; 
130		--spacer-9: 9rem; 
131		--font-weight-light: 300; 
132		--btn-secondary-hover-color: #272833; 
133		--spacer-2: 0.5rem; 
134		--font-family-button-body: 'Graphik Web'; 
135		--spacer-1: 0.25rem; 
136		--spacer-4: 1.5rem; 
137		--spacer-3: 1rem; 
138		--spacer-6: 4.5rem; 
139		--spacer-5: 3rem; 
140		--spacer-8: 7.5rem; 
141		--border-radius-circle: 50%; 
142		--spacer-7: 6rem; 
143		--font-size-lg: 1.125rem; 
144		--aspect-ratio-8-to-3: 37.5%; 
145		--font-family-sans-serif: 'Arabic', sans-serif; 
146		--gray-100: #f7f8f9; 
147		--font-weight-bolder: 900; 
148		--container-max-xl: 1280px; 
149		--btn-outline-secondary-color: #6b6c7e; 
150		--custom-black: #1E1E1E; 
151		--gray-500: #a7a9bc; 
152		--h1-font-size: 66px; 
153		--gray-900: #272833; 
154		--text-muted: #a7a9bc; 
155		--btn-primary-hover-border-color: transparent; 
156		--btn-outline-secondary-border-color: #cdced9; 
157		--lead-font-weight: 300; 
158		--font-size-base: 0.875rem; 
159
160	 
161	.article-breadcrumb 
162	a{ 
163	    color: var(--purple) !important; 
164        text-decoration: underline !important; 
165        text-decoration-color: #E6E6E6 !important; 
166
167	 
168	.article-figure 
169	 img{ 
170        max-width: 100% !important; 
171
172     
173    #articleDiv 
174
175        word-wrap:break-word; 
176
177     
178    .buttonBodyContainer:hover 
179     a{ 
180        color: 	#ffffff !important; 
181
182     
183    .black-to-garnet-author{ 
184        color: var(--custom-black) !important; 
185        text-decoration: underline !important; 
186        text-decoration-color: #E6E6E6 !important; 
187    }     
188     
189    .article-square-bio:hover 
190     a{     
191        color: var(--purple) !important; 
192        text-decoration: underline !important; 
193        text-decoration-color: #E6E6E6 !important; 
194
195         
196    .atk-article 
197     a{     
198        color: var(--purple) !important; 
199        text-decoration: underline !important; 
200        text-decoration-color: #E6E6E6 !important; 
201
202         
203    .atk-article 
204     a:hover{     
205	       text-decoration: none !important; 
206
207    </style> 
208		 
209</#if> 
210 
211<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
212<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
213<#assign AssetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")> 
214<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
215<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
216<#assign AssetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")/> 
217<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
218<#assign PortletPreferencesLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.PortletPreferencesLocalService")/> 
219<#assign PropertyFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil") /> 
220<#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
221<#assign LayoutSetService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutSetLocalService")> 
222<#assign DynamicQueryFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil") /> 
223<#assign virtualHostLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.VirtualHostLocalService") /> 
224<#assign TemplateCustomService = serviceLocator.findService("template.custom.services.TemplateCustomService") /> 
225<#assign ArticleTemplateCustomService = serviceLocator.findService("template.custom.services.ArticleTemplateCustomService") /> 
226 
227<#assign 
228serviceContextThreadLocal = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"] 
229themeDisplay = serviceContextThreadLocal.getServiceContext().getThemeDisplay() 
230/> 
231 
232<#assign CurrentJournalArticle = JournalArticleLocalService.getLatestArticle(groupId,.vars['reserved-article-id'].data)> 
233<#assign CurrentAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",CurrentJournalArticle.getResourcePrimKey())> 
234<#assign AssetLinks=AssetLinkLocalService.getDirectLinks(CurrentAssetEntry.getEntryId()) > 
235 
236<#assign PropertyFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil") /> 
237 
238<#-- update name here if change asset library name --> 
239<#assign assetLibGroup = GroupLocalService.getGroup(themeDisplay.getCompanyId(), "Kearney Global Asset Library") /> 
240<#if assetLibGroup?? > 
241	<#assign assetLibGroupId = assetLibGroup.getGroupId() /> 
242</#if> 
243     
244<#assign assetLinkOrder = CurrentJournalArticle.getExpandoBridge().getAttribute("Related Asset Ordering")!"" /> 
245 
246<#if !(preview)> 
247<#-- ATK 40 changes start --> 
248<#assign portletId = themeDisplay.getPortletDisplay().getId()> 
249<#assign portletPreferencesXML = saxReaderUtil.read((PortletPreferencesLocalService.getPortletPreferences(themeDisplay.getPlid(), portletId)?first).getPreferences())> 
250 
251<#-- Macro used to get specific field text from an Asset Entry --> 
252<#macro entryNode document field> 
253    <#if document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content")??> 
254    "${document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content").getText()?js_string}" 
255    <#else> 
256    "" 
257    </#if> 
258</#macro> 
259 
260<#-- Macro used to get specific portlet preference --> 
261<#macro preference prefKey prefIndex defaultValue> 
262    <#if portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value")??> 
263    "${portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value").getText()?js_string}"<#return> 
264    <#else> 
265    "${defaultValue?js_string}"<#return> 
266    </#if> 
267</#macro> 
268<#-- ATK 40 changes end --> 
269</#if> 
270 
271<#if (preview)> 
272<#-- ATK 40 changes start --> 
273<#assign portletId = (PortletPreferencesLocalService.getPortletPreferencesByPlid(themeDisplay.getPlid())?first).getPortletId() > 
274<#assign portletPreferencesXML = saxReaderUtil.read((PortletPreferencesLocalService.getPortletPreferencesByPlid(themeDisplay.getPlid())?first).getPreferences())> 
275 
276<#-- Macro used to get specific field text from an Asset Entry --> 
277<#macro entryNode document field> 
278    <#if document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content")??> 
279    "${document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content").getText()?js_string}" 
280    <#else> 
281    "" 
282    </#if> 
283</#macro> 
284 
285<#-- Macro used to get specific portlet preference --> 
286<#macro preference prefKey prefIndex defaultValue> 
287    <#if portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value")??> 
288    "${portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value").getText()?js_string}"<#return> 
289    <#else> 
290    "${defaultValue?js_string}"<#return> 
291    </#if> 
292</#macro> 
293<#-- ATK 40 changes end --> 
294</#if> 
295 
296<#-- ATK-659 --> 
297<#assign displayDate = "" /> 
298<#if CurrentJournalArticle.getDisplayDate()?has_content> 
299    <#assign displayDate = CurrentJournalArticle.getDisplayDate()?date?string('MMMM dd, yyyy') /> 
300</#if> 
301<#--  schema vars starts  --> 
302<#assign modifiedDate = "" /> 
303<#if CurrentJournalArticle.getModifiedDate()?has_content> 
304    <#assign modifiedDate = CurrentJournalArticle.getModifiedDate()?date?string('yyyy-MM-dd') /> 
305</#if> 
306<#assign displayDateForSchema = "" /> 
307<#if CurrentJournalArticle.getDisplayDate()?has_content> 
308    <#assign displayDateForSchema = CurrentJournalArticle.getDisplayDate()?date?string('yyyy-MM-dd') /> 
309</#if> 
310<#assign imageurlpartial = "" /> 
311<#assign imageurlschema = "" /> 
312<#assign currenturi = "" /> 
313<#if (ThumbnailSquare.getData())??> 
314    <#if (ThumbnailSquare.getData())?contains("?")> 
315        <#assign imageurlpartial = (ThumbnailSquare.getData())?keep_before("?") /> 
316    <#else> 
317        <#assign imageurlpartial =  ThumbnailSquare.getData() />     
318    </#if>     
319    <#assign imageurlschema = themeDisplay.getCDNBaseURL() + imageurlpartial /> 
320</#if> 
321<#if themeDisplay.getURLCurrent()?has_content > 
322    <#if (themeDisplay.getURLCurrent())?contains("?") > 
323        <#assign currenturi = (themeDisplay.getURLCurrent())?keep_before("?") /> 
324    <#else> 
325        <#assign currenturi = (themeDisplay.getURLCurrent()) /> 
326    </#if> 
327</#if>     
328<#assign pageurlcurrent = themeDisplay.getCDNBaseURL() + currenturi /> 
329<#assign answer =''> 
330<#if Intro.getData()?has_content > 
331	    <#assign answer = Intro.getData()/> 
332	 <#else> 
333	    <#if Content.getSiblings()?has_content> 
334	        <#list Content.getSiblings() as cur_Content> 
335		        <#if (cur_Content.getData())??> 
336		            <#assign withouthtml = cur_Content.getData()?replace('<[^>]+>','','r') /> 
337		            <#assign withouthtml = withouthtml?replace('\\n+','','r') /> 
338		            <#assign withouthtml = withouthtml?replace('\\t+','','r') /> 
339		            <#assign withouthtml = withouthtml?replace('\\r+','','r') /> 
340		            <#assign withouthtml = withouthtml?replace('&nbsp;','','r') /> 
341			        <#assign answer += withouthtml /> 
342		        </#if> 
343	        </#list> 
344        </#if> 
345</#if> 
346<#--  schema ends --> 
347<div id="articleDiv"> 
348</div> 
349 
350<script> 
351 
352	var articleMetadata = {}; 
353	articleMetadata.slug = "${Slug.getData()?js_string}"; 
354	articleMetadata.articleTitle = "${ArticleTitle.getData()?js_string}"; 
355 
356	<#if HeroImage??> 
357	    articleMetadata.heroImage = "${HeroImage.getData()?js_string}"; 
358	</#if> 
359	<#if HeroMobile??> 
360	    articleMetadata.heroMobile = "${HeroMobile.getData()?js_string}"; 
361	</#if> 
362 
363	<#-- 
364	Set articleMetadata.publicTestArticle to restrict social sharing functionality to a single article. 
365	Otherwise, leave commented to allow social sharing on all articles. 
366	--> 
367	<#--articleMetadata.publicTestArticle = 'test-article-url';--> 
368 
369 
370	<#if SmallerTitle??> 
371    articleMetadata.smallerTitle = ${getterUtil.getBoolean(SmallerTitle.getData())?c}; 
372	<#else> 
373    articleMetadata.smallerTitle = false; 
374	</#if> 
375 
376	articleMetadata.subtitle = "${Subtitle.getData()?js_string}"; 
377	articleMetadata.intro = "${Intro.getData()?js_string}"; 
378 
379	<#assign LandingArticle = false /> 
380	<#if LandingPage??> 
381            articleMetadata.landingPage = '${getterUtil.getBoolean(LandingPage.getData())?c}'; 
382            <#assign LandingArticle =  getterUtil.getBoolean(LandingPage.getData()) /> 
383	<#else> 
384            articleMetadata.landingPage = false; 
385	</#if> 
386 
387	<#if SocialLinks??> 
388    	articleMetadata.socialLinks = ${getterUtil.getBoolean(SocialLinks.getData())?c}; 
389	<#else> 
390    	articleMetadata.socialLinks = true; 
391	</#if> 
392	 
393	<#if GraySeparator??> 
394    	articleMetadata.graySeparator = ${getterUtil.getBoolean(GraySeparator.getData())?c}; 
395	<#else> 
396    	articleMetadata.graySeparator = false; 
397	</#if> 
398 
399	<#if ShowParentBreadcrumb?? && LandingPage?? && getterUtil.getBoolean(LandingPage.getData()) == true> 
400        articleMetadata.showParentBreadcrumb = ${getterUtil.getBoolean(ShowParentBreadcrumb.getData())?c} 
401	<#else> 
402            articleMetadata.showParentBreadcrumb = true; 
403	</#if> 
404 
405    <#if BreadcrumbLabel??> 
406        articleMetadata.parentBreadcrumbLabel = "${BreadcrumbLabel.getData()?js_string}"; 
407	</#if> 
408 
409    <#if BreadcrumbURL??> 
410        articleMetadata.parentBreadcrumbURL = "${BreadcrumbURL.getData()?js_string}"; 
411	</#if> 
412 
413	<#if Byline??> 
414	articleMetadata.byline = "${Byline.getData()?js_string}"; 
415	</#if> 
416 
417	<#if FeaturedContributor??> 
418    articleMetadata.featuredContributor = "${FeaturedContributor.getData()}" 
419	</#if> 
420 
421	<#if PostArticleSlideShareKey?? && PostArticleSlideShareKey.PostArticleSlideshareContent??> 
422    articleMetadata.postArticleSlideshareKey = "${PostArticleSlideShareKey.getData()}" 
423 
424    articleMetadata.postArticleSlideshareContent = "${PostArticleSlideShareKey.PostArticleSlideshareContent.getData()}" 
425	</#if> 
426 
427	<#if PDF??> 
428    articleMetadata.pdf = "${PDF.getData()?js_string}" 
429	<#else> 
430    articleMetadata.pdf = ""; 
431	</#if> 
432 
433	var articleContents = []; 
434	<#if Content.getSiblings()?has_content> 
435		<#list Content.getSiblings() as cur_Content> 
436 
437        var images = []; 
438 
439			<#if cur_Content.PrimaryImage?has_content> 
440				<#list cur_Content.PrimaryImage.getSiblings() as cur_PrimaryImage> 
441 
442                var image = {"imageURL": "${cur_PrimaryImage.getData()?js_string}"}; 
443 
444					<#if cur_Content.PrimaryImage.SlideshowCaption??> 
445                        image["caption"] = "${cur_PrimaryImage.SlideshowCaption.getData()?js_string}"; 
446					</#if> 
447 
448                    image["sharingEnabled"] = ${(cur_PrimaryImage.SharingEnabled?? && cur_PrimaryImage.SharingEnabled.getData() == "true")?c}; 
449 
450                images.push(image); 
451 
452				</#list> 
453			</#if> 
454 
455        articleContents.push({ 
456            <#if cur_Content.FeatureSlug??> 
457			slug: "${cur_Content.FeatureSlug.getData()?js_string}", 
458			</#if> 
459			<#if cur_Content.TextAlignment??> 
460			textAlignment: "${cur_Content.TextAlignment.getData()?js_string}", 
461			</#if> 
462			content: "${cur_Content.getData()?js_string}", 
463			styling: "${cur_Content.stylingSelect.getData()?js_string}", 
464			alternateText: "${cur_Content.AlternateText.getData()?js_string}", 
465			primaryImage: images, 
466			secondaryImage: "${cur_Content.SecondaryMaskImage.getData()?js_string}", 
467			buttonText: "${cur_Content.ButtonText.getData()?js_string}", 
468			buttonURL: "${cur_Content.ButtonURL.getData()?js_string}", 
469			displayDate: "${displayDate}" 
470		}); 
471 
472 
473		</#list> 
474	</#if> 
475	 
476	var bios = []; 
477	<#assign articleGroup = GroupLocalService.getGroup(CurrentAssetEntry.getGroupId()) 
478		guestGroup = GroupLocalService.getFriendlyURLGroup(articleGroup.getCompanyId(), "/guest") /> 
479	<#-- 
480		Create list of groups that asset entries live in, so that linked bios can be retrieved by UUID 
481	--> 
482	<#assign assetLinkGroups = []> 
483	<#if AssetLinks?has_content> 
484		<#list AssetLinks as assetLink> 
485			<#assign linkedAssetEntry = AssetEntryLocalService.getAssetEntry(assetLink.getEntryId2())> 
486			<#assign assetLinkGroups = assetLinkGroups + [linkedAssetEntry.getGroupId()]> 
487		</#list> 
488	</#if> 
489 
490	//Create asset link ordering 
491	var assetOrderArr = []; 
492 
493	<#list assetLinkOrder?split(",") as assetLinkUUID> 
494		<#-- 
495			Find group which asset link is stored in and assign the resulting asset entry 
496		--> 
497		<#assign orderAssetEntry = ""> 
498 
499		<#list assetLinkGroups as assetLinkGroupId> 
500			<#assign orderAssetEntry = AssetEntryLocalService.fetchEntry(assetLinkGroupId, assetLinkUUID)!""> 
501 
502			<#if orderAssetEntry != ""> 
503				<#break /> 
504			</#if> 
505		</#list> 
506 
507		<#if orderAssetEntry != ""> 
508			<#assign orderJournalArticle = JournalArticleLocalService.fetchLatestArticle(orderAssetEntry.getClassPK())!""> 
509            <#if orderJournalArticle != ""> 
510	            assetOrderArr.push("${orderJournalArticle.getArticleId()}"); 
511            </#if> 
512		</#if> 
513	</#list> 
514 
515	var assetOrderMap = {}; 
516 
517	for(var order=1; order<assetOrderArr.length; order++) { 
518		assetOrderMap[assetOrderArr[order-1]] = order; 
519
520 
521	var getAssetOrder = function(uuid) { 
522		var order = assetOrderMap[uuid]; 
523		if(!order) { 
524			order = Object.keys(assetOrderMap).length + 1; 
525			assetOrderMap[uuid] = order; 
526
527 
528		return order; 
529	}; 
530	<#assign authorlistschema = [] /> 
531	<#if Authors?? && Authors.getSiblings()?has_content> 
532         
533        var bioC =0; 
534        	<#list Authors.getSiblings() as cur_Authors> 
535        	      
536        		<#if  cur_Authors.getData() != "" > 
537            	    <#assign cur_webContent_map = jsonFactoryUtil.createJSONObject(cur_Authors.getData())> 
538                    <#assign cur_webContent_classPK = cur_webContent_map.getString("classPK")> 
539                    <#if cur_webContent_classPK??> 
540            		    <#if JournalArticleLocalService.fetchLatestArticle(cur_webContent_classPK?number)??> 
541		                    <#assign articleK = JournalArticleLocalService.fetchLatestArticle(cur_webContent_classPK?number)> 
542	            		    <#assign articleKAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",articleK.getResourcePrimKey()) /> 
543	            		  
544		            		<#if articleKAssetEntry?? && articleKAssetEntry.getAssetRenderer()??> 
545								<#assign xml = saxReaderUtil.read(articleKAssetEntry.getAssetRenderer().getArticle().getContentByLocale(themeDisplay.getLocale())) /> 
546			            		  
547			            		  
548			            		   
549			            		 <#assign xml_fullName = xml.valueOf("//dynamic-element[@name='FullName']/dynamic-content/text()") /> 
550			            		 <#assign xml_title = xml.valueOf("//dynamic-element[@name='Title']/dynamic-content/text()") /> 
551			            		 <#assign xml_headshot = TemplateCustomService.getDocumentURL(xml,"CutoutHeadshot",themeDisplay)/> 
552			            		 
553			            		  
554			            		  var bio1 = {}; 
555			                      bio1.structureKey=('${articleK.getDDMStructure().getName("en_US")}'); 
556			                      bio1.weight=  ++bioC; 
557			            		  bio1.fullName = '${xml_fullName}'; 
558			            		  bio1.headshot = '${xml_headshot?js_string}'; 
559			            		  bio1.title = '${xml_title}'; 
560				            	  <#if (articleGroup.getLiveGroupId() != 0 ) >	 
561										<#assign articleK = JournalArticleLocalService.getArticleByUrlTitle(assetLibGroupId, articleK.getUrlTitle()) />	 
562								  </#if>	 
563								  <#assign viewURL = '' /> 
564								 
565								 <#if articleK.getDDMStructure().getName("en_US") == "Bio Page"> 
566								 	 <#assign viewURL = themeDisplay.getPortalURL() + "/about/people/bio/" + xml_fullName?lower_case?replace(" ", "-")/> 
567								 </#if> 
568								 
569								bio1.bioURL = '${viewURL}';	 
570								bios.push(bio1); 
571								 
572								<#assign viewURLschema = ''/> 
573								<#if viewURL?has_content> 
574								    <#assign viewURLschema =  viewURL /> 
575								</#if> 
576								<#assign authordataschema = {"url":viewURLschema, "jobTitle":xml_title, "name":xml_fullName} /> 
577			            		<#assign authorlistschema = authorlistschema + [authordataschema] /> 
578							 </#if>            		 	 
579						</#if>	 
580					</#if> 
581            	</#if> 
582        		   
583        	</#list> 
584        	 
585    </#if> 
586	 
587	<#assign oldwaytogetauthourforschema = false> 
588	<#if authorlistschema?size == 0> 
589		<#assign oldwaytogetauthourforschema = true> 
590	</#if>		 
591	 
592    if (bios.length == 0){ 
593		<#if AssetLinks?has_content> 
594 
595			<#list AssetLinks as assetLink> 
596				<#assign linkedAssetEntry = AssetEntryLocalService.getAssetEntry(assetLink.getEntryId2())> 
597				<#assign linkedJournalArticle = JournalArticleLocalService.getLatestArticle(linkedAssetEntry.getClassPK())> 
598				<#assign xml = saxReaderUtil.read(linkedAssetEntry.getAssetRenderer().getArticle().getContentByLocale(themeDisplay.getLocale())) /> 
599				<#assign structureKey =  linkedJournalArticle.getDDMStructure().getName("en_US") /> 
600				 
601			var bio = {}; 
602			 
603            <#assign xml_headshot = TemplateCustomService.getDocumentURL(xml,"CutoutHeadshot",themeDisplay)/>						 
604				<#if structureKey == "Bio Page" || structureKey == "Micro Bio" > 
605						<#assign xml_fullName = xml.valueOf("//dynamic-element[@name='FullName']/dynamic-content/text()") /> 
606						<#assign xml_title = xml.valueOf("//dynamic-element[@name='Title']/dynamic-content/text()") /> 
607						bio.structureKey=('${structureKey}').trim(); 
608						bio.weight = getAssetOrder("${linkedJournalArticle.getArticleId()}"); 									 
609						bio.fullName = "${xml_fullName}"; 
610						bio.position = "${xml.valueOf("//dynamic-element[@name='Position']/dynamic-content/text()")?js_string}"; 
611						bio.title = "${xml_title?js_string}"; 
612						bio.headshot = "${xml_headshot?js_string}"; 
613						bio.description = "${xml.valueOf("//dynamic-element[@name='Description']/dynamic-content/text()")?js_string}"; 
614						bio.linkedInURL = "${xml.valueOf("//dynamic-element[@name='LinkedInURL']/dynamic-content/text()")?js_string}"; 
615						 
616						<#assign viewURL = '' /> 
617						<#if linkedJournalArticle.getDDMStructure().getName("en_US") == "Bio Page"> 
618								<#assign viewURL = themeDisplay.getPortalURL() + "/about/people/bio/" + xml_fullName?lower_case?replace(" ", "-")/> 
619						</#if> 
620										 
621						bio.bioURL = '${viewURL}';	 
622						bios.push(bio); 
623						 
624						<#assign viewURLschema = ''/> 
625						<#if viewURL?has_content> 
626						    <#assign viewURLschema =  viewURL /> 
627						</#if> 
628						 
629						<#if oldwaytogetauthourforschema> 
630							<#assign authordataschema = {"url":viewURLschema, "jobTitle":xml_title, "name":xml_fullName} /> 
631							<#assign authorlistschema = authorlistschema + [authordataschema] /> 
632						</#if>	 
633				</#if> 
634			</#list> 
635 
636			bios.sort(function(bio1, bio2){ 
637				return bio1.weight - bio2.weight; 
638			}); 
639		</#if> 
640 
641
642	<#assign assetCategories = AssetCategoryLocalService.getAssetEntryAssetCategories(CurrentAssetEntry.getEntryId())> 
643 
644	var articleCategories = []; 
645 
646	<#list assetCategories as category> 
647		<#assign categoryVocabulary = AssetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId())> 
648		<#assign categoryUrl = "#"> 
649 
650		<#list AssetCategoryPropertyLocalService.getCategoryProperties(category.categoryId) as categoryProperty> 
651 
652			<#if categoryProperty.key == "url"> 
653				<#assign categoryUrl = categoryProperty.value> 
654			</#if> 
655		</#list> 
656 
657    articleCategories.push({ 
658		id: "${category.categoryId}", 
659		name: "${category.name}", 
660		url: "${categoryUrl}", 
661		vocabularyName: "${categoryVocabulary.getName()?js_string}", 
662	}); 
663	</#list> 
664 
665	articleMetadata.categories = articleCategories; 
666	<#if LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false)?? 
667	&& LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false).getThemeSetting("isMicroSite", "regular")?? > 
668		<#assign isMicroSite = (LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")> 
669	<#else> 
670		<#assign isMicroSite = false> 
671	</#if> 
672 
673	articleMetadata.isMicroSite = ${isMicroSite?c}; 
674	articleMetadata.groupName = "${articleGroup.getName("en_US")?js_string}"; 
675	articleMetadata.groupFriendlyUrl = "${articleGroup.getFriendlyURL()?js_string}"; 
676 
677	<#if ReadMoreURL??> 
678    articleMetadata.readMoreURL = "${ReadMoreURL.getData()?js_string}"; 
679	<#else> 
680    articleMetadata.readMoreURL = ""; 
681	</#if> 
682 
683	<#if ReadMoreTextOverride??> 
684    articleMetadata.readMoreTextOverride = "${ReadMoreTextOverride.getData()?js_string}"; 
685	<#else> 
686    articleMetadata.readMoreTextOverride = ""; 
687	</#if> 
688 
689	<#if ContributorsTitleOverride??> 
690    articleMetadata.contributorsTitleOverride = "${ContributorsTitleOverride.getData()?js_string}"; 
691	<#else> 
692    articleMetadata.contributorsTitleOverride = ""; 
693	</#if> 
694 
695	<#if ReadMoreOverlay??> 
696            articleMetadata.readMoreOverlay = ${getterUtil.getBoolean(ReadMoreOverlay.getData())?c} 
697	<#else> 
698            articleMetadata.readMoreOverlay = false; 
699	</#if> 
700	 
701	var sidebarContents = []; 
702	<#assign enableSidebar = false> 
703	<#if EnableSidebar??> 
704		<#assign enableSidebar = getterUtil.getBoolean(EnableSidebar.getData())> 
705	</#if> 
706	<#-- Check if Sidebar is enabled or not --> 
707	<#if enableSidebar == true> 
708	      
709	     <#assign listingOfArticles = false> 
710	     <#assign singleAssetWithImage = false> 
711	     <#assign richTextSection = false> 
712	     <#assign listView = false> 
713	     <#if EnableSidebar.ListingOfArticles??>  
714	     	 <#assign listingOfArticles = getterUtil.getBoolean(EnableSidebar.ListingOfArticles.getData())> 
715	     </#if> 
716	     <#if EnableSidebar.SingleAssetWithImage??> 
717	     	 <#assign singleAssetWithImage = getterUtil.getBoolean(EnableSidebar.SingleAssetWithImage.getData())> 
718	     </#if> 
719	     <#if EnableSidebar.RichTextSection??> 
720	     	<#assign richTextSection = getterUtil.getBoolean(EnableSidebar.RichTextSection.getData())> 
721	     </#if> 
722	     <#if EnableSidebar.ListView??> 
723	     	<#assign listView = getterUtil.getBoolean(EnableSidebar.ListView.getData())>	 
724	     </#if> 
725	     <#-- If Asset publisher listing of articles is enabled --> 
726	     <#if listingOfArticles == true> 
727	     	 <#assign listOfArticlesTitles = "Related"> 
728	     	 <#if EnableSidebar.ListingOfArticles.ListingOfArticlesTitle.getData()?has_content> 
729	     	 	<#assign listOfArticlesTitles = EnableSidebar.ListingOfArticles.ListingOfArticlesTitle.getData()> 
730	     	 </#if> 	 
731	     	 <#assign manualArticlesEntries = {}> 	 
732	         <#if EnableSidebar.ListingOfArticles.SelectSidebarArticles??> 
733	         		<#assign manualArticlesEntries = ArticleTemplateCustomService.getManualArticleList(EnableSidebar.ListingOfArticles.SelectSidebarArticles.getSiblings())>  
734	         </#if> 
735	          var manualArticlesEntry = []; 
736	         <#if manualArticlesEntries?size &gt; 0 > 
737	         	  	 <#list manualArticlesEntries as curEntry> 
738						 <#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())> 
739						 <#assign viewURL = TemplateCustomService.getSidebarArticleViewURL(themeDisplay,jArt,assetLibGroup)/> 
740						 var articleEntry = {"articleTitle": "${TemplateCustomService.getSidebarArticleTitle(themeDisplay,jArt,assetLibGroup)}","articleURL":"${viewURL}"}; 
741						 manualArticlesEntry.push(articleEntry);      	  	             	  	        
742	         	  	 </#list> 
743	         <#else> 
744	         		<#assign noOfFeatureArticle = "3"> 
745	         		<#if EnableSidebar.ListingOfArticles.NoOfArticlesDisplayed.getData() != "0"> 
746	         			<#assign noOfFeatureArticle = EnableSidebar.ListingOfArticles.NoOfArticlesDisplayed.getData()>  
747	         		</#if> 
748	         		<#assign manualArticlesEntries = ArticleTemplateCustomService.getRelatedArticles(CurrentAssetEntry.getEntryId(), noOfFeatureArticle, "Any")> 
749	         		<#list manualArticlesEntries as curEntry> 
750						 <#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())> 
751						 <#assign viewURL = TemplateCustomService.getSidebarArticleViewURL(themeDisplay,jArt,assetLibGroup)/> 
752						 var articleEntry = {"articleTitle": "${TemplateCustomService.getSidebarArticleTitle(themeDisplay,jArt,assetLibGroup)}","articleURL":"${viewURL}"}; 
753						 manualArticlesEntry.push(articleEntry);      	  	             	  	        
754	         	    </#list>  
755	         </#if> 
756	     	sidebarContents.push({ 
757	     		listingOfArticlesTitle:"${listOfArticlesTitles}", 
758	     		manualArticles:manualArticlesEntry, 
759	     		componentType:"listingOfArticles" 
760	     		 
761	     	}); 
762	     </#if> 
763	     <#-- Single Asset Image article --> 
764	     <#if singleAssetWithImage == true> 
765	     	  <#assign learnMoreText = "Learn more"> 
766	     	  <#assign enableTNSImage = true>	 
767	     	  <#assign enableSlug = true>	 
768	     	  <#if (EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.LearnMoreButtonText.getData())??> 
769					 <#assign learnMoreText = EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.LearnMoreButtonText.getData()/> 
770			  </#if> 
771			  <#if EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.EnableTNSImage??> 
772			  		<#assign enableTNSImage = getterUtil.getBoolean(EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.EnableTNSImage.getData())/> 
773			  </#if>	 
774	     	  <#if EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.EnableSlug??> 
775	     			<#assign enableSlug = getterUtil.getBoolean(EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.EnableSlug.getData())>	 
776	     	  </#if>	 
777	          <#assign singleAssetArticleData = jsonFactoryUtil.createJSONObject(EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.getData())/> 
778	          <#if singleAssetArticleData?has_content>  
779	          	<#assign singleAssetArticle = ArticleTemplateCustomService.getManualArticle(EnableSidebar.SingleAssetWithImage.SingleAssetWithImageArticle.getData())> 
780	          	<#assign jArt = JournalArticleLocalService.getLatestArticle(singleAssetArticle.getClassPK())> 
781	          	<#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))> 
782	            <#assign structureName = jArt.getDDMStructure().getName("en_US")> 
783	            var componentType = "FEATURED_ARTICLE"; 
784	            var title = <@entryNode document=document field="ArticleTitle"/>; 
785	            var subtitle = <@entryNode document=document field="Subtitle"/>; 
786	            var description = <@entryNode document=document field="Description"/>; 
787    	        if (description == ""){ 
788					description = <@entryNode document=document field="Intro"/>; 
789
790	            var slug = <@entryNode document=document field="Slug"/>; 
791	            var linkTargetOverride = <@entryNode document=document field="LinkTargetOverride"/>; 
792	            if(linkTargetOverride == "" || linkTargetOverride == null){ 
793	            	linkTargetOverride = <@entryNode document=document field="LinkURL"/>; 
794
795	             <#assign articleGroup = GroupLocalService.getGroup(jArt.getGroupId())> 
796            	<#if LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false)??&& LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular")??> 
797                	<#assign isMicroSite = (LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")> 
798            	<#else> 
799                	<#assign isMicroSite = false> 
800            	</#if> 
801            	var image = '${TemplateCustomService.getDocumentURL(document,"ThumbnailSquare",themeDisplay)}'; 
802            	if (null == image || "" == image) { 
803				image = '${TemplateCustomService.getDocumentURL(document,"Thumbnail",themeDisplay)}'; 
804
805	            if (null == image) { 
806					image = ""; 
807
808				var singleAssetComponent = { 
809					slug: slug, 
810					title: title, 
811					subtitle: subtitle, 
812					description: description, 
813					image: image.trim(), 
814					groupFriendlyUrl: '${articleGroup.getFriendlyURL()}', 
815					isMicrosite: ${isMicroSite?c}, 
816					linkTargetOverride: linkTargetOverride 
817
818	            sidebarContents.push({ 
819	     			singleAssetData:singleAssetComponent, 
820	     			componentType:"singleAsset", 
821	     			learnMoreTextValue:'${learnMoreText}', 
822	     			enableSlugValue:${enableSlug?c}, 
823	     			enableTNSImageValue:${enableTNSImage?c} 
824	     		}); 
825	      	 </#if>  
826	     </#if> 
827	     <#-- Rich Text Section --> 
828	     <#if richTextSection == true> 
829	     		var richTextSectionData = []; 
830	     		<#if EnableSidebar.RichTextSection.RichTextSectionContent.getSiblings()?has_content> 
831				<#list EnableSidebar.RichTextSection.RichTextSectionContent.getSiblings() as richTextData> 
832					<#if (richTextData.getData())??> 
833						<#assign richTextSection = richTextData.getData()> 
834						richTextSectionData.push({ 
835							richTextSectionContent: '${richTextSection?js_string}' 
836						}); 
837					</#if> 
838				</#list> 
839				</#if> 
840	     		 
841	     		sidebarContents.push({ 
842	     			richTextContentData : richTextSectionData, 
843	     			componentType:"richTextContent" 
844	     		}); 
845	     </#if> 
846	     <#-- List View --> 
847	     <#if listView == true> 
848	            var listViewComponentData = []; 
849	            <#assign listViewTitle = "Related">	 
850	     	    <#assign displayListViewTitle = false> 
851	     	    <#if (EnableSidebar.ListView.ListViewTitle.getData())??> 
852					<#assign listViewTitle = EnableSidebar.ListView.ListViewTitle.getData()> 
853				</#if> 
854				<#if (EnableSidebar.ListView.ListViewTitle.getData())??> 
855	     			<#assign displayListViewTitle = getterUtil.getBoolean(EnableSidebar.ListView.ListViewTitle.DisplayListViewTitle.getData())>	 
856	     	    </#if> 
857	     		<#if EnableSidebar.ListView.ListViewText.getSiblings()?has_content> 
858				  <#list EnableSidebar.ListView.ListViewText.getSiblings() as listViewData> 
859						<#assign listView = listViewData.getData()> 
860						<#assign listlink = listViewData.ListViewLink.getData()> 
861						listViewComponentData.push({ 
862						     listViewTitle: '${listView}', 
863						     listViewLink: '${listlink}', 
864						}); 
865			      </#list> 
866		 		</#if> 
867		 		sidebarContents.push({ 
868	     			listViewData:listViewComponentData, 
869	     			componentType:"listView", 
870	     			listViewTitleValue:'${listViewTitle}', 
871	     			displayListViewTitleValue: ${displayListViewTitle?c} 
872	     		}); 
873	     </#if> 
874	 
875	</#if> 
876	 
877	<#-- ATK - 902 Changes Start --> 
878	ATK.isArticlePage = 'false'; 
879	<#if LandingArticle == false > 
880    	<#if themeDisplay.getURLCurrent()?contains("/article/") || themeDisplay.getURLCurrent()?contains("/-/") > 
881    		ATK.isArticlePage = 'true'; 
882    	</#if> 
883    </#if>	 
884	<#-- ATK - 902 Changes Over --> 
885	 
886	ATK.React.App.Article('articleDiv', articleMetadata, articleContents, bios, sidebarContents); 
887 
888	// Run embedded scripts after article renders. 
889	for (var i in articleContents) { 
890 
891		var re = /<script>(.+)<\/script>/gi; 
892		var thisExtractedScript = ['', '']; 
893 
894		while (null != (thisExtractedScript = re.exec(articleContents[i].content))) { 
895			window.eval(thisExtractedScript[1]); 
896
897
898 
899</script> 
900<hr class="after-25-px-phone" style="width: 1000px; display: none;" id="hrfeatureArticle"> 
901<div id="articleAdtDiv_${portletId}" style="margin-top: 50px;margin-bottom: 50px;"> 
902</div> 
903<script> 
904<#assign enableRelatedInsights = false> 
905 
906<#if EnableRelatedInsights??> 
907	<#assign enableRelatedInsights = getterUtil.getBoolean(EnableRelatedInsights.getData())> 
908</#if> 
909<#if enableRelatedInsights == true> 
910<#assign multiArtBehavior = "Two Wide"> 
911<#assign gridTitle = "Also of interest"> 
912<#assign noOfFeatureArticle = "2"> 
913<#assign featureDisplayType = "Image Left"> 
914 
915<#assign fullWidthDisplay = "false"> 
916<#assign greyBackground = "false"> 
917<#assign extraSpacer = "None"> 
918<#assign seeAllLink = ""> 
919<#assign seeAllLinkText = ""> 
920<#assign greyBackground = "false"> 
921<#assign extraSpacer = "None"> 
922<#assign autoplay = "false"> 
923<#assign featureDisplayButtonType = "Visible"> 
924<#assign featureDisplayButtonText = ""> 
925 
926<#if GridTitle??> 
927	<#assign gridTitle =  GridTitle.getData()> 
928</#if> 
929<#if gridTitle?has_content> 
930	<#-- ATK-712: Code Start --> 
931	<#if gridTitle?matches("Related insights") || gridTitle?matches("Related Insights")> 
932		<#assign gridTitle =  "Also of interest"> 
933	</#if> 
934	<#-- ATK-712: Code End --> 
935<#else> 
936	<#assign gridTitle =  "Also of interest"> 
937</#if> 
938<#if MultipleArticleBehavior??> 
939	<#assign multiArtBehavior =  MultipleArticleBehavior.getData()> 
940</#if> 
941<#if multiArtBehavior?has_content> 
942<#else> 
943	<#assign multiArtBehavior =  "Two Wide"> 
944</#if> 
945<#if NoOfFeatureArticles??> 
946	<#assign noOfFeatureArticle =  NoOfFeatureArticles.getData()> 
947</#if> 
948<#if noOfFeatureArticle?has_content> 
949<#else> 
950	<#assign noOfFeatureArticle =  "2"> 
951</#if> 
952 
953<#if portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='featureDisTypeRelatedInsights']/value")??> 
954		<#assign featureDisplayType = portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='featureDisTypeRelatedInsights']/value").getText()?js_string> 
955</#if> 
956 
957<#assign jaEntries = {}>  
958<#if RelatedInsightsArticles??> 
959	<#assign jaEntries = ArticleTemplateCustomService.getManualArticleList(RelatedInsightsArticles.getSiblings())>  
960</#if> 
961 
962<#if jaEntries?size == 0 > 
963	<#assign jaEntries = ArticleTemplateCustomService.getRelatedArticles(CurrentAssetEntry.getEntryId(), noOfFeatureArticle, "Any")> 
964</#if> 
965 
966<#if jaEntries?size == 0 > 
967		<#assign gridTitle = " "> 
968<#else> 
969	$('#hrfeatureArticle').css('display','block'); 
970</#if> 
971 
972var entries = []; 
973	<#if jaEntries?size &gt; 0 > 
974        <#list jaEntries as curEntry> 
975 
976            <#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())> 
977            <#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))> 
978 
979            <#assign structureName = jArt.getDDMStructure().getName("en_US")> 
980 
981 
982            var componentType = "FEATURED_ARTICLE"; 
983 
984            var title = <@entryNode document=document field="ArticleTitle"/>; 
985 
986            var subtitle = <@entryNode document=document field="Subtitle"/>; 
987 
988            var description = <@entryNode document=document field="Description"/>; 
989            if (description == ""){ 
990				description = <@entryNode document=document field="Intro"/>; 
991
992 
993            var slug = <@entryNode document=document field="Slug"/>; 
994 
995            <#assign articleGroup = GroupLocalService.getGroup(jArt.getGroupId())> 
996 
997            <#if LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false)?? 
998            && LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular")?? > 
999                <#assign isMicroSite = (LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")> 
1000            <#else> 
1001                <#assign isMicroSite = false> 
1002            </#if> 
1003 
1004            var image = '${TemplateCustomService.getDocumentURL(document,"ThumbnailSquare",themeDisplay)}';  
1005            if (null == image || "" == image || ${(fullWidthDisplay == "true")?c}) { 
1006				image = '${TemplateCustomService.getDocumentURL(document,"Thumbnail",themeDisplay)}'; 
1007
1008            if (null == image) { 
1009				image = ""; 
1010
1011 
1012            var componentData = { 
1013				locale: "${locale}", 
1014				structureName: "${structureName}", 
1015				displayType: "${featureDisplayType}", 
1016				slug: slug, 
1017				title: title, 
1018				subtitle: subtitle, 
1019				description: description, 
1020				image: image.trim(), 
1021				groupFriendlyUrl: '${articleGroup.getFriendlyURL()}', 
1022				isMicrosite: ${isMicroSite?c}, 
1023				multiArtBehavior: '${multiArtBehavior}', 
1024                featureDisplayButtonText: '${featureDisplayButtonText}', 
1025                featureDisplayButtonType: '${featureDisplayButtonType}', 
1026				componentType: componentType 
1027			}; 
1028            <#if structureName == "Article"> 
1029 
1030                var linkTargetOverride = <@entryNode document=document field="LinkTargetOverride"/>; 
1031 
1032                if (linkTargetOverride !== ""){ 
1033					componentData.link = linkTargetOverride; 
1034				} else { 
1035                    <#assign assetCategories = AssetCategoryLocalService.getAssetEntryAssetCategories(curEntry.getEntryId())> 
1036 
1037					var articleCategories = []; 
1038 
1039                    <#list assetCategories as category> 
1040                        <#assign categoryVocabulary = AssetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId())> 
1041                        <#assign categoryUrl = "#"> 
1042 
1043                        <#list AssetCategoryPropertyLocalService.getCategoryProperties(category.categoryId) as categoryProperty> 
1044 
1045                            <#if categoryProperty.key == "url"> 
1046                                <#assign categoryUrl = categoryProperty.value> 
1047                            </#if> 
1048                        </#list> 
1049	 
1050                        articleCategories.push({ 
1051							id: "${category.categoryId}", 
1052							name: "${category.name}", 
1053							url: "${categoryUrl}", 
1054							vocabularyName: "${categoryVocabulary.getTitle(locale)}", 
1055						}); 
1056				    
1057                    </#list> 
1058 
1059 
1060					componentData.categories = articleCategories; 
1061					componentData.urlTitle = "${jArt.getUrlTitle()?js_string}"; 
1062
1063 
1064                var byline = <@entryNode document=document field="Byline"/>; 
1065                if (byline != null && byline != ""){ 
1066					componentData.byline = []; 
1067				};    
1068            </#if> 
1069            entries.push(componentData); 
1070         </#list> 
1071    </#if> 
1072 
1073var componentVoiceSearch = "article";  
1074var extraProps = { 
1075			multiArtBehavior: "${multiArtBehavior}", 
1076			gridTitle: "${gridTitle}", 
1077			fullWidthDisplay: "${fullWidthDisplay}", 
1078			greyBackground: "${greyBackground}", 
1079			extraSpacer: "${extraSpacer}", 
1080			seeAllLink: "${seeAllLink}", 
1081			seeAllLinkText: "${seeAllLinkText}", 
1082			componentVoiceSearch: componentVoiceSearch 
1083		}; 
1084        ATK.React.Component.FeaturedMultiDisplay("articleAdtDiv_${portletId?js_string}", extraProps, entries); 
1085</#if> 
1086</script> 
1087 
1088<#compress> 
1089<#if Slug.getData()?lower_case == "article" > 
1090	<script id ="article-structured-data" type="application/ld+json"> 
1091
1092		  "@context": "https://schema.org", 
1093		  "@type": "Article", 
1094		  "dateModified" : "${modifiedDate}", 
1095		  "datePublished": "${displayDateForSchema}", 
1096		  <#if (ArticleTitle.getData())?has_content>"headline": "${ArticleTitle.getData()?json_string}",</#if> 
1097		  <#if answer?has_content>"description" : "${answer?json_string}",</#if> 
1098		  <#if imageurlschema?has_content>"image" : "${imageurlschema}",</#if> 
1099		  "mainEntityOfPage": { 
1100		        "@type": "WebPage", 
1101		        "@id": "${pageurlcurrent}" 
1102		    }, 
1103		  "author" : [ 
1104		  <#if (authorlistschema?size > 0)> 
1105		    <#list authorlistschema as author>     
1106
1107		                "@type" : "Person", 
1108		    	<#list author as cur_author_key, cur_author_value> 
1109		    			<#if cur_author_key=="url" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if>		        		 
1110		        		<#if cur_author_key=="jobTitle" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if> 
1111		        		<#if cur_author_key=="name" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}"</#if> 
1112		        		 
1113		    	</#list> 
1114		    	        }<#if (author?index != (authorlistschema?size)-1)>,</#if> 
1115		    </#list>	 
1116		  </#if> 
1117		  ], 
1118		  "publisher": { 
1119		        "@type": "Organization", 
1120		        "@id": "https://www.kearney.com#organization" 
1121
1122
1123	</script> 
1124<#elseif Slug.getData()?lower_case == "question and answer" > 
1125	<script id ="answer-structured-data" type="application/ld+json"> 
1126	 {	 		 	 
1127	      "@context": "https://schema.org", 
1128	      "@type": "FAQPage", 
1129	      "mainEntity": [{ 
1130	          "@type": "Question", 
1131	          "name": "${ArticleTitle.getData()?json_string}", 
1132	          "acceptedAnswer": { 
1133	            "@type": "Answer", 
1134	             <#if answer?has_content>"text" : "${answer?json_string}",</#if>             
1135	            "author" : [ 
1136							  <#if (authorlistschema?size > 0)> 
1137							    <#list authorlistschema as author>     
1138
1139							                "@type" : "Person", 
1140							    	<#list author as cur_author_key, cur_author_value>						 
1141							    			<#if cur_author_key=="url" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if>	        		 
1142							        		<#if cur_author_key=="jobTitle" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if> 
1143							        		<#if cur_author_key=="name" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}"</#if> 
1144							        		 
1145							    	</#list> 
1146							    	        }<#if (author?index != (authorlistschema?size)-1)>,</#if> 
1147							    </#list>	 
1148							  </#if> 
1149
1150
1151	        }] 
1152
1153	 </script> 
1154 </#if> 
1155 </#compress>