1<#if !entries?has_content>
2 <#if !themeDisplay.isSignedIn()>
3 ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)}
4 </#if>
5 <div class="alert alert-info">
6 <@liferay_ui["message"] key="there-are-no-results" />
7 </div>
8<#else>
9 <#assign
10 dateFormat = "dd.MM.yyyy"
11 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
12 />
13 <div class="nnk-article-list d-flex flex-wrap flex-column gy-5 flex-sm-row">
14 <#list entries as entry>
15 <#if entry.getAssetRenderer()??>
16 <@getArticle entry=entry />
17 </#if>
18 </#list>
19 </div>
20</#if>
21
22<#macro getArticle entry>
23 <#assign
24 entry = entry
25 assetRenderer = entry.getAssetRenderer()
26 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
27 summary = assetRenderer.getSummary(renderRequest, renderResponse.getResponse())
28 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse.getResponse(), assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
29 imageUrl = assetRenderer.getURLImagePreview(renderRequest)!""
30 />
31 <#if !summary?has_content>
32 <#attempt>
33 <#assign
34 journalArticle = assetRenderer.getArticle()
35 journalArticleDisplay = journalArticleLocalService.getArticleDisplay(journalArticle.getGroupId(), journalArticle.getArticleId(), "", l, themeDisplay)
36 articleContent = journalArticleDisplay.getContent()
37 summary = htmlUtil.stripHtml(articleContent)
38 />
39 <#recover>
40 <#assign
41 journalArticle = assetRenderer.getArticle()
42 />
43 </#attempt>
44 </#if>
45
46 <#if imageUrl?has_content>
47 <#assign contentMaxLength = 200 />
48 <#else>
49 <#assign contentMaxLength = 350 />
50 </#if>
51
52 <div class="row">
53 <#if imageUrl?has_content>
54 <div class="nnk_article-list-image col-12 col-lg-4 p-0 m-0 text-center align-self-center">
55 <img src="${imageUrl}"
56 alt="<@liferay.language key='nnk.article.image-alt' /> ${entryTitle}"
57 class="nnk-article-list-article-img img-fluid rounded">
58 </div>
59 <div class="nnk-article-list-article-content col-12 col-lg-8 px-0 px-lg-3 align-self-start">
60 <#else>
61 <div class="nnk-article-list-article-content col-12 p-0">
62 </#if>
63
64 <@getEditIcon />
65
66 <span class="nnk-article-list-article-publish-date text-3">
67 ${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)}
68 </span>
69
70 <div>
71 <a href="${viewURL}">
72 <h3 class="nnk-article-list-title my-2 text-5">${entryTitle}</h3>
73 </a>
74
75 <div class="nnk-article-list-article-metadata pb-3">
76 <@getMetadataField fieldName = "create-date" />
77 <@getMetadataField fieldName = "author" />
78 <@getMetadataField fieldName = "modified-date" />
79 <@getMetadataField fieldName = "expiration-date" />
80 <@getMetadataField fieldName = "view-count" />
81 <@getMetadataField fieldName = "tags" />
82 <@getMetadataField fieldName = "categories" />
83 </div>
84
85 <div class="nnk-article-list-article-summary">
86 <p>
87 ${stringUtil.shorten((summary?replace("\\s\\&imagePreview=1", "", "r")), contentMaxLength)}
88 </p>
89 </div>
90 </div>
91 </div>
92 </div>
93</#macro>
94
95<#macro getEditIcon>
96 <#attempt>
97 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
98 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse.getResponse(), windowStateFactory.getWindowState("NORMAL"), themeDisplay.getURLCurrent())!"" />
99
100 <#if validator.isNotNull(editPortletURL)>
101 <#assign title = languageUtil.format(locale, "edit-x", htmlUtil.escape(assetRenderer.getTitle(locale)), false) />
102 <@liferay_ui["icon"]
103 cssClass="icon-monospaced visible-interaction float-right"
104 icon="pencil"
105 markupView="lexicon"
106 message=title
107 url=editPortletURL.toString()
108 />
109 </#if>
110 </#if>
111 <#recover>
112 </#attempt>
113</#macro>
114
115<#macro getMetadataField fieldName>
116 <#if stringUtil.split(metadataFields)?seq_contains(fieldName)>
117 <span class="nnk-article-list-article-metadata-entry metadata-${fieldName} text-3">
118 <#assign dateFormat = "dd.MM.yyyy" />
119
120 <#if stringUtil.equals(fieldName, "author")>
121 <@liferay.language key="nnk.asset.publisher.info.author"/>
122 <strong>
123 <#attempt>
124 <#assign authorName = extendedJournalArticleLocalService.getArticleFieldValue(entry.getClassPK(), "author", themeDisplay.getLanguageId()) />
125 <#recover>
126 <#assign authorName = "" />
127 </#attempt> <#if authorName?has_content>
128 ${authorName}
129 <#else>
130 ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))}
131 </#if>
132 </strong>
133 <br/>
134
135 <#elseif stringUtil.equals(fieldName, "modified-date")>
136 <@liferay.language key="nnk.asset.publisher.info.modified"/>
137 <strong>${entry.getModifiedDate()?string(dateFormat)}</strong>
138 <br/>
139
140 <#elseif stringUtil.equals(fieldName, "publish-date")>
141 <@liferay.language key="nnk.asset.publisher.info.published"/>
142 <strong>${entry.getPublishDate()?string(dateFormat)}</strong>
143 <br/>
144
145 <#elseif stringUtil.equals(fieldName, "create-date")>
146 <@liferay.language key="nnk.asset.publisher.info.created"/>
147 <strong>${entry.getCreateDate()?string(dateFormat)}</strong>
148 <br/>
149
150 <#elseif stringUtil.equals(fieldName, "expiration-date")>
151 <@liferay.language key="nnk.asset.publisher.info.expired"/>
152 <#if entry.getExpirationDate()?has_content>
153 <strong>${entry.getExpirationDate()?string(dateFormat)}</strong>
154 </#if>
155 <br/>
156
157 <#elseif stringUtil.equals(fieldName, "view-count")>
158 <@liferay.language key="nnk.asset.publisher.info.views"/>
159 <strong>${entry.getViewCount()}</strong>
160 <br/>
161
162 <#elseif stringUtil.equals(fieldName, "tags") && entry.getTags()?has_content>
163 <span class="metadata-main-label"><@liferay_ui["message"] key="tags" />:</span>
164 <@liferay_asset["asset-tags-summary"]
165 className=entry.getClassName()
166 classPK=entry.getClassPK()
167 portletURL=renderResponse.createRenderURL()
168 />
169
170 <#elseif stringUtil.equals(fieldName, "categories") && entry.getCategories()?has_content>
171 <span class="metadata-main-label"><@liferay_ui["message"] key="categories" />:</span>
172 <@liferay_asset["asset-categories-summary"]
173 className=entry.getClassName()
174 classPK=entry.getClassPK()
175 displayStyle="simple-category"
176 portletURL=renderResponse.createRenderURL()
177 />
178 </#if>
179 </span>
180 </#if>
181</#macro>