Versions Compared

Key

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

...

每个STK页面模板都属于一个类别,除stkHomestkRedirect以外的所有模板都有一个以外的每个模板都还属于一个子类(subcategory)。类别使您能够控制模板可被用在网站上的什么位置。如果一个模板类别不被允许在网站结构的指定位置出现,它将不会对编辑者可用。分类机制因此确保了模板分配的一致性,并使您的网站有一个可控的结构。)。类别让您能够控制模板在网站上出现的位置。如果网站结构的指定位置不允许一个模板类别出现,那么编辑者将看不到此类别。因此,分类机制确保了模板分配的一致性,并使您的网站有一个可控的结构。

类别建立了一个隐含的模板层次结构,它们定义哪个模板可被分配到一个页面。例如,类别建立了一个隐含的模板层次结构,定义页面可以分配的模板。例如,stkHome模板属于home分类。分类,home分类只能被用于网站的根页面。同样地,分类只能用于网站的根页面。相似地,content分类的模板只能被用在位于使用类模板只能用于使用了sectionfeature,或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为使用模板的类别添加实用方法。子类别不是固定的,您可以在模板定义里直接设置它们。为使用模板的类别添加了实用方法。子类别由于不是固定的,您可以直接在模板定义里设置。

硬编码的缺省类别可用性逻辑为:类别的可用性逻辑是硬编码的,它的默认设置为:

  • 只有homefunctional分类可以被分配给网站的根页面
  • home在每个页面只可以被分配一次。您可以定义很多主页模板,如有着不同的列布局的模板,都属于在每个页面只可以被分配一次。您可以定义很多主页模板,如有着不同的列布局的模板,使他们都属于home分类,但您一次只可以分配它们当中的一个。
  • functional可以被分配给任意页面,无论父模板的类别如何。这就意味着,比如,您可以在网站的任意位置有一个重定向页面等。可以被分配给任意页面,不管父模板的类别是什么。举个例子,也就是说,您可以在网站的任意位置有一个重定向页面。
  • section只可以被分配给父页面类别为homesectionfunctional,或feature的页面。换句话说,它可以被分配给除父页面为content页以外的所有页面。类以外的所有页面。
  • contentfeature可以被分配给父页面类别为sectioncontentfunctional,或feature的页面。换句话说,它可以被分配到除主页外的所有页面下。feature可以被分配给父页面类别为sectioncontentfunctional,或feature的页面。换句话说,它可以被分配到除主页外的所有页面下。的页面。换句话说,它们可以被分配到除主页外的所有页面下。

区域定义

区域定义很强大,您在定义里可以找到很多模板独特的配置。本小节概述了区域定义通常是如何使用的。为了演示方便,我们提供一些添加功能和特性的样例,来演示具体模板与区域定义功能强大,您可以在定义里找到很多模板独特的配置。本页概述了一般如何使用区域定义。为了演示方便,我们提供一些添加功能和特性的样例,来演示具体模板与模板原型的不同。的不同。这些样例展示了系统的灵活性,但并不详尽。STK区域里有对每个区域更深层的讨论。这些样例展示了系统的灵活性,但并不详尽。您可以把它们综合起来创造出更多的可能。里有对每个区域更深层的讨论。您可以把它们综合起来创造出更多的可能。

引用对话框

区域定义可以引用对话框。该选项用在所有具体模板(除了区域定义可以引用对话框。除了stkHome)的的所有具体模板的main/intro区域,来引用模板专用的区域都使用该选项,来引用模板专有的属性对话框。参考。更多信息参考intro区域以获得更多信息。

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

stkSection

 

areas

 

main

 

areas

 

intro

 

Paragraph

class

info.magnolia.module.templatingkit.templates.MainAreaIntro

Paragraph

dialog

standard-templating-kit:pages/section/stkSectionIntro

Paragraph

divID

page-intro

Paragraph

showAuthorDate

false

Paragraph

showTextFeatures

false

使组件可用

