Accesseur de publications

Les accesseurs de publications ne sont disponibles que pendant le traitement d'une publication, donc à l'intérieur des fichiers entry.html, rssEntry.xml et atomEntry.xml et de la publication elle-même.

Il est aussi possible d'utiliser ceux-là dans des templates. Pour en savoir plus sur les templates, rendez vous ici

.:GetEntryContent:.

Ce pattern ne peut pas être utilisé dans un template.

Ce pattern renvoie le contenu complet de la publication courante.

.:GetEntryPreview:.

Ce pattern ne peut pas être utilisé dans un template.

Ce pattern renvoie le résumé de la publication courante.

.:GetEntryID:.

Retourne l'identifiant unique de la publication.

.:GetEntryTitle:.

Retourne le nom de la publication.

.:GetEntryMonth:.

Retourne le mois de création de la publication.

.:GetEntryYear:.

Retourne l'année de création de la publication.

.:GetEntryDay:.

Retourne le jour de création de la publication.

. :GetEntryHour:.

Retourne l'heure de création de la publication.

.:GetEntryMinute:.

Retourne la minute de création de la publication.

.:GetEntryDate[::format]:.

Retourne la date de la publication formatée comme définit dans le fichier de configuration par le champ date_format.

Il est possible d'utiliser un autre format de date à l'aide de l'argument optionnel format. Pour en savoir plus sur ce format, rendez vous ici.

.:GetEntryDateURL:.

Retourne le liens vers le groupe d'archive dans lequel se trouve la publication.

.:GetEntryURL:.

Retourne l'URL de la publication si VenC est configuré pour générer une page par publication. Sinon, le motif est ignoré et supprimé.

.:ForEntryAuthors::string::separator:.

Retourne la liste des auteurs de la publication.

Le premier argument est une chaîne de caractères à formater avec la variable contextuelle {value} contenant le nom de l'auteur courant.

Le second paramètre est une chaîne de caractères servant de séparateur.

.:ForEntryTags::string::separator:.

Retourne la liste des mots-clefs de la publication.

Le premier argument est une chaîne de caractères à formater avec la variable contextuelle {value} contenant le mot-clef courant.

Le second paramètre est une chaîne de caractères servant de séparateur.

.:ForEntryMetadata::variable_name::string::separator:.

Il est possible de définir des métadonnées sous la forme de listes.

Le premier argument est une chaîne de caractères à formater avec la variable contextuelle {value} contenant l'élément courant de la liste.

Le second paramètre est une chaîne de caractères servant de séparateur.

.:GetEntryMetadata::metadata_name:.

Il est possible de définir ses propres champs dans les métadonnées de la publication ou du template.

Par exemple, si on définie le champ suivant :

free_hardware : Arduino Mega

Pour accéder à celui-ci, on utilisera le motif GetEntryMetadata de la façon suivante :

.:GetEntryMetadata::free_hardware:.

Si la métadonnée ainsi référencée n'existe pas, VenC générera une erreur et vous indiquera où en est l'origine.

.:GetEntryMetadataIfExists::metadata_name[::string][::string2]:.

De façon similaire, il est possible d'essayer d'accéder à une métadonnée, sans garantie que celle-ci existe. Si la métadonnée existe, il est possible alors de formater du texte pour l'y inclure.

Il est possible d'utiliser des variables contextuelles propre à la fonction pour formater le texte :

  • {value} : la valeur de la métadonnée qu'on référence.

Les arguments de ce pattern sont au nombre de trois :

  • metadata_name : le nom de la métadonnée désirée.
  • string : le texte formaté retourné si la condition est remplie. Optionnel. Si cet argument n'est pas présent, la fonction renvoie la valeur de la métadonnée sans formatage.
  • string2 : le texte non formaté retourné si la condition n'est pas rempli. Si cet argument n'est pas présent, le pattern est ignoré.

