发布模板是要发布的内容的标识卡。 它引用发布过程中使用的资源,即:
发布模板由其名称和命名空间标识。
样式表的标识键是由命名空间和用冒号分隔的名称组成的字符串;例如:cus:newsletter。
在实践中,建议对模式、表单和发布模板使用相同的键。
发布模板默认存储在Administration > Configuration > Publication templates节点中。 要创建新模板,请单击模板列表上方的New按钮。
要配置发布模板,请填充模板的名称(即由名称和命名空间组成的标识键)、其标签、数据模式以及链接到的输入表单。
每当根据此发布模板创建内容时,都会显示标签。
检查状态以验证内容生成选项强制检查内容实例的“已验证”状态以授权文件生成。 有关详细信息,请参阅Publication。
必须为每个输出文档添加转换模板。 您可以创建任意所需数量的转换模板。
Name of template字段是一个免费标签,用于描述输出处的渲染类型。 对于每个转换模板,“发布设置”都位于选项卡中。
在Rendering选项卡中,选择:
如果所选类型为File,则发布涉及以文件形式生成输出文档。
提供以下发布选项:
可以通过Encoding字段强制输出文件编码字符集。 默认情况下使用拉丁文1(1252)字符集。
Multi-file generation选项激活特殊的文档发布模式。 此选项包括在输出文档的每页开头填充分区标签。 生成内容将为每个填充的分区标签生成一个文件。 此模式用于从内容块生成微型站点。 有关详细信息,请参阅多文件生成。
Location字段包含输出文件的名称。 该名称可由变量组成,以生成自动文件名。
变量会填充以下格式:$(<xpath>)
,其中<xpath>
是发布模板数据模式的字段的路径。
文件的名称可以由日期类型字段组成。 要正确设置此字段的格式,请使用$date-format函数,将字段的路径和输出格式用作参数。
默认情况下,文件名的构造格式使用“@name”和“@date”字段上的变量:
ct_$(@name)_$date-format(@date,'%4Y%2M%2D').htm
生成的文件名如下所示:ct_news12_20110901.htm.
有关内容生成的详细信息,请参阅创建内容实例。
此选项卡允许您选择方案,以便直接在内容上启动投放。 将根据输出格式(HTML或文本)自动填充电子邮件内容。
有关基于内容创建投放的示例,请参阅传送内容实例。
通过从脚本或查询列表聚合数据,您可以使用内容数据丰富XML文档。 其目的是补充链接引用的某些信息或从数据库添加元素。
要激活多个文件生成,请在发布模型中选择Multi-file generation选项。 此选项允许您在样式表中为输出文档的每页的开头指定分区标签。 内容的生成将为遇到的每个分区标签生成一个文件。
要集成到样式表中的分区标签如下:
<xsl:comment> #nl:output_replace(<name_of_file>) </xsl:comment>
其 <name_of_file>
中是要生成的页面的文件名。
示例: 使用“cus:book”模式生成多个文件。
其原则是生成一个主页,列出各章节,并可在外部页面中显示章节的详细信息。
相应的样式表("cus:book.xsl")如下所示:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="ISO-8859-1" method="html"/>
<!-- Style sheet entry point -->
<xsl:template match="/book">
<html>
<body>
<h1><xsl:value-of select="@name"/></h1>
<lu>
<xsl:for-each select="chapter">
<li><a target="_blank" href="chapter{@id}.htm"><xsl:value-of select="@name"/></a></li>
</xsl:for-each>
</lu>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
需要另一个样式表("cus:chapter.xsl")来生成章节的详细信息:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="ISO-8859-1" method="html"/>
<!-- Detail of a chapter -->
<xsl:template match="chapter">
<!-- Cut tag -->
<xsl:comment> #nl:output_replace($(path)/chapter<xsl:value-of select="@id"/>.htm)</xsl:comment>
<html>
<body>
<h1><xsl:value-of select="@name"/></h1>
<xsl:value-of select="page" disable-output-escaping="yes"/>
</body>
</html>
</xsl:template>
<!-- Style sheet entry point -->
<xsl:template match="/book">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
分区标签填充在要包含在文件中的页面开始处以生成。
<xsl:comment> #nl:output_replace($(path)/<xsl:value-of select="@id"/>.htm)</xsl:comment>
文件名是使用$(path)变量构建的,该变量包含发布路径和<xsl:value-of select="@id" />
,它们与输入文档中章节的标识符相匹配。
发布模型必须填充两个样式表“cus:book.xsl”和“cus:chapter.xsl”。
Multi-file generation选项在章节转换模型上必须处于活动状态:
Location字段不用于生成多个文件,但您仍必须填充此字段以避免在发布时出错。