模板原型使组件在区域内可用,区域里的所有模板有同样的一套组件是合理的。促销区域(使组件在区域内可用。所有模板的相同区域应该有同样的一套组件,促销区域(extraspromos,和base)便是这样的例子。main/content区域比较特别,在这里组件对具体模板可用。区域比较特别,在这里,组件的可用性在具体模板里定义。

组件可被添加到任何组件可添加到任何listsingle区域。详细信息可参考区域。详细信息参考区域类型

您可以添加组件到任意模板的您可以在任何模板的/areas/<area name>/availableComponents节点。以下的配置添加节点里添加组件。以下的配置在stkArticle模板的promos区域添加stkTextImagestkQuotedText组件到stkArticle模板的promos区域。加上原型使stkPromo组件可用,这样就共有三个组件在stkArticle里可用了。stkQuotedText组件。加上原型使stkPromo组件可用,这样stkArticle里就共有三个组件了。

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

stkArticle

 

areas

 

promos

 

availableComponents

 

stkTextImage

 

Paragraph

id

standard-templating-kit:components/content/stkTextImage

stkQuotedText

 

Paragraph

id

standard-templating-kit:components/content/stkQoutedText
Tip

不是所有组件在所有区域里都能很好的绘制,您可能需要修改CSS表或组件定义。例如,在以上配置中,因为不是所有组件在所有区域里都能很好的绘制,您可能需要修改CSS表或组件定义。例如,在以上配置中,stkQuotedText将不会获得CSS表在将不使用CSS表在promos里使用的背景字体或quote.png图片,正如它在图片,这与它在main/content区域里一样。区域里的情况不同。

 

如果您想要减少原型里可用的组件数量,您可以使用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
    heading0
    multiplefalse
    enableHeadingAttributesfalse
    enableSortingfalse
    classm5-configuration-tree
    enableHighlightingfalse
    节点名

    stkEventsOverview

     

    areas

     

    promos

     

    availableComponents

     

    stkPromo

     

    Paragraph

    enabled

    false

    stkExtrasContact

     

    Paragraph

    id

    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
    heading0
    multiplefalse
    enableHeadingAttributesfalse
    enableSortingfalse
    classm5-configuration-tree
    enableHighlightingfalse
    节点名

    stkNews

     

    areas

     

    main

     

    areas

     

    content

     

    availableComponents

     

    stkTextImage

     

    Paragraph

    id

    standard-templating-kit:components/content/stkTextImage

    Paragraph

    extends

    override

    Paragraph

    dialog

    standard-templating-kit:pages/news/stkNewsProperties

    Paragraph

    extends

    /modules/standard-templating-kit/templates/pages/stkArticle

    Paragraph

    subcategory

    news

    Paragraph

    title

    templates.stkNews.title

限制组件使用

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

  • roles内容节点警告Magnolia CMS可能的使用限制。内容节点提醒Magnolia CMS可能有使用限制。
  • 值也为superusersuperuser数据节点限制了只有被分配了superuser角色的用户才能使用组件。参考角色里的详细信息。数据节点值也设置为superuser,限制了只有superuser角色的用户才能使用组件。详细信息参考角色

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

    stkArticle

     

    areas

     

    main

     

    areas

     

    content

     

    availableComponents

     

    stkHTML

     

    roles

     

    Paragraph

    superuser

    superuser

    Paragraph

    id

    standard-templating-kit:components/content/stkHTML

    stkTextImage

     

    stkQuotedText

     

您可以这样来测试,以样例编辑者Eric(您可以这样来测试:以样例编辑者Eric(username/password=eric)的身份登录,并尝试添加stkHTML组件到任何文章页面的content区域。)的身份登录,尝试在任意文章页面的content区域添加stkHTML组件。结果将会是,stkHTML组件在选择器对话框里不可用。

(warning) 4.5.9 + 引入了两个有关组件可用性的新特性。它们以与原型模板里相同的方式在模板级别上配置。您也可以:引入了两个有关组件可用性的新特性,它们与原型模板一样在模板级别配置。您也可以:

  • maxComponents属性限制编辑者能够添加到区域里的组件数量。
  • 基于分配给用户的角色,定义细粒度的行为限制。参考限制组件动作以获得更多信息。

修改区域行为

main/content区域是把模板区别开的主要因素。在模板原型里,该区域被定义为type=list,缺省情况下允许无数量限制的添加有序组件。

...