.:GetEntryMetadataIfNotNull::metadata_name[::string][::string2]:.

Identique à GetEntryMetadataIfExists, mais la métadonnée spécifié ne doit pas être vide.

<div id="entry.:GetEntryID:." .:GetMetadataIfExists::alternate_style::class="{value}":. >

Si la variable référencée n'est pas définie, VenC ignore le motif et le supprime.

Si le second argument n'est pas définie, l'accesseur renvoie directement la variable référencée, si elle existe.

.:LeavesForEntryCategories::string::separator:.

Les catégories sont organisées sous la forme d'un arbre. Il est possible de ne récupérer que les "feuilles" de cet arbres, c'est-à-dire les catégories qui n'ont pas de sous-catégories.

Les arguments du motif sont les suivants :

  • string : la chaîne de caractèress à formater avec des variables contextuelles.
  • separator : la chaîne de caractères qui sert de séparateur.

LeavesForEntryCategories possède les variables contextuelles suivante :

  • {value} : contient le nom de la catégorie courante.
  • {path} : contient le chemin relatif de la catégorie courante.
  • {branch} : contient la branche complète de la catégorie, de la racine de l'arborescence jusqu'à la catégorie courante.

Par exemple, si la publication courante se trouve dans les catégories suivantes :

categories: 'moo, foo > bar, boo > loo > poo'

Alors le motif :

.:LeavesForEntryCategories::{value}::,:.

Retournera :

moo,bar,poo

Ce motif est ignoré et supprimé si la génération des catégories est désactivée dans le fichier de configuration principal.

.:TreeForEntryCategories::open_node::open_branch::close_branch::close_node:.

Les catégories de la publication sont organisées sous la forme d'un arbre. Il est possible de récupérer l'arbre entier afin, typiquement, de générer un menu ou une liste de catégories et de sous-catégories.

Les arguments du motif sont les suivantes :

  • open_node : contient la chaîne de caractères d'ouverture pour la catégorie parente.
  • open_branch : contient la chaîne de caractères d'ouverture de la catégorie courante.
  • close_branch : contient la chaîne de caractères de fermeture de la catégorie courante.
  • close_node : contient la chaîne de caractères de fermeture de la catégorie parente.

Les variables contextuelles de ce motif sont les suivantes :

  • {value} : le nom de la catégorie courante.
  • {path} : le chemin relatif de la catégorie courante.
  • {count} : le nombre de publications dans la catégorie courante.
  • {weight} : le nombre de publications dans la catégorie courante divisé par le nombre maximal de publications par catégorie.

Par exemple, pour créer un menu déroulant on peut utiliser le motif comme ci-dessous :

.:Chapters::
    <ul class="chapter-level{level}">::
    <li>{index}. <a href="{path}">{title}</a>::
    </li>::
    </ul>
:.

Si la publication était incluse dans les catégories suivantes :

categories: 'Material > Metal > Copper, Material Metal > Steel, Science'

Alors le motif générerait quelque chose comme le code HTML suivant :

<ul>
    <li>
        <a href="../Material/" title="1 publications">Material</a>
        <ul>
            <li>
                <a href="../Material/Metal/" title="1 publications">Metal</a>
                <ul>
                    <li><a href="../Material/Metal/Copper/" title="1 publications">Copper</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li>
        <a href="../Material-Metal/" title="1 publications">Material Metal</a>
        <ul>
            <li>
                <a href="../Material-Metal/Steel/" title="1 publications">Steel</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="../Science/" title="1 publications">Science</a>
    </li>
</ul>

À la fin de chaque branche, si la catégorie courante possède une ou plusieurs catégorie filles, alors les arguments open_node et close_node sont ajoutés et une nouvelle liste de sous-catégories est générée entre ces deux arguments, en utilisant les arguments open_branch et close_branch.

Ce motif est ignoré et supprimé si la génération des catégories est désactivé dans le fichier de configuration principal.