Page History
...
Code Block |
---|
[#-- Assigns: Get and check Teaser Target --] [#assign target = model.target!] [#assign hasTarget = target?has_content] [#-- Assigns: Macro assigning Values --] [#macro assignValues] [#-- Assigns: Get Content --] [#assign title = content.teaserTitle!target.title!target.@name] [#assign kicker = target.kicker!] [#assign text = content.teaserAbstract!target.abstract!] [#assign teaserLink = model.teaserLink!] |
参数
组件定义的模板脚本可直接使用组件定义的/<component name>/parameters
节点里的属性对模板脚本可用,无需支持的模型类。这是一个嵌入功能。此节点也同样被模板类参数使用。节点里的属性,而无需支持的模型类。此节点也同样用作模板类参数。这是一个嵌入的功能。
参数属性被大量用于CSS样式。例如,在下面的stkTeaserNewsList
组件定义配置里:
- 为了达到使用CSS样式的目的,模板里设置了
divClass
,divIDPrefix
和headingLevel
属性可用于模板CSS样式目的,并且不依赖于模型类。更多信息可参考属性。这些属性不依赖于模型类。更多信息可参考Teaser IDs。 searchForSubcategory
属性由NewsListModel
模型类定义对模板可用。组件生成要点列表,要点为基于模板通过
设置了NewsListModel modelClass
searchForSubcategory
属性。这个组件会生成一个要点列表,其中要点的目标页面基于subcategory=news
页面模板的目标页面。的页面模板。teaserLinkType
属性也由属性也通过modelClass
使能,并且将要点链接识别为内部链接。被模板所用,它标记要点链接为internal
链接。
Advanced Tables - Table Plus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
以下为newsList.ftl
脚本如何绘制脚本绘制divClass
,、
divIDPrefix
和headingLevel
属性的。您可以在属性的代码。您可以在STK > 模板 /templating-kit/components/teasers/newsList.ftl
获得此脚本。找到此脚本。
Code Block |
---|
[#-------------- RENDERING PART --------------] [#-- Rendering: Latest News --] <div class="${divClass}" ${divID} > <${headingLevel}>${content.teaserTitle}</${headingLevel}> |
以下为由以下为stkNewsList
组件绘制而成的HTML。 组件绘制的HTML。
嵌套组件
很多STK组件都有嵌套组件。在页面上,主组件被首先创建,然后编辑者会创建子组件。很多STK组件都有嵌套组件。在页面上,主组件首先被创建,然后编辑者会创建子组件。stkPureLinkList
主组件只允许一个组件标题,链接是由主组件只允许有一个组件标题,它的链接是由stkInternalLink
,、stkExternalLink
或stkDownloadLink
组件创建的。
在主组件定义中:
- 子组件被分配到子组件在
/areas/<area name>/availableComponents
节点下。这里的节点结构与节点下分配。这里的节点结构与区域定义里使组件可用时使用的结构完全一致。 > 使组件可用里的结构完全一致。 - 每个子组件都被分配到它自身的子内容节点下,使用与它的组件定义匹配的名字。每个子组件都在它自身的子内容节点下分配,它的名称与组件定义里的相匹配。
id
属性引用子组件,使用<module name>:<path to component>
结构。- 每个子组件都是在它自己的组件定义中分别配置。您可以在STK > 模板定义
/components/links
里查看这些。里查看。 主组件,嵌套区域和单个子组件都由它们自己的脚本绘制。
Advanced Tables - Table Plus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
pureLinkList.ftl
脚本使用页面模板里绘制区域的相同代码来绘制主组件。脚本全文在脚本绘制主组件与页面模板里绘制区域的代码相同。脚本全文在STK > 模板 /templating-kit/components/teasers/pureLinkList.ftl
下。这里为相关片段。下,这里为相关片段。
Code Block |
---|
[#-- Rendering the teaser's linkList --] [@cms.area name="linkList"/] |
linkListArea.ftl
脚本使用[#list]
指令来绘制嵌套组件。脚本全文在STK > 模板 /templating-kit/components/links/linkListArea.ftl
里。这里为相关片段。里,这里为相关片段。
Code Block |
---|
… [#list components as component ] [@cms.component content=component /] [/#list] … |
extends
属性extends属性
扩展机制被广泛使用,以最小化有着相应teaser
组件的extras
组件的配置。在这两个区域绘制的组件基本相同,只有CSS样式和继承行为不一样。被广泛使用来最小化extras
组件的配置。extras
组件有对应的teaser
组件,这两个区域绘制的组件基本相同,只有CSS样式和继承行为不一样。
这里是stkTeaserContact
组件定义的完全配置。组件定义的配置全文。
Advanced Tables - Table Plus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
stkExtrasContact
组件扩展要点组件,只修改组件扩展了要点组件,只修改了divIDPrefix
和dialog
引用部分。stkExtrasContact
对话框也是stkTeaserContact
对话框的一个扩展,添加了在子页面中显示域,允许子页面继承。您可以在字段,允许子页面继承。您可以在STK > 对话框定义 /components/teasers/stkTeaserContact
和/extras/stkExtrasContact
里查看引用的对话框。更多信息可参考可继承组件。
Advanced Tables - Table Plus | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
|
自动生成的组件
自动生成特性允许您在页面的任何区域内自动生成组件。这是Magnolia 自动生成特性使您在页面的任何区域都可以自动生成组件。这是Magnolia CMS核心功能,由以下类提供:
ConfiguredAutoGeneration
类(由AreaElement
引入),提供在区域定义中的引入),在区域定义中提供autoGeneration
节点和属性。CopyGenerator
生成器类,创建节点和属性,这些属性与链接到生成器类(generator class),创建节点和属性,使他们与templateId
属性并且只适用于属性里链接到的且只适用于autoGeneration
节点的配置一致。
自动生成的组件可在任何区域定义里配置。以下配置样例在stkEvent
模板的嵌套extras1
区域自动生成stkExtrasCalendar
组件。参考extras区域获得关于extras
区域里可用配置选项的更多信息。组件。关于extras
区域里可用的配置选项,请参考extras
区域。
/areas/<area name>/autoGeneration
父节点和/content
子节点需要有这些特定的名字。这种命名规则和节点结构将配置识别为自动生成内容。子节点需要有这些特定的名字。这种命名规则和节点结构可以识别配置为自动生成内容。/autoGeneration/generatorClass
节点分配CopyGenerator
类,允许任何该组件可用的属性使用被类,允许使用templateId
属性引用。属性引用的组件可用的任何属性。/autoGeneration/content/calendar
节点可以被任意命名。这个例子中的属性只是必需的属性,但可以依据引用的组件(参考以下样例)添加额外的属性。nodeType
被设置为mgnl:component
,以将引用的组件识别为一个组件。,将引用的组件识别为一个组件。
templateId
定义到组件定义的路径,使用<module name>:<path to definition>
格式。
...
下面的例子在stkArticle
模板的main/content
区域自动生成stkHTML
组件。因为其他内容模板扩展该模板,该组件也在组件。因为有其他内容模板扩展了该模板,该组件也在stkLargeArticle
,、stkNews
,、stkEvent
和stkGlossaryTerm
模板上绘制。
这是绘制stkHTML
组件的html.ftl
脚本。注意一个单属性,脚本。注意,editHTML
,在此组件中绘制。属性在此组件中绘制。
Code Block |
---|
[#if content.editHTML?has_content] ${cmsfn.decode(content).editHTML} [/#if] |
这是样例的配置,用来在以下配置样例用来在stkArticle
模板的main/content
区域绘制此组件:
- 基本配置与上一个例子一样。基本配置与上例一样。
editHTML
属性的添加会在脚本里添加由[cmsfn.decode]
方法绘制的HTML代码。
Advanced Tables - Table Plus | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
|
这里是基于stkArticle
模板的新页面上的自动生成组件。模板的一个新页面上的自动生成组件。
...
特性组件
特色模板主要由在页面模板的特性模板主要由在页面模板的main/content
区域绘制的组件区分开。stkImagGallery
,stkFAQ
,stkSiteMap
等组件在stkImageGallery
, stkFAQ
, stkSiteMap
等模板的该区域绘制。组件由页面模板自动绘制,由自动生成特性完成。
...