Versions Compared

Key

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

STK具体页面模板和组件模板定义在STK > Template Definitions模板定义下配置。

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

pages

 

components

 

...

页面定义

所有STK页面模板的具体模板定义都在STK > Template Definitions 模板定义 /pages里配置。

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

 pages

 

demo-features

 

stkHome

 

stkSection

 

stkArticle

 

这些模板可供编辑者在Pages页面应用里选择使用。它们可以出现在Pages页面应用的Template模板域里,只需要:

  • 通用属性里,visible属性设置为true
  • 模板在缺省网站定义或企业版里任意其他网站定义里可用。
  • 编辑者的权限已经足够获取特定的模板了。基于role的限制可利用原型里的/availability/<template name>/roles节点来添加。

...

  • class节点里分配的STKPage定义基本模板定义。
  • modelClass节点里分配的STKPageModel为基本页面模型,提供页面级功能。它扩展STKPage
  • 值为stk的renderType节点分配STKRenderer为STK专用绘制器,被所有STK模板(页面和组件)使用。
  • 国际化关键字,info.magnolia.module.templatingkit.messages,在i18nBasename节点下分配。这也是指向包含STK翻译的消息包的关键字。
  • 设置为truevisible属性使模板在Pages页面应用里对编辑者可用。

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

     pages

     

    stkArticle

     

    areas

     

    Paragraph

    bodyID

    article

    Paragraph

    category

    content

    Paragraph

    class

    info.magnolia.module.templatingkit.templates.pages.STKPage

    Paragraph

    dialog

    standard-templating-kit:pages/article/stkArticleProperties

    Paragraph

    i18nBasename

    info.magnolia.module.templatingkit.messages

    Paragraph

    modelClass

    info.magnolia.module.templatingkit.templates.pages.STKPageModel

    Paragraph

    renderType

    stk

    Paragraph

    subcategory

    article

    Paragraph

    title

    templates.stkArticle.title

    Paragraph

    visible

    true

...

  • stkRedirect模板使用它自己的:
    • modelClassRedirectTemplateModel用于扩展STKPageModel并提供3个交替的重定向模式,这三个模式取决于编辑者设置的path值:
      • 如果在对话框里输入了内部路径或外部URL,用户将会直接被重定向过去,绘制被跳过,以避免写入响应。
      • 如果没有输入路径,那么页面重定向至找到的第一个子页面。这对于直接显示一个在重定向树的二级或三级定义的页面是很有用的。
      • templateScriptredirectMain.ftl在页面上正确地绘制路径。您可以在STK > 模板 Templates /templating-kit/pages/functional/redirectMain.ftl里查看脚本。

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

         pages

         

        stkRedirect

         

        areas

         

        Paragraph

        bodyID

        redirect

        Paragraph

        category

        functional

        Paragraph

        class

        info.magnolia.module.templatingkit.templates.pages.STKPage

        Paragraph

        dialog

        standard-templating-kit:functional/stkRedirect

        Paragraph

        i18nBasename

        info.magnolia.module.templatingkit.messages

        Paragraph

        modelClass

        info.magnolia.module.templatingkit.templates.RedirectTemplateModel

        Paragraph

        renderType

        stk

        Paragraph

        subcategory

        redirect

        Paragraph

        templateScript

        /templating-kit/pages/functional/redirectMain.ftl

        Paragraph

        title

        templates.stkRedirect.title

        Paragraph

        visible

        true

...

  • bodyID:这是专为模板的样式准备的CSS表所用的标签。参考Body类和ID以获得更多信息。bodyIDsubcategory值常常会一致,但它们彼此之间没有相通的关系。
  • categorysubcategory:每个模板都会被分配一个类别,大多数也会被分配一个子类。类别被用在很多场合,参考下面的类别和子类
  • dialog:每个页面模板会连接到它自己的stk<Template name>Properties对话框,这个对话框在STK > Dialog Definitions 对话框定义 /pages里配置。每个页面顶部工具栏里的Properties属性按钮可以打开此对话框,用来控制浏览器标题和导航标题及行为,页面管理数据(关键字和描述),变异排除和页面依赖性。详细信息参看属性对话框
  • title:在Pages页面应用的Template模板域里显示的模板标题。

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

     pages

     

    stkImageGallery

     

    areas

     

    Paragraph

    bodyID

    image-gallery

    Paragraph

    category

    feature

    Paragraph

    class

    info.magnolia.module.templatingkit.templates.pages.STKPage

    Paragraph

    dialog

    standard-templating-kit:pages/imageGallery/stkImageGalleryProperties

    Paragraph

    i18nBasename

    info.magnolia.module.templatingkit.messages

    Paragraph

    modelClass

    info.magnolia.module.templatingkit.templates.pages.STKPageModel

    Paragraph

    renderType

    stk

    Paragraph

    subcategory

    imageGallery

    Paragraph

    title

    templates.stkImageGallery.title

    Paragraph

    visible

    true

...

您可以在模板定义里限制任意区域内可用组件的使用权。stkArticle模板里有一个配置样例,限制了只有被分配了superuser角色的用户可以使用stkHTML组件。任何有着较少权限的用户都不可以使用该组件。此项配置在STK > Template Definitions > 模板定义 /pages/stkArticle/areas/main/areas/content/availableComponents/stkHTML里:

