Manuel:SkinMustache.php
Fichier MediaWiki : SkinMustache.php | |
---|---|
Emplacement : | includes/skins/ |
Code source : | master • 1.42.3 • 1.41.4 • 1.39.10 |
Classes : | SkinMustache |
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 |
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 |
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 |
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 |