Manual:HTML templates/fr

A partir de, MediaWiki peut générer du contenu HTML à partir de modèles Mustache sur le serveur et sur le client. Le modèle d'analyse syntaxique côté serveur est implémenté en PHP via la classe TemplateParser, qui agit comme un conteneur de la bibliothèque lightncandy. Les modèles côté client sont pris en charge par les modules ResourceLoader de   et par la bibliothèque.

Créer des modèles
Pour utiliser les modèles HTML dans votre code, créez d'abord un fichier de modèle Mustache ayant l'extension de fichier , par exemple,. Les modèles doivent contenir aussi peu de logique de programmation que possible pour être lus facilement et fournir une propre séparation des éléments. Si votre modèle fait partie du coeur du logiciel MediaWiki, mettez-le dans le répertoire  du système. S'il fait partie d'une extension, vous devez créer un dossier  dédié dans le répertoire de votre extension pour le contenir. Les modèles doivent suivre la spécification Mustache-5.

Classe TemplateParser (côté serveur)
Cette classe recherche les fichiers des modèles, les lit, les compile en code PHP, et développe les balises en utilisant les données transmises afin de générer la sortie HTML. MediaWiki compile les modèles selon les besoins, et utilise le cache pour les y stocker s'il est disponible (voir le paragraphe mise en cache ci-dessous). Ceci évite aux développeurs de compiler les modèles en fichiers PHP pendant le développement ou comme une étape du build, ou au serveur de les écrire dans l'arborescence des fichiers pendant les opérations.

Pour utiliser, créez d'abord une nouvelle instance de la classe :

Si vos modèles Mustache ne sont pas dans  du coeur, vous devez fournir le chemin de leur emplacement, dans le premier paramètre du constructeur (en relatif, soit par rapport à la racine de MediaWiki, soit par rapport au répertoire du fichier qui les appelle, avec __DIR__) :

Ensuite, vous analysez les modèles vers HTML en appelant la fonction. Le premier paramètre pour cela est le nom de votre modèle (la partie du nom de fichier avant ). Le second paramètre est un tableau contenant les valeurs utilisées par les balises Mustache de votre modèle. Par exemple,

Ceci remplace toutes les instances des balises  et   du modèle Mustache « MyWidget » par les valeurs fournies, et retourne le HTML résultant. (le  imprime simplement le HTML généré dans le contexte de sortie courant).

Comme exemple de modélisation HTML, voir tel qu'utilisé par.

Mise en cache
TemplateParser essaie de mettre en cache le modèle PHP compilé. Il préfère utiliser  (voir ), et se replie sur   (un cache d'objet général comme Memcached ou Redis, voir ).

Eléments partiels
Le cache est basé sur des clés faites à partir d'un hachage du contenu de fichier, donc si vous modifiez un fichier de modèle, le modèle compilé sera mis à jour (vous devrez éventuellement vider le cache wiki de l'interface utilisateur en utilisant ). Néanmoins, cela ne prend pas en compte les modifications des modèles « partiels » que vous incluez avec  (bogue T113095). Donc si vous modifiez un partiel, vous devez faire des modifications cosmétiques sur les modèles parents qui l'incluent, ou redémarrer votre cache.

mw.template (côté client)
Pour utiliser un modèle Mustache du côté client, ajoutez le d'abord à votre définition de module :

La définition du modèle ci-dessus est faite de deux parties, un chemin de fichier et un alias optionnel. L'alias doit être suffixé avec le nom du langage de modélisation (par exemple ' ') si bien qu'il connaît le compilateur à utiliser. ResourceLoader dessert automatiquement les modules JavaScript  pris en charge, donc vous n'avez rien à spécifier dans. Une fois que vous avez ajouté le modèle à votre module, vous pouvez le récupérer par JavaScript en utilisant :

Pour générer le modèle et les données sous format HTML, appelez la fonction compilée  du modèle.

Eléments partiels
Les éléments partiels sont aussi pris en charge du côté client. Voir https://mustache.github.io/mustache.5.html#Partials pour plus d'informations.

Voir aussi

 * Requests for comment/HTML templating library