处理模板时发生错误。
The following has evaluated to null or missing:
==> channel.items[0] [in template "3192443#3192485#null" at line 8, column 30]
----
Tip: It's the final [] step 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 8, column 9]
----
1<#if themeDisplay?has_content>
2 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
3</#if>
4
5<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
6
7<#if channel?has_content>
8 <#assign channelId = channel.items[0].id />
9</#if>
10
11<#if (CPDefinition_cProductId.getData())??>
12 <#assign productId = CPDefinition_cProductId.getData() />
13</#if>
14
15<#assign
16 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&images.accountId=-1&nestedFields=images")
17 productImage = product.images?filter(item -> item.tags?seq_contains("app icon"))![]
18/>
19
20<#if productImage?has_content>
21 <#assign productThumbnail = productImage[0].src?split("/o") />
22 <#if productThumbnail?has_content && productThumbnail?size gte 2>
23 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
24 <#else>
25 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
26 </#if>
27<#else>
28 <#if product.urlImage?has_content>
29 <#assign productThumbnail = product.urlImage?split("/o") />
30 <#if productThumbnail?has_content && productThumbnail?size gte 2>
31 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
32 <#else>
33 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
34 </#if>
35 <#else>
36 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
37 </#if>
38</#if>
39
40${productThumbnail1}
The following has evaluated to null or missing: ==> channel.items[0] [in template "3192443#3192485#null" at line 8, column 30] ---- Tip: It's the final [] step 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 8, column 9] ----
1<#if themeDisplay?has_content>
2 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
3</#if>
4
5<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
6
7<#if channel?has_content>
8 <#assign channelId = channel.items[0].id />
9</#if>
10
11<#if (CPDefinition_cProductId.getData())??>
12 <#assign productId = CPDefinition_cProductId.getData() />
13</#if>
14
15<#assign
16 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&images.accountId=-1&nestedFields=images")
17 productImage = product.images?filter(item -> item.tags?seq_contains("app icon"))![]
18/>
19
20<#if productImage?has_content>
21 <#assign productThumbnail = productImage[0].src?split("/o") />
22 <#if productThumbnail?has_content && productThumbnail?size gte 2>
23 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
24 <#else>
25 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
26 </#if>
27<#else>
28 <#if product.urlImage?has_content>
29 <#assign productThumbnail = product.urlImage?split("/o") />
30 <#if productThumbnail?has_content && productThumbnail?size gte 2>
31 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
32 <#else>
33 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
34 </#if>
35 <#else>
36 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
37 </#if>
38</#if>
39
40${productThumbnail1}
Biz Theme 82F
处理模板时发生错误。
The following has evaluated to null or missing: ==> channel.items[0] [in template "3192443#3192485#null" at line 62, column 30] ---- Tip: It's the final [] step 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 62, column 9] ----
1<style>
2 .app-container {
3 font-size: MEDIUM;
4 }
5
6 .app-container .app-category {
7 background-color: #e6ebf5;
8 padding: 6px 8px 4px
9 }
10
11 .app-container .app-product-type {
12 border-color: #2e5aac !important;
13 color:#2e5aac;
14 padding: 4px 8px;
15 }
16
17 @media screen and (max-width: 768px) {
18 .app-container {
19 font-size: small;
20 }
21 }
22
23 @media screen and (max-width: 576px) {
24 .app-container {
25 font-size: x-small;
26 }
27
28 .app-container .app-category,
29 .app-container .app-product-type {
30 padding: 2px 4px;
31 }
32 }
33</style>
34
35<#assign
36 PRODUCT_TYPE_CLOUD = "CLOUD"
37 PRODUCT_TYPE_DXP = "DXP"
38 PRODUCT_TYPE_FREE = "FREE"
39 PRODUCT_TYPE_PAID = "PAID"
40 VOCABULARY_PRODUCT_CATEGORY = "MARKETPLACE APP CATEGORY"
41/>
42
43<#if themeDisplay?has_content>
44 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
45</#if>
46
47<#assign siteName = "marketplace" />
48
49<#if currentURL?has_content>
50 <#if currentURL?contains('web')>
51 <#assign
52 index = 2
53 partsUrl = currentURL?split('/')
54 siteName = partsUrl[index..index]?join('/')
55 />
56 </#if>
57</#if>
58
59<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
60
61<#if channel?has_content>
62 <#assign channelId = channel.items[0].id />
63</#if>
64
65<#if (CPDefinition_cProductId.getData())??>
66 <#assign productId = CPDefinition_cProductId.getData() />
67</#if>
68
69<#assign
70 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications,categories")
71 categories = product.categories![]
72 productSpecifications = product.productSpecifications![]
73/>
74
75<div class="app-container color-neutral-3 d-flex flex-wrap font-size-paragraph-small justify-content-between w-100">
76 <div class="d-flex">
77 <#if categories?has_content>
78 <#list categories as category>
79 <#if category.vocabulary?upper_case == VOCABULARY_PRODUCT_CATEGORY>
80 <div class="app-category bg-neutral-8 border-radius-small mb-1 mr-2 px-1 rounded">
81 ${category.name}
82 </div>
83 </#if>
84 </#list>
85 </#if>
86
87 <#if productSpecifications?has_content>
88
89 <#assign productTypes = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "type")) />
90
91 <#list productTypes as productType>
92 <#if productType.value?upper_case == PRODUCT_TYPE_DXP>
93 <#assign
94 icon = "dxp-svg"
95 type = "DXP App"
96 />
97 <#elseif productType.value?upper_case == PRODUCT_TYPE_CLOUD>
98 <#assign
99 icon = "cloud-svg"
100 type = "Cloud App"
101 />
102 </#if>
103
104 <#if type?has_content && icon?has_content>
105 <div class="app-product-type border border-radius-small d-flex mb-1 mr-2 px-1 rounded">
106 <div class="app-product-type-icon mr-1">
107 <img alt="Icon" class="mb-1" src="/documents/d/${siteName}/${icon}" />
108 </div>
109
110 <div class="bg-neutral-8">${type}</div>
111 </div>
112 </#if>
113 </#list>
114 </#if>
115 </div>
116</div>
OMB Biz Theme 82F is a Liferay 7.0 theme which has simple but cool design, and many configurable settings for easy use. This theme is for building modern and responsive business websites, intranets, and community sites ranging small to enterprise.
Features
Separate site-wide and page-specific theme settings
Contents and look-and-feel of each section on a page editable with ease
Color scheme available using various color picker configurations
Pre-built social icons
Web Content integrated
Site Template included
English, Korean, and Thai language translated
And much more to meet your needs
NOTICE
For users for LP 7.0 without patches for LPS-73956
There is no language translated for labels on Theme setting page, instead the keys are displayed. For LP 7.0 CE GA6 and 7.0 DXP FP32, the labels are translated and displayed as intended without any issue.
Features
Separate site-wide and page-specific theme settings
Contents and look-and-feel of each section on a page editable with ease
Color scheme available using various color picker configurations
Pre-built social icons
Web Content integrated
Site Template included
English, Korean, and Thai language translated
And much more to meet your needs
NOTICE
For users for LP 7.0 without patches for LPS-73956
There is no language translated for labels on Theme setting page, instead the keys are displayed. For LP 7.0 CE GA6 and 7.0 DXP FP32, the labels are translated and displayed as intended without any issue.
DEVELOPER
处理模板时发生错误。
The following has evaluated to null or missing: ==> channel.items[0] [in template "3192443#3192485#null" at line 18, column 30] ---- Tip: It's the final [] step 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 18, 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/>
29
30<div>
31 <#if productSpecifications?has_content>
32 <#assign developerNames = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "developer-name")) />
33
34 <#if developerNames?has_content>
35 <#list developerNames as developerName>
36 <div class="bg-neutral-8">${developerName.value}</div>
37 </#list>
38 </#if>
39 </#if>
40</div>
DEVELOPER
19-5-27 上午12:00
Published date
处理模板时发生错误。
The string doesn't match the expected date/time/date-time format. The string to parse was: "19-5-27 上午12:00". The expected format was: "MM/dd/yy HH:mm". The nested reason given follows: Unparseable date: "19-5-27 上午12:00" ---- FTL stack trace ("~" means nesting-related): - Failed at: ${CPDefinition_displayDate.getData()?... [in template "3192443#3192485#null" at line 4, column 9] ----
1<#setting date_format="MMMMM d, yyyy">
2
3<#if (CPDefinition_displayDate.getData())??>
4 ${CPDefinition_displayDate.getData()?datetime("MM/dd/yy HH:mm")?date}
5</#if>
Published Date
19-5-27 上午12:00
SUPPORTED OFFERINGS
Self-Hosted, Self-Managed
Supported Versions
处理模板时发生错误。
The following has evaluated to null or missing: ==> channel.items[0] [in template "3192443#3192485#null" at line 22, column 30] ---- Tip: It's the final [] step 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 22, column 9] ----
1<#assign
2 VOCABULARY_PRODUCT_CATEGORY = "MARKETPLACE LIFERAY VERSION"
3/>
4
5<#if themeDisplay?has_content>
6 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
7</#if>
8
9<#if currentURL?has_content>
10 <#if currentURL?contains('web')>
11 <#assign
12 index = 2
13 partsUrl = currentURL?split('/')
14 siteName = partsUrl[index..index]?join('/')
15 />
16 </#if>
17</#if>
18
19<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
20
21<#if channel?has_content>
22 <#assign channelId = channel.items[0].id />
23</#if>
24
25<#if (CPDefinition_cProductId.getData())??>
26 <#assign productId = CPDefinition_cProductId.getData() />
27</#if>
28
29<#assign
30 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=categories")
31 categories = product.categories![]
32/>
33
34<div class="app-container color-neutral-3 d-flex flex-wrap font-size-paragraph-small justify-content-between w-100">
35 <div class="d-flex">
36 <#if categories?has_content>
37 <#function getVersions(version)>
38 <#return version.vocabulary?upper_case == "MARKETPLACE-LIFERAY-VERSION">
39 </#function>
40
41 ${categories?sort_by("name")?reverse?filter(getVersions)?map(version -> version.name)?join(", ")}
42 </#if>
43 </div>
44</div>
Resource Requirements
处理模板时发生错误。
The following has evaluated to null or missing: ==> channel.items[0] [in template "3192443#3192485#null" at line 18, column 30] ---- Tip: It's the final [] step 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 18, 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 specifications = product.productSpecifications![]
28/>
29
30<div>
31 <#if specifications?has_content>
32
33 <#assign
34 specificationCPUs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "cpu"))
35 specificationRAMs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "ram"))
36 cpuQuantity = ""
37 memoryQuantity = ""
38 />
39
40 <#if specificationCPUs?has_content>
41 <#list specificationCPUs as cpu>
42 <#assign cpuQuantity = cpu.value />
43
44 <#if cpuQuantity?has_content>
45 ${cpuQuantity}
46 <#if cpuQuantity?eval gt 1>
47 CPUS
48 </#if>
49
50 <#if cpuQuantity?eval lt 2>
51 CPU
52 </#if>
53 </#if>
54 </#list>
55 </#if>
56
57 <#if specificationRAMs?has_content>
58 <#list specificationRAMs as ram>
59 <#assign memoryQuantity = ram.value />
60
61 <#if cpuQuantity?has_content && memoryQuantity?has_content >, </#if>
62
63 <#assign memoryQuantity = ram.value />
64
65 <#if memoryQuantity?has_content>
66 ${memoryQuantity} GB RAM
67 </#if>
68 </#list>
69 </#if>
70 </#if>
71</div>
Edition
CE, EE
PRICE
处理模板时发生错误。
The following has evaluated to null or missing: ==> channel.items[0] [in template "3192443#3192485#null" at line 18, column 30] ---- Tip: It's the final [] step 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 18, 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/>
29
30<div>
31 <#if productSpecifications?has_content>
32 <#assign priceModels = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "price-model")) />
33
34 <#if priceModels?has_content>
35 <#list priceModels as priceModel>
36 <div class="bg-neutral-8">${priceModel.value}</div>
37 </#list>
38 </#if>
39 </#if>
40</div>
help & support
Terms & Conditions
SHARE LINK
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.