Show Menu
SUJETS×

Modèle de publication

A propos des modèles de publication

Le modèle de publication est la fiche d'identité du contenu à publier. Il référence les ressources utilisées dans le processus de publication, à savoir :
  • le schéma de données,
  • le formulaire de saisie,
  • les modèles de transformation pour chaque document de sortie.

Identification d'un modèle de publication

Un modèle de publication est identifié par son nom et son espace de nommage.
La clé d'identification d'une feuille de style est une chaîne construite avec l'espace de nommage et le nom séparés par le caractère ':' (par exemple : xac:newsletter ).
Dans la pratique, il est recommandé d'utiliser la même clé pour le schéma, le formulaire et le modèle de publication.

Création et paramétrage du modèle

Les modèles de publication sont stockés par défaut dans le noeud Administration > Paramétrages > Modèles de publication . Pour créer un nouveau modèle, cliquez sur le bouton Nouveau situé au-dessus de la liste des modèles.
Pour paramétrer le modèle de publication, indiquez le nom du modèle (c'est-à-dire la clé d'identification composée du nom et de l'espace de nommage), son libellé, le schéma de données et le formulaire de saisie auxquels il est associé.
Le libellé apparaîtra lors de la création d'un contenu à partir de ce modèle de publication.
L’option Vérifier le statut pour valider la génération du contenu force la vérification du statut « Validé » des instances de contenu pour autoriser la génération du fichier. Pour plus d’informations, consultez la section Publication .
Un modèle de transformation doit être ajouté pour chaque document de sortie. Vous pouvez créer autant de modèles de transformation que nécessaire.
Le champ Nom du modèle est un libellé libre qui décrit le type de rendu en sortie. Pour chaque modèle de transformation, les paramètres de publication sont renseignés dans les onglets.

Rendu

Dans l'onglet Rendu , choisissez :
  • le type de rendu utilisé pour la projection du document de sortie : feuille de style XSL ou template JavaScript,
  • le format du document de sortie : HTML, Texte, XML ou RTF,
  • le modèle contenant les informations de construction, c'est-à-dire la feuille de style ou le template JavaScript à utiliser.

Publication

La publication consiste à générer le document de sortie sous la forme d'un fichier. Pour cela, vous devez sélectionner le type Fichier .
Les options de publication disponibles sont les suivantes :
  • Il est possible de forcer le jeu de caractères d'encodage du fichier en sortie à partir du champ Codage . Le jeu de caractères Latin 1 (1252) est le mode par défaut.
  • L'option génération multi-fichiers active un mode particulier de publication de documents : cette option consiste à renseigner une balise de découpe en début de chaque page du document en sortie. La génération du contenu produira autant de fichiers que de balises de découpe renseignées. Ce mode est utilisé pour la génération de mini-sites à partir d'un contenu. Voir à ce propos Génération multi-fichiers
  • Le champ d'édition Localisation contient le nom du fichier en sortie. Le nom peut être construit à partir de variables afin de générer un nom de fichier automatique.
    Une variable est renseignée avec le format suivant : ** $(<xpath>) , où <xpath> est le chemin d’un champ du schéma de données du modèle de publication.
    Le nom du fichier peut être composé d'un champ de type date. Pour formater correctement ce champ, vous devez utiliser la fonction $date-format , avec comme paramètres le chemin du champ et le format de sortie.
    Par défaut, le format de construction du nom du fichier utilise les variables sur les champs "@name" et "@date" :
    ct_$(@name)_$date-format(@date,'%4Y%2M%2D').htm
    
    
    Le nom du fichier généré sera donc composé comme suit : ct_news12_20110901.htm.
    Pour plus d’informations sur la génération du contenu, voir Création d’une instance de contenu .

Diffusion

Cet onglet permet de sélectionner un modèle de diffusion afin de lancer une diffusion directement sur le contenu. Le contenu de l'email sera automatiquement renseigné en fonction des formats de sortie HTML ou Texte.
Pour un exemple de création d'une diffusion à partir d'un contenu, consultez Diffuser une instance de contenu .

Agrégateur

Un traitement d'agrégation de données à partir d'un script ou d'une liste de requêtes permet d'enrichir le document XML des données du contenu. Le principe est de compléter certaines informations référencées par des liens, ou d'ajouter des éléments provenant de la base de données.

Génération multi-fichiers

Pour activer la génération multi-fichiers, cochez l'option Génération multi-fichiers dans le modèle de publication. Cette option permet de renseigner dans la feuille de style des balises de découpe en début de chaque page du document en sortie. La génération du contenu produira autant de fichiers que de balises de découpe rencontrées.
La balise de découpe à intégrer dans la feuille de style est la suivante :
<xsl:comment> #nl:output_replace(<name_of_file>) </xsl:comment> <name_of_file> correspond au nom de fichier de la page à générer.
Exemple : ​Génération multi-fichiers en reprenant le schéma "cus:livre".
Le principe consiste à générer une page principale énumérant la liste des chapitres, avec possibilité d'afficher le détail du chapitre dans une page externe.
La feuille de style ("cus:livre.xsl") correspondante est la suivante :
<?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>

Une deuxième feuille de style ("cus:chapitre.xsl") est nécessaire pour générer le détail des chapitres :
<?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>

La balise de découpe est renseignée en début de page à inclure dans le fichier à générer.
<xsl:comment> #nl:output_replace($(path)/<xsl:value-of select="@id"/>.htm)</xsl:comment>

Le nom du fichier est construit avec la variable $(path) contenant le chemin de publication et <xsl:value-of select="@id" /> , qui correspond à l'identifiant du chapitre dans le document en entrée.
Le modèle de publication doit être renseigné avec les deux feuilles de style "cus:livre.xsl" et "cus:chapitre.xsl".
L'option Génération multi-fichiers doit être active sur le modèle de transformation des chapitres :
Le champ Localisation n'est pas utilisé dans la génération multi-fichiers, vous devez toutefois renseigner ce champ afin d'éviter une erreur lors de la publication.