/o//commerce-media/accounts/-1/images/18528781?download=true

Site Feedback Portlet
DXP App
Collaboration & Knowledge Sharing
18528735
Feedback portlet will be used for collecting the feedback from visitors of the site.
This feature may be used to collect feedback site wise in the portal.

Feedback is very necessary for any of the site or project. It gives the users to provide their suggestion to improve the site in better way.

Features:

• Rating by end user
• There are currently 5 categories ("Bug", "Site content", "Suggestion", "Complement" and "Other") based on these categories some sub-categories is there.
By clicking on those sub-categories user can provide feedback(text).
• Admin can add more categories or subcategories or may be change existing one as per requirement.
• Email Notification:
After feedback submission, an email will be triggered to the email id which is entered by user and admin email id.
• Report Generation:
For Admin there is export feature to get feedback data in excel form.
Admin can export the data of all sites or current one based on selected date range.

Configuration:

There is some configuration in feedback portlet configuration.
• Admin can specify the fields for submitting the feedback form by user: "Name", "Email (by default) ", "Mobile Phone" and "Comment".
• Admin can also configure the email details as admin email id, subject for admin email and user email.
DEVELOPER
处理模板时发生错误。
The following has evaluated to null or missing:
==> product.catalogName  [in template "3192443#3192485#null" at line 28, column 21]

----
Tip: It's the step after the last dot 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: catalogName = product.catalogName  [in template "3192443#3192485#null" at line 28, column 9]
----
1<#if themeDisplay?has_content> 
2	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
3</#if> 
4 
5<#if currentURL?has_content> 
6	<#if currentURL?contains('web')> 
7		<#assign 
8			index = 2 
9			partsUrl = currentURL?split('/') 
10			siteName = partsUrl[index..index]?join('/') 
11		/> 
12	</#if> 
13</#if> 
14 
15<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
16 
17<#if channel?has_content> 
18	<#assign channelId = channel.items[0].id /> 
19</#if> 
20 
21<#if (CPDefinition_cProductId.getData())??> 
22	<#assign productId = CPDefinition_cProductId.getData() /> 
23</#if> 
24 
25<#assign 
26	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications") 
27	productSpecifications = product.productSpecifications![] 
28	catalogName=product.catalogName 
29/> 
30 
31<#if catalogName?has_content> 
32	<#assign publisePages=restClient.get("/c/publisherdetailses?filter=publisherName eq '${catalogName}'" ) /> 
33	<#assign redirectPath="https://marketplace.liferay.com/e/publisher-details/29282497"/> 
34	 
35	<#if publisePages?has_content> 
36		<#assign publisePage=publisePages.items /> 
37			<#if publisePage?has_content> 
38						<#assign publisherDetail=publisePage[0]/> 
39			</#if> 
40	</#if> 
41</#if> 
42 
43<div> 
44	<#if productSpecifications?has_content> 
45		<#assign developerNames = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "developer-name")) /> 
46 
47		<#if developerNames?has_content> 
48			<#list developerNames as developerName> 
49				<#if publisherDetail?has_content> 
50					<a class="bg-neutral-8" href="${redirectPath}/${publisherDetail.id}"> 
51						${developerName.value} 
52					</a> 
53				<#else> 
54					<a class="bg-neutral-8" 	href="/?developer-name=${developerName.value}"> 
55						${developerName.value} 
56					</a> 
57				</#if> 
58			</#list> 
59		</#if> 
60	</#if> 
61</div> 
DEVELOPER
24-11-21 下午6:01
Published date
24-11-21 下午6:01
Published Date
24-11-21 下午6:01
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
6.2
Resource Requirements
Edition
EE
PRICE
Free
help & support
SHARE LINK
Copy & Share

HTML Example

A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.