为什么我们在Hybris WCMS页面中已经有ContentSlot,却有ContentSlotName?
在hybris中创建页面时,我们创建页面模板,然后创建内容槽。 每个内容槽都有与其关联的组件。内容槽映射到页面模板。最后,我们将PageTemplate映射到ContentPage。 这就是在hybris中创建页面的方式 既然我们已经有了页面模板的内容槽,那么为什么我们有ContentSlotName,为什么我们要使用它呢为什么我们在Hybris WCMS页面中已经有ContentSlot,却有ContentSlotName?,hybris,Hybris,在hybris中创建页面时,我们创建页面模板,然后创建内容槽。 每个内容槽都有与其关联的组件。内容槽映射到页面模板。最后,我们将PageTemplate映射到ContentPage。 这就是在hybris中创建页面的方式 既然我们已经有了页面模板的内容槽,那么为什么我们有ContentSlotName,为什么我们要使用它呢 我们可以避免创建普通内容页和电子邮件页吗?ContentSlotName用于指示cmscockpit/smartedit可以在页面的特定部分添加什么类型的组件。例如: INS
我们可以避免创建普通内容页和电子邮件页吗?ContentSlotName用于指示cmscockpit/smartedit可以在页面的特定部分添加什么类型的组件。例如:
INSERT_UPDATE ContentSlotName; name[unique = true]; template(uid, $contentCV)[unique = true][default = 'loginPageTemplate']; validComponentTypes(code)
; Login-LeftSection ; ; CMSImageComponent
“登录LeftSection”是在结构\u loginPageTemplate.vm中定义的:
td colspan="6" class="structureViewSection">
<cockpit code="Login-LeftSection"/>
</td>
因此,“Login LeftSection”可以在登录页面的cmscockpit中看到,如果您尝试在与该节相关联的插槽中添加组件,则只有CMSImageComponent类型的组件可供添加(因为上面定义了ContentsLogName实例):
因此,ContentSlotName的目的是限制可以为特定内容槽添加的组件类型
第二个问题的答案是是,我们可以避免它,但这意味着任何类型的组件都可以添加到给定的内容槽中
更新:
上述解释适用于Hybris的较新版本,其中cmscockpit已被弃用,并且使用了smartedit。尽管smartedit在不允许将组件添加到特定插槽时具有不同的外观,但ContentSlotName的用途仍然相同。实际上,ContentSlotName只是页面模板中的一个部分,可以用CMS组件填充。它可以为页面模板填充(如果您不想使用此页面模板为每个页面重复填充),也可以为页面填充(如果您想更改每个页面的内容) 例如:
INSERT_UPDATE ContentSlotName; name[unique = true]; template(uid, $contentCV)[unique = true][default = 'loginPageTemplate']; validComponentTypes(code)
; Login-LeftSection ; ; CMSImageComponent
- 像页眉和页脚这样的内容槽应该在每个页面上看起来都一样。因此,它们是为页面模板定义的李>
- 内容槽,如页面的主要内容(如条款和条件),可能会因页面而异。因此,它们是为页面定义的