An error occurred while processing the template.
The following has evaluated to null or missing:
==> themePoster  [in template "20098#20124#330422" at line 65, column 85]

----
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: ${themePoster}  [in template "20098#20124#330422" at line 65, column 83]
----
1<#assign 
2JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
3<#assign 
4	dlFileEntryService=serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService')> 
5	<#assign 
6		assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
7<#assign journalArticleResourceLocalServiceUtil=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
8		<#assign 
9			assetCategoryLocalServiceUtil=staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
10			<#assign 
11				dlAppLocalServiceUtil=staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"] /> 
12			<#assign dlUtil=staticUtil["com.liferay.document.library.kernel.util.DLUtil"]> 
13				<#assign 
14					serviceContext=staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
15					<#assign themeDisplay=serviceContext.getThemeDisplay() /> 
16					<#assign 
17						journalarticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
18 
19					<#assign 
20						statisticVocabulary=assetVocabularyLocalService.getGroupVocabulary(groupId?long,"statistics") /> 
21					<#assign journalArticleId=.vars['reserved-article-id'].data /> 
22					<#assign stat=journalarticleLocalService.getArticle(themeDisplay.getScopeGroupId() 
23						,journalArticleId) /> 
24					<#assign 
25						assetCategoryPropService=serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") /> 
26					<#assign journalArticleTitle=.vars['reserved-article-title'].data /> 
27					<#assign journalArticleDisplayDate = (journalArticle.getDisplayDate())! /> 
28						<#assign articleTitleEn = stat.getTitle("en_US")!journalArticleTitle /> 
29				<#assign articleTitleAr = stat.getTitle("ar_SA")!journalArticleTitle /> 
30				<#assign currentUserScreenName = themeDisplay.getUser().getScreenName()!"" /> 
31					<#assign   
32					  articleResourcePK=stat.resourcePrimKey?long /> 
33					<#assign 
34						categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK)> 
35						<#assign themeColor="d29c4b" 
36							imgUrl="${themeDisplay.getPathThemeImages()}/publications/005.jpg" 
37							categoryDisplay="Economic" /> 
38						<#list categoryList as category> 
39							<#if category.parentCategoryId==0> 
40								<#if category.getVocabularyId()==statisticVocabulary.getVocabularyId()> 
41									<#assign assetThemeCategoryId=category.categoryId?long /> 
42									<#assign 
43				  themePoster=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme-poster").getValue() 
44										themeColor=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_color").getValue() 
45										themeIconId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_icon_id").getValue() 
46										themeImgId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"portfolio-image").getValue() /> 
47						 
48									<#if themeImgId!="0"> 
49										<#assign imgDlFile=dlAppLocalServiceUtil.getFileEntry(themeImgId?number) 
50											imgUrl=dlUtil.getPreviewURL(imgDlFile, imgDlFile.getFileVersion(), 
51											themeDisplay, '' ) /> 
52									</#if> 
53									<#list category.name?split(" ") as catWords> 
54			<#assign categoryDisplay = catWords/> 
55			<#break> 
56		</#list> 
57				<#assign categoryDisplay = category.titleCurrentValue/> 
58	</#if> 
59</#if> 
60</#list> 
61 
62 
63 
64<div class="col-md-3 dl-card latest-publications-card dl-rounded d-flex flex-column align-items-start justify-content-between text-white p-3" 
65style="background: linear-gradient(transparent,#000000d4 ),url(/documents/d/guest/${themePoster}) no-repeat center/cover;"> 
66<div class="d-flex justify-content-start"> 
67<#assign articleId = .vars["reserved-article-id"].data?number> 
68	<#if .vars['publicationNote']?? && .vars['publicationNote'].getData()?has_content> 
69											<div class="dates_inside_wrapper p-1"> 
70							<img src="/documents/d/guest/information-circle-svgrepo-com" height="20" width="20"> 
71							 ${.vars['publicationNote'].getData()} 
72								</div>							 
73</#if> 
74<div class="button-wrapper d-inline-block p-1"><button class="hover-button btn dl-share-btn mb-0"><img 
75	src="/documents/d/guest/share" height="20"></button> 
76<ul class="hidden-buttons list-unstyled"> 
77  <li><a target="_blank" 
78	  href="https://www.facebook.com/sharer.php?u=https://uat.scad.gov.ae/w/${.vars['reserved-article-url-title'].data}"><i 
79		class="icon-facebook"></i></a></li> 
80  <li><a target="_blank" 
81	  href="https://twitter.com/intent/tweet?url=https://uat.scad.gov.ae/w/${.vars['reserved-article-url-title'].data}"><i 
82		class="icon-twitter"></i></a></li> 
83</ul> 
84</div> 
85</div> 
86<div class="w-100"> 
87<h5><a class="text-white" href="/w/${.vars['reserved-article-url-title'].data}">${journalArticleTitle}</a></h5><span 
88  class="theme-category p-2 badge" style="background: #${themeColor}">${categoryDisplay}</span> 
89<ul class="d-flex  justify-content-end attachments-list px-0 mb-0 mt-3 w-100"> 
90  <#if file_upload.getSiblings()?has_content> 
91  <#list file_upload.getSiblings() as media> 
92	<#if media?has_content> 
93	  <#assign counter=0> 
94		<#list "${media.getData()}" ?split("/") as 
95		  mediaDataSplit> 
96		  <#if counter==5> 
97			<#list mediaDataSplit?split("?") as 
98			  uuId> 
99			  <#assign uuid=uuId /> 
100			  <#break> 
101			</#list> 
102		  </#if> 
103		  <#assign counter=counter+1> 
104		</#list> 
105		<#if uuid?? && groupId??> 
106		  <#assign 
107			file=dlFileEntryService.getFileEntryByUuidAndGroupId(uuid,groupId)> 
108			<#assign 
109			  fileExtension=file.extension> 
110			  <#if fileExtension==""> 
111				<#list "${file.fileName}" 
112				  ?split(".") as 
113				  extention> 
114				  <#if extention?is_last> 
115					<#assign 
116					  fileExtension=extention> 
117					  <#break> 
118				  </#if> 
119				</#list> 
120			  </#if> 
121			  <#if 
122				media.getData()?has_content> 
123				<a  class="dl-attachment-circle mr-2" 
124				  href="${media.getData()}" 
125				  target="blank" 
126				onclick="trackPublicationDownload('${articleTitleEn?js_string}', '${articleTitleAr?js_string}', '${media.getData()?js_string}', '${currentUserScreenName?js_string}')"> 
127					 
128				  <#if fileExtension=="pdf" 
129					|| 
130					fileExtension=="PDF"> 
131					<li 
132					class="list-item list-inline-item d-flex"> 
133					  <img src=${themeDisplay.getPathThemeImages()}/publications/pdf-svgrepo-com.svg 
134					  height="20" style="max-width:unset !important" /> 
135					</li> 
136				  </#if> 
137				  <#if fileExtension=="xls" 
138					|| 
139					fileExtension=="XLS" 
140					|| 
141					fileExtension=="xlsx" 
142					|| 
143					fileExtension=="XLSX"> 
144					<li 
145					  class="list-item list-inline-item d-flex"> 
146					  <img src=${themeDisplay.getPathThemeImages()}/publications/excel-svgrepo-com.svg 
147					  height="20"  style="max-width:unset !important" /> 
148					</li> 
149				  </#if> 
150				</a> 
151			  </#if> 
152		</#if> 
153	</#if> 
154  </#list> 
155</#if> 
156 
157 </ul> 
158</div> 
159</div> 
160<script> 
161function escapeNonAscii(str) { 
162    return str.replace(/[^\x00-\x7F]/g, function(ch) { 
163        return '\\u' + ('0000' + ch.charCodeAt(0).toString(16)).slice(-4); 
164    }); 
165
166function trackPublicationDownload(nameEn, nameAr, fileUrl, createdBy) { 
167    var innerPayload = { 
168        Name_EN: nameEn, 
169        Name_AR: nameAr, 
170        PublicationID: 0, 
171        CalendarID: 0, 
172        URL: fileUrl, 
173        CreatedBy: createdBy 
174    }; 
175 
176    var outerPayload = { 
177        url: 'Publication/InsertPublicationDownload', 
178        body: escapeNonAscii(JSON.stringify(innerPayload)) 
179    }; 
180 
181    try { 
182        fetch('/o/communication', { 
183            method: 'POST', 
184            headers: { 
185                'Accept': '*/*', 
186                'Content-Type': 'application/json; charset=utf-8' 
187            }, 
188            body: JSON.stringify(outerPayload) 
189        }); 
190    } catch (e) {} 
191
192</script>