...

  • 决定整个区域绘制或不绘制,无论区域包含诸如组件的内容,自动生成的内容,还是脚本绘制的内容。内容会保留在内容库中,并且当一个之前被禁用的区域被重新使能后,将会再次绘制。您可以通过在stkArticle模板上禁用extras,并在Tools > 工具 > JCR里查看任何文章页来验证。

    Section
    Column
    width33%

    模板定义

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

    stkArticle

     

    areas

     

    extras

     

    Paragraph

    enabled

    false

    Paragraph

    bodyID

    article
    Column
    width33%

    JCR浏览器(网站)

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

    demo-project

     

    about

     

    subsection-articles

     

    article

     

    extras

     

    extras1

     

    0

     

    00

     

...

浮显是在模板定义的<template name>/areas/main 内容节点里配置的。在STK > Template Definitions 模板定义 /pages/stkHomestkHome模板下:

...

缺省情况下,您可以扩展stkHomestkSection模板来配置一个浮显模板,因为它们都使用SectionMainArea类和要点组件。其它的场景需要定制。STK > Template Definitions 模板定义 /pages/demo-features/stkSectionFloating里的stkSectionFloating模板就是扩展stkSection模板的一个例子:

...

组件是页面上最小的内容块。STK包括用于所有使用案例的组件,和从简单的文本组件到复杂的聚合要点等可用组件。单个组件在组件页上讨论。

组件定义在STK > 模板定义 Template Definitions /components里配置。定义以文件夹的形式排列,文件夹名表示组件类型。

...

  1. 创建一个对话框。
  2. 创建一个组件定义。
  3. 创建一个组件脚本。
  4. 使组件对组件脚本可用。

组件可用于编辑者通过STK > Dialog Definitions对话框定义里配置的相关组件对话框输入内容。对话框定义通过对话框属性映射到组件定义里。

...

  • description:指向组件描述的消息包关键字。
  • dialog:到对话框定义的路径,有着<module name>:<path to definition>结构。大多数STK对话框都在STK > Dialog Defintions对话框定义下配置。
  • 118nBasename:国际化关键字,info.magnolia.module.templatingkit.messages,指向包含STK翻译的消息包。
  • renderType:值为stk时分配的STKRenderer是一个STK专用的绘制器,为所有的STK模板(页面和组件)所使用。
  • templateScript:指向绘制组件的脚本的路径。组件脚本在STK Templates > 模板 /templating-kit/components下。
  • title:在组件工具栏里绘制的组件标题。
  • deletable决定组件是否能被删除。如果设置为false,那么Delete component删除组件动作在动作栏里不可用。(warning) 4.5.9+
  • moveable决定组件是否能被移动。如果设置为false,那么移动图标在组件工具栏里不绘制,并且Move component移动组件动作在动作栏里不可用。(warning) 4.5.9+
  • writable决定组件是否能被编辑。如果设置为false,那么编辑图标在组件工具栏里不绘制,并且Edit component编辑组件动作在动作栏里不可用。(warning) 4.5.9+

参考资料 > 组件里有可用的组件模板属性以及它们的用法的完整列表。

...

internalPage.ftl脚本绘制模型使能的目标内容的属性。以下为这个脚本的片段,该脚本在STK > Templates 模板 /templating-kit/components/teasers/interalPage.ftl

...

以下为newsList.ftl脚本如何绘制divClassdivIDPrefixheadingLevel属性的。您可以在STK >> 模板 Templates /templating-kit/components/teasers/newsList.ftl获得此脚本。

...

  • 子组件被分配到/areas/<area name>/availableComponents节点下。这里的节点结构与区域定义里使组件可用时使用的结构完全一致。
  • 每个子组件都被分配到它自身的子内容节点下,使用与它的组件定义匹配的名字。
  • id属性引用子组件,使用<module name>:<path to component>结构。
  • 每个子组件都是在它自己的组件定义中分别配置。您可以在STK >> 模板定义 Template Definitions /components/links里查看这些。
  • 主组件,嵌套区域和单个子组件都由它们自己的脚本绘制。

...

pureLinkList.ftl脚本使用页面模板里绘制区域的相同代码来绘制主组件。脚本全文在STK > 模板 Templates /templating-kit/components/teasers/pureLinkList.ftl下。这里为相关片段。

...

linkListArea.ftl脚本使用[#list]指令来绘制嵌套组件。脚本全文在STK > Templates 模板 /templating-kit/components/links/linkListArea.ftl里。这里为相关片段。

...

stkExtrasContact组件扩展要点组件,只修改divIDPrefixdialog引用部分。stkExtrasContact对话框也是stkTeaserContact对话框的一个扩展,添加了Show in Subpage在子页面中显示域,允许子页面继承。您可以在STK > 对话框定义 Dialog Definitions /components/teasers/stkTeaserContact/extras/stkExtrasContact里查看引用的对话框。更多信息可参考可继承组件

...

组件定义与其他组件使用的配置方法,您可以在STK > Template Definitions 模板定义 /components/features里查看。

下列所示的stkSiteMap组件:

  • 使用SiteMapParagraphModel,包含了业务逻辑,并使maxLevelsshowSiteMapRoottitleToUse属性对脚本可用。
  • siteMap.ftl脚本绘制,该脚本可在STK > Templates 模板 /templating-kit/components/features/siteMap.ftl找到。

...

当一个基于stkSiteMap模板的页面被创建时,组件被使用区域定义(见下表)中配置的缺省值绘制。编辑者可以在STK > Dialog Definitions对话框定义 /components/features/stkSiteMap下配置的stkSiteMap组件对话框里修改这些缺省值。查看demo-project/service/site-map页了解它是如何工作的。

...

在上面的对话框里,maxLevels属性被设置为4。这是因为模板定义里的缺省值3在此页上已经被覆写了。新值4被存在JCR中,您可以在Tools 工具 > JCR /demo-project/service/site-map/content/singleton中验证。

...