Có lỗi xảy ra trong quá trình xử lý biểu mẫu.
The following has evaluated to null or missing:
==> AssetCategoryService.getCategory(idArticle)  [in template "20115#20151#84164" at line 145, column 25]

----
Tip: If the failing expression is known to be 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: #assign nameAlbum = AssetCategoryServ...  [in template "20115#20151#84164" at line 145, column 4]
----
1<style> 
2	 
3        .photo-title { 
4            width: 100%; 
5            font-size: 20px; 
6            padding: 0 0 10px 0; 
7            border-bottom: 1px solid #085791; 
8            margin-bottom: 20px; 
9            color: #085791; 
10            font-weight: 600; 
11            text-transform: uppercase; 
12            margin-top: 5px; 
13            cursor: pointer; 
14
15        .photo-spantitle { 
16            font-size: 20px; 
17            font-weight: 600; 
18
19        .mtouserphoto-ul-image { 
20            width: 100%; 
21            list-style: none; 
22            float: left; 
23            margin-top: 0%; 
24            margin-right: 0px !important; 
25            margin-left: 0px !important; 
26            padding: 0; 
27
28        .mtouserphoto-li-image { 
29            float: left; 
30            padding-right: 1%; 
31            margin-top: 1%; 
32
33        .col-image-carousel { 
34            width: 97%; 
35
36         
37        .carousel-image-name { 
38            padding-bottom: 1%; 
39            padding-left: 3%; 
40            width: 100%; 
41            background: linear-gradient( #ffffff00,rgba(11, 11, 11, 0.89)); 
42            float: left; 
43            margin-top: -9%; 
44            position: absolute; 
45            text-align: left; 
46            padding-top: 5px; 
47            color: white; 
48            font-weight: bold; 
49            height: 14%; 
50            font-size: 12px; 
51            font-family: Arial, Helvetica, sans-serif; 
52
53        .slide-img-responsive { 
54            width: 100%; 
55            height: 155px !important; 
56            object-fit: cover; 
57
58        .img-responsive-detail { 
59            width: 98%; 
60            height: 155px !important; 
61            object-fit: cover; 
62
63        .carousel-image-name-photo-img { 
64            width: 96%; 
65            float: left; 
66            text-align: justify; 
67            padding-top: 2px; 
68            padding: 5px; 
69            color: #085791; 
70            font-weight: bold; 
71            font-size: 13px; 
72            font-family: Arial, Helvetica, sans-serif; 
73
74        .titile-danh-sach-hinh-anh { 
75            color: #10406e; 
76            font-weight: 600; 
77            margin: 10px; 
78            margin-left: 28px; 
79            font-size: 14px; 
80            text-align: justify; 
81
82        .image-viewer-info{ 
83            display: none; 
84
85        .lfr-pagination{ 
86            display: none; 
87
88        #myDropdown{ 
89            
90            float: left; 
91            z-index: 5; 
92            margin-left: 20%; 
93
94        .page-menu{ 
95            width: 70%; 
96
97        .cursor{ 
98            
99           color: #777; 
100           pointer-events: none; 
101           cursor: not-allowed; 
102
103	</style> 
104	 
105	<#assign httpRequest = portalUtil.getOriginalServletRequest(portalUtil.getHttpServletRequest(renderRequest))> 
106<#assign idArticle = getterUtil.getLong(httpRequest.getParameter("id"))> 
107<#assign page = getterUtil.getLong(httpRequest.getParameter("page"))> 
108 <#assign AssetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")> 
109  <#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
110  <#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
111  <#assign AssetCategoryPropertyLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryPropertyLocalServiceUtil"]/> 
112  <#assign AssetPublisherUtil = serviceLocator.findService("com.liferay.asset.publisher.web.util.AssetPublisherUtil")/> 
113  <#assign DLFileEntryLocalServiceUtil =  serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")/> 
114   
115   
116  <#assign index = -1 /> 
117<#list portletPreferences?keys as k> 
118    <#if "queryValues0" = k> 
119        <#assign index = k?index /> 
120    </#if> 
121 </#list> 
122 <#assign lvl = portletPreferences?values /> 
123 <#assign idCategory = lvl[index][0] />  
124  
125<#assign indexCur  = -1 /> 
126<#list portletPreferences?keys as k> 
127    <#if "delta" = k> 
128        <#assign indexCur = k?index /> 
129    </#if> 
130 </#list> 
131 <#assign lvalues= portletPreferences?values /> 
132 <#assign numberConfig = lvalues[indexCur][0] />  
133  
134<#assign indexPage  = -1 /> 
135<#list portletPreferences?keys as k> 
136    <#if "paginationType" = k> 
137        <#assign indexPage = k?index /> 
138    </#if> 
139 </#list> 
140 <#assign pageValues= portletPreferences?values /> 
141 <#assign stylePage = pageValues[indexPage][0] /> 
142  
143  
144  <#if validator.isNotNull(idArticle)> 
145   <#assign nameAlbum = AssetCategoryService.getCategory(idArticle) />  
146</#if> 
147	 
148   <div class="row row-swt-responsive"> 
149   <div class="col-md-12 col-lg-12"> 
150   <div class="photo-title">  
151		<span class="photo-spantitle" id="aui_3_4_0_1_1371"> 
152		<#if validator.isNull(idArticle)> 
153		 Hình ảnh 
154		<#else> 
155		  ${nameAlbum.getName()} 
156		 </#if> 
157		</span> 
158	</div> 
159	<div> 
160	 
161	<#assign start = 0 > 
162    <#assign end = 0 > 
163        <#if  page<=1 > 
164        <#assign start=0 > 
165        <#assign end=numberConfig > 
166        <#else> 
167        <#assign star= page-1 > 
168        <#assign start= star*numberConfig?number > 
169        <#assign end=start?number+numberConfig?number > 
170        </#if> 
171        <#assign i = 0 >  
172       <#assign listAssetEntries = AssetEntryLocalService.getAssetCategoryAssetEntries(idArticle)> 
173            <#list listAssetEntries as entry> 
174            <#assign i =i+1 > 
175            </#list> 
176<#if  validator.isNotNull(i?number) > 
177    <ul class="mtouserphoto-ul-image row row-swt-responsive"> 
178  <#if validator.isNotNull(idArticle) > 
179      
180			<div class="demo-gallery"> 
181            <ul id="lightgallery" class="mtouserphoto-ul-image row row-swt-responsive"> 
182             <#assign listEntries = AssetEntryLocalService.getAssetCategoryAssetEntries(idArticle?number, start?number , end?number)> 
183            	<#list listEntries as entry> 
184            	<#attempt> 
185            		    <#assign renderer = entry.getAssetRenderer() /> 
186						<#assign article = renderer.getArticle() /> 
187            		 	<#assign document = saxReaderUtil.read(article.getContent()) /> 
188                		<#assign root = document.getRootElement() /> 
189                		<#list root.elements() as element>	 
190                	    <#if element.attributeValue("name") == "abstractImage" > 
191    		            <#assign avatar = getterUtil.getString(element.element("dynamic-content").getText())> 
192                			<li class="mtouserphoto-li-image col-swt col-xs-12 col-sm-6 col-md-3 col-lg-3"> 
193                			<div id="myGallery"> 
194                					<a href="${avatar}" style="text-decoration: none;">  
195                				    <img class="img-responsive-detail" src="${avatar}" style="height: 200px; "> 
196                					<div class="carousel-image-name-photo-img"> 
197                					${article.getTitle(locale)} 
198									</div> 
199                		      	</a> 
200                		      	</div> 
201                			</li> 
202                		</#if> 
203                	</#list> 
204                	<#recover> 
205						${entry.getEntryId()} 
206					</#attempt> 
207            		</#list> 
208            	</ul> 
209            </div>	 
210     
211   </ul> 
212	<#assign pageCur = 1 /> 
213               <#assign x = i?number/numberConfig?number /> 
214               <#assign y =x?floor /> 
215               <#if i?number%numberConfig?number == 0> 
216                <#assign pageTotal = i?number/numberConfig?number /> 
217                <#else> 
218                <#assign pageTotal = y?number +1 /> 
219                </#if> 
220                <#if validator.isNull(page)> 
221                 <#assign pageNext = 2/> 
222                <#else> 
223                <#assign pageNext = page + 1/> 
224                </#if> 
225                <#assign pagePre = page - 1/> 
226                <#if stylePage == "regular"> 
227				 
228					  <div id="myDropdown" class="dropdown"> 
229							  <button id="myTrigger" class="btn btn-default dropdown-toggle" type="button"> 
230							   Trang <#if validator.isNull(page)>1<#else> ${page} </#if> của ${pageTotal} 
231								<span class="caret"></span> 
232							  </button> 
233							 <ul class="dropdown-menu"> 
234								   <#list 1..pageTotal as x> 
235										 <li class="">  
236										<a tabindex="-1" href="${currentURL}&id=${idArticle}&page=${x}">${x}</a> 
237									   </li>  
238									</#list> 
239							</ul> 
240								  <small class="search-results"> — Dòng ${start + 1} - <#if (end?number <i?number) > ${end} <#else> ${i?number} </#if> (Tổng số: ${i}). </small> 
241						</div> 
242						<div class ="page-menu"> 
243							<ul class="lfr-pagination-buttons pager"> 
244								<li class="">  
245								   <a href="${currentURL}&id=${idArticle}&page=${pageCur}" class="<#if page <=1 > cursor </#if>"  > ← Đầu tiên </a> 
246								</li>  
247								 <li class="">  
248								   <a href="${currentURL}&id=${idArticle}&page=${pagePre}" class="<#if page <=1 > cursor </#if>"> Trước </a>  
249								</li>  
250								<li class=""> 
251								   <a href="${currentURL}&id=${idArticle}&page=${pageNext}" class="<#if (page =pageTotal) || (numberConfig?number>=i?number) > cursor </#if>"> Tiếp theo </a>  
252								 </li>  
253								<li class=""> 
254								   <a href="${currentURL}&id=${idArticle}&page=${pageTotal}" class="<#if (page =pageTotal) || (numberConfig?number>=i?number)  > cursor </#if>"> Cuối cùng → </a>  
255							   </li>  
256						   </ul> 
257					   </div> 
258				    
259                
260               </#if> 
261               </#if> 
262               </#if> 
263   </div> 
264    <div class="col-md-2 col-lg-2"></div> 
265   </div> 
266 <script> 
267  
268    
269YUI().use( 
270  'aui-image-viewer', 
271  function(Y) { 
272    new Y.ImageViewer( 
273
274        caption: '', 
275        //captionFromTitle uses the DOM title attibute as image caption 
276        captionFromTitle: true, 
277        centered: true, 
278        imageAnim: { 
279         duration: 1, 
280         easing: 'easeIn' 
281        }, 
282        intervalTime: 5, 
283        links: '#myGallery a', 
284        playing: true, 
285        preloadAllImages: true, 
286        preloadNeighborImages: true, 
287        showInfo: true, 
288        showPlayer: true, 
289        zIndex: 1000 
290
291    ).render(); 
292
293); 
294 
295 
296 YUI().use( 
297  'aui-dropdown', 
298  function(Y) { 
299    new Y.Dropdown( 
300
301        boundingBox: '#myDropdown', 
302        trigger: '#myTrigger' 
303
304    ).render(); 
305
306);  
307</script>