حصل خطأ عند معالجة القالب.
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}
Mobile Verification
DXP App
Now a days, Most of the site needs to verify the mobile number and email
address of their users for security purpose. Liferay is providing email
verification OOB.
This plugin will help to integrate that functionality directly to the Liferay portal.
Key Features
- Admin can enable/disable mobile verification very easily.
- Mobile verification can be set to be mandatory/optional.
- Further development depending upon mobile verification can be done easily. As mobile number and its status is stored in User Custom Attribute.
Steps to Use
1) Deploy Hook
2) As Admin Go to Control Panel -> Portal Settings -> Authentication
3) Select Tab “SMS”
4) Enable SMS Verification
5) Enter details of Twillio Sms Account, i.e. Account SID, Auth Token, Sending Number
6) Enter the SMS you want to send to mobile number for verification. Add $S where you want to place the verification code. Verification code will be generated automatically and it will replace the $S in the SMS Body.
7) One more check box added for make mandatory. If this is selected. User will be forced to verify the mobile number. If mandatory is not selected. User will get option to skip the verification.
User Site changes for Mobile Verification
1) New text required field is added in the create account page for mobile number. Mobile number will be all digits number with country code in prefix. User don’t need to add plus(+) sign for the number.
2) Once User will enter mobile number and press Save button. One SMS will be sent to the mobile number entered in the field. Popup will open for entering the verification code. User will have to enter the verification code into the field to verify the mobile number.
3) If the mandatory is not selected, User will get a button to skip the verification.
Helping hands :
Vipin Bardia (http://www.liferay.com/web/vipin.bardia/profile)
This plugin will help to integrate that functionality directly to the Liferay portal.
Key Features
- Admin can enable/disable mobile verification very easily.
- Mobile verification can be set to be mandatory/optional.
- Further development depending upon mobile verification can be done easily. As mobile number and its status is stored in User Custom Attribute.
Steps to Use
1) Deploy Hook
2) As Admin Go to Control Panel -> Portal Settings -> Authentication
3) Select Tab “SMS”
4) Enable SMS Verification
5) Enter details of Twillio Sms Account, i.e. Account SID, Auth Token, Sending Number
6) Enter the SMS you want to send to mobile number for verification. Add $S where you want to place the verification code. Verification code will be generated automatically and it will replace the $S in the SMS Body.
7) One more check box added for make mandatory. If this is selected. User will be forced to verify the mobile number. If mandatory is not selected. User will get option to skip the verification.
User Site changes for Mobile Verification
1) New text required field is added in the create account page for mobile number. Mobile number will be all digits number with country code in prefix. User don’t need to add plus(+) sign for the number.
2) Once User will enter mobile number and press Save button. One SMS will be sent to the mobile number entered in the field. Popup will open for entering the verification code. User will have to enter the verification code into the field to verify the mobile number.
3) If the mandatory is not selected, User will get a button to skip the verification.
Helping hands :
Vipin Bardia (http://www.liferay.com/web/vipin.bardia/profile)
DEVELOPER
DEVELOPER
٢١/١١/٢٤ ٠٥:٤٦ م
Published date
٢١/١١/٢٤ ٠٥:٤٦ م
Published Date
٢١/١١/٢٤ ٠٥:٤٦ م
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
6.2,
6.1
Resource Requirements
Edition
CE
PRICE
Free
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.