Manuel:SkinMustache.php

This page is a translated version of the page Manual:SkinMustache.php and the translation is 100% complete.

La classe SkinMustache est une classe générique pour l'utilisation des modèles Mustache . Elle offre aux développeurs d'habillages une souplesse pour afficher les données sous-jacentes qu'ils veulent. Un modèle Mustache est associé à l'habillage pour lequel le rendu est souhaité, et reçoit les données du modèle (template data) décrites ci-dessous.

Pour approfondir ce sujet, voir Manuel:Comment créer un habillage MediaWiki .

Les template data

Toutes les données référencées ici peuvent être explorées en utilisant l'habillage SkinJSON.

L'habillage Mustache, associé à un autre habillage, reçoit les données suivantes :

Clé du modèle Type de donnée Utilisation Disponible dans les versions Mediawiki
array-sections Section[] Permet aux habillages de générer une table des matières séparée du corps de l'article. 1.38
data-logos DataLogos Fournit l'accès aux informations concernant les logos commme décrit dans $wgLogos 1.36
array-indicators DataHtmlObject[] Tableau d'éléments HTML bruts. Peut être utilisé pour afficher les Indicateurs de statut des pages 1.35
data-search-box DataSearchBox Utilisé pour le le rendu du search (voir ci-dessous) 1.35
html-site-notice chaîne (HTML) Rendu via les triples accolades pour permettre l'affichage des bannières.

Si inclus, cela permet d'ajouter la prise en charge des notes de site.

1.35
html-user-message chaîne (HTML) Peut être utilisé pour afficher la barre de message jaune notifiant l'utilisateur qu'il a des messages sur la page de discussion dans le corps de l'article.

Exemple de message utilisateur : File:010405ah.png

1.35
html-title chaîne (HTML) Doit être rendu pour afficher le titre de la page. Notez que le titre des pages du wiki peut contenir certains éléments HTML comme par exemple la balise <i> pour le texte en italique. Le HTML n'inclut pas la balise de titre, car c'est à vous de définir le niveau que vous souhaitez par exemple <h1> ou <h2>.

Si votre habillage est conçu pour prendre en charge plusieurs langues, vous devez également produire {{{html-user-language-attributes}}}

1.35
html-subtitle chaîne (HTML) Peut être rendu pour afficher les sous-titres sous le html-title de la page. Par défaut la chaîne est vide, mais sur certaines pages - par exemple les sous-pages utilisateur, et avec certaines extensions MediaWiki, ils apparaitront. Lire d'autres articles sur les sous-titres. Le sous-titre doit être considéré comme un élément de bloc pouvant s'étendre sur plusieurs lignes. 1.35
html-body-content chaîne (HTML) Doit être rendu pour afficher le contenu de la page 1.35
html-categories chaîne (HTML) Peut être rendu pour afficher les catégories 1.35
html-after-content chaîne (HTML) Vide habituellement, mais peut être utilisé pour permettre aux extensions telles que RelatedArticles de faire le rendu sous un article (par exemple les annonces). Insérez ce code HTML après le contenu principal, à un endroit qui a un sens. 1.35
html-undelete-link chaîne (HTML) Doit être rendu si vous voulez que votre habillage prenne en charge une boîte sur les pages qui ont été supprimées afin de leur permettre d'être restaurées. 1.35
html-user-language-attributes chaîne (HTML) Attributs HTML donnant la langue préférée de l'utilisateur et sa direction. Doit être utilisé sur un élément si vous prenez en charge les langues RTL. Tout héritage de cet élément va posséder ces propriétés. Lire davantage sur Codes de langues dans les spécifications HTML.

En règle générale, vous ne devriez mettre ceci que dans le ou les noeuds de la racine de votre fichier skin.mustache.

1.35
link-mainpage chaîne URL de la page d'accueil. Peut être utilisé pour établir un lien vers la page d'accueil 1.36
data-portlets DataPortletsObject Peut être utilisé pour faire le rendu des menus extensibles par les extensions et configurables par les administrateurs de site. Chaque menu doit être accédé par son nom.

Voir ci-dessous et la section concernant le rendu des menus sur Comment créer un habillage MediaWiki.

1.36
data-portlets-sidebar DataPortletSidebar Peut être utilisé pour faire le rendu des menus apparaissant traditionnellement dans la barre latérale de l'habillage Vector, et que les extensions peuvent étendre et les administrateurs de site configurer. Les données sont séparées entre le premier portlet et un tableau des autres portlets qui suivent.

