Chi tiết hình ảnh
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#84168" at line 133, 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#84168" at line 133, column 4]
---- 1<style> 2 3 .photoAlbum-hinhanh { 4 margin-right: -2%; 5 height: 56px; 6 box-shadow: 0px 2px 10px #888888; 7 } 8 .photoAlbum-img { 9 margin-left: 14%; 10 } 11 .photo-title { 12 margin-top: 1%; 13 color: #767676; 14 } 15 .photo-spantitle { 16 font-size: 14px; 17 margin-right: 4px; 18 font-weight: 600; 19 } 20 .mtouserphoto-ul-image { 21 width: 100%; 22 list-style: none; 23 float: left; 24 margin-top: 0%; 25 margin-right: 0px !important; 26 margin-left: 0px !important; 27 padding: 0; 28 } 29 .mtouserphoto-li-image { 30 float: left; 31 padding-right: 1%; 32 margin-top: 1%; 33 } 34 .col-image-carousel { 35 width: 97%; 36 } 37 38 .carousel-image-name { 39 padding-bottom: 1%; 40 padding-left: 3%; 41 width: 100%; 42 background: linear-gradient( #ffffff00,rgba(11, 11, 11, 0.89)); 43 float: left; 44 margin-top: -9%; 45 position: absolute; 46 text-align: left; 47 padding-top: 5px; 48 color: white; 49 font-weight: bold; 50 height: 14%; 51 font-size: 12px; 52 font-family: Arial, Helvetica, sans-serif; 53 } 54 .slide-img-responsive { 55 width: 100%; 56 height: 155px !important; 57 } 58 .img-responsive-detail { 59 width: 98%; 60 height: 155px !important; 61 } 62 .carousel-image-name-photo-img { 63 width: 96%; 64 float: left; 65 text-align: justify; 66 padding-top: 2px; 67 padding: 5px; 68 color: #306e95; 69 font-weight: bold; 70 font-size: 13px; 71 font-family: Arial, Helvetica, sans-serif; 72 } 73 .titile-danh-sach-hinh-anh { 74 color: #10406e; 75 font-weight: 600; 76 margin: 10px; 77 margin-left: 28px; 78 font-size: 14px; 79 text-align: justify; 80 } 81 .image-viewer-info{ 82 display: none; 83 } 84 .lfr-pagination{ 85 display: none; 86 } 87 #myDropdownalbum{ 88 89 float: left; 90 z-index: 5; 91 margin-left: 20%; 92 } 93 .page-menu{ 94 width: 70%; 95 } 96 .cursor{ 97 98 color: #777; 99 pointer-events: none; 100 cursor: not-allowed; 101 } 102 </style> 103<#assign httpRequest = portalUtil.getOriginalServletRequest(portalUtil.getHttpServletRequest(renderRequest))> 104<#assign idArticle = getterUtil.getLong(httpRequest.getParameter("id"))> 105<#assign page = getterUtil.getLong(httpRequest.getParameter("page"))> 106 <#assign AssetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")> 107 <#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 108 <#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 109 <#assign AssetCategoryPropertyLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryPropertyLocalServiceUtil"]/> 110 <#assign AssetPublisherUtil = serviceLocator.findService("com.liferay.asset.publisher.web.util.AssetPublisherUtil")/> 111 <#assign DLFileEntryLocalServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")/> 112 113 114 115<#assign indexCur = -1 /> 116<#list portletPreferences?keys as k> 117 <#if "delta" = k> 118 <#assign indexCur = k?index /> 119 </#if> 120 </#list> 121 <#assign lvalues= portletPreferences?values /> 122 <#assign numberConfig = lvalues[indexCur][0] /> 123 124<#assign indexPage = -1 /> 125<#list portletPreferences?keys as k> 126 <#if "paginationType" = k> 127 <#assign indexPage = k?index /> 128 </#if> 129 </#list> 130 <#assign pageValues= portletPreferences?values /> 131 <#assign stylePage = pageValues[indexPage][0] /> 132 <#if validator.isNotNull(idArticle)> 133 <#assign nameAlbum = AssetCategoryService.getCategory(idArticle) /> 134 </#if> 135 <#assign i = 0 > 136 <#assign Category = AssetCategoryService.getChildCategories(idArticle) /> 137 <#assign listCates = [] > 138 <#list Category as ategory> 139 <#assign i =i+1 > 140 </#list> 141<#if validator.isNotNull(i?number) > 142 <div class="row"> 143 <div class="col-md-2 col-lg-2"></div> 144 <div class="col-md-8 col-lg-8"> 145 <#assign start = 0 > 146 <#assign end = 0 > 147 <#if page<=1 > 148 <#assign start=0 > 149 <#assign end=numberConfig > 150 <#else> 151 <#assign star= page-1 > 152 <#assign start= star*numberConfig?number > 153 <#assign end=start?number+numberConfig?number > 154 </#if> 155 <ul class="mtouserphoto-ul-image row row-swt-responsive"> 156 <#if validator.isNotNull(idArticle) > 157<#assign listCategory = AssetCategoryService.getVocabularyCategories(themeDisplay.getScopeGroupId(),idArticle,nameAlbum.getVocabularyId(), start?number , end?number ,null) /> 158 <div class="titile-danh-sach-hinh-anh">Danh sách album ${nameAlbum.getName()}</div> 159 <#list listCategory as categoryChil> 160 <#assign categoryPropertyList = AssetCategoryPropertyLocalServiceUtil.getCategoryProperties(categoryChil.getCategoryId())/> 161 <#list categoryPropertyList as categoryProperty> 162 <#if (categoryProperty.getKey() == "icon")> 163 <#assign idDLEntry = categoryProperty.getValue()/> 164 <#if (idDLEntry?number > 0)> 165 <#assign fileEntry = DLFileEntryLocalServiceUtil.getDLFileEntry(idDLEntry?number) /> 166 <#assign fileNameUrl = fileEntry.getTitle()/> 167 <#assign folderId = fileEntry.getFolderId()/> 168 <#assign url = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + "/" + folderId + "/" + fileNameUrl /> 169 </#if> 170 </#if> 171 </#list> 172 <li class="mtouserphoto-li-image col-swt col-xs-12 col-sm-6 col-md-3 col-lg-3"> 173 <div id="myCarousel" class="col-image-carousel carousel slide" data-ride="carousel" data-interval="60000"> 174 <div class="item"> 175 <a href="?id=${categoryChil.getCategoryId()}"> 176 <img src="${url}" class="slide-img-responsive"/> 177 <div class="carousel-image-name"> 178 <img class="photo-carousel" src="/o/hcm-video-theme/images/hinhanh_07.png"> 179 ${categoryChil.getName()} 180 </div> 181 </a> 182 </div> 183 </div> 184 </li> 185 186 </#list> 187 188 </ul> 189 <#assign pageCur = 1 /> 190 <#assign x = i?number/numberConfig?number /> 191 <#assign y =x?floor /> 192 <#if i?number%numberConfig?number == 0> 193 <#assign pageTotal = i?number/numberConfig?number /> 194 <#else> 195 <#assign pageTotal = y?number +1 /> 196 </#if> 197 <#if validator.isNull(page)> 198 <#assign pageNext = 2/> 199 <#else> 200 <#assign pageNext = page + 1/> 201 </#if> 202 <#assign pagePre = page - 1/> 203 <#if stylePage == "regular"> 204 205 <div id="myDropdownalbum" class="dropdown"> 206 <button id="myTriggeralbum" class="btn btn-default dropdown-toggle" type="button"> 207 Trang <#if validator.isNull(page)>1<#else> ${page} </#if> của ${pageTotal} 208 <span class="caret"></span> 209 </button> 210 <ul class="dropdown-menu"> 211 <#list 1..pageTotal as x> 212 <li class=""> 213 <a tabindex="-1" href="?page=${x}">${x}</a> 214 </li> 215 </#list> 216 </ul> 217 <small class="search-results"> — Dòng ${start + 1} - <#if (end?number <i?number) > ${end} <#else> ${i?number} </#if> (Tổng số: ${i}). </small> 218 </div> 219 <div class ="page-menu"> 220 <ul class="lfr-pagination-buttons pager"> 221 <li class=""> 222 <a href="?page=${pageCur}" class="<#if page <=1 > cursor </#if>" > ← Đầu tiên </a> 223 </li> 224 <li class=""> 225 <a href="?page=${pagePre}" class="<#if page <=1 > cursor </#if>"> Trước </a> 226 </li> 227 <li class=""> 228 <a href="?page=${pageNext}" class="<#if (page =pageTotal) || (numberConfig?number>=i?number) > cursor </#if>"> Tiếp theo </a> 229 </li> 230 <li class=""> 231 <a href="?page=${pageTotal}" class="<#if (page =pageTotal) || (numberConfig?number>=i?number) > cursor </#if>"> Cuối cùng → </a> 232 </li> 233 </ul> 234 </div> 235 236 237 </#if> 238 </#if> 239 240 </div> 241 242 <div class="col-md-2 col-lg-2"></div> 243</div> 244</#if> 245 246<script> 247 YUI().use( 248 'aui-dropdown', 249 function(Y) { 250 new Y.Dropdown( 251 { 252 boundingBox: '#myDropdownalbum', 253 trigger: '#myTriggeralbum' 254 } 255 ).render(); 256 } 257); 258</script> 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>
Hotline: (028) 3932 5945 - (028) 3932 6214
Email:sxd@tphcm.gov.vn