کتب معارف اسلامی

در حین انجام عملیات خطایی رخ داده است.
The following has evaluated to null or missing:
==> assetObject.getArticleId  [in template "20097#20123#47148" at line 369, column 39]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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: @liferay_journal["journal-article"] a...  [in template "20097#20123#47148" at line 368, column 29]
----
1<#if entries?has_content> 
2 
3<#if ( locale == "fa_IR") > 
4 
5	<#assign writerLabel = "نویسنده" /> 
6	<#assign idLabel = "شناسه" /> 
7	<#assign prepared = "تهیه و تنظیم" /> 
8	<#assign volumes = "تعداد جلد" /> 
9	<#assign pages = "تعداد صفحه" /> 
10	<#assign publish = "نوبت چاپ" /> 
11	<#assign release = "تاریخ انتشار" /> 
12	 
13	 
14<#elseif ( locale == "ar_SA")> 
15 
16	<#assign writerLabel = "الكاتب" /> 
17	<#assign idLabel = "بطاقة تعريف" /> 
18	<#assign prepared = "أعدت" /> 
19	<#assign volumes = "المجلد" /> 
20	<#assign pages = "الصفحات" /> 
21	<#assign publish = "النشر" /> 
22	<#assign release = "الاصدار" /> 
23	 
24<#else> 
25 
26	<#assign writerLabel = "Writer" /> 
27	<#assign idLabel = "ID" /> 
28	<#assign prepared = "Prepared" /> 
29	<#assign volumes = "Volumes" /> 
30	<#assign pages = "Pages" /> 
31	<#assign publish = "Publish" /> 
32	<#assign release = "Release" /> 
33	 
34</#if> 
35 
36 
37    <style> 
38        .books-container { 
39            position: relative; 
40 
41
42 
43        .research-book-item-wrapper { 
44            height: 252px; 
45
46 
47        .research-book-item { 
48            width: 100%; 
49            height: 232px; 
50            cursor: pointer; 
51            padding: 15px; 
52
53 
54        .research-book-item-image-wrapper { 
55            width: 100%; 
56            height: 100%; 
57            transition: 300ms; 
58            transform: scale(1); 
59
60 
61        .research-book-item.active .research-book-item-image-wrapper { 
62            /*width: 135%;*/ 
63            /*margin-left: -25%;*/ 
64            transform: scale(1.173); 
65
66 
67        .research-book-item-image { 
68            width: 100%; 
69            height: 100%; 
70            object-fit: contain; 
71
72 
73 
74        .research-books .splide__pagination { 
75            display: none; 
76
77 
78        .research-books .splide__pagination__page { 
79            background: #AEAEAE !important; 
80
81 
82        .research-books .splide__pagination li { 
83            margin: 0 6px; 
84
85 
86        .research-books .splide__pagination__page.is-active { 
87            background: #00BCEB !important; 
88
89 
90 
91        .research-books .splide__arrow { 
92            background: #00BCEB; 
93            opacity: 1; 
94 
95
96 
97        .research-books .splide__arrow svg { 
98            fill: white; 
99
100 
101        .research-books .splide__arrow--next { 
102            right: -16px; 
103
104 
105        .research-books .splide__arrow--prev { 
106            left: -16px; 
107
108 
109        .research-book-item-details-wrapper { 
110            display: none; 
111
112 
113 
114        .shaback-container { 
115            width: 100%; 
116            display: flex; 
117            justify-content: flex-end; 
118
119 
120        .shaback { 
121            background: #0D274D; 
122            color: white; 
123            align-items: flex-start; 
124            justify-content: space-between; 
125            padding: 32px; 
126            border-radius: 20px; 
127            overflow: hidden; 
128            width: 85%; 
129            display: none; 
130 
131            /*margin-left: auto;*/ 
132
133 
134        html.rtl .shaback { 
135            text-align: right; 
136            direction: rtl; 
137            flex-direction: row; 
138
139 
140        html.ltr .shaback { 
141            text-align: left; 
142            direction: rtl; 
143            flex-direction: row-reverse; 
144
145 
146        .shaback.active { 
147            display: flex; 
148
149 
150        .shaback-content { 
151            flex: 1 1 auto; 
152
153 
154        html.rtl .shaback-content { 
155            margin-left: 32px; 
156            direction: rtl; 
157
158 
159        html.ltr .shaback-content { 
160            margin-right: 32px; 
161            direction: ltr; 
162
163 
164        .shaback-title { 
165            font-size: 17px; 
166            font-weight: 500; 
167            line-height: 27px; 
168            letter-spacing: 0; 
169 
170            display: -webkit-box; 
171            -webkit-line-clamp: 1; 
172            -webkit-box-orient: vertical; 
173            overflow: hidden; 
174            text-overflow: ellipsis; 
175 
176
177 
178        .shaback-paragraph { 
179            font-size: 14px; 
180            font-style: normal; 
181            font-weight: 400; 
182            line-height: 28px; 
183            letter-spacing: 0; 
184 
185            display: -webkit-box; 
186            -webkit-line-clamp: 5; 
187            -webkit-box-orient: vertical; 
188            overflow: hidden; 
189            text-overflow: ellipsis; 
190 
191
192 
193        .shaback-details { 
194            flex: 0 0 300px; 
195            display: flex; 
196            justify-content: space-between; 
197            align-items: flex-end; 
198
199 
200        html.rtl .shaback-details { 
201            flex-direction: row; 
202
203 
204        html.ltr .shaback-details { 
205            flex-direction: row-reverse; 
206
207 
208        .shaback-details-list { 
209            margin: 0; 
210            padding: 0; 
211
212 
213        html.rtl .shaback-details-list { 
214            text-align: right; 
215
216 
217        html.ltr .shaback-details-list { 
218            text-align: left; 
219
220 
221        .shaback-details-list-item { 
222            list-style: none; 
223            font-size: 14px; 
224            font-weight: 400; 
225            line-height: 28px; 
226            letter-spacing: 0; 
227
228 
229        .shaback-writer:before { 
230            content: '${writerLabel }: '; 
231
232 
233        .shaback-prepared:before { 
234            content: '${prepared }: '; 
235
236 
237        .shaback-volumes:before { 
238            content: '${volumes }: '; 
239
240 
241        .shaback-pages:before { 
242            content: '${pages }: '; 
243
244 
245        .shaback-publish:before { 
246            content: '${publish }: '; 
247
248 
249        .shaback-release:before { 
250            content: '${release }: '; 
251
252 
253 
254         
255 
256 
257        .shaback-qrcode-container { 
258            min-width: 88px; 
259            width: 88px; 
260            height: 88px; 
261
262 
263        .shaback-qrcode { 
264            width: 100%; 
265            height: 100%; 
266
267 
268 
269        @media only screen and (max-width: 768px) { 
270 
271            .research-book-item-wrapper { 
272                height: 200px; 
273
274            .research-book-item { 
275                height: 175px; 
276
277 
278            .shaback { 
279                width: 100%; 
280                padding: 25px; 
281                flex-wrap: wrap; 
282
283 
284            .shaback-content { 
285                margin-right: 0; 
286                flex: 0 0 100%; 
287
288 
289            html.rtl .shaback-content { 
290                margin-left: 0; 
291
292 
293            html.ltr .shaback-content { 
294                margin-right: 0; 
295
296 
297            .shaback-title { 
298                text-align: center; 
299
300 
301            .shaback-details { 
302                flex: 0 0 100%; 
303
304 
305            .shaback { 
306                text-align: center; 
307
308 
309            .shaback-paragraph-container { 
310                display: none; 
311
312 
313            .shaback-qrcode-container { 
314                display: none; 
315
316 
317            .shaback-details-list { 
318                display: flex; 
319                justify-content: center; 
320                align-items: center; 
321                flex-wrap: wrap; 
322
323 
324            .shaback-details-list-item { 
325                margin: 0 5px; 
326
327 
328 
329
330 
331        @media only screen and (max-width: 515px) { 
332 
333            .research-book-item-wrapper { 
334                height: 200px; 
335
336            .research-book-item { 
337                height: 175px; 
338
339 
340            .shaback { 
341                padding: 15px; 
342
343            .research-book-item-wrapper { 
344                height: 150px; 
345
346 
347            .research-books .splide__arrow { 
348                display: none; 
349
350 
351 
352
353    </style> 
354 
355    <div class="w-100"> 
356        <div class="research-books splide splide-${themeDisplay.getPortletDisplay().getId()}"> 
357            <div class="splide__track"> 
358                <ul class="splide__list"> 
359 
360                    <#list entries as curEntry> 
361                        <li class="splide__slide research-book-item-wrapper"> 
362 
363                            <#assign 
364                            assetRenderer = curEntry.getAssetRenderer() 
365                            assetObject = assetRenderer.getAssetObject() 
366                            assetType = assetRenderer.getType() 
367                            /> 
368                            <@liferay_journal["journal-article"] 
369                            articleId=assetObject.getArticleId() 
370                            ddmTemplateKey="47157" 
371                            groupId=assetObject.getGroupId() 
372                            /> 
373 
374 
375                        </li> 
376                    </#list> 
377 
378                </ul> 
379            </div> 
380        </div> 
381    </div> 
382    <div class="shaback-container"> 
383        <div class="shaback active"> 
384            <div class="shaback-content"> 
385                <div class="shaback-title-container"> 
386                    <h6 class="shaback-title"></h6> 
387                </div> 
388                <div class="shaback-paragraph-container"> 
389                    <p class="shaback-paragraph"> 
390                    </p> 
391                </div> 
392            </div> 
393            <div class="shaback-details"> 
394                <ul class="shaback-details-list"> 
395                    <li class="shaback-details-list-item shaback-writer"></li> 
396                    <li class="shaback-details-list-item shaback-prepared"></li> 
397                    <li class="shaback-details-list-item shaback-volumes"></li> 
398                    <li class="shaback-details-list-item shaback-pages"></li> 
399                    <li class="shaback-details-list-item shaback-publish"></li> 
400                    <li class="shaback-details-list-item shaback-release"></li> 
401                </ul> 
402                <div class="shaback-qrcode-container"> 
403                    <img class="shaback-qrcode" src="" alt=""> 
404                </div> 
405            </div> 
406        </div> 
407    </div> 
408 
409 
410    <script> 
411 
412        // document.addEventListener('DOMContentLoaded', function () { 
413 
414        new Splide(".splide-${themeDisplay.getPortletDisplay().getId()}", { 
415            direction: document.getElementsByTagName("html")[0].getAttribute("dir"), 
416            perPage: 5, 
417            breakpoints: { 
418                768: { 
419                    perPage: 3, 
420                }, 
421
422        }).mount(); 
423 
424        makeShaback(); 
425 
426        const books = document.querySelectorAll('.research-book-item'); 
427 
428        books.forEach((book) => { 
429            book.addEventListener('mouseover', (event) => { 
430                books.forEach((item) => { 
431                    item.classList.remove('active'); 
432                }) 
433                book.classList.add('active'); 
434                makeShaback(event); 
435            }) 
436        }); 
437 
438 
439        // }); 
440 
441        function makeShaback(event = null) { 
442 
443            var item; 
444            var target; 
445 
446            if (event) { 
447                target = event.target; 
448                item = target.parents('.research-book-item')[0]; 
449            } else { 
450                // first item 
451                item = document.querySelector('.research-book-item'); 
452                item.classList.add('active'); 
453
454 
455            if (item) { 
456 
457                var attrs = []; 
458 
459                attrs['title'] = item.querySelector('.research-book-item-title').innerText.trim(); 
460                attrs['paragraph'] = item.querySelector('.research-book-item-paragraph').innerText.trim(); 
461                attrs['writer'] = item.querySelector('.research-book-item-writer').innerText.trim(); 
462                attrs['prepared'] = item.querySelector('.research-book-item-prepared').innerText.trim(); 
463                attrs['volumes'] = item.querySelector('.research-book-item-volumes').innerText.trim(); 
464                attrs['pages'] = item.querySelector('.research-book-item-pages').innerText.trim(); 
465                attrs['publish'] = item.querySelector('.research-book-item-publish').innerText.trim(); 
466                attrs['release'] = item.querySelector('.research-book-item-release').innerText.trim(); 
467 
468                var qrcode = item.querySelector('.research-book-item-qrcode').getAttribute('src'); 
469 
470 
471                for (let attr in attrs) { 
472                    document.querySelector(".shaback-" + attr + "").innerText = attrs["" + attr + ""]; 
473
474 
475                document.querySelector('.shaback-qrcode').setAttribute('src', qrcode); 
476 
477
478
479 
480    </script> 
481 
482<#else> 
483    <div class="alert alert-info text-center"> 
484        <@liferay_ui["message"] key="there-are-no-results" /> 
485    </div> 
486</#if>