Le contenu de ce menu est traité séparément des data-portlets parce que ce menu peut être configuré à l'intérieur du wiki via une modification de la Barre latérale. Voir la Barre latérale pour d'autres informations. La barre latérale peut contenir une quantité variable de sous-menus; elle est donc faite de manière différente des data-portlets.

1.36
data-footer DataFooter Peut être utilisé pour faire le rendu des liens des pieds de page extensibles par les extensions et configurables par les administrateurs de site. Habituellement ils contiennent des liens tels que la « Version mobile », « Avertissements », « Politique de confidentialité » et peuvent être configurés par LocalSettings.php et les extensions. Voir les autres sujets sur la personnalisation du pied de page. 1.36
msg-<message-key> chaîne Un habillage peut déclarer les messages au moment de son enregistrement. Tout message déclaré sera traduit et passé au modèle sous forme échappée. Les messages HTML ne sont actuellement pas supportés.

Les messages peuvent être définis localement à l'habillage dans i18n/en.json ou vous pouvez utiliser tout message défini dans le noyau. Lire d'autres sujets sur l'internationalisation.

1.36
is-anon booléen true pour les pages sur lesquelles l'utilisateur n'est pas connecté 1.38
is-article booléen true pour les pages qui correspondent à des articles actuellement en cours de lecture (c'est à dire à des pages appartenant à l'espace de noms Main:) 1.38
is-specialpage booléen true pour les pages spéciales qui sont actuellement en cours de lecture comme Special:Preferences 1.38
is-mainpage booléen true si la page est la page d'accueil. 1.38

Menus (avec des portlets / portails)

Pour la compatibilité arrière, plusieurs types de menus sont à prendre en compte lorsque vous faites un rendu via SkinMustache. Nous espérons qu'à l'avenir, un format standard de menu sera utilisé pour tous.

Section

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
toclevel nombre niveau d'indentation de la table des matières; correspond à h1, h2, h3 1.38
line chaîne titre de la section. 1.38
level chaîne 1.38
number chaîne 1.38
index chaîne 1.38
from_title chaîne page associée. Peut-être redondant. 1.38
byteoffset entier déplacement en octets par rapport au début de la section. 1.38
anchor chaîne anchor du lien 1.38
has-subsections booléen indique si cette section possède des sous-sections 1.38
is-last-item booléen indique si cette section est la dernière du niveau actuel dans la table des matières 1.38

AttributeData

Template key Data type Usage Available in MediaWiki version
key string The name of an HTML attribute e.g. "href" 1.40
value string The value of a HTML attribute e.g. "/wiki/Link" 1.40

PortletLinkData

Template key Data type Usage Available in MediaWiki version
icon string Icon name 1.40
array-attributes AttributeData[] Array of all the HTML attributes that can be rendered on a link. 1.40
text string Text of the link 1.40

PortletListItemData

