Modèles de thèmes

Traduction à compléter

Cette page décrit le format des fichiers modèles de thème (.tmpl) qui sont utilisés pour créer les thèmes PmWiki ('skins'). Comme décrit dans la page Thèmes, un thème est une collection de fichiers qui définit l'aspect des pages PmWiki. Chaque thème doit inclure un fichier modèle qui fournit le squelette d'affichage d'une page PmWiki page.

Format du fichier de modèle

Un fichier de modèle est essentiellement un fichier HTML qui contient des substitutions de variables (indiquées par '$') et des directives spéciales incorporées dans les commentaires HTML. Deux directives spéciales sont requises dans le fichier de modèle. La directive <!--PageText--> appartient à la section <body> du document HTML, et indique à PmWiki où le contenu principal de chaque page wiki doit être placé. L'autre directive indispensable est <!--HeaderText-->, qui va quelque part dans la section <head> du document HTML (généralement vers le haut).

Quand PmWiki affiche une page, il remplace les directives et substitutions de variables par les valeurs réelles de la page courante. Par exemple, la directive <!--PageText--> est remplacée par le contenu de la page, et chaque instance de $PageUrl est remplacée par l'adresse url de la page courante.

Il y a une longue liste de variables disponibles pour la substitution dans les pages; parmi les plus utiles on trouve:

    $PageUrl         l'adresse url de la page en cours
    $ScriptUrl       la base de l'url vers le script pmwiki.php
    $Title           le titre de la page (par ex., "`ModèlesDeThèmes")
    $Titlespaced     le titre de la page avec des espaces (par ex., "`Modèles de thèmes"
    $Group           le nom du groupe courant (par ex., "`PmWikiFr")
    $FullName        le nom complet de la page (par ex., "`PmWikiFr.SkinTemplates")
    $LastModified    l'heure de la dernière modification
    $PageLogoUrl     l'adresse url du logo du site
    $WikiTitle       le titre du site
    $SkinDirUrl      l'adresse url du répertoire de thème

Cette dernière variable, $SkinDirUrl, est particulierement utile au thèmes puisqu'elle permet à son createur d'avoir des références aux autres fichiers (tels que des images ou des feuilles de style) présents dans le répertoire du thème sans avoir à connaitre l'url exacte (chemin relatif).

Le modèle n'est pas limité à l'utilisation des variables listées ci-dessous; à peu près toute variable PHP globale commençant par une 'M'ajuscule peut être utilisée dans un modèle de thème.

Directives de thèmes

Nonobstant les directives requises <!--PageText--> et <!--HeaderText-->, PmWiki fournit d'autres directives natives pour générer des pages. Il n'est pas nécessaire d'utiliser ces directives, mais elles peuvent souvent offrir plus de possibilités pour un thème.

<!--wiki:Main.SomePage-->
La balise <!--wiki:Main.SomePage--> affiche le contenu de Main.SomePage. Des $-substitutions sont permises dans les balises, ainsi une balise <!--wiki:$Group.SomePage--> incluera "SomePage" du groupe en question.
Si plusieurs pages sont présentes dans une directive, alors seule la première occurence valable est retenue/utilisée. Ainsi <!--wiki:$Group.SomePage Site.SomePage--> affichera le contenu de SomePage si "$Group" existe sinon Site.SomePage sera affiché. Pour afficher systématiquement Site.SomePage, même si $Group.SomePage existe, utiliser deux directives <!--wiki:...--> consecutives.
<!--file:somefile.txt-->
The directive <!--file:somefile.txt--> outputs the contents of another file (on the local filesystem) at the point of the directive. If the file to be included is a .php script, then the PHP script is executed and its output is sent to the browser. Like the <!--wiki:...--> directive above, $-substitutions are available to be able to output files based on the current page name or group.
<!--markup:...-->
The markup directive processes any text that follows the colon as wiki markup and displays that in the output.
<!--function:SomeFunction args-->
This directive calls a PHP function named "SomeFunction", passing the current page's name and the text following the function name as arguments. PHP functions called in this manner are typically defined in a local customization file. Args allows only one argument, which has to be splitted then. <!--function:SomeFunction arg1 arg2 arg3--> generates one parameter "arg1 arg2 arg3". However variables can be used (like $LastModifiedBy).

Section des pages

A template file can designate "sections" that are included or excluded from the output based on page directives or other criteria. A section always begins with <!--Page...Fmt--> and continues to the next section, the end of the template file, or <!--/Page...Fmt-->. For example, a template can specify a <!--PageLeftFmt--> section that is excluded from the output whenever the (:noleft:) directive is encountered in the page's contents. PmWiki's predefined sections (and their corresponding page directives) are:

    <!--PageHeaderFmt-->          (:noheader:)
    <!--PageFooterFmt-->          (:nofooter:)
    <!--PageTitleFmt-->           (:notitle:)
    <!--PageLeftFmt-->            (:noleft:)
    <!--PageRightFmt-->           (:noright:)

Les créateurs de thèmes peuvent définir leurs propres sections et balises, mais pour l'instant tous les noms de sections d'un thème doivent commencer par "Page" et finir par "Fmt". Comme mentionné precédemment vous devez aussi définir ces balises (par exemple dans votre config.php) comme ceci: Markup('noVOTRENOM', 'directives', '/\\(:noVOTRENOM:\\)/ei', "SetTmplDisplay('PageVOTRENOMFmt',0)"); (ou VOTRENOM est le nom de votre balise).

Internationalisation (i18n)

Les thèmes peuvent aussi être internationalisés en utilisant les tags $[...]. N'importe quelle chaîne de caractères placée à l'intérieur de $[...] est traitée comme "élément à traduire", une recherche de correspondance sur l'élément est faite dans le fichier de traduction. S'il y a une correspondance, alors elle est affichée, sinon la chaîne de caractères reste affichée telle quelle.

Par exemple, la substitution $[Edit] va afficher la traduction choisie du mot "Edit" si elle existe, sinon elle n'affichera qu' "Edit". Ainsi, le meme thème pourra être utilisé pour plusieurs langues, affichant "Editer" quand la traduction Française est chargée, "Bearbeiten" pour la traduction Allemande, et finalement "Edit" quand aucune traduction n'est disponible.


<< Besoins système | Index de la documentation | Caractères spéciaux >>


Traduction de PmWiki.SkinTemplates Page originale sur PmWikiFr.SkinTemplates - Référencé par
Dernières modifications:
PmWikiFr.SkinTemplates: 06 octobre 2011 à 17h00
PmWiki.SkinTemplates: 19 août 2022 à 19h47