Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

网站定义里,模板原型配置缺省的备用模板定义。它:

  • 定义全局缺省值,并且是以下内容的起点:
    • STK > Template Definitions /pages里配置的所有具体模板定义。
    • STK > Site Definitions /variations/<variation name>/templates节点下配置的所有模板变异形式。
  • 定义单个模板的基本结构,包括:
    • 水平和垂直导航的内容和行为。
    • 可用的区域以及它们的缺省行为。
    • 每个区域缺省可用的组件(如果有的话)。

每个在STK > Template Definitions里配置的具体的页面模板有其独特之处。模板原型定义了在大多数模板里很有可能被用到的设置。这使得配置更高效,因为在页面模板定义里只需要定义例外情况就行了。例如,平台区域原型里默认是禁用的。此区域不被任何具体的模板使用,但对于页面来说是一个不错的附加。它可以通过添加一个简单的节点来启用。

Table of Contents

模板合并

在页面被请求时,模板原型与具体模板合并。下面的例子展示了合并在stkHome页面模板里是如何发生的。注意mainextras区域。

  1. 模板原型是最基本的配置。它为mainextras区域定义必需的属性来使它们在所有页面上工作。原型也定义它们的子区域(没有体现在图表中)。
  2. stkHome是具体的模板定义,从模板原型继承了基础区域配置。一个具体的定义可以添加或覆写继承的所有配置。例如,floating配置被添加到main区域。这原本不在原型中。templateScript属性就是覆写的一个例子。具体定义包括该属性,但提供了一个不同的值,它使用一个不同的为章节页剪裁的mainArea.ftl脚本。extras区域的enabled属性被设置为false,使该区域被禁用
  3. 结果是原型和具体定义的合并。它以def模板支持对象形式呈现给模板脚本。这就意味着脚本可以用${def.propertyName}获得属性的值。

...

 

Tip

footer区域是一个list区域,绘制availableComponents节点和由脚本绘制的Footer组件下的组件。

 

您可以在具体定义里改变type区域。参看模板定义 > 改变区域行为了解这在特性模板上是如何实现的。

区域脚本

模板原型所使用的区域脚本在STK > Templates /templating-kit/pages下可获得。多数区域脚本只简单的分配一个DIV元件以要求绘制区域,而不定义在区域里有什么,因为那是区域定义的责任。

...

  • 组件定义通常在STK > Template Definitions /components里配置,在这里设置为对模板原型可用。
  • 每个组件都是在一个子内容节点下配置的。
    • 通常情况下,内容节点名对应组件定义里的内容节点名,但这也并不是严格必须。
    • id属性以<module name>:<path to component definition>格式定义到组件定义的路径。这就允许从任何模块来添加组件,而不仅限于STK组件。
  • 标准的一套组件在原型里对多数区域可用。只要不是在具体模板定义里配置了覆写或添加,相同的组件在所有模板里都可用。样例可参考附加区域extras区域基本区域base区域推广区域promos区域
  • 一个值得注意的例外情况是内容区域content区域。该区域使具体模板脱颖而出的方法是,使这几种不同的组件类型可用:内容模板里的内容组件,主页和章节模板的要点,以及特性模板里的独特组件。因此,这些组件在具体的模板定义里被设置为可用,而在原型里却不可用。

    Advanced Tables - Table Plus
    heading0
    multiplefalse
    enableHeadingAttributesfalse
    enableSortingfalse
    classm5-configuration-tree
    enableHighlightingfalse
    节点名

    prototype

     

    areas

     

    base

     

    availableComponents

     

    stkTeaserCarousel

     

    Paragraph

    id

    standard-templating-kit:components/teasers/stkTeaserCarousel

    catCloudWide

     

    Paragraph

    id

    categorization:components/catCloudWide

...

比较器类定义了被继承的组件以何种顺序绘制。您可以定义自己的比较器类,只需添加一个nodeComparatorClass属性到inheritance配置中,并将其值设置为您的类的完全相称类名。这将会覆写缺省的排序行为。

参考继承的组件可继承组件中关于配置组件继承的教程。

属性继承

属性继承的意思是区域属性会被子页面继承。演示网站没有使用该选项。属性继承通过添加properties数据节点到/areas/<area name>/inheritance内容节点来配置。可用选项有:

...

区域定义可以自动生成组件。自动生成的组件可以在/areas/<area name>/autoGeneration/content节点里添加。该配置选项在模板原型级别可用,但未被使用。通常它用在具体模板级别更有意义,在STK里,它被用在特色模板里和stkNewsOverview模板的extras区域。参考模板定义-自动生成的组件以获得更多信息。

浮动显示

区域定义里的/floating内容节点指定区域内的元件是否可以浮动显示(并排显示),以及如果可以浮动显示的话,它们会被安排进多少列。与autoGeneration不同,floating不可在模板原型级别里不经过定制就进行配置。它在stkHomestkSection模板的main/content区域可用。参考启用浮动显示中更多信息。

CSS和JavaScript

CSS和JavaScript可在必要时被添加到模板原型中。这个选项在/default/template/prototype配置中并未使用,因为所有必要的样式表和JavaScripts都被包含在缺省的pop主题里了,pop主题在网站定义/theme节点里提到。参考主题 and HTML头部区域以获得更多关于标准配置的信息。

以下配置样例在模板原型级别STK > Site Definitions /default/templates/prototype/cssFiles/jsFiles里添加了一个额外的Javascript和CSS文件。

...