Template key Data type Usage Available in MediaWiki version
html-item string HTML representation of list item and link 1.40
name string ID unique to this specific menu (not typically rendered but can be useful for instrumentation purposes 1.40
id string ID of the menu item, typically rendered as ID attribute on list item (li) 1.40
class string class attribute of the menu item, typically rendered as ID attribute on list item (li) 1.40
html string HTML of just the link (see also array-links) 1.40
array-links PortletLinkData Data structure representing the link(s) contained in the menu item. 1.40

PortletData

Les menus (avec les portlets et les portails) dans SkinMustache ont une stucture de données compatible avec la forme suivante :

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
id chaîne attribut HTML de l'identifiant du portlet. Doit être généré pour la compatibilité avec les gadgets et les extensions sur un élément conteneur. 1.36
class chaîne attribut HTML de la classe du portlet. Doit être généré pour la compatibilité avec les gadgets et les extensions sur un élément conteneur. 1.36
label chaîne nom du menu, lisible par un humain. Peut être utilisé pour faire le rendu du titre d'un menu. Il est généralement important d'afficher cela à tous les utilisateurs quand on fait le rendu d'un groupe de menus (comme pour la barre latérale, DataPortletSidebar), mais pas pour les menus individuels (DataPortletsObject).

Nous vous recommandons de prendre en compte le fait d'en faire toujours le rendu dans la page, parce que cette étiquette est importante pour les lecteurs d'écran et pour rendre votre habillage accessible.

1.36
html-tooltip chaîne (HTML) autres attributs HTML devant être générés en même temps que l'identifiant et la classe. Peut contenir la clé d'accès et les attributs du titre. 1.36
array-items PortletListItemData Equivalent of html-items for skin developers who need more flexibility. 1.40 (9c4f70c22251)
html-items string (HTML) liste des éléments représentant le menu. Notez que pour en faire le rendu, vous devrez l'inclure entre des balises de liste (comme ol ou ul) 1.36
html-after-portal chaîne (HTML) les extensions telles que UniversalLanguageSelector ont souhaité pouvoir ajouter du code HTML à la fin des menus. Le rendu est optionnel.

Notez qu'en dépit du nom, les développeurs d'habillages peuvent décider d'en réaliser le rendu au même endroit que html-before-portlet.

Notez aussi que ceci est différent de html-before-portlet. Les deux doivent être rendus pour la compatibilité complète avec les extensions.

1.36
html-before-portal chaîne (HTML) le rendu est faisable pour permettre aux extensions d'ajouter du code HTML avant un menu. Le rendu est optionnel.

Notez que ceci est différent de html-after-portlet. Les deux doivent être rendus pour la compatibilité complète avec les extensions.

1.37

DataPortletSidebar

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
data-portlets-first PortletData doit être utilisé si votre habillage prend en charge les langues 1.36
array-portlets-rest PortletData[] peut être utilisé pour autoriser l'extension des contrôles du paramètrage de l'interface utilisateur en dehors du contexte de Special:Preferences. 1.36

DataPortletsObject

L'objet data-portlets permet l'accès aux différents menus pour lesquels le rendu est possible. Les menus sont compartimentés. Un développeur d'habillages peut choisir de faire le rendu de chacun d'eux séparément, de modifier ces compartiments via l'accroche SkinTemplateNavigation::Universal, ou de les omettre. Chaque menu contient des données consistantes avec data-portlets-sidebar.

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
data-languages PortletData Doit être utilisé si votre habillage prend en charge les langues 1.36
data-user-interface-preferences PortletData Peut être utilisé pour autoriser l'extension des contrôles du paramètrage de l'interface utilisateur en dehors du contexte de Special:Preferences. 1.37
data-user-page PortletData Doit être utilisé pour faire le rendu d'un lien vers la page de l'utilisateur et sa page de discussion. 1.37
data-user-menu PortletData Doit être utilisé pour faire le rendu des liens propres à un utilisateur tels que la page de ses contributions ou son bac à sable. 1.37
data-notifications PortletData Doit être utilisé pour faire le rendu des notifications utilisateur c'est à dire la prise en charge de Echo 1.37
data-namespaces PortletData Doit être utilisé pour fournir l'accès à la page de discussion. 1.36
data-views PortletData Doit être utilisé pour fournir l'accès aux liens de modification et à l'historique. 1.36
data-actions PortletData Doit être utilisé pour fournir l'accès aux administrateurs pour les actions de protection, suppression et renommage. 1.36
data-variants PortletData Doit être utilisé si votre habillage prend en charge les variantes de langues 1.36
data-personal PortletData Ne doit pas être utilisé si data-notifications, data-user-menu, data-user-page ou data-user-interface-preferences sont utilisés. En 1.37 ce compartiment de menus a été découpé en plusieurs compartiments. L'utilisation n'est pas recommandée avec les nouveaux habillages. 1.36

DataFooterLine

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
id chaîne attribut HTML de l'identifiant de l'élément 1.36
className chaîne classes CSS pour cet élément pouvant être utilisées. Remarquez que le nom de cette propriété n'est pas conhérent avec les autres. Peut être renommé en classe à l'avenir. 1.36
array-items DataFooterItem (1.36)|PortletListItemData (1.40) tableau des éléments du pied de page pour lequel faire le rendu 1.36

DataFooterItem

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
name chaîne nom ou clé unique utilisée pour identifier des autres, la ligne du pied de page. 1.36
id chaîne identité de l'attribut HTML de l'élément pied de page, dérivé du nom 1.36
html chaîne (HTML) HTML brut (généralement un lien) 1.36

DataFooter

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
data-info DataFooterLine contient les dernières informations ayant été modifiées. 1.36
data-places DataFooterLine utilisé pour le rendu des liens « Politique de confidentialité » et pour « Avertissements » Utilisé par MobileFrontend pour ajouter le lien du format d'affichage pour mobile. 1.36
data-icons DataFooterLine utilisé pour le rendu de l'image des icônes 1.36

Autres

DataHtmlObject

Lorsque vous utilisez ce type, il faut créer un conteneur avec pour attributs l'identifiant id, la classe class et html pour son code HTML interne. Le conteneur peut inclure d'autres éléments si vous le souhaitez. La raison principale de l'existence de ce type est que vous pouvez faire le rendu de certains éléments tels que des listes (éléments <li>) ou des blocs (éléments <div>).

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
id chaîne identifiant d'un élément conteneur 1.35
class chaîne classes de l'élément conteneur 1.35
html chaîne HTML brut du composant 1.35

DataSearchBox

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
form-action chaîne indique où le formulaire doit envoyer ses actions POST, par exemple /w/index.php 1.35
html-button-search-fallback chaîne (HTML) bouton pour faire la recherche du texte complet. Habituellement, comme dans l'habillage Vector, ceci est masqué avec JavaScript pour les utilisateurs, mais il est important de l'inclure quand on considère la première action du formulaire (par exemple ce qui arrive quand l'utilisateur appuie sur la touche Entrée ). L'habillage MonoBook par exemple, fournit deux boutons à l'utilisateur.

Vous devez mettre cet élément après html-button-search et utiliser le sélecteur '.client-js .mw-fallbackSearchButton' pour le masquer.

Le rendu est facultatif si vous faites le rendu de html-button-search, et il dépend du choix du développeur d'habillages. Voir aussi html-button-fulltext-attributes.

1.35
html-button-search chaîne (HTML) bouton conduisant à la page qui a exactement ce nom, si elle existe. Si ceci est la première action sur le formulaire, il faut considérer que le lien se fait sur Special:Search page.

Ce rendu est optionnel, si vous faite le rendu de html-button-search-fallback et dépend du choix du développeur d'habillage. Voir aussi html-button-go-attributes.

1.35
html-input chaîne (HTML) élément d'entrée pour la recherche, avec des paramètres textuels à substituer 1.35
page-title chaîne (HTML) élément de type input[type=hidden] fournissant le titre traduit pour la recherche, par exemple Special:Search. Vous devez en faire le rendu pour que votre formulaire fonctionne sans JavaScript sinon il ne saura pas où il doit être envoyé.

Notez que vous ne devez pas écrire en dur ce code HTML car certaines extensions peuvent modifier la page de recherche par défaut, comme c'est le cas pour Extension:MediaSearch .

1.35
html-input-attributes chaîne (HTML) données du modèle d'aide pouvant être utilisées à la place de html-input pour faire le rendu de l'entrée de la recherche compatible avec les extensions installées et le code MediaWiki. 1.38
html-button-go-attributes chaîne (HTML) données du modèle d'aide pouvant être utilisées à la place de 'html-button-search' pour faire le rendu d'un bouton ou d'un élément input[type=submit] compatible avec les extensions installées et le code MediaWiki. 1.38
html-button-fulltext-attributes chaîne (HTML) données du modèle d'aide pouvant être utilisées à la place de 'html-button-search-fallback' pour faire le rendu d'un bouton ou d'un élément input[type=submit] compatible avec les extensions installées et le code MediaWiki. 1.38

DataLogos

Notez que cette structure de données peut être étendue par les extensions et par la configuration du site dans LocalSettings.php

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
icon chaîne chemin vers une icône carrée 1.35
1x chaîne chemin vers une icône carrée de résolution 1x 1.35
2x chaîne chemin vers une icône carrée de résolution 2x 1.35
wordmark LogoObject pour un logo textuel par exemple Wikipedia 1.35
tagline LogoObject slogan du site par exemple « L'encyclopédie libre »

A ne pas confondre avec {{msg-tagline}} qui réalise le rendu du message appelé « tagline » , néanmoins ceci peut être une bonne solution de repli lorsqu'il n'y a pas de slogan défini.

Exemple :

{{#data-logos}} {{! access logo data }}
{{#tagline}} {{! tagline is defined!
<img src="{{src}}">
{{/tagline}}
{{^tagline}} {{! tagline is not defined }}
{{msg-tagline}} {{! render a message in its place }}
{{/tagline}}
1.35

LogoObject

Notez que cette structure de données peut être étendue par les extensions, et par la configuration du site dans LocalSettings.php

Clé du modèle Type de donnée Utilisation Disponible dans la version Mediawiki
src chaîne URL de composant de type logo 1.35
width nombre largeur en pixels 1.35
height nombre hauteur en pixels 1.35
style chaîne valeur d'un attribut de style exprimant la hauteur et la largeur en unités proportionnelles em en se basant sur taille par défaut (16 pixels) de la fonte du navigateur. Peut être utilisé pour redimensionner les logos en fonction de la modification de la taille du texte par le navigateur. 1.38