/o//commerce-media/accounts/-1/images/18544367?download=true
OMB Webzine is the portlet which displays news or messages in the web magazine style. It allows users to read threads and leave comments to them. Also it provides the widget to collect the specified number of recent messages. This plugin consists of three portlets: Webzine Administration, Webzine, and Mini Webzine. Webzine Administration on Control Panel manages bulletin boards with numerous options. Mini Webzine provides the widget to collect the specified number of recent messages to provide the simplied view. And Webzine is the main portlet for webzine bulletin boards.
Configurable Options:
- Multi-level categories
- Initial page and color scheme of board
- Sticky, secret and anonymous messages
- New and hot messages
- Web editor for message body
- File count, size, extensions
- Comment configuration
- Mailing on adding messages and comments
- Items to display on View, Detail, and comment pages
- Model-level permission
Feature:
- Fully responsive
- Using Liferay file store
- English, Korean, and Thai language pre-translated
NOTICE FOR LP 7.0 USERS
- Please completely delete previous versions before you upgrade to new version.
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> specifications [in template "3192443#3192485#null" at line 16, column 36] ---- FTL stack trace ("~" means nesting-related): - Failed at: #if specifications?has_content && spe... [in template "3192443#3192485#null" at line 16, column 1] ----
1<#assign
2 channels = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels")
3 channelId = ""
4/>
5
6<#list channels.items as channel>
7 <#if channel.name == "Marketplace Channel">
8 <#assign channelId = channel.id />
9 </#if>
10</#list>
11
12<#if (CPDefinition_cProductId.getData())??>
13 <#assign specifications = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/" + channelId + "/products/" + CPDefinition_cProductId.getData() + "/product-specifications") />
14</#if>
15
16<#if specifications?has_content && specifications.items?has_content>
17 <#list specifications.items as specification>
18 <#if specification.specificationKey?has_content && specification.specificationKey == "developer-name">
19 ${specification.value}
20 </#if>
21 </#list>
22</#if>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> specifications [in template "3192443#3192485#null" at line 17, column 36] ---- FTL stack trace ("~" means nesting-related): - Failed at: #if specifications?has_content && spe... [in template "3192443#3192485#null" at line 17, column 1] ----
1<#assign
2 channelId=""
3 channels=restClient.get("/headless-commerce-delivery-catalog/v1.0/channels")
4 filteredSpecifications=[]
5/>
6
7<#list channels.items as channel>
8 <#if channel.name=="Marketplace Channel">
9 <#assign channelId = channel.id />
10 </#if>
11</#list>
12
13<#if (CPDefinition_cProductId.getData())??>
14 <#assign specifications = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/" + channelId + "/products/" + CPDefinition_cProductId.getData() + "/product-specifications") />
15</#if>
16
17<#if specifications?has_content && specifications.items?has_content>
18
19 <#assign
20 cpuQuantity = ""
21 memoryQuantity = ""
22 />
23
24 <#list specifications.items?sort_by("specificationKey") as specification>
25 <#if stringUtil.equals(specification.value, "cloud")>
26 <script>
27 var resourceRequirements = document.querySelector(".marketplace-resource-requirements")
28
29 resourceRequirements.classList.remove("d-none");
30 </script>
31 </#if>
32
33 <#if specification.specificationKey?has_content && (stringUtil.equals(specification.specificationKey, "cpu") || stringUtil.equals(specification.specificationKey, "ram"))>
34 <#if stringUtil.equals(specification.specificationKey, "cpu" )>
35 <#assign cpuQuantity = specification.value />
36
37 <#if cpuQuantity?has_content>
38 ${cpuQuantity}
39 <#if cpuQuantity?eval gt 1>
40 CPUS
41 </#if>
42 <#if cpuQuantity?eval lt 2>
43 CPU
44 </#if>
45 </#if>
46 </#if>
47
48 <#if stringUtil.equals(specification.specificationKey, "ram")>
49 <#assign memoryQuantity = specification.value />
50
51 <#if cpuQuantity?has_content && memoryQuantity?has_content >,</#if>
52 </#if>
53
54 <#if stringUtil.equals(specification.specificationKey, "ram")>
55 <#assign memoryQuantity = specification.value />
56
57 <#if memoryQuantity?has_content>
58 ${memoryQuantity} GB RAM
59 </#if>
60 </#if>
61 </#if>
62 </#list>
63</#if>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> specifications [in template "3192443#3192485#null" at line 16, column 36] ---- FTL stack trace ("~" means nesting-related): - Failed at: #if specifications?has_content && spe... [in template "3192443#3192485#null" at line 16, column 1] ----
1<#assign
2 channelId=""
3 channels=restClient.get("/headless-commerce-delivery-catalog/v1.0/channels")
4 filteredSpecifications=[] />
5
6<#list channels.items as channel>
7 <#if channel.name=="Marketplace Channel">
8 <#assign channelId = channel.id />
9 </#if>
10</#list>
11
12<#if (CPDefinition_cProductId.getData())??>
13 <#assign specifications = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/" + channelId + "/products/" + CPDefinition_cProductId.getData() + "/product-specifications") />
14</#if>
15
16<#if specifications?has_content && specifications.items?has_content>
17 <#list specifications.items?sort_by("specificationKey") as specification>
18 <#if specification.specificationKey?has_content>
19 <#if stringUtil.equals(specification.specificationKey, "price-model" )>
20 <#assign priceModel = specification.value />
21 <#if priceModel?has_content>
22 ${priceModel}
23 </#if>
24 </#if>
25 </#if>
26 </#list>
27</#if>
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.