Page History
在网站定义里,模板原型配置缺省的备用模板定义。它:
- 定义全局缺省值,并且是以下内容的起点:
- STK > Template Definitions模板定义
/pages
里配置的所有具体模板定义。 - STK > Site Definitions网站定义
/variations/<variation name>/templates节点下配置的所有模板变异形式。
- 定义单个模板的基本结构,包括:
- 水平和垂直导航的内容和行为。
- 可用的区域以及它们的缺省行为。
- 每个区域缺省可用的组件(如果有的话)。
每个在STK > Template Definitions模板定义里配置的具体的页面模板都有其独特之处。模板原型定义了在大多数模板里很有可能被用到的设置。这使得配置更高效,因为在页面模板定义里只需要定义例外情况就行了。例如,平台区域在原型里默认是禁用的。此区域不被任何具体的模板使用,但对于页面来说是一个不错的附加。它可以通过添加一个简单的节点来启用。
Table of Contents |
---|
模板合并
在页面被请求时,模板原型与具体模板合并。下面的例子展示了合并在stkHome
页面模板里是如何发生的。注意main
和extras
区域。
- 模板原型是最基本的配置。它为
main
和extras
区域定义必需的属性来使它们在所有页面上工作。原型也定义它们的子区域(没有体现在图表中)。 stkHome
是具体的模板定义,从模板原型继承了基础区域配置。一个具体的定义可以添加或覆写继承的所有配置。例如,floating
配置被添加到main
区域。这原本不在原型中。templateScript
属性就是覆写的一个例子。具体定义包括该属性,但提供了一个不同的值,它使用一个不同的为章节页剪裁的mainArea.ftl
脚本。extras
区域的enabled
属性被设置为false
,使该区域被禁用。- 结果是原型和具体定义的合并。它以
def
模板支持对象形式呈现给模板脚本。这就意味着脚本可以用${def.propertyName}
获得属性的值。
页面配置
缺省的模型原型结构和行为在STK > Site Definitions网站定义 /default/templates/prototype里配置。
templateScript
属性引用主页面模板脚本,main.ftl。
这使脚本对所有在STK > Template Definitions 模板定义
里定义的具体模板定义都可用。/pages
navigation
节点包含缺省的导航配置。areas
节点包含区域配置。jsFiles
和cssFiles
节点可以用来提供额外JavaScript功能和CSS样式。由于缺省主题包含所有必要的内容,这些节点没有在演示网站里应用,但如果需要的话也是可用的。Advanced Tables - Table Plus heading 0 multiple false enableHeadingAttributes false enableSorting false class m5-configuration-tree enableHighlighting false 节点名 值 default
templates
prototype
navigation
areas
jsFiles
cssFiles
templateScriptParagraph /templating-kit/pages/main.ftl availability
...
allOpen:
当被设置为true
时,所有可用的导航级别都被展开。当设置为false
时,新的级别会随着用户点击导航链接而被展开。enabled
:启用和禁用导航菜单。level
:设置导航的深度。可用的选项为水平方向1
和2,
垂直方向3。
startLevel
:开启导航时的级别起点。通常垂直遵循水平,没有级别重叠。例如,该属性可以让您在两种导航中显示级别。template
:到模板脚本的路径。vertical
和horizontal
节点引用它们自己的脚本。Advanced Tables - Table Plus heading 0 multiple false enableHeadingAttributes false enableSorting false class m5-configuration-tree enableHighlighting false 节点名 值 default
templates
prototype
navigation
horizontal
allOpenParagraph false
enabledParagraph true
levelParagraph 1
templateParagraph /templating-kit/pages/global/horizontalNavigation.ftl vertical
allOpenParagraph false
enabledParagraph true
levelParagraph 2
startLevelParagraph 2
templateParagraph /templating-kit/pages/global/verticalNavigation.ftl
Tip |
---|
您可以设置导航值大于 |
网站导航模型将配置属性显示给绘制垂直和水平导航的脚本。脚本在STK > Templates 资源 /templating-kit/pages/global/horizontalNavigation.ftl
和/verticalNavigation.ftl
里。以下为水平脚本的片段。
...
区域配置
区域定义在模板原型页面定义里配置。STK > Site Definitions 网站定义 /default/templates/prototype/areas内容节点包含可用的页面区域的定义。区域被作内容地图用。区域定义使区域对模板可用,定义区域的行为,以及哪些组件(如果有的话)在区域里可用。
...
description
设置区域描述的消息包关键字。enabled是一个
布尔属性,有true
和false
两个值可选,来启用或禁用该区域。该属性缺省值为true
,故当此属性被忽略时,区域默认被启用。模板原型里启用的区域可通过修改原型的值在具体模板里禁用。templateScript
设置到绘制区域的脚本的路径。专用脚本仅在做简单绘制区域以外的事时才需要。所有的具体模板使用原型里定义的脚本,除非模板定义里引用了另一个脚本。例如,main
区域通过STK > Templates模板/templating-kit/pages/global/mainArea.ftl
为所有具体模板绘制,除了stkSection
和stkHome
使用/templating-kit/pages/section/mainArea.ftl
。title
为区域名设置消息包关键字。该值在区域工具栏里绘制。type
定义多少组件(如果有的话)可在区域里绘制。可用的选项在以下的区域类型中讨论。Advanced Tables - Table Plus heading 0 multiple false enableHeadingAttributes false enableSorting false class m5-configuration-tree enableHighlighting false 节点名 值 prototype
areas
base
availableComponents
descriptionParagraph areas.templates.base.description
enabledParagraph true
templateScriptParagraph /templating-kit/pages/global/baseArea.ftl
titleParagraph areas.templates.base.title
typeParagraph list
...
- 前两个用来绘制组件在
/<area name>/availableComponents
节点下可用(参考以下的可用组件): single
区域在页面上生成一个组件。编辑者可以从很多组件类型中选择,但只可以添加一个。单个区域的例子有stage
这样有两种大的要点类型可选的,以及opener
和comments
这样只有一个组件类型可用的。list
区域在页面上绘制任意数量的有序组件。编辑者可用的组件类型的选择可以从一个到多个。列表区域的例子有metaNavigation,
content,
extras1/2,
base,
footer
这些有多个组件类型可用的,以及promos
这种编辑者只可以添加一个组件类型的。noComponent
区域不绘制在<area name>/availableComponents
节点下可用的组件,但可绘制配置不同的组件。noComponent
区域的例子有:intro
和sectionHeader
,绘制Page Header页面头部和Section Header章节头部组件。branding,
main
和extras
,包含子区域。htmlHeader
,logo,
search
和breadcrumb
,通过区域脚本绘制。
您可以在具体定义里改变type
区域。参看模板定义 > 改变区域行为了解这在特性模板上是如何实现的。
区域脚本
模板原型所使用的区域脚本在STK > Templates模板 /templating-kit/pages
下可获得。多数区域脚本只简单的分配一个DIV元件以要求绘制区域,而不定义在区域里有什么,因为那是区域定义的责任。
...
/areas/<area name>/availableComponents
节点使组件在区域内可用。此节点只能被list
和single
区域类型使用。它配置一个组件的内容地图,这些组件是通过读取使用Node2Bean机制写进Java Bean的配置来建立的。
注意以下几点:
- 组件定义通常在STK > Template Definitions模板定义
/components
里配置,在这里设置为对模板原型可用。 - 每个组件都是在一个子内容节点下配置的。
- 通常情况下,内容节点名对应组件定义里的内容节点名,但这也并不是严格必须。
id属性以<module name>:<path to component definition>格式定义到组件定义的路径。
这就允许从任何模块来添加组件,而不仅限于STK组件。- 标准的一套组件在原型里对多数区域可用。只要不是在具体模板定义里配置了覆写或添加,相同的组件在所有模板里都可用。样例可参考
extras
区域,base
区域和promos
区域。 一个值得注意的例外情况是
content
区域。该区域使具体模板脱颖而出的方法是,使这几种不同的组件类型可用:内容模板里的内容组件,主页和章节模板的要点,以及特性模板里的独特组件。因此,这些组件在具体的模板定义里被设置为可用,而在原型里却不可用。Advanced Tables - Table Plus heading 0 multiple false enableHeadingAttributes false enableSorting false class m5-configuration-tree enableHighlighting false 节点名 值 prototype
areas
base
availableComponents
stkTeaserCarousel
idParagraph standard-templating-kit:components/teasers/stkTeaserCarousel catCloudWide
idParagraph categorization:components/catCloudWide
...
您可以在availableComponents
节点下限制单个组件对特定角色用户的可用性,用户的角色在Security安全应用的Roles角色标签里设定。角色里有更多信息。下列配置样例限制了stkPromo
组件仅对superuser
角色可用。
...
您可以添加一个maxComponents
属性到<area name>
名字节点并设置合适的值,来限制在list
区域绘制的组件数量。一旦数量达到限制,New Component新建组件输入框就会被Maximum Components Reached通知替代,来阻止编辑者添加更多的组件。下列配置样例将base
区域的组件数量限制为2。
...
- 自动继承:只能在父页面上添加组件,所有子页面自动继承。
metaNavigation
区域为此类继承的例子。 - 选择性继承:编辑者可以决定一个特定的组件是否可以扩展到子页面上。组件对话框里有Show in subpages在子页面中显示勾选框。只有当此勾选框被勾选时,组件才会扩展。
extras1/2
和promos
区域都是这类继承的样例。
...
enabled
属性启用和禁用区域继承,对组件继承和属性继承两者皆然。components
属性有三个选项:all
配置自动继承。此区域里添加的所有组件都自动延伸到子页面。filtered
配置选择性继承。此区域内添加的组件只有当组件对话框里的Show in subpage在子页面中显示框被勾选时才向下延伸。inheritable
属性时在组件内容节点上创建,它的值被设置为true
。该属性是选择器的触发者。只有该属性值为true
的节点才被子页面继承。none
表示没有组件被继承。该属性有效的禁用了组件继承,不需要同时禁用属性继承。参看以下的属性继承。
...
CSS和JavaScript可在必要时被添加到模板原型中。这个选项在/default/template/prototype配置中并未使用,因为所有必要的样式表和
JavaScripts都被包含在缺省的pop主题里了,pop主题在
网站定义/theme节点里提到。
参考主题和HTML头部区域以获得更多关于标准配置的信息。
以下配置样例在模板原型级别STK > Site Definitions 网站定义 /default/templates/prototype/cssFiles
和/jsFiles
里添加了一个额外的Javascript和CSS文件。
...