4.3 Motifs contextuels

Les motifs contextuels sont les derniers motifs à être interprétés par VenC dans le processus de génération des pages. En effet, ces motifs sont "contextuels" au sens où leur fonctionnement dépend de choses comme le fil de publications que VenC traite, du numéro de la page courante ou de l'emplacement de fichier de la page ainsi généré dans l'arborescence du blog.

Les motifs contextuels sont interprétés autant de fois qu'il y a de pages pour chaque occurrence de l'un de ceux-là.

ForPages

Ce motif permet de générer une liste de liens de pagination.

.:ForPages::length::string::separator:.

Ce motif comporte les variables suivantes :

GetEntryContent

.:GetEntryContent:.

Ce pattern ne peut pas être utilisé dans un template, ni dans le corps d'une publication, cela provoquerait une erreur de récursion.

Ce pattern renvoie le contenu complet de la publication courante.

GetEntryPreview

.:GetEntryPreview:.

Ce pattern ne peut pas être utilisé dans un template, ni dans le résumé d'une publication, cela provoquerait une erreur de récursion.

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

GetNextPage

.:GetNextPage::string:.

Permet de récupérer des informations sur la prochaine page, si elle existe.

Ce motif comporte les variables suivantes :

GetPreviousPage

.:GetPreviousPage::string:.

Permet de récupérer des informations sur la page précédente, si elle existe.

Ce motif possède les variables suivantes :

GetRandomNumber

.:GetRandomNumber::min_value::max_value::precision:.

Génère un nombre aléatoire compris entre min_value et max_value avec une précision décimale définie par precision.

Par exemple, pour générer un nombre décimal compris entre zéro inclus et dix, avec au plus quatre chiffres après la virgule, nous pouvons utiliser :

.:GetRandomNumber::0::10::4:.

Pour générer un nombre entier compris entre zéro inclus et cent, nous pouvons utiliser :

.:GetRandomNumber::0::100::0:.

Enfin pour générer un nombre décimal, par exemple entre 12,25 inclus et 12,5, avec au plus 5 chiffres après la virgule, nous pouvons utiliser :

.:GetRandomNumber::12.25::12.5::5:.

GetRelativeLocation

.:GetRelativeLocation:.

Ce motif renvoie le chemin depuis la racine du blog vers le répertoire courant.

Par exemple, si la page courante qui est générée se trouve dans le répertoire :

blog/Categories/Cinema/Science-Fiction

Alors le motif renverra :

/Categories/Cinema/Science-Fiction

GetRelativeRoot

.:GetRelativeRoot:.

Ce motif renvoie le chemin relatif de la racine du blog.

Par exemple, si la page courante qui est générée se trouve dans le répertoire :

blog/Categories/Cinema/Science-Fiction :

Alors le motif renverra :

../../../

GetStyleSheets

.:GetStyleSheets:.

VenC peut générer des feuilles de style CSS. Ces fichiers peuvent être inclus dans votre thème avec le motif GetStyleSheets.

Par exemple, pour la documentation que vous êtes en train de lire, l'utilisation de ce motif produirait le code suivant :

<link rel="stylesheet" href="../venc_source_Text.css" type="text/css" />
<link rel="stylesheet" href="../venc_source_html.css" type="text/css" />
<link rel="stylesheet" href="../venc_source_HTML.css" type="text/css" />
<link rel="stylesheet" href="../venc_source_CSS.css" type="text/css" />

GetThreadName

.:GetThreadName[::string1][::string2]:.

Ce motif permet de récupérer le nom du fil de publications courant.

Par exemple, si la page courante est générée dans un fil de publications de type categorie et que ladite catégorie s'appelle "Histoire de l'informatique", alors GetThreadName permet de récupérer cette valeur dans une chaîne de caractères formatée correspondant à l'argument string1. Si au contraire, le fil de publications n'a pas de nom alors c'est string2 qui est renvoyée, par exemple quand VenC traite le fil de publications principal.

En fait, chaque fil de publications a un nom qui lui est attribué, sauf pour le fil de publications principal.

IfInArchives

.:IfInArchives::string1[::string2]:.

La fonction teste si la page courante est générée dans le fil des archives.

À noter que ce motif n'a pas de variable.

IfInCategories

.:IfInCategories::string1[::string2]:.

La fonction teste si la page courante est générée dans le fil des catégories.

À noter que ce motif n'a pas de variable.

IfInEntryID

.:IfInEntryID::id::string1[::string2]:.

La fonction teste si l'identifiant de la publication correspond à celui spécifié en argument.

Ce motif n'a pas de variable.

IfInFeed

.:IfInFeed::string1[::string2]:.

Certains éléments contenus dans une publication ne peuvent pas être présents dans le flux RSS/Atom sous peine que celui-ci ne soit pas valide et ne s'affiche pas correctement dans les lecteurs de flux RSS/Atom.

Vous pouvez utiliser IfInFeed pour remplacer un certain type de contenus par un autre, qui lui serait valide dans un flux RSS/Atom.

En outre, la fonction teste si le fil de publications courant est un flux RSS ou Atom.

Ce motif n'a pas de variable.

IfInFirstPage

.:IfInFirstPage::string1[::string2]:.

La fonction teste si le numéro de page courant correspond à la première page du fil de publications courant. Si la page est générée dans le contexte d'une page individuelle de publication ou d'un chapitre, le test échoue.

Ce motif n'a pas de variable.

IfInLastPage

.:IfInLastPage::string1[::string2]:.

La fonction teste si le numéro de page courant correspond à la dernière page du fil de publications courant. Si la page est générée dans le contexte d'une page individuelle de publication ou d'un chapitre, le test échoue.

Ce motif n'a pas de variable.

IfInMainThread

.:IfInMainThread::string1[::string2]:.

La fonction teste si la page courante est générée dans le fil de publications principal.

Ce motif n'a pas de variable.

IfInThread

.:IfInThreadAndHasFeeds::string1[::string2]:.

La fonction teste si le fil de publications courant peut produire un flux Atom et/ou RSS. Seuls les catégories et le fil principal valident la condition.

Ce motif n'a pas de variable.

IfInThreadAndHasFeeds

.:IfInThreadAndHasFeeds::string1[::string2]:.

La fonction teste si le fil de publications courant peut produire un flux Atom et/ou RSS. Seuls les catégories et le fil principal valident la condition.

Ce motif n'a pas de variable.

IfPages

.:IfPages::string1[::string2]:.

La fonction teste si le fil de publications courant a plus d'une page.

Ce motif n'a pas de variable.

PreviewIfInThreadElseContent

.:PreviewIfInThreadElseContent:.

Ce pattern ne peut être utilisé que dans entry.html.

Il renvoie le résumé de la publication courante si VenC génère la page dans un fil de publications. Sinon, VenC renvoie le contenu complet de la publication courante.