Consumer Price Index-Annually 2025
Gross Domestic Product By Production-Quarterly Third Quarter 2025
The following has evaluated to null or missing:
==> themeIconId [in template "20098#20124#1093349" at line 75, column 60]
----
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: ${themeIconId} [in template "20098#20124#1093349" at line 75, column 58]
----
1<#assign catLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
2 JournalArticleService=serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")
3 resourcePrimKey=JournalArticleService.getArticleResourcePrimKey(groupId, .vars['reserved-article-id'].data)
4 articleCatNames=catLocalService.getCategories("com.liferay.journal.model.JournalArticle", resourcePrimKey)
5 dlFileEntryService=serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService')
6 assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
7 dlAppLocalServiceUtil=staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
8 dlUtil=staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
9 jsonFactoryUtil=staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]
10 statisticVocabulary=assetVocabularyLocalService.getGroupVocabulary(groupId?long,"statistics")
11 assetCategoryPropService=serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
12 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
13
14<#assign journalArticleTitle=.vars['reserved-article-title'].data />
15
16<#assign journalArticlele = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
17<#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UiissueDate")!"" />
18<#if !journalArticleDisplayDate?has_content>
19 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UIIssueDate")!"" />
20</#if>
21<#if !journalArticleDisplayDate?has_content>
22 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("Uiissuedate")!"" />
23</#if>
24<#assign publicationIsoDate = "" />
25<#if journalArticleDisplayDate?has_content>
26 <#attempt>
27 <#assign publicationIsoDate = journalArticleDisplayDate?string["yyyy-MM-dd"] />
28 <#recover>
29 <#assign publicationIsoDate = "" />
30 </#attempt>
31</#if>
32<#assign publicationPageUrl = themeDisplay.getPortalURL() + "/w/" + .vars['reserved-article-url-title'].data />
33<#assign publicationDistributions = jsonFactoryUtil.createJSONArray() />
34
35
36
37
38
39<#assign themeColor="d29c4b" imgUrl="${themeDisplay.getPathThemeImages()}/publications/005.jpg"
40 categoryDisplay="Economic" />
41<#if (articleCatNames?size > 0)>
42 <#list articleCatNames as category>
43 <#if category.parentCategoryId==0>
44 <#if category.getVocabularyId()==statisticVocabulary.getVocabularyId()>
45 <#assign assetThemeCategoryId=category.categoryId?long />
46 <#assign
47 themeColor=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_color").getValue()
48 themeIconId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_icon_id").getValue()
49 themeImgId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"portfolio-image").getValue() />
50
51 <#if themeImgId!="0">
52 <#assign imgDlFile=dlAppLocalServiceUtil.getFileEntry(themeImgId?number)
53 imgUrl=dlUtil.getPreviewURL(imgDlFile, imgDlFile.getFileVersion(), themeDisplay, '' ) />
54 </#if>
55 <#list category.name?split(" ") as catWords>
56 <#assign categoryDisplay = catWords/>
57 <#break>
58 </#list>
59 <#assign categoryDisplay = category.titleCurrentValue/>
60 </#if>
61 </#if>
62 </#list>
63
64 </#if>
65
66
67<#if file_upload.getSiblings()?has_content>
68
69 <#list file_upload.getSiblings() as medias>
70
71 <div class=" row mb-3 mx-0 bg-white d-flex w-100 align-items-center h-100 border rounded">
72 <div class="col-lg-1 p-0 ">
73 <div class="icon d-flex text-center p-1" style="background: #eee">
74 <div class="align-self-center mx-auto d-flex flex-column">
75 <img src="/documents/d/guest/${themeIconId}" height="30">
76 <label class="small mx-auto mb-0" style="color: #${themeColor} ;">
77 ${categoryDisplay}
78 </label>
79 </div>
80 </div>
81 </div>
82
83 <div class="col-8">
84 <p class="mb-0 py-3 publication-p">${journalArticleTitle}</p>
85 </div>
86
87 <div class="col-3 d-flex align-items-center justify-content-end">
88
89 <div class="my-2 right-icons d-flex align-items-center ">
90 <#if file_upload.getSiblings()?has_content>
91 <#list file_upload.getSiblings() as media>
92 <#if media.getData()?has_content>
93 <#assign fileData = media.getData()?trim />
94 <#assign fileEntry = "" />
95 <#assign downloadUrl = "" />
96 <#assign fileExtension = "" />
97
98 <#-- Yearbook stores document_library as JSON; older content may use a /documents/... path -->
99 <#if fileData?starts_with("{")>
100 <#assign fileJson = jsonFactoryUtil.createJSONObject(fileData) />
101 <#assign fileEntryId = fileJson.getLong("fileEntryId") />
102 <#if fileEntryId gt 0>
103 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntry(fileEntryId) />
104 <#elseif fileJson.getString("uuid")?has_content>
105 <#assign fileGroupId = fileJson.getLong("groupId") />
106 <#if fileGroupId lte 0>
107 <#assign fileGroupId = groupId />
108 </#if>
109 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(fileJson.getString("uuid"), fileGroupId) />
110 </#if>
111 <#else>
112 <#assign uuid = "" />
113 <#list fileData?split("/") as mediaDataSplit>
114 <#assign segment = mediaDataSplit?split("?")[0] />
115 <#if segment?matches("[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}")>
116 <#assign uuid = segment />
117 </#if>
118 </#list>
119 <#if uuid?has_content>
120 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId) />
121 </#if>
122 </#if>
123
124 <#if fileEntry?has_content>
125 <#assign downloadUrl = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, "&download=true", false, true) />
126 <#assign fileExtension = fileEntry.getExtension()!"" />
127 <#if !fileExtension?has_content>
128 <#list fileEntry.getFileName()?split(".") as extention>
129 <#if extention?is_last>
130 <#assign fileExtension = extention />
131 <#break>
132 </#if>
133 </#list>
134 </#if>
135 <#elseif fileData?contains("/documents/")>
136 <#assign downloadUrl = fileData />
137 <#if !downloadUrl?contains("download=true")>
138 <#if downloadUrl?contains("?")>
139 <#assign downloadUrl = downloadUrl + "&download=true" />
140 <#else>
141 <#assign downloadUrl = downloadUrl + "?download=true" />
142 </#if>
143 </#if>
144 <#list fileData?split("?")[0]?split("/") as pathPart>
145 <#if pathPart?contains(".")>
146 <#list pathPart?split(".") as extention>
147 <#if extention?is_last>
148 <#assign fileExtension = extention />
149 </#if>
150 </#list>
151 </#if>
152 </#list>
153 </#if>
154
155 <#if downloadUrl?has_content>
156 <#assign encodingFormat = "application/octet-stream" />
157 <#if fileExtension?lower_case == "pdf">
158 <#assign encodingFormat = "application/pdf" />
159 <#elseif fileExtension?lower_case == "xls">
160 <#assign encodingFormat = "application/vnd.ms-excel" />
161 <#elseif fileExtension?lower_case == "xlsx">
162 <#assign encodingFormat = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
163 </#if>
164 <#assign distributionJson = jsonFactoryUtil.createJSONObject() />
165 <#assign void = distributionJson.put("@type", "DataDownload") />
166 <#assign void = distributionJson.put("contentUrl", downloadUrl) />
167 <#assign void = distributionJson.put("encodingFormat", encodingFormat) />
168 <#if fileExtension?has_content>
169 <#assign void = distributionJson.put("name", journalArticleTitle + " (" + fileExtension?upper_case + ")") />
170 </#if>
171 <#assign void = publicationDistributions.put(distributionJson) />
172
173 <#if fileExtension == "pdf" || fileExtension == "PDF">
174 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:1" aria-label="Download PDF">
175 <li class="list-item list-inline-item d-flex">
176 <img src=${themeDisplay.getPathThemeImages()}/publications/pdf-svgrepo-com.svg
177 class="d-flex mx-auto align-self-center" />
178 </li>
179 </a>
180 <#elseif fileExtension == "xls" || fileExtension == "XLS" ||
181 fileExtension == "xlsx" || fileExtension == "XLSX">
182 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:2" aria-label="Download Excel">
183 <li class="list-item list-inline-item d-flex">
184 <img src=${themeDisplay.getPathThemeImages()}/publications/excel-svgrepo-com.svg
185 class="d-flex mx-auto align-self-center" />
186 </li>
187 </a>
188 <#else>
189 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:3" aria-label="Download file">
190 <li class="list-item list-inline-item d-flex">
191 <i class="icon-file" style="font-size:27px"></i>
192 </li>
193 </a>
194 </#if>
195 </#if>
196 </#if>
197 </#list>
198 </#if>
199 </div>
200 </div>
201 </div>
202
203<#-- Schema.org Dataset JSON-LD (list view only — avoids duplicate grid+list scripts) -->
204<#assign datasetJson = jsonFactoryUtil.createJSONObject() />
205<#assign void = datasetJson.put("@context", "https://schema.org") />
206<#assign void = datasetJson.put("@type", "Dataset") />
207<#assign void = datasetJson.put("@id", publicationPageUrl + "#dataset") />
208<#assign void = datasetJson.put("name", journalArticleTitle) />
209<#assign void = datasetJson.put("url", publicationPageUrl) />
210<#assign publicationDescription = journalArticleTitle />
211<#if categoryDisplay?has_content>
212 <#assign publicationDescription = publicationDescription + " — " + categoryDisplay + " publication from Statistics Centre - Abu Dhabi (SCAD)." />
213<#else>
214 <#assign publicationDescription = publicationDescription + " — Statistical publication from Statistics Centre - Abu Dhabi (SCAD)." />
215</#if>
216<#if publicationIsoDate?has_content>
217 <#assign publicationDescription = publicationDescription + " Published on " + publicationIsoDate + "." />
218</#if>
219<#if publicationDistributions.length() gt 0>
220 <#assign publicationDescription = publicationDescription + " Downloadable PDF or Excel data file available." />
221</#if>
222<#if publicationDescription?length lt 50>
223 <#assign publicationDescription = publicationDescription + " Official SCAD statistical data is freely available to the public on the SCAD Download Publications catalog." />
224</#if>
225<#assign void = datasetJson.put("description", publicationDescription) />
226<#assign topicKeywords = categoryDisplay!"" />
227<#if topicKeywords?has_content>
228 <#assign void = datasetJson.put("keywords", topicKeywords) />
229 <#assign aboutThing = jsonFactoryUtil.createJSONObject() />
230 <#assign void = aboutThing.put("@type", "Thing") />
231 <#assign void = aboutThing.put("name", topicKeywords) />
232 <#assign void = datasetJson.put("about", aboutThing) />
233</#if>
234<#if publicationIsoDate?has_content>
235 <#assign void = datasetJson.put("datePublished", publicationIsoDate) />
236 <#assign void = datasetJson.put("dateModified", publicationIsoDate) />
237</#if>
238<#assign void = datasetJson.put("inLanguage", (themeDisplay.getLanguageId()?starts_with("ar"))?then("ar", "en")) />
239<#assign void = datasetJson.put("isAccessibleForFree", true) />
240<#assign void = datasetJson.put("license", "https://www.scad.gov.ae") />
241<#assign catalogRef = jsonFactoryUtil.createJSONObject() />
242<#assign void = catalogRef.put("@type", "DataCatalog") />
243<#assign void = catalogRef.put("name", "Download Publications") />
244<#assign void = catalogRef.put("url", themeDisplay.getPortalURL() + "/download-publications") />
245<#assign void = datasetJson.put("includedInDataCatalog", catalogRef) />
246<#assign creatorJson = jsonFactoryUtil.createJSONObject() />
247<#assign void = creatorJson.put("@type", "GovernmentOrganization") />
248<#assign void = creatorJson.put("name", "Statistics Centre - Abu Dhabi (SCAD)") />
249<#assign void = creatorJson.put("url", "https://www.scad.gov.ae") />
250<#assign void = datasetJson.put("creator", creatorJson) />
251<#assign void = datasetJson.put("publisher", creatorJson) />
252<#if publicationDistributions.length() gt 0>
253 <#assign void = datasetJson.put("distribution", publicationDistributions) />
254</#if>
255<script type="application/ld+json">
256${datasetJson.toString()}
257</script>
258
259<#break>
260
261
262</#list>
263</#if>
Hotel Price Index-Monthly November 2025
Consumer Price Index-Monthly December 2025
Climate Statistics-Monthly November 2025
Air Quality Statistics-Annually 2024
Building Completion Statistics-Quarterly Third Quarter 2025
Marine Water Quality Statistics-Quarterly Third Quarter 2025
Fishery Statistics-Quarterly Third Quarter 2025
Air Quality Statistics-Quarterly Third Quarter 2025
Energy and Water Statistics 2024
Foreign Investment Statistics-Annually 2024
Islamic Affairs Statistics-Annually 2024
Bank Statistics-Quarterly Third Quarter 2025
Climate Statistics-Monthly October 2025
Consumer Price Index-Monthly November 2025
The following has evaluated to null or missing:
==> themeIconId [in template "20098#20124#1093349" at line 75, column 60]
----
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: ${themeIconId} [in template "20098#20124#1093349" at line 75, column 58]
----
1<#assign catLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
2 JournalArticleService=serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")
3 resourcePrimKey=JournalArticleService.getArticleResourcePrimKey(groupId, .vars['reserved-article-id'].data)
4 articleCatNames=catLocalService.getCategories("com.liferay.journal.model.JournalArticle", resourcePrimKey)
5 dlFileEntryService=serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService')
6 assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
7 dlAppLocalServiceUtil=staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
8 dlUtil=staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
9 jsonFactoryUtil=staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]
10 statisticVocabulary=assetVocabularyLocalService.getGroupVocabulary(groupId?long,"statistics")
11 assetCategoryPropService=serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
12 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
13
14<#assign journalArticleTitle=.vars['reserved-article-title'].data />
15
16<#assign journalArticlele = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
17<#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UiissueDate")!"" />
18<#if !journalArticleDisplayDate?has_content>
19 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UIIssueDate")!"" />
20</#if>
21<#if !journalArticleDisplayDate?has_content>
22 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("Uiissuedate")!"" />
23</#if>
24<#assign publicationIsoDate = "" />
25<#if journalArticleDisplayDate?has_content>
26 <#attempt>
27 <#assign publicationIsoDate = journalArticleDisplayDate?string["yyyy-MM-dd"] />
28 <#recover>
29 <#assign publicationIsoDate = "" />
30 </#attempt>
31</#if>
32<#assign publicationPageUrl = themeDisplay.getPortalURL() + "/w/" + .vars['reserved-article-url-title'].data />
33<#assign publicationDistributions = jsonFactoryUtil.createJSONArray() />
34
35
36
37
38
39<#assign themeColor="d29c4b" imgUrl="${themeDisplay.getPathThemeImages()}/publications/005.jpg"
40 categoryDisplay="Economic" />
41<#if (articleCatNames?size > 0)>
42 <#list articleCatNames as category>
43 <#if category.parentCategoryId==0>
44 <#if category.getVocabularyId()==statisticVocabulary.getVocabularyId()>
45 <#assign assetThemeCategoryId=category.categoryId?long />
46 <#assign
47 themeColor=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_color").getValue()
48 themeIconId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_icon_id").getValue()
49 themeImgId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"portfolio-image").getValue() />
50
51 <#if themeImgId!="0">
52 <#assign imgDlFile=dlAppLocalServiceUtil.getFileEntry(themeImgId?number)
53 imgUrl=dlUtil.getPreviewURL(imgDlFile, imgDlFile.getFileVersion(), themeDisplay, '' ) />
54 </#if>
55 <#list category.name?split(" ") as catWords>
56 <#assign categoryDisplay = catWords/>
57 <#break>
58 </#list>
59 <#assign categoryDisplay = category.titleCurrentValue/>
60 </#if>
61 </#if>
62 </#list>
63
64 </#if>
65
66
67<#if file_upload.getSiblings()?has_content>
68
69 <#list file_upload.getSiblings() as medias>
70
71 <div class=" row mb-3 mx-0 bg-white d-flex w-100 align-items-center h-100 border rounded">
72 <div class="col-lg-1 p-0 ">
73 <div class="icon d-flex text-center p-1" style="background: #eee">
74 <div class="align-self-center mx-auto d-flex flex-column">
75 <img src="/documents/d/guest/${themeIconId}" height="30">
76 <label class="small mx-auto mb-0" style="color: #${themeColor} ;">
77 ${categoryDisplay}
78 </label>
79 </div>
80 </div>
81 </div>
82
83 <div class="col-8">
84 <p class="mb-0 py-3 publication-p">${journalArticleTitle}</p>
85 </div>
86
87 <div class="col-3 d-flex align-items-center justify-content-end">
88
89 <div class="my-2 right-icons d-flex align-items-center ">
90 <#if file_upload.getSiblings()?has_content>
91 <#list file_upload.getSiblings() as media>
92 <#if media.getData()?has_content>
93 <#assign fileData = media.getData()?trim />
94 <#assign fileEntry = "" />
95 <#assign downloadUrl = "" />
96 <#assign fileExtension = "" />
97
98 <#-- Yearbook stores document_library as JSON; older content may use a /documents/... path -->
99 <#if fileData?starts_with("{")>
100 <#assign fileJson = jsonFactoryUtil.createJSONObject(fileData) />
101 <#assign fileEntryId = fileJson.getLong("fileEntryId") />
102 <#if fileEntryId gt 0>
103 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntry(fileEntryId) />
104 <#elseif fileJson.getString("uuid")?has_content>
105 <#assign fileGroupId = fileJson.getLong("groupId") />
106 <#if fileGroupId lte 0>
107 <#assign fileGroupId = groupId />
108 </#if>
109 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(fileJson.getString("uuid"), fileGroupId) />
110 </#if>
111 <#else>
112 <#assign uuid = "" />
113 <#list fileData?split("/") as mediaDataSplit>
114 <#assign segment = mediaDataSplit?split("?")[0] />
115 <#if segment?matches("[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}")>
116 <#assign uuid = segment />
117 </#if>
118 </#list>
119 <#if uuid?has_content>
120 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId) />
121 </#if>
122 </#if>
123
124 <#if fileEntry?has_content>
125 <#assign downloadUrl = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, "&download=true", false, true) />
126 <#assign fileExtension = fileEntry.getExtension()!"" />
127 <#if !fileExtension?has_content>
128 <#list fileEntry.getFileName()?split(".") as extention>
129 <#if extention?is_last>
130 <#assign fileExtension = extention />
131 <#break>
132 </#if>
133 </#list>
134 </#if>
135 <#elseif fileData?contains("/documents/")>
136 <#assign downloadUrl = fileData />
137 <#if !downloadUrl?contains("download=true")>
138 <#if downloadUrl?contains("?")>
139 <#assign downloadUrl = downloadUrl + "&download=true" />
140 <#else>
141 <#assign downloadUrl = downloadUrl + "?download=true" />
142 </#if>
143 </#if>
144 <#list fileData?split("?")[0]?split("/") as pathPart>
145 <#if pathPart?contains(".")>
146 <#list pathPart?split(".") as extention>
147 <#if extention?is_last>
148 <#assign fileExtension = extention />
149 </#if>
150 </#list>
151 </#if>
152 </#list>
153 </#if>
154
155 <#if downloadUrl?has_content>
156 <#assign encodingFormat = "application/octet-stream" />
157 <#if fileExtension?lower_case == "pdf">
158 <#assign encodingFormat = "application/pdf" />
159 <#elseif fileExtension?lower_case == "xls">
160 <#assign encodingFormat = "application/vnd.ms-excel" />
161 <#elseif fileExtension?lower_case == "xlsx">
162 <#assign encodingFormat = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
163 </#if>
164 <#assign distributionJson = jsonFactoryUtil.createJSONObject() />
165 <#assign void = distributionJson.put("@type", "DataDownload") />
166 <#assign void = distributionJson.put("contentUrl", downloadUrl) />
167 <#assign void = distributionJson.put("encodingFormat", encodingFormat) />
168 <#if fileExtension?has_content>
169 <#assign void = distributionJson.put("name", journalArticleTitle + " (" + fileExtension?upper_case + ")") />
170 </#if>
171 <#assign void = publicationDistributions.put(distributionJson) />
172
173 <#if fileExtension == "pdf" || fileExtension == "PDF">
174 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:1" aria-label="Download PDF">
175 <li class="list-item list-inline-item d-flex">
176 <img src=${themeDisplay.getPathThemeImages()}/publications/pdf-svgrepo-com.svg
177 class="d-flex mx-auto align-self-center" />
178 </li>
179 </a>
180 <#elseif fileExtension == "xls" || fileExtension == "XLS" ||
181 fileExtension == "xlsx" || fileExtension == "XLSX">
182 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:2" aria-label="Download Excel">
183 <li class="list-item list-inline-item d-flex">
184 <img src=${themeDisplay.getPathThemeImages()}/publications/excel-svgrepo-com.svg
185 class="d-flex mx-auto align-self-center" />
186 </li>
187 </a>
188 <#else>
189 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:3" aria-label="Download file">
190 <li class="list-item list-inline-item d-flex">
191 <i class="icon-file" style="font-size:27px"></i>
192 </li>
193 </a>
194 </#if>
195 </#if>
196 </#if>
197 </#list>
198 </#if>
199 </div>
200 </div>
201 </div>
202
203<#-- Schema.org Dataset JSON-LD (list view only — avoids duplicate grid+list scripts) -->
204<#assign datasetJson = jsonFactoryUtil.createJSONObject() />
205<#assign void = datasetJson.put("@context", "https://schema.org") />
206<#assign void = datasetJson.put("@type", "Dataset") />
207<#assign void = datasetJson.put("@id", publicationPageUrl + "#dataset") />
208<#assign void = datasetJson.put("name", journalArticleTitle) />
209<#assign void = datasetJson.put("url", publicationPageUrl) />
210<#assign publicationDescription = journalArticleTitle />
211<#if categoryDisplay?has_content>
212 <#assign publicationDescription = publicationDescription + " — " + categoryDisplay + " publication from Statistics Centre - Abu Dhabi (SCAD)." />
213<#else>
214 <#assign publicationDescription = publicationDescription + " — Statistical publication from Statistics Centre - Abu Dhabi (SCAD)." />
215</#if>
216<#if publicationIsoDate?has_content>
217 <#assign publicationDescription = publicationDescription + " Published on " + publicationIsoDate + "." />
218</#if>
219<#if publicationDistributions.length() gt 0>
220 <#assign publicationDescription = publicationDescription + " Downloadable PDF or Excel data file available." />
221</#if>
222<#if publicationDescription?length lt 50>
223 <#assign publicationDescription = publicationDescription + " Official SCAD statistical data is freely available to the public on the SCAD Download Publications catalog." />
224</#if>
225<#assign void = datasetJson.put("description", publicationDescription) />
226<#assign topicKeywords = categoryDisplay!"" />
227<#if topicKeywords?has_content>
228 <#assign void = datasetJson.put("keywords", topicKeywords) />
229 <#assign aboutThing = jsonFactoryUtil.createJSONObject() />
230 <#assign void = aboutThing.put("@type", "Thing") />
231 <#assign void = aboutThing.put("name", topicKeywords) />
232 <#assign void = datasetJson.put("about", aboutThing) />
233</#if>
234<#if publicationIsoDate?has_content>
235 <#assign void = datasetJson.put("datePublished", publicationIsoDate) />
236 <#assign void = datasetJson.put("dateModified", publicationIsoDate) />
237</#if>
238<#assign void = datasetJson.put("inLanguage", (themeDisplay.getLanguageId()?starts_with("ar"))?then("ar", "en")) />
239<#assign void = datasetJson.put("isAccessibleForFree", true) />
240<#assign void = datasetJson.put("license", "https://www.scad.gov.ae") />
241<#assign catalogRef = jsonFactoryUtil.createJSONObject() />
242<#assign void = catalogRef.put("@type", "DataCatalog") />
243<#assign void = catalogRef.put("name", "Download Publications") />
244<#assign void = catalogRef.put("url", themeDisplay.getPortalURL() + "/download-publications") />
245<#assign void = datasetJson.put("includedInDataCatalog", catalogRef) />
246<#assign creatorJson = jsonFactoryUtil.createJSONObject() />
247<#assign void = creatorJson.put("@type", "GovernmentOrganization") />
248<#assign void = creatorJson.put("name", "Statistics Centre - Abu Dhabi (SCAD)") />
249<#assign void = creatorJson.put("url", "https://www.scad.gov.ae") />
250<#assign void = datasetJson.put("creator", creatorJson) />
251<#assign void = datasetJson.put("publisher", creatorJson) />
252<#if publicationDistributions.length() gt 0>
253 <#assign void = datasetJson.put("distribution", publicationDistributions) />
254</#if>
255<script type="application/ld+json">
256${datasetJson.toString()}
257</script>
258
259<#break>
260
261
262</#list>
263</#if>
Hotel Price Index-Monthly October 2025
Biodiversity and Protected Area Statistics-Annually 2024
Construction Cost Index-Quarterly Third Quarter 2025
Education Statistics-Annually 2024
Fishery Statistics-Annually 2024
Foreign trade unit value index-Quarterly Third Quarter 2025
Industrial Production Index-Quarterly Third Quarter 2025
Producer Price Index-Quarterly Third Quarter 2025
Non-oil Foreign Merchandise Trade Statistics Through Ports by Harmonized System-Monthly October 2025
Hotel Price Index-Monthly September 2025
Non-oil Foreign Merchandise Trade Statistics Through Ports by Harmonized System-Monthly September 2025
The following has evaluated to null or missing:
==> themeIconId [in template "20098#20124#1093349" at line 75, column 60]
----
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: ${themeIconId} [in template "20098#20124#1093349" at line 75, column 58]
----
1<#assign catLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
2 JournalArticleService=serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")
3 resourcePrimKey=JournalArticleService.getArticleResourcePrimKey(groupId, .vars['reserved-article-id'].data)
4 articleCatNames=catLocalService.getCategories("com.liferay.journal.model.JournalArticle", resourcePrimKey)
5 dlFileEntryService=serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService')
6 assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
7 dlAppLocalServiceUtil=staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
8 dlUtil=staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
9 jsonFactoryUtil=staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]
10 statisticVocabulary=assetVocabularyLocalService.getGroupVocabulary(groupId?long,"statistics")
11 assetCategoryPropService=serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
12 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
13
14<#assign journalArticleTitle=.vars['reserved-article-title'].data />
15
16<#assign journalArticlele = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
17<#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UiissueDate")!"" />
18<#if !journalArticleDisplayDate?has_content>
19 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UIIssueDate")!"" />
20</#if>
21<#if !journalArticleDisplayDate?has_content>
22 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("Uiissuedate")!"" />
23</#if>
24<#assign publicationIsoDate = "" />
25<#if journalArticleDisplayDate?has_content>
26 <#attempt>
27 <#assign publicationIsoDate = journalArticleDisplayDate?string["yyyy-MM-dd"] />
28 <#recover>
29 <#assign publicationIsoDate = "" />
30 </#attempt>
31</#if>
32<#assign publicationPageUrl = themeDisplay.getPortalURL() + "/w/" + .vars['reserved-article-url-title'].data />
33<#assign publicationDistributions = jsonFactoryUtil.createJSONArray() />
34
35
36
37
38
39<#assign themeColor="d29c4b" imgUrl="${themeDisplay.getPathThemeImages()}/publications/005.jpg"
40 categoryDisplay="Economic" />
41<#if (articleCatNames?size > 0)>
42 <#list articleCatNames as category>
43 <#if category.parentCategoryId==0>
44 <#if category.getVocabularyId()==statisticVocabulary.getVocabularyId()>
45 <#assign assetThemeCategoryId=category.categoryId?long />
46 <#assign
47 themeColor=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_color").getValue()
48 themeIconId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_icon_id").getValue()
49 themeImgId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"portfolio-image").getValue() />
50
51 <#if themeImgId!="0">
52 <#assign imgDlFile=dlAppLocalServiceUtil.getFileEntry(themeImgId?number)
53 imgUrl=dlUtil.getPreviewURL(imgDlFile, imgDlFile.getFileVersion(), themeDisplay, '' ) />
54 </#if>
55 <#list category.name?split(" ") as catWords>
56 <#assign categoryDisplay = catWords/>
57 <#break>
58 </#list>
59 <#assign categoryDisplay = category.titleCurrentValue/>
60 </#if>
61 </#if>
62 </#list>
63
64 </#if>
65
66
67<#if file_upload.getSiblings()?has_content>
68
69 <#list file_upload.getSiblings() as medias>
70
71 <div class=" row mb-3 mx-0 bg-white d-flex w-100 align-items-center h-100 border rounded">
72 <div class="col-lg-1 p-0 ">
73 <div class="icon d-flex text-center p-1" style="background: #eee">
74 <div class="align-self-center mx-auto d-flex flex-column">
75 <img src="/documents/d/guest/${themeIconId}" height="30">
76 <label class="small mx-auto mb-0" style="color: #${themeColor} ;">
77 ${categoryDisplay}
78 </label>
79 </div>
80 </div>
81 </div>
82
83 <div class="col-8">
84 <p class="mb-0 py-3 publication-p">${journalArticleTitle}</p>
85 </div>
86
87 <div class="col-3 d-flex align-items-center justify-content-end">
88
89 <div class="my-2 right-icons d-flex align-items-center ">
90 <#if file_upload.getSiblings()?has_content>
91 <#list file_upload.getSiblings() as media>
92 <#if media.getData()?has_content>
93 <#assign fileData = media.getData()?trim />
94 <#assign fileEntry = "" />
95 <#assign downloadUrl = "" />
96 <#assign fileExtension = "" />
97
98 <#-- Yearbook stores document_library as JSON; older content may use a /documents/... path -->
99 <#if fileData?starts_with("{")>
100 <#assign fileJson = jsonFactoryUtil.createJSONObject(fileData) />
101 <#assign fileEntryId = fileJson.getLong("fileEntryId") />
102 <#if fileEntryId gt 0>
103 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntry(fileEntryId) />
104 <#elseif fileJson.getString("uuid")?has_content>
105 <#assign fileGroupId = fileJson.getLong("groupId") />
106 <#if fileGroupId lte 0>
107 <#assign fileGroupId = groupId />
108 </#if>
109 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(fileJson.getString("uuid"), fileGroupId) />
110 </#if>
111 <#else>
112 <#assign uuid = "" />
113 <#list fileData?split("/") as mediaDataSplit>
114 <#assign segment = mediaDataSplit?split("?")[0] />
115 <#if segment?matches("[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}")>
116 <#assign uuid = segment />
117 </#if>
118 </#list>
119 <#if uuid?has_content>
120 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId) />
121 </#if>
122 </#if>
123
124 <#if fileEntry?has_content>
125 <#assign downloadUrl = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, "&download=true", false, true) />
126 <#assign fileExtension = fileEntry.getExtension()!"" />
127 <#if !fileExtension?has_content>
128 <#list fileEntry.getFileName()?split(".") as extention>
129 <#if extention?is_last>
130 <#assign fileExtension = extention />
131 <#break>
132 </#if>
133 </#list>
134 </#if>
135 <#elseif fileData?contains("/documents/")>
136 <#assign downloadUrl = fileData />
137 <#if !downloadUrl?contains("download=true")>
138 <#if downloadUrl?contains("?")>
139 <#assign downloadUrl = downloadUrl + "&download=true" />
140 <#else>
141 <#assign downloadUrl = downloadUrl + "?download=true" />
142 </#if>
143 </#if>
144 <#list fileData?split("?")[0]?split("/") as pathPart>
145 <#if pathPart?contains(".")>
146 <#list pathPart?split(".") as extention>
147 <#if extention?is_last>
148 <#assign fileExtension = extention />
149 </#if>
150 </#list>
151 </#if>
152 </#list>
153 </#if>
154
155 <#if downloadUrl?has_content>
156 <#assign encodingFormat = "application/octet-stream" />
157 <#if fileExtension?lower_case == "pdf">
158 <#assign encodingFormat = "application/pdf" />
159 <#elseif fileExtension?lower_case == "xls">
160 <#assign encodingFormat = "application/vnd.ms-excel" />
161 <#elseif fileExtension?lower_case == "xlsx">
162 <#assign encodingFormat = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
163 </#if>
164 <#assign distributionJson = jsonFactoryUtil.createJSONObject() />
165 <#assign void = distributionJson.put("@type", "DataDownload") />
166 <#assign void = distributionJson.put("contentUrl", downloadUrl) />
167 <#assign void = distributionJson.put("encodingFormat", encodingFormat) />
168 <#if fileExtension?has_content>
169 <#assign void = distributionJson.put("name", journalArticleTitle + " (" + fileExtension?upper_case + ")") />
170 </#if>
171 <#assign void = publicationDistributions.put(distributionJson) />
172
173 <#if fileExtension == "pdf" || fileExtension == "PDF">
174 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:1" aria-label="Download PDF">
175 <li class="list-item list-inline-item d-flex">
176 <img src=${themeDisplay.getPathThemeImages()}/publications/pdf-svgrepo-com.svg
177 class="d-flex mx-auto align-self-center" />
178 </li>
179 </a>
180 <#elseif fileExtension == "xls" || fileExtension == "XLS" ||
181 fileExtension == "xlsx" || fileExtension == "XLSX">
182 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:2" aria-label="Download Excel">
183 <li class="list-item list-inline-item d-flex">
184 <img src=${themeDisplay.getPathThemeImages()}/publications/excel-svgrepo-com.svg
185 class="d-flex mx-auto align-self-center" />
186 </li>
187 </a>
188 <#else>
189 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:3" aria-label="Download file">
190 <li class="list-item list-inline-item d-flex">
191 <i class="icon-file" style="font-size:27px"></i>
192 </li>
193 </a>
194 </#if>
195 </#if>
196 </#if>
197 </#list>
198 </#if>
199 </div>
200 </div>
201 </div>
202
203<#-- Schema.org Dataset JSON-LD (list view only — avoids duplicate grid+list scripts) -->
204<#assign datasetJson = jsonFactoryUtil.createJSONObject() />
205<#assign void = datasetJson.put("@context", "https://schema.org") />
206<#assign void = datasetJson.put("@type", "Dataset") />
207<#assign void = datasetJson.put("@id", publicationPageUrl + "#dataset") />
208<#assign void = datasetJson.put("name", journalArticleTitle) />
209<#assign void = datasetJson.put("url", publicationPageUrl) />
210<#assign publicationDescription = journalArticleTitle />
211<#if categoryDisplay?has_content>
212 <#assign publicationDescription = publicationDescription + " — " + categoryDisplay + " publication from Statistics Centre - Abu Dhabi (SCAD)." />
213<#else>
214 <#assign publicationDescription = publicationDescription + " — Statistical publication from Statistics Centre - Abu Dhabi (SCAD)." />
215</#if>
216<#if publicationIsoDate?has_content>
217 <#assign publicationDescription = publicationDescription + " Published on " + publicationIsoDate + "." />
218</#if>
219<#if publicationDistributions.length() gt 0>
220 <#assign publicationDescription = publicationDescription + " Downloadable PDF or Excel data file available." />
221</#if>
222<#if publicationDescription?length lt 50>
223 <#assign publicationDescription = publicationDescription + " Official SCAD statistical data is freely available to the public on the SCAD Download Publications catalog." />
224</#if>
225<#assign void = datasetJson.put("description", publicationDescription) />
226<#assign topicKeywords = categoryDisplay!"" />
227<#if topicKeywords?has_content>
228 <#assign void = datasetJson.put("keywords", topicKeywords) />
229 <#assign aboutThing = jsonFactoryUtil.createJSONObject() />
230 <#assign void = aboutThing.put("@type", "Thing") />
231 <#assign void = aboutThing.put("name", topicKeywords) />
232 <#assign void = datasetJson.put("about", aboutThing) />
233</#if>
234<#if publicationIsoDate?has_content>
235 <#assign void = datasetJson.put("datePublished", publicationIsoDate) />
236 <#assign void = datasetJson.put("dateModified", publicationIsoDate) />
237</#if>
238<#assign void = datasetJson.put("inLanguage", (themeDisplay.getLanguageId()?starts_with("ar"))?then("ar", "en")) />
239<#assign void = datasetJson.put("isAccessibleForFree", true) />
240<#assign void = datasetJson.put("license", "https://www.scad.gov.ae") />
241<#assign catalogRef = jsonFactoryUtil.createJSONObject() />
242<#assign void = catalogRef.put("@type", "DataCatalog") />
243<#assign void = catalogRef.put("name", "Download Publications") />
244<#assign void = catalogRef.put("url", themeDisplay.getPortalURL() + "/download-publications") />
245<#assign void = datasetJson.put("includedInDataCatalog", catalogRef) />
246<#assign creatorJson = jsonFactoryUtil.createJSONObject() />
247<#assign void = creatorJson.put("@type", "GovernmentOrganization") />
248<#assign void = creatorJson.put("name", "Statistics Centre - Abu Dhabi (SCAD)") />
249<#assign void = creatorJson.put("url", "https://www.scad.gov.ae") />
250<#assign void = datasetJson.put("creator", creatorJson) />
251<#assign void = datasetJson.put("publisher", creatorJson) />
252<#if publicationDistributions.length() gt 0>
253 <#assign void = datasetJson.put("distribution", publicationDistributions) />
254</#if>
255<script type="application/ld+json">
256${datasetJson.toString()}
257</script>
258
259<#break>
260
261
262</#list>
263</#if>
Consumer Price Index-Monthly October 2025
Climate Statistics-Monthly September 2025
Consumer Price Index-Monthly September 2025
The following has evaluated to null or missing:
==> themeIconId [in template "20098#20124#1093349" at line 75, column 60]
----
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: ${themeIconId} [in template "20098#20124#1093349" at line 75, column 58]
----
1<#assign catLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
2 JournalArticleService=serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")
3 resourcePrimKey=JournalArticleService.getArticleResourcePrimKey(groupId, .vars['reserved-article-id'].data)
4 articleCatNames=catLocalService.getCategories("com.liferay.journal.model.JournalArticle", resourcePrimKey)
5 dlFileEntryService=serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService')
6 assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
7 dlAppLocalServiceUtil=staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
8 dlUtil=staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
9 jsonFactoryUtil=staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]
10 statisticVocabulary=assetVocabularyLocalService.getGroupVocabulary(groupId?long,"statistics")
11 assetCategoryPropService=serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
12 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
13
14<#assign journalArticleTitle=.vars['reserved-article-title'].data />
15
16<#assign journalArticlele = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
17<#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UiissueDate")!"" />
18<#if !journalArticleDisplayDate?has_content>
19 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UIIssueDate")!"" />
20</#if>
21<#if !journalArticleDisplayDate?has_content>
22 <#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("Uiissuedate")!"" />
23</#if>
24<#assign publicationIsoDate = "" />
25<#if journalArticleDisplayDate?has_content>
26 <#attempt>
27 <#assign publicationIsoDate = journalArticleDisplayDate?string["yyyy-MM-dd"] />
28 <#recover>
29 <#assign publicationIsoDate = "" />
30 </#attempt>
31</#if>
32<#assign publicationPageUrl = themeDisplay.getPortalURL() + "/w/" + .vars['reserved-article-url-title'].data />
33<#assign publicationDistributions = jsonFactoryUtil.createJSONArray() />
34
35
36
37
38
39<#assign themeColor="d29c4b" imgUrl="${themeDisplay.getPathThemeImages()}/publications/005.jpg"
40 categoryDisplay="Economic" />
41<#if (articleCatNames?size > 0)>
42 <#list articleCatNames as category>
43 <#if category.parentCategoryId==0>
44 <#if category.getVocabularyId()==statisticVocabulary.getVocabularyId()>
45 <#assign assetThemeCategoryId=category.categoryId?long />
46 <#assign
47 themeColor=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_color").getValue()
48 themeIconId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_icon_id").getValue()
49 themeImgId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"portfolio-image").getValue() />
50
51 <#if themeImgId!="0">
52 <#assign imgDlFile=dlAppLocalServiceUtil.getFileEntry(themeImgId?number)
53 imgUrl=dlUtil.getPreviewURL(imgDlFile, imgDlFile.getFileVersion(), themeDisplay, '' ) />
54 </#if>
55 <#list category.name?split(" ") as catWords>
56 <#assign categoryDisplay = catWords/>
57 <#break>
58 </#list>
59 <#assign categoryDisplay = category.titleCurrentValue/>
60 </#if>
61 </#if>
62 </#list>
63
64 </#if>
65
66
67<#if file_upload.getSiblings()?has_content>
68
69 <#list file_upload.getSiblings() as medias>
70
71 <div class=" row mb-3 mx-0 bg-white d-flex w-100 align-items-center h-100 border rounded">
72 <div class="col-lg-1 p-0 ">
73 <div class="icon d-flex text-center p-1" style="background: #eee">
74 <div class="align-self-center mx-auto d-flex flex-column">
75 <img src="/documents/d/guest/${themeIconId}" height="30">
76 <label class="small mx-auto mb-0" style="color: #${themeColor} ;">
77 ${categoryDisplay}
78 </label>
79 </div>
80 </div>
81 </div>
82
83 <div class="col-8">
84 <p class="mb-0 py-3 publication-p">${journalArticleTitle}</p>
85 </div>
86
87 <div class="col-3 d-flex align-items-center justify-content-end">
88
89 <div class="my-2 right-icons d-flex align-items-center ">
90 <#if file_upload.getSiblings()?has_content>
91 <#list file_upload.getSiblings() as media>
92 <#if media.getData()?has_content>
93 <#assign fileData = media.getData()?trim />
94 <#assign fileEntry = "" />
95 <#assign downloadUrl = "" />
96 <#assign fileExtension = "" />
97
98 <#-- Yearbook stores document_library as JSON; older content may use a /documents/... path -->
99 <#if fileData?starts_with("{")>
100 <#assign fileJson = jsonFactoryUtil.createJSONObject(fileData) />
101 <#assign fileEntryId = fileJson.getLong("fileEntryId") />
102 <#if fileEntryId gt 0>
103 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntry(fileEntryId) />
104 <#elseif fileJson.getString("uuid")?has_content>
105 <#assign fileGroupId = fileJson.getLong("groupId") />
106 <#if fileGroupId lte 0>
107 <#assign fileGroupId = groupId />
108 </#if>
109 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(fileJson.getString("uuid"), fileGroupId) />
110 </#if>
111 <#else>
112 <#assign uuid = "" />
113 <#list fileData?split("/") as mediaDataSplit>
114 <#assign segment = mediaDataSplit?split("?")[0] />
115 <#if segment?matches("[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}")>
116 <#assign uuid = segment />
117 </#if>
118 </#list>
119 <#if uuid?has_content>
120 <#assign fileEntry = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId) />
121 </#if>
122 </#if>
123
124 <#if fileEntry?has_content>
125 <#assign downloadUrl = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, "&download=true", false, true) />
126 <#assign fileExtension = fileEntry.getExtension()!"" />
127 <#if !fileExtension?has_content>
128 <#list fileEntry.getFileName()?split(".") as extention>
129 <#if extention?is_last>
130 <#assign fileExtension = extention />
131 <#break>
132 </#if>
133 </#list>
134 </#if>
135 <#elseif fileData?contains("/documents/")>
136 <#assign downloadUrl = fileData />
137 <#if !downloadUrl?contains("download=true")>
138 <#if downloadUrl?contains("?")>
139 <#assign downloadUrl = downloadUrl + "&download=true" />
140 <#else>
141 <#assign downloadUrl = downloadUrl + "?download=true" />
142 </#if>
143 </#if>
144 <#list fileData?split("?")[0]?split("/") as pathPart>
145 <#if pathPart?contains(".")>
146 <#list pathPart?split(".") as extention>
147 <#if extention?is_last>
148 <#assign fileExtension = extention />
149 </#if>
150 </#list>
151 </#if>
152 </#list>
153 </#if>
154
155 <#if downloadUrl?has_content>
156 <#assign encodingFormat = "application/octet-stream" />
157 <#if fileExtension?lower_case == "pdf">
158 <#assign encodingFormat = "application/pdf" />
159 <#elseif fileExtension?lower_case == "xls">
160 <#assign encodingFormat = "application/vnd.ms-excel" />
161 <#elseif fileExtension?lower_case == "xlsx">
162 <#assign encodingFormat = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
163 </#if>
164 <#assign distributionJson = jsonFactoryUtil.createJSONObject() />
165 <#assign void = distributionJson.put("@type", "DataDownload") />
166 <#assign void = distributionJson.put("contentUrl", downloadUrl) />
167 <#assign void = distributionJson.put("encodingFormat", encodingFormat) />
168 <#if fileExtension?has_content>
169 <#assign void = distributionJson.put("name", journalArticleTitle + " (" + fileExtension?upper_case + ")") />
170 </#if>
171 <#assign void = publicationDistributions.put(distributionJson) />
172
173 <#if fileExtension == "pdf" || fileExtension == "PDF">
174 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:1" aria-label="Download PDF">
175 <li class="list-item list-inline-item d-flex">
176 <img src=${themeDisplay.getPathThemeImages()}/publications/pdf-svgrepo-com.svg
177 class="d-flex mx-auto align-self-center" />
178 </li>
179 </a>
180 <#elseif fileExtension == "xls" || fileExtension == "XLS" ||
181 fileExtension == "xlsx" || fileExtension == "XLSX">
182 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:2" aria-label="Download Excel">
183 <li class="list-item list-inline-item d-flex">
184 <img src=${themeDisplay.getPathThemeImages()}/publications/excel-svgrepo-com.svg
185 class="d-flex mx-auto align-self-center" />
186 </li>
187 </a>
188 <#else>
189 <a class="ml-2" href="${downloadUrl}" target="_blank" style="order:3" aria-label="Download file">
190 <li class="list-item list-inline-item d-flex">
191 <i class="icon-file" style="font-size:27px"></i>
192 </li>
193 </a>
194 </#if>
195 </#if>
196 </#if>
197 </#list>
198 </#if>
199 </div>
200 </div>
201 </div>
202
203<#-- Schema.org Dataset JSON-LD (list view only — avoids duplicate grid+list scripts) -->
204<#assign datasetJson = jsonFactoryUtil.createJSONObject() />
205<#assign void = datasetJson.put("@context", "https://schema.org") />
206<#assign void = datasetJson.put("@type", "Dataset") />
207<#assign void = datasetJson.put("@id", publicationPageUrl + "#dataset") />
208<#assign void = datasetJson.put("name", journalArticleTitle) />
209<#assign void = datasetJson.put("url", publicationPageUrl) />
210<#assign publicationDescription = journalArticleTitle />
211<#if categoryDisplay?has_content>
212 <#assign publicationDescription = publicationDescription + " — " + categoryDisplay + " publication from Statistics Centre - Abu Dhabi (SCAD)." />
213<#else>
214 <#assign publicationDescription = publicationDescription + " — Statistical publication from Statistics Centre - Abu Dhabi (SCAD)." />
215</#if>
216<#if publicationIsoDate?has_content>
217 <#assign publicationDescription = publicationDescription + " Published on " + publicationIsoDate + "." />
218</#if>
219<#if publicationDistributions.length() gt 0>
220 <#assign publicationDescription = publicationDescription + " Downloadable PDF or Excel data file available." />
221</#if>
222<#if publicationDescription?length lt 50>
223 <#assign publicationDescription = publicationDescription + " Official SCAD statistical data is freely available to the public on the SCAD Download Publications catalog." />
224</#if>
225<#assign void = datasetJson.put("description", publicationDescription) />
226<#assign topicKeywords = categoryDisplay!"" />
227<#if topicKeywords?has_content>
228 <#assign void = datasetJson.put("keywords", topicKeywords) />
229 <#assign aboutThing = jsonFactoryUtil.createJSONObject() />
230 <#assign void = aboutThing.put("@type", "Thing") />
231 <#assign void = aboutThing.put("name", topicKeywords) />
232 <#assign void = datasetJson.put("about", aboutThing) />
233</#if>
234<#if publicationIsoDate?has_content>
235 <#assign void = datasetJson.put("datePublished", publicationIsoDate) />
236 <#assign void = datasetJson.put("dateModified", publicationIsoDate) />
237</#if>
238<#assign void = datasetJson.put("inLanguage", (themeDisplay.getLanguageId()?starts_with("ar"))?then("ar", "en")) />
239<#assign void = datasetJson.put("isAccessibleForFree", true) />
240<#assign void = datasetJson.put("license", "https://www.scad.gov.ae") />
241<#assign catalogRef = jsonFactoryUtil.createJSONObject() />
242<#assign void = catalogRef.put("@type", "DataCatalog") />
243<#assign void = catalogRef.put("name", "Download Publications") />
244<#assign void = catalogRef.put("url", themeDisplay.getPortalURL() + "/download-publications") />
245<#assign void = datasetJson.put("includedInDataCatalog", catalogRef) />
246<#assign creatorJson = jsonFactoryUtil.createJSONObject() />
247<#assign void = creatorJson.put("@type", "GovernmentOrganization") />
248<#assign void = creatorJson.put("name", "Statistics Centre - Abu Dhabi (SCAD)") />
249<#assign void = creatorJson.put("url", "https://www.scad.gov.ae") />
250<#assign void = datasetJson.put("creator", creatorJson) />
251<#assign void = datasetJson.put("publisher", creatorJson) />
252<#if publicationDistributions.length() gt 0>
253 <#assign void = datasetJson.put("distribution", publicationDistributions) />
254</#if>
255<script type="application/ld+json">
256${datasetJson.toString()}
257</script>
258
259<#break>
260
261
262</#list>
263</#if>
Marine Water Quality Statistics-Annually 2024
Climate Statistics-Monthly August 2025
Non-oil Foreign Merchandise Trade Statistics Through Ports by Harmonized System-Monthly August 2025
Hotel Price Index-Monthly August 2025
Gross Domestic Product By Production-Quarterly Second Quarter 2025
Bank Statistics-Quarterly Second Quarter 2025
Industrial Production Index-Quarterly Second Quarter 2025
Producer Price Index-Quarterly Second Quarter 2025
Climate Statistics-Monthly July 2025
Foreign trade unit value index-Quarterly Second Quarter 2025
Construction Cost Index-Quarterly Second Quarter 2025
Birth Statistics 2024
Death Statistics 2024
Birth Statistics 2023
Death Statistics 2019
Death Statistics 2018
Marriage and Divorce Statistics 2018
Death Statistics 2017
Marriage and Divorce Statistics 2017
Marriage and Divorce Statistics 2015
Marriage and Divorce Statistics 2014
Marriage and Divorce Statistics 2013
Marriage and Divorce Statistics 2012
Death Statistics 2012
Death Statistics 2011
Death Statistics 2010
Did you find this content useful?
Share your feedback with us so we can improve your experience.