O modelo de publicação referencia os recursos usados no processo de publicação, ou seja:
Um template de publicação é identificado por seu nome e namespace.
A chave de identificação de uma folha de estilos é uma string formada pelo namespace e pelo nome separados por dois pontos, por exemplo: cus:newsletter.
Na prática, é recomendável usar a mesma chave para o schema, o formulário e o template de publicação.
Os templates de publicação são armazenados por padrão no nó Administration > Configuration > Publication templates. Para criar um novo modelo, clique no botão New acima da lista de templates.
Para configurar o template de publicação, preencha o nome do template (ou seja, a chave de identificação que consiste no nome e no namespace), seu rótulo, o schema de dados e o formulário de entrada ao qual ele está vinculado.
O rótulo aparecerá sempre que o conteúdo for criado com base nesse template de publicação.
A opção Verificar o status para validar a geração de conteúdo força uma verificação do status "Validado" das instâncias de conteúdo para autorizar a geração de arquivo. Para obter mais informações, consulte Publicação,
Um modelo de transformação deve ser adicionado para cada documento de saída. É possível criar quantos modelos de transformação forem necessários.
O campo Name of template é um rótulo gratuito que descreve o tipo de renderização na saída. Para cada modelo de transformação, as configurações de publicação estão disponíveis nas guias.
Na guia Rendering, escolha:
Se o tipo selecionado for File, a publicação envolve a geração do documento de saída na forma de um arquivo.
As seguintes opções de publicação estão disponíveis:
O conjunto de caracteres de codificação do arquivo de saída pode ser forçado por meio do campo Encoding. O conjunto de caracteres Latin 1 (1252) é usado por padrão.
A opção Multi-file generation ativa um modo de publicação de documento especial. Essa opção consiste em preencher uma tag de particionamento no início de cada página do documento de saída. A geração do conteúdo produzirá um arquivo para cada tag de particionamento preenchida. Esse modo é usado para gerar mini sites a partir de um bloco de conteúdo. Para obter mais informações, consulte Geração de vários arquivos.
O campo Location contém o nome do arquivo de saída. O nome pode ser composto de variáveis para gerar um nome de arquivo automático.
Uma variável é preenchida com o seguinte formato: $(<xpath>)
, onde <xpath>
é o caminho de um campo do esquema de dados do modelo de publicação.
O nome de um arquivo pode consistir em um campo tipo data. Para formatar corretamente esse campo, use a função $date-format, usando o caminho do campo e o formato de saída como parâmetros.
Por padrão, o formato de construção do nome do arquivo usa as variáveis nos campos "@name" e "@date":
ct_$(@name)_$date-format(@date,'%4Y%2M%2D').htm
O nome do arquivo gerado terá esta aparência: ct_news12_20110901.htm.
Para obter mais informações sobre a geração de conteúdo, consulte Criar uma instância de conteúdo.
Essa guia permite selecionar um cenário para iniciar um delivery diretamente no conteúdo. O conteúdo do email será preenchido automaticamente com base no formato de saída (HTML ou Texto).
Para obter um exemplo de criação de delivery com base em um conteúdo, consulte Delivery de uma instância de conteúdo.
Agregar os dados de um script ou lista de query permite enriquecer o documento XML com os dados de conteúdo. O objetivo é complementar determinadas informações referenciadas por links ou para adicionar elementos do banco de dados.
Para ativar a geração de múltiplos arquivos, selecione a opção Multi-file generation no template de publicação. Essa opção permite especificar tags de particionamento na folha de estilos do início de cada página do documento de saída. A geração do conteúdo produzirá um arquivo para cada tag de particionamento encontrada.
A tag de particionamento a ser integrada na folha de estilos é a seguinte:
<xsl:comment> #nl:output_replace(<name_of_file>) </xsl:comment>
onde <name_of_file>
é o nome de arquivo da página que deve ser gerada.
Exemplo: geração de vários arquivos usando o schema "cus:book".
O princípio é gerar uma página principal listando os capítulos, com a possibilidade de exibir os detalhes do capítulo em uma página externa
A folha de estilos correspondente ("cus:book.xsl") é como segue:
<?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>
Uma segunda folha de estilos ("cus:chapter.xsl") é necessária para gerar os detalhes dos capítulos:
<?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>
A tag de particionamento é preenchida no início da página a ser incluída no arquivo para gerar.
<xsl:comment> #nl:output_replace($(path)/<xsl:value-of select="@id"/>.htm)</xsl:comment>
O nome do arquivo é construído com a variável $(path) contendo o caminho da publicação e <xsl:value-of select="@id" />
, que corresponde ao identificador do capítulo no documento de entrada.
O modelo de publicação deve ser preenchido com as duas folhas de estilos "cus:book.xsl" e "cus:chapter.xsl".
A opção Multi-file generation deve estar ativa no template de transformação do capítulo:
O campo Location não é usado na geração de múltiplos arquivos, mas esse campo deve ser preenchido para evitar um erro ao publicar.