حصل خطأ عند معالجة القالب.
The following has evaluated to null or missing:
==> renderer.getArticle  [in template "10112#17493303#124100078" at line 19, column 66]

----
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: journalArticle = renderer.getArticle()  [in template "10112#17493303#124100078" at line 19, column 49]
----
1<#assign language = themeDisplay.getURLCurrent() /> 
2<#if language == '/en/'> 
3	<#assign more = 'More'/> 
4	<#else> 
5	<#assign more = 'اقراء المزيد'/> 
6</#if> 
7<#assign portal_url = themeDisplay.getURLPortal() /> 
8<#assign group_id = themeDisplay.getScopeGroupId() /> 
9 <div class="container"> 
10     <div class="row"> 
11        <div class="col-md-12"> 
12                     
13                       <div id="news-slider11" class="owl-carousel"  data-loop="true" data-items="4" data-autoplay="true" data-hoverpause="true" data-autoplay-timeout="5000" data-smart-speed="800" data-dots="false" data-nav="false" data-nav-speed="false" data-center-mode="false" data-mobile-device="1" data-mobile-device-nav="false" data-mobile-device-dots="false" data-ipad-device="2" data-ipad-device-nav="false" data-ipad-device-dots="false" data-ipad-device2="1" data-ipad-device-nav2="false" data-ipad-device-dots2="false" data-md-device="3" data-md-device-nav="false" data-md-device-dots="false"> 
14 
15<#if entries?has_content> 
16 
17<#list entries as curEntry> 
18						<#assign renderer = curEntry.getAssetRenderer()  
19						journalArticle = renderer.getArticle() 
20						curEntryURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, renderer, curEntry, false) 
21						/> 
22						<#assign className = renderer.getClassName() /> 
23						<#if className == "com.liferay.journal.model.JournalArticle"> 
24							<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
25							<#assign link = renderer.getURLViewInContext(renderRequest,renderResponse,viewURL) /> 
26							<#assign 
27		entry = curEntry 
28 
29		assetRenderer = entry.getAssetRenderer() 
30 
31		entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) 
32 
33		viewURLxx = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent")) 
34	/> 
35 
36							<#assign article = renderer.getArticle() /> 
37							<#assign articleTitle = curEntry.getTitle(locale) /> 
38							<#assign shortTitle = stringUtil.shorten(articleTitle, 35) /> 
39							<#assign img = '/image/layout_set_logo?img_id=19061708&t=1609833625944' /> 
40							<#if article.getArticleImageURL(themeDisplay)?has_content> 
41								<#assign img = article.getArticleImageURL(themeDisplay) /> 
42							</#if> 
43							<#assign articleContent = article.getContent() /> 
44							<#assign doc = saxReaderUtil.read(articleContent) /> 
45							<#assign rootElement = doc.getRootElement() /> 
46							 
47							<#assign summary = article.getDescription() /> 
48							<#assign summary = stringUtil.shorten(summary, 220) /> 
49							<#assign articleTitle = stringUtil.shorten(articleTitle, 30) /> 
50                            
51							<#assign siteName = themeDisplay.getLayout().getGroup().getName() /> 
52							<#if siteName == 'Guest'> 
53								<#assign siteName = 'home' /> 
54							</#if> 
55						 
56							<#assign urlTitle = article.getUrlTitle() /> 
57							<#assign instanceID = themeDisplay.getPortletDisplay().getInstanceId() /> 
58							<#assign groupID = themeDisplay.getScopeGroupId() /> 
59							<#assign fUrl = layout.getGroup().friendlyURL /> 
60							<#assign pageName = layout.getName('en_US') /> 
61						 
62							<#assign link = '/' + 'web' +  fUrl + '/' + pageName + '/-/asset_publisher/' + instanceID + '/content/' + urlTitle + '/' + groupID + '/' + 'maximized' /> 
63							 
64							<#assign archive_link = '/' + 'web' +  fUrl + '/' + 'archive-news' /> 
65							<#assign curEntryURLMaximized = curEntryURL?split("?")[0] + '/maximized' /> 
66	 
67	 
68	 
69	                      <div class="post-slide11"> 
70                                <div class="post-img wow fadeInDown" data-wow-duration="1000ms"> 
71                                    <span class="over-layer"></span> 
72                                    <img src="${img}" alt="" style="height: 200px;"> 
73                                </div> 
74                                <h3 class="post-title wow fadeInUp" data-wow-duration="1000ms" style="min-height: 150px;"> 
75                                <@getEditIcon /> <a href="${curEntryURLMaximized}">   ${curEntry.getTitle(locale)} </a> 
76                                    </h3> 
77                                  <span class="post-date wow fadeInUp" data-wow-duration="2000ms" style="border-top: 1px solid #dcdfe6;"><i class="fa fa-calendar"></i> <@getMetadataField fieldName="create-date" />  <@getMetadataField fieldName="view-count" /></span> 
78                                
79                                
80                            </div> 
81                             
82						</#if>			 
83					</#list> 
84</#if>					 
85<#if !entries?has_content> 
86	<#if !themeDisplay.isSignedIn()> 
87		${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
88	</#if> 
89 
90	<div class="alert alert-info"> 
91		<@liferay_ui["message"] key="there-are-no-results" /> 
92	</div> 
93</#if> 
94                              
95                             
96                             
97							 
98                        </div> 
99                    </div> 
100                </div> 
101                <!-- Blog Section End --> 
102            </div> 
103            <!-- Section bg Wrap 2 End --> 
104			 
105 
106<#macro getDiscussion> 
107	<#if getterUtil.getBoolean(enableComments) && assetRenderer.isCommentable()> 
108		<br /> 
109 
110		<@liferay_comment["discussion"] 
111			className=entry.getClassName() 
112			classPK=entry.getClassPK() 
113			formName="fm" + entry.getClassPK() 
114			ratingsEnabled=getterUtil.getBoolean(enableCommentRatings) 
115			redirect=currentURL 
116			userId=assetRenderer.getUserId() 
117		/> 
118	</#if> 
119</#macro> 
120 
121<#macro getEditIcon> 
122	<#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
123		<#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("NORMAL"), themeDisplay.getURLCurrent())!"" /> 
124 
125		<#if validator.isNotNull(editPortletURL)> 
126			<#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 
127 
128			<@liferay_ui["icon"] 
129				cssClass="icon-monospaced visible-interaction" 
130				icon="pencil" 
131				markupView="lexicon" 
132				message=title 
133				url=editPortletURL.toString() 
134			/> 
135		</#if> 
136	</#if> 
137</#macro> 
138 
139<#macro getFlagsIcon> 
140	<#if getterUtil.getBoolean(enableFlags)> 
141		<@liferay_flags["flags"] 
142			className=entry.getClassName() 
143			classPK=entry.getClassPK() 
144			contentTitle=entry.getTitle(locale) 
145			label=false 
146			reportedUserId=entry.getUserId() 
147		/> 
148	</#if> 
149</#macro> 
150 
151<#macro getMetadataField 
152	fieldName 
153
154	<#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
155		<span class="metadata-entry metadata-${fieldName}"> 
156			<#assign dateFormat = "dd MMM yyyy - HH:mm:ss" /> 
157 
158			<#if stringUtil.equals(fieldName, "author")> 
159				<@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))} 
160			<#elseif stringUtil.equals(fieldName, "categories")> 
161				<@liferay_asset["asset-categories-summary"] 
162					className=entry.getClassName() 
163					classPK=entry.getClassPK() 
164					portletURL=renderResponse.createRenderURL() 
165				/> 
166			<#elseif stringUtil.equals(fieldName, "create-date")> 
167				${dateUtil.getDate(entry.getCreateDate(), dateFormat, locale)} 
168			<#elseif stringUtil.equals(fieldName, "expiration-date")> 
169				${dateUtil.getDate(entry.getExpirationDate(), dateFormat, locale)} 
170			<#elseif stringUtil.equals(fieldName, "modified-date")> 
171				${dateUtil.getDate(entry.getModifiedDate(), dateFormat, locale)} 
172			<#elseif stringUtil.equals(fieldName, "priority")> 
173				${entry.getPriority()} 
174			<#elseif stringUtil.equals(fieldName, "publish-date")> 
175				${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)} 
176			<#elseif stringUtil.equals(fieldName, "tags")> 
177				<@liferay_asset["asset-tags-summary"] 
178					className=entry.getClassName() 
179					classPK=entry.getClassPK() 
180					portletURL=renderResponse.createRenderURL() 
181				/> 
182			<#elseif stringUtil.equals(fieldName, "view-count")> 
183				${entry.getViewCount()} <@liferay.language key="views" /> 
184			</#if> 
185		</span> 
186	</#if> 
187</#macro> 
188 
189<#macro getPrintIcon> 
190	<#if getterUtil.getBoolean(enablePrint)> 
191		<#assign printURL = renderResponse.createRenderURL() /> 
192 
193		${printURL.setParameter("mvcPath", "/view_content.jsp")} 
194		${printURL.setParameter("assetEntryId", entry.getEntryId()?string)} 
195		${printURL.setParameter("viewMode", "print")} 
196		${printURL.setParameter("type", entry.getAssetRendererFactory().getType())} 
197		${printURL.setWindowState("pop_up")} 
198 
199		<@liferay_ui["icon"] 
200			icon="print" 
201			markupView="lexicon" 
202			message="print" 
203			url="javascript:Liferay.Util.openModal({headerHTML: '" + languageUtil.format(locale, "print-x-x", ["hide-accessible", entryTitle], false) + "', id:'" + renderResponse.getNamespace() + "printAsset', url: '" + htmlUtil.escapeURL(printURL.toString()) + "'});" 
204		/> 
205	</#if> 
206</#macro> 
207 
208<#macro getRatings> 
209	<#if getterUtil.getBoolean(enableRatings) && assetRenderer.isRatable()> 
210		<div class="asset-ratings"> 
211			<@liferay_ui["ratings"] 
212				className=entry.getClassName() 
213				classPK=entry.getClassPK() 
214			/> 
215		</div> 
216	</#if> 
217</#macro> 
218 
219<#macro getRelatedAssets> 
220	<#if getterUtil.getBoolean(enableRelatedAssets)> 
221		<@liferay_asset["asset-links"] 
222			assetEntryId=entry.getEntryId() 
223			viewInContext=!stringUtil.equals(assetLinkBehavior, "showFullContent") 
224		/> 
225	</#if> 
226</#macro> 
227 
228<#macro getSocialBookmarks> 
229	<@liferay_social_bookmarks["bookmarks"] 
230		className=entry.getClassName() 
231		classPK=entry.getClassPK() 
232		displayStyle="${socialBookmarksDisplayStyle}" 
233		target="_blank" 
234		title=entry.getTitle(locale) 
235		types="${socialBookmarksTypes}" 
236		url=viewURL 
237	/> 
238</#macro> 
239<style> 
240.post-slide11 { 
241    min-height: 430px; 
242
243     
244</style>