Liferay Cloud Platform provides the infrastructure and tooling necessary to simplify, secure, and deliver applications on Liferay DXP when using the SaaS or PaaS deployment approaches. Using Liferay’s Cloud infrastructure provides a secure, reliable, and scalable platform for building Liferay solutions.
The Liferay Cloud Platform includes DevOps CI/CD tools, automated backups, real-time logs, and much more.
When calling macro "displayResourceTypeTags", required parameter "taxonomyCategoryBriefs" (parameter #1) was specified, but had null/missing value.
----
Tip: If the parameter value expression on the caller side is known to be legally null/missing, you may want to specify a default value for it with the "!" operator, like paramValue!defaultValue.
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #macro displayResourceTypeTags taxono... [in template "8911408109993434201#23484949#23489037" in macro "displayResourceTypeTags" at line 1, column 1]
- Reached through: @displayResourceTypeTags taxonomyCate... [in template "8911408109993434201#23484949#23489037" at line 58, column 81]
----
1<#macro displayResourceTypeTags
2 taxonomyCategoryBriefs
3>
4 <#if taxonomyCategoryBriefs?has_content>
5 <#list taxonomyCategoryBriefs as taxonomyCategoryBrief>
6 <#assign taxonomyVocabulary = taxonomyCategoryBrief.embeddedTaxonomyCategory.parentTaxonomyVocabulary.externalReferenceCode!"N/A" />
7
8 <#if stringUtil.equals(taxonomyVocabulary, "RESOURCE_TYPE")>
9 <span class="font-weight-normal label label-inverse-light label-secondary m-0 px-2 text-paragraph-sm">
10 ${taxonomyCategoryBrief.taxonomyCategoryName}
11 </span>
12 </#if>
13 </#list>
14 </#if>
15</#macro>
16
17<#function getValue contentString end start>
18 <#assign startIndex = contentString?index_of(start) />
19
20 <#if startIndex == -1>
21 <#return "" />
22 </#if>
23
24 <#assign
25 substring = contentString?substring(startIndex + start?length)
26 endIndex = substring?index_of(end)
27 />
28
29 <#if endIndex == -1>
30 <#return substring />
31 </#if>
32
33 <#return substring?substring(0, endIndex)?trim />
34</#function>
35
36<div class="search-results" id="searchResults">
37 <#if entries?has_content>
38 <#list entries as searchEntry>
39 <#assign
40 className = searchEntry.getClassName()!""
41 classPK = searchEntry.getClassPK()!""
42 searchEntryContent = searchEntry.getContent()!languageUtil.get(locale, "no-content-preview", "No content preview")
43 searchEntryTitle = searchEntry.getTitle()!""
44 />
45
46 <#if searchEntryTitle?has_content>
47 <div class="align-items-stretch pb-4 search-results-entry">
48 <a class="font-weight-bold search-results-entry-title text-decoration-none unstyled" href="${searchEntry.getViewURL()}&highlight=${htmlUtil.escape(searchResultsPortletDisplayContext.getKeywords()?url('ISO-8859-1'))}">
49 <div class="d-flex justify-content-between search-results-entry-header">
50 ${searchEntryTitle}
51 <div class="search-results-entry-tags">
52 <#if className?contains("com.liferay.journal.model.JournalArticle")>
53 <#assign
54 content = searchEntryContent
55 structuredContent = restClient.get("/headless-delivery/v1.0/structured-contents/" + classPK + "?fields=taxonomyCategoryBriefs&nestedFields=embeddedTaxonomyCategory") />
56
57 <#if structuredContent??>
58 <@displayResourceTypeTags taxonomyCategoryBriefs = structuredContent.taxonomyCategoryBriefs />
59 </#if>
60 <#elseif className?contains("com.liferay.object.model.ObjectDefinition")>
61 <#assign
62 content = getValue(entry.getContent(), " end:", "content:")
63 knowledgeArticle = restClient.get("/c/p2s3knowledgearticles/" + classPK + "?nestedFields=embeddedTaxonomyCategory") />
64
65 <#if knowledgeArticle??>
66 <#if knowledgeArticle.legacy?? && knowledgeArticle.legacy == true>
67 <span class="font-weight-normal label label-secondary label-inverse-light m-0 px-2 text-paragraph-sm">
68 <@liferay_ui["message"] key="legacy" />
69 </span>
70 </#if>
71
72 <@displayResourceTypeTags taxonomyCategoryBriefs = knowledgeArticle.taxonomyCategoryBriefs />
73 </#if>
74 </#if>
75 </div>
76 </div>
77
78 <div class="description search-results-entry-content">
79 <#if className?contains("com.liferay.journal.model.JournalArticle")>
80 ${searchEntryContent}
81 <#else>
82 ${getValue(searchEntryContent, " end:", "content:")}
83 </#if>
84 </div>
85 </a>
86 </div>
87 </#if>
88 </#list>
89 <#else>
90 <p class="search-results-empty">
91 ${languageUtil.format(locale, "no-results-were-found-that-matched-the-keywords-x", htmlUtil.escape(searchResultsPortletDisplayContext.getKeywords()), false)}
92 </p>
93 </#if>
94</div>
95
96<style>
97 .label-inverse-light {
98 background-color: var(--color-state-neutral-lighten-2);
99 border-color: var(--color-state-neutral-lighten-2);
100 color: var(--color-neutral-8);
101 }
102
103 .search-results-entry-tags {
104 display: flex;
105 gap: 0.5rem;
106 height: max-content;
107 }
108</style>
Capabilities
Product
Contact Us