Analytics Blogs Introduction

Breadcrumb

Analytics Blogs

Blogs (Business Intelligence Blog)

Entries with tag odp .

An error occurred while processing the template.
The following has evaluated to null or missing:
==> userLocalService.fetchUser(curBlogEntry.getUserId())  [in template "10154#10192#1151267" at line 84, column 57]

----
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: entryUser = userLocalService.fetchUse...  [in template "10154#10192#1151267" at line 84, column 45]
----
1<div class="widget-mode-simple"> 
2    <#if entries?has_content> 
3        <#list entries as curBlogEntry> 
4            <div class="widget-mode-simple-entry"> 
5             
6                <#assign viewEntryPortletURL = renderResponse.createRenderURL() /> 
7                ${viewEntryPortletURL.setParameter("redirect", currentURL)} 
8                ${viewEntryPortletURL.setParameter("mvcRenderCommandName", "/blogs/view_entry")} 
9                <#if validator.isNotNull(curBlogEntry.getUrlTitle())> 
10                    ${viewEntryPortletURL.setParameter("urlTitle", curBlogEntry.getUrlTitle())} 
11                <#else> 
12                    ${viewEntryPortletURL.setParameter("entryId", curBlogEntry.getEntryId()?string)} 
13                </#if> 
14             
15                <div class="autofit-row widget-topbar"> 
16                    <div class="autofit-col autofit-col-expand"> 
17                        <h5 class="title"> 
18                            <a class="title-link" href="${viewEntryPortletURL.toString()}">${htmlUtil.escape(blogsEntryUtil.getDisplayTitle(resourceBundle, curBlogEntry))}</a> 
19                        </h5> 
20                    </div> 
21                    <div class="autofit-col visible-interaction"> 
22                        <div class="dropdown dropdown-action"> 
23                            <@liferay_ui["icon-menu"] 
24                                direction="left-side" 
25                                icon="" 
26                                markupView="lexicon" 
27                                message="actions" 
28                                showWhenSingleIcon=true 
29
30                                <#if blogsEntryPermission.contains(permissionChecker, curBlogEntry, "UPDATE")> 
31                                    <#assign editEntryPortletURL = renderResponse.createRenderURL() /> 
32                                    ${editEntryPortletURL.setWindowState(windowStateFactory.getWindowState("MAXIMIZED"))} 
33                                    ${editEntryPortletURL.setParameter("mvcRenderCommandName", "/blogs/edit_entry")} 
34                                    ${editEntryPortletURL.setParameter("redirect", currentURL)} 
35                                    ${editEntryPortletURL.setParameter("entryId", curBlogEntry.getEntryId()?string)} 
36                                    <@liferay_ui["icon"] 
37                                        label=true 
38                                        message="edit" 
39                                        url=editEntryPortletURL.toString() 
40                                    /> 
41                                </#if> 
42                                <#if blogsEntryPermission.contains(permissionChecker, curBlogEntry, "PERMISSIONS")> 
43                                    <#assign permissionsEntryURL = permissionsURLTag.doTag(null, "com.liferay.blogs.model.BlogsEntry", blogsEntryUtil.getDisplayTitle(resourceBundle, curBlogEntry), curBlogEntry.getGroupId()?string, curBlogEntry.getEntryId()?string, windowStateFactory.getWindowState("POP_UP").toString(), null, request) /> 
44                                    <@liferay_ui["icon"] 
45                                        label=true 
46                                        message="permissions" 
47                                        method="get" 
48                                        url=permissionsEntryURL 
49                                        useDialog=true 
50                                    /> 
51                                </#if> 
52                                <#if blogsEntryPermission.contains(permissionChecker, curBlogEntry, "DELETE")> 
53                                    <#assign deleteEntryPortletURL = renderResponse.createActionURL() /> 
54                                    ${deleteEntryPortletURL.setParameter("javax.portlet.action", "/blogs/edit_entry")} 
55                                    ${deleteEntryPortletURL.setParameter("cmd", trashHelper.isTrashEnabled(themeDisplay.getScopeGroupId())?then("move_to_trash", "delete"))} 
56                                    ${deleteEntryPortletURL.setParameter("redirect", currentURL)} 
57                                    ${deleteEntryPortletURL.setParameter("entryId", curBlogEntry.getEntryId()?string)} 
58                                    <@liferay_ui["icon-delete"] 
59                                        label=true 
60                                        trash=trashHelper.isTrashEnabled(themeDisplay.getScopeGroupId()) 
61                                        url=deleteEntryPortletURL.toString() 
62                                    /> 
63                                </#if> 
64                            </@> 
65                        </div> 
66                    </div> 
67                </div> 
68                 
69                <div class="autofit-row widget-metadata"> 
70                    <div class="col-lg-3 col-md-4 col-sm-4 col-12"> 
71                        <div class="autofit-col inline-item-before"> 
72                            <@liferay_ui["user-portrait"] 
73                                userId=curBlogEntry.userId 
74                                userName=curBlogEntry.userName 
75                            /> 
76                        </div> 
77                         
78                        <div class="autofit-col autofit-col-expand"> 
79                            <div class="autofit-row"> 
80                                <div class="autofit-col autofit-col-expand"> 
81                                    <#if serviceLocator??> 
82                                        <#assign 
83                                            userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService") 
84                                            entryUser = userLocalService.fetchUser(curBlogEntry.getUserId()) 
85                                        /> 
86                                        <#if entryUser?? && !entryUser.isDefaultUser()> 
87                                            <#assign entryUserURL = entryUser.getDisplayURL(themeDisplay) /> 
88                                        </#if> 
89                                    </#if> 
90                                    <div class="text-truncate-inline"> 
91                                        <p class="capitalize mb-2">By <span>${curBlogEntry.getUserName()}</span></p> 
92                                    </div> 
93                                    <div> 
94                                        <p class="capitalize m-0">Posted ${dateUtil.getDate(curBlogEntry.getStatusDate(), "MM/dd/yy", locale)}</p> 
95                                        <#if blogsPortletInstanceConfiguration.enableReadingTime()> 
96                                            <@liferay_reading_time["reading-time"] displayStyle="simple" model=curBlogEntry /> 
97                                        </#if> 
98                                        <#if serviceLocator??> 
99                                            <#assign 
100                                                assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
101                                                assetEntry = assetEntryLocalService.getEntry("com.liferay.blogs.model.BlogsEntry", curBlogEntry.getEntryId()) 
102                                            /> 
103                                            <#if blogsPortletInstanceConfiguration.enableViewCount()> 
104                                                <p class="capitalize m-0"><@liferay_ui["message"] arguments=assetEntry.getViewCount() key=(assetEntry.getViewCount()==0)?then("x-view", "x-views") /></p> 
105                                            </#if> 
106                                        </#if> 
107                                    </div> 
108                                </div> 
109                            </div> 
110                        </div> 
111                    </div> 
112                    <div class="col-lg-9 col-md-8 col-sm-8 col-12"> 
113                        <div class="widget-content"> 
114                            <p class="widget-resume">${stringUtil.shorten(htmlUtil.stripHtml(curBlogEntry.getContent()), 400)}</p> 
115                            <div class="autofit-float autofit-row autofit-row-center widget-toolbar"> 
116                                <#if blogsPortletInstanceConfiguration.enableComments()> 
117                                    <div class="autofit-col"> 
118                                        <#assign viewCommentsPortletURL = renderResponse.createRenderURL() /> 
119                                        ${viewCommentsPortletURL.setParameter("mvcRenderCommandName", "/blogs/view_entry")} 
120                                        ${viewCommentsPortletURL.setParameter("scroll", renderResponse.getNamespace() + "discussionContainer")} 
121                                        <#if validator.isNotNull(curBlogEntry.getUrlTitle())> 
122                                            ${viewCommentsPortletURL.setParameter("urlTitle", curBlogEntry.getUrlTitle())} 
123                                        <#else> 
124                                            ${viewCommentsPortletURL.setParameter("entryId", curBlogEntry.getEntryId()?string)} 
125                                        </#if> 
126                                        <a class="btn btn-outline-borderless btn-outline-secondary btn-sm" href="${viewCommentsPortletURL.toString()}" title="${language.get(locale, "comments")}"> 
127                                            <span class="inline-item inline-item-before"> 
128                                                <@clay["icon"] symbol="comments" /> 
129                                            </span>  
130                                            <span> 
131                                                ${commentManager.getCommentsCount("com.liferay.blogs.model.BlogsEntry", curBlogEntry.getEntryId())} 
132                                            </span> 
133                                        </a> 
134                                    </div> 
135                                </#if> 
136                                <#if blogsPortletInstanceConfiguration.enableRatings()> 
137                                    <div class="autofit-col"> 
138                                        <@liferay_ui["ratings"] 
139                                            className="com.liferay.blogs.model.BlogsEntry" 
140                                            classPK=curBlogEntry.getEntryId() 
141                                        /> 
142                                    </div> 
143                                </#if> 
144                                <div class="autofit-col autofit-col-end"> 
145                                    <#assign bookmarkURL = renderResponse.createRenderURL() /> 
146                                    ${bookmarkURL.setWindowState(windowStateFactory.getWindowState("NORMAL"))} 
147                                    ${bookmarkURL.setParameter("mvcRenderCommandName", "/blogs/view_entry")} 
148                                    <#if validator.isNotNull(curBlogEntry.getUrlTitle())> 
149                                        ${bookmarkURL.setParameter("urlTitle", curBlogEntry.getUrlTitle())} 
150                                    <#else> 
151                                        ${bookmarkURL.setParameter("entryId", curBlogEntry.getEntryId()?string)} 
152                                    </#if> 
153                                    <@liferay_social_bookmarks["bookmarks"] 
154                                        className="com.liferay.blogs.model.BlogsEntry" 
155                                        classPK=curBlogEntry.getEntryId() 
156                                        displayStyle="inline" 
157                                        target="_blank" 
158                                        title=blogsEntryUtil.getDisplayTitle(resourceBundle, curBlogEntry) 
159                                        types=blogsPortletInstanceConfiguration.socialBookmarksTypes() 
160                                        url=portalUtil.getCanonicalURL(bookmarkURL.toString(), themeDisplay, themeDisplay.getLayout()) 
161                                    /> 
162                                </div> 
163                            </div> 
164                        </div> 
165                        <a class="d-small-button d-small-button-gray" href="${viewEntryPortletURL.toString()}">Read More </a> 
166                    </div> 
167                </div> 
168            </div> 
169        </#list> 
170    </#if> 
171</div>