التجارة الخارجية غير النفطية عبر منافذ إمارة أبوظبي حسب النظام المنسق - شهري يونيو 2025
Release Date: 2025-08-31
الرقم القياسي لأسعار الفنادق- شهري يونيو 2025
Release Date: 2025-08-31
حصل خطأ عند معالجة القالب.
The following has evaluated to null or missing:
==> themeIconId [in template "20098#20124#2513884" at line 95, 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#2513884" at line 95, column 58]
----
1<div data-analytics-asset-type="document"
2 data-analytics-asset-id="publications-downloaded"
3 data-analytics-asset-title="Publications Downloaded"
4 data-analytics-asset-action="download">
5
6<#assign catLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
7 JournalArticleService=serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")
8 resourcePrimKey=JournalArticleService.getArticleResourcePrimKey(groupId, .vars['reserved-article-id'].data)
9 articleCatNames=catLocalService.getCategories("com.liferay.journal.model.JournalArticle", resourcePrimKey)
10 dlFileEntryService=serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService')
11 assetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
12 dlAppLocalServiceUtil=staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
13 dlUtil=staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
14 statisticVocabulary=assetVocabularyLocalService.getGroupVocabulary(groupId?long,"statistics")
15 assetCategoryPropService=serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
16 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
17
18
19<#assign journalArticleTitle=.vars['reserved-article-title'].data />
20
21<#assign journalArticlele = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
22<#assign journalArticleDisplayDate = journalArticlele.getExpandoBridge().getAttribute("UIIssueDate")/>
23
24<#-- The structure field wrapper does not expose getData to "??", so call it directly. -->
25<#assign publicationNoteHtml = "" />
26<#attempt>
27 <#assign publicationNoteHtml = (.vars['publicationNote'].getData())!"" />
28<#recover>
29</#attempt>
30<#-- Fall back to the article XML, matching how the Latest Publications portlet reads the note. -->
31<#if !publicationNoteHtml?has_content>
32 <#attempt>
33 <#assign saxReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"] />
34 <#assign noteField = saxReaderUtil.read(journalArticlele.getContent()).selectSingleNode("/root/dynamic-element[@field-reference='publicationNote' or @name='publicationNote']") />
35 <#if noteField??>
36 <#assign noteValue = noteField.selectSingleNode("dynamic-content[@language-id='" + themeDisplay.getLanguageId() + "']")! />
37 <#if noteValue?has_content && noteValue.getText()?trim?has_content>
38 <#assign publicationNoteHtml = noteValue.getText() />
39 <#else>
40 <#list noteField.selectNodes("dynamic-content") as noteContent>
41 <#if noteContent.getText()?trim?has_content>
42 <#assign publicationNoteHtml = noteContent.getText() />
43 <#break>
44 </#if>
45 </#list>
46 </#if>
47 </#if>
48 <#recover>
49 </#attempt>
50</#if>
51<#assign publicationNote = publicationNoteHtml?trim />
52<#-- The rich-text editor saves "<p> </p>" for an emptied field, so check for visible text. -->
53<#assign hasPublicationNote = publicationNote?replace("<[^>]*>", "", "r")?replace(" ", "")?replace("\xA0", "")?trim?has_content />
54<#assign publicationNoteId = "scad-pub-note-" + .vars["reserved-article-id"].data />
55<#assign publicationNoteLabel = (themeDisplay.getLanguageId()!"")?starts_with("ar")?then("ملاحظة المنشور", "Publication note") />
56
57
58<#assign themeColor="d29c4b" imgUrl="${themeDisplay.getPathThemeImages()}/publications/005.jpg"
59 categoryDisplay="Economic" />
60<#if (articleCatNames?size > 0)>
61 <#list articleCatNames as category>
62 <#if category.parentCategoryId==0>
63 <#if category.getVocabularyId()==statisticVocabulary.getVocabularyId()>
64 <#assign assetThemeCategoryId=category.categoryId?long />
65 <#assign
66 themeColor=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_color").getValue()
67 themeIconId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"theme_icon_id").getValue()
68 themeImgId=assetCategoryPropService.getCategoryProperty(assetThemeCategoryId,"portfolio-image").getValue() />
69
70 <#if themeImgId!="0">
71 <#assign imgDlFile=dlAppLocalServiceUtil.getFileEntry(themeImgId?number)
72 imgUrl=dlUtil.getPreviewURL(imgDlFile, imgDlFile.getFileVersion(), themeDisplay, '' ) />
73 </#if>
74 <#list category.name?split(" ") as catWords>
75 <#assign categoryDisplay = catWords/>
76 <#break>
77 </#list>
78 <#assign categoryDisplay = category.titleCurrentValue/>
79 </#if>
80 </#if>
81 </#list>
82
83 </#if>
84
85
86<#if file_upload.getSiblings()?has_content>
87
88 <#list file_upload.getSiblings() as medias>
89 <#if medias.getData()?has_content >
90
91 <div class=" row mb-3 mx-0 bg-white d-flex w-100 align-items-center h-100 border rounded">
92 <div class="col-lg-1 p-0 ">
93 <div class="icon d-flex text-center px-2 py-3" style="background: #eee">
94 <div class="align-self-center mx-auto d-flex flex-column">
95 <img src="/documents/d/guest/${themeIconId}" height="30">
96 <label class="small mx-auto mb-0" style="color: #${themeColor} ;">
97 ${categoryDisplay}
98 </label>
99 </div>
100 </div>
101 </div>
102
103 <div class="col-8">
104 <p class="mb-0 py-3 publication-p">${journalArticleTitle}<#if hasPublicationNote><button type="button" class="scad-pub-note-toggle" aria-expanded="false" aria-controls="${publicationNoteId}" aria-label="${publicationNoteLabel}" title="${publicationNoteLabel}"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="m9.708 6.075-3.024.379-.108.502.595.108c.387.093.464.232.38.619l-.975 4.577c-.255 1.183.14 1.74 1.067 1.74.72 0 1.554-.332 1.933-.789l.116-.549c-.263.232-.65.325-.905.325-.363 0-.494-.255-.402-.704zm.091-2.755a1.32 1.32 0 1 1-2.64 0 1.32 1.32 0 0 1 2.64 0"/></svg></button></#if></p>
105 <div class="dates_inside_wrapper">
106
107<div class="dates_inside">
108<img height="16" src="/documents/d/guest/release_icon" class="pe-2" style="filter: invert(1); padding-inline-end: 2px; padding-bottom:3px;">
109
110 <div>
111 Release Date: <#assign releaseArticle = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
112 <#assign releaseDate = releaseArticle.getExpandoBridge().getAttribute("UIIssueDate")/>
113${releaseDate?string("yyyy-MM-dd")}
114 </div>
115 </div>
116 <#assign publicationArticle = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
117<#assign revisionDate = publicationArticle.getExpandoBridge().getAttribute("revisionDate")/>
118 <#assign formattedRevDate = revisionDate?string("yyyy-MM-dd")>
119 <#if formattedRevDate != "1888-01-01">
120 <div class="dates_inside">
121 <img height="16" src="/documents/d/guest/revision_icon" class="pe-2" style="filter: invert(1); padding-inline-end: 2px; padding-bottom:3px;">
122
123<div>Revision Date:
124 ${revisionDate?string("yyyy-MM-dd")}
125 </div>
126 </div>
127 </#if>
128
129
130
131
132 </div>
133
134 <#assign articleId = .vars["reserved-article-id"].data?number>
135
136
137
138
139
140 </div>
141
142 <div class="col-3 d-flex align-items-center justify-content-end">
143
144
145 <div class="my-2 right-icons d-flex align-items-center ">
146 <#if file_upload.getSiblings()?has_content>
147 <#list file_upload.getSiblings() as media>
148 <#if media.getData()?has_content>
149
150 <#assign counter=0>
151 <#list "${media.getData()}" ?split("/") as mediaDataSplit>
152 <#if counter==5>
153 <#list mediaDataSplit?split("?") as uuId>
154 <#assign uuid=uuId />
155 <#break>
156 </#list>
157 </#if>
158 <#assign counter=counter+1>
159 </#list>
160 <#if uuid??>
161 <#assign file=dlFileEntryService.getFileEntryByUuidAndGroupId(uuid,groupId)>
162 <#assign fileExtension=file.extension>
163 <#assign fileSize = file.size >
164 <#assign fileSizeInMB = (file.size / 1024 / 1024)?string('0.##')>
165 <#if fileExtension=="">
166 <#list "${file.fileName}" ?split(".") as extention>
167 <#if extention?is_last>
168 <#assign fileExtension=extention>
169 <#break>
170 </#if>
171 </#list>
172 </#if>
173 <#if media.getData()?has_content>
174
175
176 <#if fileExtension=="pdf" || fileExtension=="PDF">
177 <a class="ml-2" href="${media.getData()}" target="blank"
178 style="order:1" onclick="trackDownload(event, '${file.fileName}')">
179 <li class="list-item list-inline-item d-flex flex-column">
180 <img src=${themeDisplay.getPathThemeImages()}/publications/pdf-svgrepo-com.svg
181 class="d-flex mx-auto align-self-center" />
182 <small class="text-dark-blue"> ${fileSizeInMB} MB </small>
183 </li>
184 </a>
185
186 <#elseif fileExtension=="xls" || fileExtension=="XLS" ||
187 fileExtension=="xlsx" || fileExtension=="XLSX">
188 <a class="ml-2" href="${media.getData()}" target="blank"
189 style="order:2" onclick="trackDownload(event, '${file.fileName}')">
190 <li class="list-item list-inline-item d-flex flex-column">
191
192 <img src=${themeDisplay.getPathThemeImages()}/publications/excel-svgrepo-com.svg
193 class="d-flex mx-auto align-self-center" />
194 <small class="text-dark-blue"> ${fileSizeInMB} MB </small>
195 </li>
196 </a>
197
198 <#else>
199
200 <a class="ml-2" href="${media.getData()}" target="blank"
201 style="order:3" onclick="trackDownload(event, '${file.fileName}')">
202 <li class="list-item list-inline-item d-flex flex-column">
203
204 <img src="/documents/d/guest/docx-1-"
205 class="d-flex mx-auto align-self-center" style="height:25px;" />
206 <small class="text-dark-blue"> ${fileSizeInMB} MB </small>
207
208 </li>
209 </a>
210
211 </#if>
212
213
214 </#if>
215 </#if>
216 </#if>
217 </#list>
218 </#if>
219 </div>
220 </div>
221
222 <#if hasPublicationNote>
223 <div class="scad-pub-note" id="${publicationNoteId}" role="note" hidden>${publicationNote}</div>
224 </#if>
225 </div>
226
227
228
229<#break>
230
231 </#if>
232</#list>
233</#if>
234<style>.dates_inside_wrapper{
235
236display: flex;
237 gap: 5px;
238 align-items: center;
239 font-size: 13px;
240 flex-direction: row;
241 gap: 20px;
242}
243
244.dates_inside {
245
246 display: flex;
247 gap: 5px;
248 align-items: center;
249
250 padding: 4px 10px;
251 color: #616060;
252 border-radius: 5px;
253
254}
255.file-size{padding :5px;}
256.publication-p .scad-pub-note-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px;min-width:22px;margin:0;margin-inline-start:8px;padding:0;border:0!important;border-radius:50%!important;background:#1a73e8!important;color:#fff!important;font-size:0;line-height:1;vertical-align:-4px;box-shadow:none;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}
257.publication-p .scad-pub-note-toggle svg{display:block;width:14px;height:14px;fill:#fff}
258.publication-p .scad-pub-note-toggle:hover,.publication-p .scad-pub-note-toggle[aria-expanded="true"]{background:#1558b0!important}
259.publication-p .scad-pub-note-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(26,115,232,.35)}
260.scad-pub-note{box-sizing:border-box;flex:0 0 calc(100% - 24px);width:calc(100% - 24px);max-width:calc(100% - 24px);margin:12px;padding:14px 16px;border:1px solid #d6e6fb;border-inline-start:4px solid #297de3;border-radius:8px;background:#f2f8ff;color:#475569;font-size:.85rem;line-height:1.6;text-align:start}
261.scad-pub-note[hidden]{display:none!important}
262.scad-pub-note>:first-child{font-weight:700;color:#0f172a}
263.scad-pub-note p{margin:0 0 8px}
264.scad-pub-note>:last-child{margin-bottom:0}</style>
265<#if hasPublicationNote>
266<script>
267(function () {
268 if (window.scadPubNoteToggleBound) {
269 return;
270 }
271
272 window.scadPubNoteToggleBound = true;
273
274 document.addEventListener('click', function (event) {
275 var button = event.target.closest && event.target.closest('.scad-pub-note-toggle');
276
277 if (!button) {
278 return;
279 }
280
281 var note = document.getElementById(button.getAttribute('aria-controls'));
282
283 if (!note) {
284 return;
285 }
286
287 var open = button.getAttribute('aria-expanded') !== 'true';
288
289 button.setAttribute('aria-expanded', String(open));
290 note.hidden = !open;
291 });
292})();
293</script>
294</#if>
295<script>
296<#assign JArticleTitle = JournalArticleLocalService.getArticle(groupId, .vars["reserved-article-id"].data) />
297<#assign JDisplayDate = JArticleTitle.getExpandoBridge().getAttribute("UIIssueDate")/>
298var dateString = '${JDisplayDate?string("yyyy-MM-dd")}';
299
300// Convert the string into a Date object
301var date = new Date(dateString);
302
303// Format the date to "dd MMM yyyy" (e.g., "02 Feb 2024")
304var formattedDate = date.toLocaleDateString('en-GB', {
305 day: '2-digit',
306 month: 'short',
307 year: 'numeric'
308});
309
310// Set the formatted date into the HTML
311document.querySelector('.publications-display').innerHTML = formattedDate;
312function trackDownload(event, fileName) {
313 console.log("INSIDE TRACKING DOWNLOADS");
314
315 // Check if fileName is correctly passed
316 if (fileName) {
317 console.log("File Name: " + fileName);
318 Analytics.track('trackPublicationDownloads', {
319 'fileName': fileName
320 });
321 } else {
322 console.log("Error: File name is missing or incorrect.");
323 }
324
325 console.log("INSIDE TRACKER");
326}
327</script>
الرقم القياسي لأسعار المستهلك-شهري يوليو 2025
Release Date: 2025-08-31
هل وجدت هذا المحتوى مفيدًا؟
يسعدنا أن نتلقى ملاحظاتك حتى نتمكن من تحسين تجربتك.