Tara H. Cohen
CIBC Private Wealth Management Blog
Explore
Categories
or
An error occurred while processing the template.
The following has evaluated to null or missing: ==> categoryToShow[0] [in template "10157#10197#256213" at line 77, column 64] ---- Tip: It's the final [] step 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: #assign catName = categoryToShow[0] [in template "10157#10197#256213" at line 77, column 45] ----
1<style>
2.wrapper-blogs{
3 width:100%;
4}
5.entry-content {
6 position: relative;
7 width: 100%;
8}
9.entry.approved {
10 width: 100%;
11}
12@media all and (min-width:768px){
13 .entry .approved .col-md-4 {
14 flex: none;
15 max-width: 33.33vw;
16 }
17}
18
19</style>
20<#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
21<#assign blogLocalService = serviceLocator.findService("com.liferay.blogs.service.BlogsEntryLocalService")>
22<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
23<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
24
25 <#assign domainName = themeDisplay.getURLPortal() >
26 <#assign pageName = themeDisplay.getURLCurrent() >
27 <#assign url = domainName + pageName>
28 <#assign defaultBlogUrl = domainName + "/blogTopics">
29
30 <#assign monthTitle = pageName?replace("/", "")>
31 <#assign monthTitle = monthTitle?replace("-", " ")>
32 <#assign firstLetter = monthTitle?substring(0, 1)?upper_case>
33 <#assign remaniningWord = monthTitle?substring(1)>
34 <#assign monthTitle = firstLetter + remaniningWord>
35 <#assign AssetEntryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryService")>
36 <#assign serviceContext = objectUtil("com.liferay.portal.kernel.service.ServiceContextThreadLocal").getServiceContext()>
37
38 <#assign httpServletRequest = serviceContext.getRequest()>
39 <#if request.getParameter("categoryName")??>
40 <#assign categoryName = request.getParameter("categoryName")>
41 </#if>
42
43 <#if entries??>
44 <div class="blogs-background">
45 <div class="wrapper-blogs">
46 <#list entries as curBlogEntry>
47 <#if curBlogEntry?index == 0 || curBlogEntry?index == 3 || curBlogEntry?index == 6 || curBlogEntry?index == 9 || curBlogEntry?index == 12>
48 <div class="blogs-row d-flex justify-content-center">
49 </#if>
50 <#assign blogE = blogLocalService.getBlogsEntryByUuidAndGroupId(curBlogEntry.getClassUuid(),curBlogEntry.getGroupId())>
51 <#assign blogURL = blogE.getExpandoBridge().getAttribute("Blog Image URL")>
52 <#if blogURL == "">
53 <#assign blogURL = themeDisplay.getPathThemeImages() + "/default-blog-image.jpg">
54 </#if>
55
56 <#assign user = userLocalService.fetchUserById(getterUtil.getLong(curBlogEntry.getUserId()))>
57 <#assign readMoreUrl = domainName + "/blog/-/blogs/" + blogE.getUrlTitle() >
58 <#assign blogDetailURL = domainName + "/blog/-/blogs/" + blogE.getUrlTitle()>
59 <div onclick="javascript: location.href='${blogDetailURL}';" style="cursor: pointer;" class="entry approved col-md-4">
60 <div class="entry-content">
61 <div id="blog-header" class="post-header post-header-author clearfix">
62 <div class="author-avatar row-fluid" style="">
63 <div class="span3 img-container">
64 <#assign assetCategories = assetCategoryLocalService.getCategories("com.liferay.portlet.blogs.model.BlogsEntry", blogE.getEntryId())>
65 <#assign categoryToShow = curBlogEntry.getCategories() >
66 <#if assetCategories?? && (assetCategories?size > 0)>
67 <#list assetCategories as assetCategory >
68 <#assign vocabulary = assetVocabularyLocalService.getAssetVocabulary(assetCategory.getVocabularyId())>
69 <#if vocabulary.getName().equals("Blog Topics")>
70 <#assign categoryToShow = assetCategory.getName()>
71 <#break>
72 </#if>
73 </#list>
74 <div class="blog-category-over-image">${categoryToShow}</div>
75 </#if>
76 <#if categoryToShow??>
77 <#assign catName = categoryToShow[0] >
78 <div style="" class="blog-category-over-image">${catName.getName()}</div>
79 </#if>
80 <img src="${blogURL}" alt="" style="width:100%;height: auto;">
81 </div>
82
83 <div class="span8 entry-header">
84 <h1 class="entry-title margin-top-6">
85 <span>${htmlUtil.escape(curBlogEntry.title)}</span>
86 </h1>
87 <p class="post-header-meta">
88
89
90 <#assign date = curBlogEntry.getPublishDate()>
91 <#assign date1 = dateUtil.getDate(date, "MMMM dd, yyyy", locale)>
92
93 <span class="author">${curBlogEntry.getUserName()}</span><br>
94 <span class="publish-date">${date1}</span>
95
96 </p>
97 </div>
98 </div>
99 </div>
100 </div>
101
102 <div style="clear: both;"></div>
103 <div class="entry-body">
104
105
106
107 ${stringUtil.shorten(htmlUtil.stripHtml(blogE.getContent()), 400)}
108
109 </div>
110
111 </div>
112 <#if curBlogEntry?index == 2 || curBlogEntry?index == 5 || curBlogEntry?index == 8 || curBlogEntry?index == 11 || curBlogEntry?index == 14 || curBlogEntry?index == entries?size-1>
113 </div>
114 </#if>
115 </#list>
116 </div>
117 </div>
118 </#if>