/o//commerce-media/accounts/-1/images/18580941?download=true
Social Feeds Mashup Portlet for Liferay 7/DXP
Hiba jelentkezett a sablon feldolgozása során.
The following has evaluated to null or missing: ==> channel.items [in template "3192443#3192485#null" at line 109, column 30] ---- 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: #assign channelId = channel.items[0].id [in template "3192443#3192485#null" at line 109, column 9] ----
1<style>
2 .app-container {
3 border-color: #2e5aac !important;
4 color: #2e5aac;
5 font-size: MEDIUM;
6 }
7
8 .app-category {
9 display: block;
10 flex: 1;
11 max-width: 200px;
12 overflow: hidden;
13 text-overflow: ellipsis;
14 white-space: nowrap;
15 }
16
17 .app-container .app-category {
18 background-color: #e6ebf5;
19 color: #1c3667;
20 padding: 4px 8px;
21 }
22
23 .app-container .app-product-type {
24 min-width: 0;
25 overflow: hidden;
26 text-overflow: ellipsis;
27 white-space: nowrap;
28 }
29
30 .client-extension-product-type {
31 background-color: #FFE6C6;
32 color: #9D4C00;
33 }
34
35 .cloud-product-type {
36 background-color: #D1EEDC;
37 color: #0E7835;
38 }
39
40 .composite-app-product-type {
41 background-color: #FBE0FF;
42 color: #720086;
43 }
44
45 .diamond-icon-container {
46 color: #C9C9CF;
47 height: 4px;
48 width: 4px;
49 }
50
51 .dxp-product-type {
52 background-color: #D1ECFA;
53 color: #166E9E;
54 }
55
56 .low-code-configuration-product-type {
57 background-color: #DCD7E9;
58 color: #503690;
59 }
60
61 @media screen and (max-width: 768px) {
62 .app-container {
63 font-size: small;
64 }
65 }
66
67 @media screen and (max-width: 576px) {
68 .app-container {
69 font-size: x-small;
70 }
71
72 .app-container .app-category,
73 .app-container .app-product-type {
74 padding: 2px 4px;
75 }
76 }
77</style>
78
79<#assign
80 productTypeValues =
81 {
82 "client-extension": "Client Extension",
83 "cloud": "Cloud App",
84 "composite-app": "Composite App",
85 "dxp": "DXP App",
86 "low-code-configuration": "Low-Code"
87 }
88
89 VOCABULARY_PRODUCT_CATEGORY = "MARKETPLACE-APP-CATEGORY"
90/>
91
92<#if themeDisplay?has_content>
93 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
94</#if>
95
96<#if currentURL?has_content>
97 <#if currentURL?contains('web')>
98 <#assign
99 index = 2
100 partsUrl = currentURL?split('/')
101 siteName = partsUrl[index..index]?join('/')
102 />
103 </#if>
104</#if>
105
106<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
107
108<#if channel?has_content>
109 <#assign channelId = channel.items[0].id />
110</#if>
111
112<#if (CPDefinition_cProductId.getData())??>
113 <#assign productId = CPDefinition_cProductId.getData() />
114</#if>
115
116<#assign
117 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications,categories")
118 categories = product.categories![]
119 productSpecifications = product.productSpecifications![]
120/>
121
122<div class="app-container color-neutral-3 d-flex flex-wrap font-size-paragraph-small justify-content-between w-100">
123 <div class="d-flex">
124 <#if productSpecifications?has_content>
125 <#assign productTypes = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "type")) />
126
127 <#list productTypes as productType>
128 <#if productType?has_content>
129 <#assign appType = (productTypeValues[productType.value]!) />
130
131 <#if appType?has_content>
132 <div class="align-items-center app-product-type border border-radius-small d-flex mb-1 mr-2 px-2 rounded-lg ${productType.value}-product-type">
133 <div class="bg-neutral-8">${appType}</div>
134 </div>
135 </#if>
136 </#if>
137 </#list>
138 </#if>
139
140 <#if categories?has_content>
141 <#assign filteredCategories = categories?filter(category -> category.vocabulary?upper_case == VOCABULARY_PRODUCT_CATEGORY) />
142
143 <#if filteredCategories?has_content && appType?has_content>
144 <span class="align-items-center d-flex justify-content-between">
145 <span class="align-items-center d-flex diamond-icon-container justify-content-between mr-3">
146 <@clay["icon"] symbol="diamond" />
147 </span>
148 </span>
149 </#if>
150
151 <#list categories as category>
152 <#if category.vocabulary?upper_case == VOCABULARY_PRODUCT_CATEGORY>
153 <span class="app-category bg-neutral-8 border-radius-small mb-1 mr-2 px-3 rounded-lg" title="${category.name}">
154 ${category.name}
155 </span>
156 </#if>
157 </#list>
158 </#if>
159 </div>
160</div>
Social Feeds Mashup Portlet is developed by Surekha Technologies which
retrieves social feeds from different social networking sites and
displays them together on portal. It lets user interact with various
social platform updates through single place.
Currently, portlet can be configured to show feeds from different social networking sites like Facebook, Twitter and Google+. Social Feeds Mashup Portlet is also instantiable so we can have more than one configurations for desired social networking site on the same page. You can visit a demo of this at https://www.surekhatech.com/social-feeds-liferay
Key Features :
- Easy to use
- Application configuration wizard for initial setup
- Instantiable so we can have multiple instances on same page
- Activities like Comment, Share, Like, Retweet etc can be directly performed
- UI can be easily integrated into almost any theme of Portal
For Wildfly bundle, please do following configuration (portal-ext.properties file is need only when you use Liferay 7.0 GA1/GA2/GA3/GA4 & DXP GA1 because of LPS-65488) :
Set below mentioned property in portal-ext.properties file :
module.framework.properties.org.osgi.framework.bootdelegation=\
__redirected,\
com.sun.ccpp,\
com.sun.ccpp.*,\
com.sun.crypto.*,\
com.sun.image.*,\
com.sun.jmx.*,\
com.sun.jna,\
com.sun.jndi.*,\
com.sun.mail.*,\
com.sun.management.*,\
com.sun.media.*,\
com.sun.msv.*,\
com.sun.org.*,\
com.sun.syndication,\
com.sun.tools.*,\
com.sun.xml.*,\
com.yourkit.*,\
sun.*
Then put the portal-ext.properties file into your server.
Deploy the portlet on your server.
Now you can use the Social Feeds Mashup Portlet easily.
When you use Social Feeds Mashup Portlet in Liferay 7 CE and DXP with Tomcat bundle, you do not need the above mentioned changes in portal-ext.properties file.
You need to do some configurations for Facebook, Google+ and Twitter from configuration screen. Please see screenshots for reference.
Currently, portlet can be configured to show feeds from different social networking sites like Facebook, Twitter and Google+. Social Feeds Mashup Portlet is also instantiable so we can have more than one configurations for desired social networking site on the same page. You can visit a demo of this at https://www.surekhatech.com/social-feeds-liferay
Key Features :
- Easy to use
- Application configuration wizard for initial setup
- Instantiable so we can have multiple instances on same page
- Activities like Comment, Share, Like, Retweet etc can be directly performed
- UI can be easily integrated into almost any theme of Portal
For Wildfly bundle, please do following configuration (portal-ext.properties file is need only when you use Liferay 7.0 GA1/GA2/GA3/GA4 & DXP GA1 because of LPS-65488) :
Set below mentioned property in portal-ext.properties file :
module.framework.properties.org.osgi.framework.bootdelegation=\
__redirected,\
com.sun.ccpp,\
com.sun.ccpp.*,\
com.sun.crypto.*,\
com.sun.image.*,\
com.sun.jmx.*,\
com.sun.jna,\
com.sun.jndi.*,\
com.sun.mail.*,\
com.sun.management.*,\
com.sun.media.*,\
com.sun.msv.*,\
com.sun.org.*,\
com.sun.syndication,\
com.sun.tools.*,\
com.sun.xml.*,\
com.yourkit.*,\
sun.*
Then put the portal-ext.properties file into your server.
Deploy the portlet on your server.
Now you can use the Social Feeds Mashup Portlet easily.
When you use Social Feeds Mashup Portlet in Liferay 7 CE and DXP with Tomcat bundle, you do not need the above mentioned changes in portal-ext.properties file.
You need to do some configurations for Facebook, Google+ and Twitter from configuration screen. Please see screenshots for reference.
DEVELOPER
DEVELOPER
2024.11.21. 18:25
Published date
2024.11.21. 18:25
Published Date
2024.11.21. 18:25
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
7.1
Resource Requirements
Edition
CE
PRICE
Paid
help & support
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.