Page History
...
每个STK页面模板都属于一个类别,除stkHome
和stkRedirect
以外的所有模板都有一个以外的每个模板都还属于一个子类(subcategory
)。类别使您能够控制模板可被用在网站上的什么位置。如果一个模板类别不被允许在网站结构的指定位置出现,它将不会对编辑者可用。分类机制因此确保了模板分配的一致性,并使您的网站有一个可控的结构。)。类别让您能够控制模板在网站上出现的位置。如果网站结构的指定位置不允许一个模板类别出现,那么编辑者将看不到此类别。因此,分类机制确保了模板分配的一致性,并使您的网站有一个可控的结构。
类别建立了一个隐含的模板层次结构,它们定义哪个模板可被分配到一个页面。例如,类别建立了一个隐含的模板层次结构,定义页面可以分配的模板。例如,stkHome
模板属于home
分类。分类,home
分类只能被用于网站的根页面。同样地,分类只能用于网站的根页面。相似地,content
分类的模板只能被用在位于使用类模板只能用于使用了section
,、feature
,或或functional
类模板页面下的页。类模板的页面的子页。
子类别用于内容聚合。例如,系统在news子类别里聚合了所有页面,以生成一个新闻要点的列表。
子类可用于内容聚合。例如,系统在news子类里聚合了所有页面,以生成一个新闻要点的列表。
RSS种子的生成就是一个例子。
以下五个模板类别非常符合STK模板的计划用途。以下五个模板类别与STK模板的计划用途相呼应。
类别 | 描述 | 类别里的模板 |
---|---|---|
home | 网站的根页面。 | stkHome |
functional | 执行操作而非生成内容的特定模板。 | stkRedirect |
section | 组成网站的章节。demo-project站点有诸如新闻( News),事件(Events),和服务(Service)的章节。您的也可以是产品(Products),服务(Services),以及支持(Support)。 | stkSection (包括/demo-features 里的变异形式 ), stkGlossaryLetter |
feature | 特定模板和收集或聚合内容的模板。 | stkForm stkFormStep stkImageGallery stkFAQ stkPublicUserRegistration stkSearchResult stkSiteMap stkGlossary stkNewsOverview stkEventsOverview stkCategoryOverview |
content | 核心内容页面。 | stkArticle stkLargeArticle stkNews stkEvent stkGlossaryTerm |
模板的可用性和层次结构都由STKTemplateAvailability
类来控制,这个类同时也实现TemplateAvailability
包装类。后者包含网站上可用的模板列表。可用性首先在包装类(后者还包含了网站上可用模板的列表)。可用性首先在网站定义的/template/availability
节点下配置,其次是通过类别配置。类别的可用性逻辑被硬编码方式写入节点下配置,其次是通过类别配置。类别的可用性逻辑以硬编码(hard-coded)方式写入TemplateCategory
里,它们不可以不通过扩展此类就直接声明。里,所以必须先扩展此类才能声明。另外,TemplateCategoryUtil
为使用模板的类别添加实用方法。子类别不是固定的,您可以在模板定义里直接设置它们。为使用模板的类别添加了实用方法。子类别由于不是固定的,您可以直接在模板定义里设置。
硬编码的缺省类别可用性逻辑为:类别的可用性逻辑是硬编码的,它的默认设置为:
只有home
和functional分
类可以被分配给网站的根页面。
home
在每个页面只可以被分配一次。您可以定义很多主页模板,如有着不同的列布局的模板,都属于在每个页面只可以被分配一次。您可以定义很多主页模板,如有着不同的列布局的模板,使他们都属于home分
类,但您一次只可以分配它们当中的一个。functional
可以被分配给任意页面,无论父模板的类别如何。这就意味着,比如,您可以在网站的任意位置有一个重定向页面等。可以被分配给任意页面,不管父模板的类别是什么。举个例子,也就是说,您可以在网站的任意位置有一个重定向页面。section
只可以被分配给父页面类别为home
,section
,functional
,或feature
的页面。换句话说,它可以被分配给除父页面为content
页以外的所有页面。类以外的所有页面。content
和feature
可以被分配给父页面类别为
,section
,content
,或functional
的页面。换句话说,它可以被分配到除主页外的所有页面下。feature
feature可以被分配给父页面类别为
的页面。换句话说,它们可以被分配到除主页外的所有页面下。
,section
,content
,或functional
的页面。换句话说,它可以被分配到除主页外的所有页面下。feature
区域定义
区域定义很强大,您在定义里可以找到很多模板独特的配置。本小节概述了区域定义通常是如何使用的。为了演示方便,我们提供一些添加功能和特性的样例,来演示具体模板与区域定义功能强大,您可以在定义里找到很多模板独特的配置。本页概述了一般如何使用区域定义。为了演示方便,我们提供一些添加功能和特性的样例,来演示具体模板与模板原型的不同。的不同。这些样例展示了系统的灵活性,但并不详尽。STK区域里有对每个区域更深层的讨论。这些样例展示了系统的灵活性,但并不详尽。您可以把它们综合起来创造出更多的可能。里有对每个区域更深层的讨论。您可以把它们综合起来创造出更多的可能。
引用对话框
区域定义可以引用对话框。该选项用在所有具体模板(除了区域定义可以引用对话框。除了stkHome
)的的所有具体模板的main/intro
区域,来引用模板专用的区域都使用该选项,来引用模板专有的属性对话框。参考。更多信息参考intro区域以获得更多信息。。
Advanced Tables - Table Plus | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
|
使组件可用
模板原型使组件在区域内可用,区域里的所有模板有同样的一套组件是合理的。促销区域(使组件在区域内可用。所有模板的相同区域应该有同样的一套组件,促销区域(extras
,、promos
,和和base
)便是这样的例子。main/content
区域比较特别,在这里组件对具体模板可用。区域比较特别,在这里,组件的可用性在具体模板里定义。
组件可被添加到任何组件可添加到任何list
或single
区域。详细信息可参考区域。详细信息参考区域类型。
您可以添加组件到任意模板的您可以在任何模板的/areas/<area name>/availableComponents
节点。以下的配置添加节点里添加组件。以下的配置在
模板的stkArticle
区域添加了promos
stkTextImage
和stkQuotedText
组件到
模板的stkArticle
区域。加上原型使promos
stkPromo
组件可用,这样就共有三个组件在stkArticle
里可用了。stkQuotedText
组件。加上原型使stkPromo
组件可用,这样stkArticle
里就共有三个组件了。
Advanced Tables - Table Plus | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
|
Tip |
---|
不是所有组件在所有区域里都能很好的绘制,您可能需要修改CSS表或组件定义。例如,在以上配置中,因为不是所有组件在所有区域里都能很好的绘制,您可能需要修改CSS表或组件定义。例如,在以上配置中, |
如果您想要减少原型里可用的组件数量,您可以使用enabled
属性来禁用特定组件。注意extends=override
属性不能用于这种情况,因为模板合并不依赖于扩展机制。
以下的配置样例使用了stkEventsOverview
模板。模板:
- 该模板不是任何其他模板的扩展。
/areas/promos/availableComponents
节点的添加使Magnolia CMS了解对原型的修改是在此区域配置的。CMS了解此区域修改了原型。/availableComponents/stkPromo/enabled
节点禁用此区域的节点禁用了此区域的stkPromo
组件。/availableComponents/stkExtrasContact节点使
stkExtrasContact组件取代
stkPromo组件
可用。
stkExtrasContact
节点里使能了stkExtrasContact
组件,禁用了
组件。stkPromo
Advanced Tables - Table Plus heading 0 multiple false enableHeadingAttributes false enableSorting false class m5-configuration-tree enableHighlighting false 节点名 值 stkEventsOverview
areas
promos
availableComponents
stkPromo
enabledParagraph false stkExtrasContact
idParagraph standard-templating-kit:components/extras/stkExtrasContact
这里是这是/demo-project/news-and-events/events-overview
页面上的新组件。
如果您想要使不同的组件在扩展了另一模板的模板里可用,您可以使用如果一个模板是对另一个模板的扩展,而您想要在前者中使用与后者里不同的组件,您可以使用extends=override
属性。
下列配置样例使用了stkNews
模板:
- 该模板是
stkArticle
模板的一个扩展。这是在模板的扩展。这是在/stkNews/extends
节点下配置的。 - 添加
/areas/content/extends
属性并设置为override
,就会告诉Magnolia CMS忽略(覆写)stkArticle
模板里的/areas/content
配置。这个配置使得8种内容组件可用。配置。这个配置使得8个内容组件可用。 添加
/areas/content/availableComponents
节点使得节点,使stkNews
模板里只有stkTextImage
组件可用。Advanced Tables - Table Plus heading 0 multiple false enableHeadingAttributes false enableSorting false class m5-configuration-tree enableHighlighting false 节点名 值 stkNews
areas
main
areas
content
availableComponents
stkTextImage
idParagraph standard-templating-kit:components/content/stkTextImage
extendsParagraph override
dialogParagraph standard-templating-kit:pages/news/stkNewsProperties
extendsParagraph /modules/standard-templating-kit/templates/pages/stkArticle
subcategoryParagraph news
titleParagraph templates.stkNews.title
限制组件使用
您可以在模板定义里限制任意区域内可用组件的使用权。您可以在模板定义里,限制对区域内任意可用组件的使用权。stkArticle
模板里有一个配置样例,限制了只有被分配了模板里有一个配置样例,限制了只有superuser
角色的用户可以使用stkHTML
组件。任何有着较少权限的用户都不可以使用该组件。此项配置在组件,任何有着较少权限的用户都不可以使用该组件。这是在STK > 模板定义 /pages/stkArticle/areas/main/areas/content/availableComponents/stkHTML
里:里配置的:
roles
内容节点警告Magnolia CMS可能的使用限制。内容节点提醒Magnolia CMS可能有使用限制。值也为
superuser
的superuser
数据节点限制了只有被分配了superuser
角色的用户才能使用组件。参考角色里的详细信息。数据节点值也设置为superuser,
限制了只有superuser
角色的用户才能使用组件。详细信息参考角色。Advanced Tables - Table Plus heading 0 multiple false enableHeadingAttributes false enableSorting false class m5-configuration-tree enableHighlighting false 节点名 值 stkArticle
areas
main
areas
content
availableComponents
stkHTML
roles
superuserParagraph superuser
idParagraph standard-templating-kit:components/content/stkHTML stkTextImage
stkQuotedText
您可以这样来测试,以样例编辑者Eric(您可以这样来测试:以样例编辑者Eric(username/password=eric
)的身份登录,并尝试添加stkHTML
组件到任何文章页面的content
区域。)的身份登录,尝试在任意文章页面的content
区域添加stkHTML
组件。结果将会是,stkHTML
组件在选择器对话框里不可用。
4.5.9 + 引入了两个有关组件可用性的新特性。它们以与原型模板里相同的方式在模板级别上配置。您也可以:引入了两个有关组件可用性的新特性,它们与原型模板一样在模板级别配置。您也可以:
- 用
maxComponents
属性限制编辑者能够添加到区域里的组件数量。 - 基于分配给用户的角色,定义细粒度的行为限制。参考限制组件动作以获得更多信息。。
修改区域行为
main/content区域是把模板区别开的主要因素。在模板原型里,该区域被定义为type=list
,缺省情况下允许无数量限制的添加有序组件。
...