/o//commerce-media/accounts/-1/images/18452065?download=true
Multiple File Download for Liferay
DXP App
Document and Media Display Portlet was developed by Surekha Technologies
using Alloy UI with the goal of making it easier for users to download
multiple files with single click.
Liferay OTTB Documents and Media Display Portlet doesn’t have feature that allows to download multiple files. If you want to download more than one file, you have to download them one-by-one. To simplify downloading, we have created a hook which allows to select and download multiple files bundled in a zip.
Key Benefits:
- Multiple File Download using single click
- Easy to use
- Bundled in ZIP format to reduce download size
- No temporary files created on server side
Refer to the following link to get started with this portlet:
http://www.surekhatech.com/blog/-/blogs/multiple-file-download-for-liferay-documents-and-media-display-portlet
Liferay OTTB Documents and Media Display Portlet doesn’t have feature that allows to download multiple files. If you want to download more than one file, you have to download them one-by-one. To simplify downloading, we have created a hook which allows to select and download multiple files bundled in a zip.
Key Benefits:
- Multiple File Download using single click
- Easy to use
- Bundled in ZIP format to reduce download size
- No temporary files created on server side
Refer to the following link to get started with this portlet:
http://www.surekhatech.com/blog/-/blogs/multiple-file-download-for-liferay-documents-and-media-display-portlet
DEVELOPER
DEVELOPER
24-11-21 下午5:43
Published date
24-11-21 下午5:43
Published Date
24-11-21 下午5:43
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
6.1,
6.2
Resource Requirements
Edition
CE
PRICE
处理模板时发生错误。
The following has evaluated to null or missing: ==> channel.items [in template "3192443#3192485#null" at line 18, 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 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
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.