S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> channel.items [in template "3192443#3192485#null" at line 8, 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 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 [in template "3192443#3192485#null" at line 8, 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 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}
Mega pack of responsive layout templates for Liferay 7.1
DXP App
Arcaduce layout templates provides various responsive layouts for your
Liferay 7.1 pages.
Layouts have different stacking breakpoints which enables you perfect targeting for your
user base to achieve great user experience on every device (smartphone, table, PC etc.).
Breakpoints are 575 px, 767 px, 991 px and 1279 px.
The best way to figure out which devices uses your users the most is to look for these stats in
tools such as Google Analytics etc. and then use layout with breakpoint which suits the majority of
your users to achieve best user experience.
Please note that, in one drop-zone there could be multiple Liferay widgets under each other.
Layout sets has different thumbnail colors for quick recognition at Liferay control panel
which enables you high productivity while creating new pages.
Layouts HTML markup is developed according to Twitter Bootstrap 4 HTML/CSS framework rules, which is part
of Liferay 7.1, that means that they are universal and could be used with any Liferay 7.1 theme.
After deployment to Liferay server instance, layouts are available for all Liferay Sites/Themes.
To change layout of the page:
1.) login to Liferay Control Panel
2.) under your Liferay Site click Build
3.) then click to Pages
4.) on each page click on three dots and then click on Configure
5.) select which layout you want to use and click Save
Layouts have different stacking breakpoints which enables you perfect targeting for your
user base to achieve great user experience on every device (smartphone, table, PC etc.).
Breakpoints are 575 px, 767 px, 991 px and 1279 px.
The best way to figure out which devices uses your users the most is to look for these stats in
tools such as Google Analytics etc. and then use layout with breakpoint which suits the majority of
your users to achieve best user experience.
Please note that, in one drop-zone there could be multiple Liferay widgets under each other.
Layout sets has different thumbnail colors for quick recognition at Liferay control panel
which enables you high productivity while creating new pages.
Layouts HTML markup is developed according to Twitter Bootstrap 4 HTML/CSS framework rules, which is part
of Liferay 7.1, that means that they are universal and could be used with any Liferay 7.1 theme.
After deployment to Liferay server instance, layouts are available for all Liferay Sites/Themes.
To change layout of the page:
1.) login to Liferay Control Panel
2.) under your Liferay Site click Build
3.) then click to Pages
4.) on each page click on three dots and then click on Configure
5.) select which layout you want to use and click Save
DEVELOPER
DEVELOPER
21/11/24 18:34
Published date
21/11/24 18:34
Published Date
21/11/24 18:34
SUPPORTED OFFERINGS
Liferay PaaS, Liferay Self-Hosted
Supported Versions
7.1
Resource Requirements
Edition
CE, EE
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.