Module:InfoboxBuilder/Documentation

De Baripedia

Ce module permet de structurer des données et de construire des infobox en code lua à partir d'un tableau de configuration situé dans la page Module:InfoboxBuilder/NOM_DE_L'INFOBOX. La construction de l'infobox utilise Module:Infobox.

Principe[modifier le wikicode]

L'infobox implique plusieurs niveaux pour pouvoir être utilisée dans Wikipédia :

  1. un modèle NOM_DE_L'INFOBOX:
    Il n'est pas possible d'appeler directement les modules depuis les articles. Il faut donc passer par un modèle (par exemple, le modèle de l'infobox déjà existant) et à l'intérieur de ce modèle, on appelle le module associé par le code suivant :
    {{#invoke:InfoboxBuilder|build|nom=NOM_DE_L'INFOBOX}}
  2. un module InfoboxBuilder/NOM_DE_L'INFOBOX
    Le module spécifique indique quel genre de données doit être inclus dans l'infobox et le format dans lequel ces données doivent être intégrées.

Exemples[modifier le wikicode]

Fonctions liées[modifier le wikicode]

Des fonctions particulières sont associées à ce module :

Documentation[modifier le wikicode]

Le module situé dans la page Module:InfoboxBuilder/NOM_DE_L'INFOBOX doit retourner un tableau de la forme suivante (toutes les entrées sont optionnelles sauf précision contraire et avec leur valeur par défaut) :

Infobox[modifier le wikicode]

<source lang=lua> {

'isPart' = false, -- booléen permettant de désactiver la sortie de la

contenant l'infobox permet de faire des infobox modulaires
                    -- par défaut 'false'
  'class' = , -- chaîne indiquant la classe CSS de l'infobox, par exemple 'infobox_v3' pour une infobox V3
                -- par défaut 'infobox_v3'
  'style' = { composant par paire }, -- table indiquant les différents paramètres de style appliqués à l'infobox
  'parts' = { COMPOSANTS }, -- éléments composant l'infobox

} </source>

Composants d'une infobox[modifier le wikicode]

title[modifier le wikicode]

Permet d'afficher le titre de l’infobox. <source lang=lua> {

  'type' = 'title', -- type du composant
  'class' = , -- chaîne indiquant la classe CSS du titre
                -- par défaut 'entete'
  'style' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués au titre
  'params' = nil, -- paramètres à utiliser pour le titre. Peut être une table triée par ordre décroissant de priorité
  'text' =  -- si chaîne : titre par défaut, 
              -- si fonction : fonction prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le titre
              --(court-circuite params)

} </source>

images[modifier le wikicode]

Permet d'afficher une ou deux images côte à côte. <source lang=lua> {

  'type' = 'images', --Type du composant
  'images' = { --Paramètres pour chacune des images, si le nom d'une des images ne peux être trouvé, l'image n’est pas affichée
      {
          'params' = nil, --Paramètre(s) à utiliser pour obtenir le nom de l'image
          'name' = , --Si string, nom de l'image par défaut, si function, fonction prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le nom (court-circuite params). Si la fonction retourne nil ou , rien n’est affiché
          'alt' = , --Alternative textuelle de l'image
          'upright' = 1 --upright pour l'image. par défaut 1 / nombre d'images
      }
  },
  'legendParams' =  --Paramètre(s) correspondant à la légende
  'legend' =  --Si string, légende par défaut, si function, fonction prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir la légende. Si la fonction retourne nil ou , rien n’est affiché

} </source>

text[modifier le wikicode]

Permet d'ajouter du wikitext. <source lang=lua> {

  'type' = 'text', --Type du composant
  'class' = , -- chaîne indiquant la classe CSS du texte
  'style' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués au texte
  'text' = , -- si chaîne : texte par défaut, 
               -- si fonction : fonction prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le wikitext

} </source>

table[modifier le wikicode]

Permet d'ajouter une table. <source lang=lua> {

  'type' = 'table', -- type du composant
  'class' = , -- chaîne indiquant la classe CSS de la table
  'style' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la table
  'styleCaption' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués 
                                            -- au titre de la table
  'params' = nil, -- paramètres à utiliser pour le titre du tableau
  'text' = , -- si chaîne : titre du tableau par défaut, 
               -- si fonction : fonction prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le titre
               -- (court-circuite params)
  'rows' = { LIGNES }

} </source>

Composants d'une table[modifier le wikicode]

mixed[modifier le wikicode]

Cette structure permet de créer une ligne composée de 2 cellules : la première contenant la clé (label), la deuxième contenant la valeur.

clé valeur

<source lang=lua> {

  'type' = 'mixed', -- type de ligne
  'styleHeader' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la clé
  'styleValue' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la valeur
  'label' = , -- clé de la ligne. Obligatoire.
  'params' = nil, -- paramètre à utiliser pour le titre. Peut être une table triée par ordre décroissant de priorité
  'property' = , -- chaîne de type Pxxx où x est un nombre. Correspond à l'identifiant de la propriété de Wikidata stockant la valeur liée au label. 
                   -- si une valeur est donnée pour le paramètre dans le code de l'article, cette valeur à la priorité,
                   -- si aucune valeur n'est fournie, le code va chercher la valeur correspondante sur Wikidata
  'hidden' = , -- valeur possible 1 ou 0. Permet de masquer l'affichage de la valeur dans un menu déroulant
                 -- utile dans le cas d'une valeur très longue pour réduire la taille de l'infobox en mode normal
  'weblink' = , -- chaîne correspondant à un lien web absolu qui permet de créer un hyperlien avec la valeur 
  'value' = , -- si chaîne : valeur par défaut, 
                -- si fonction : fonction prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le titre 
                -- court-circuite params. Si la fonction retourne nil ou , la ligne n'est pas affichée
  

} </source>

doubled[modifier le wikicode]

Cette structure permet de créer deux lignes composées chacune d'une cellule : la cellule du haut contient la clé ou le label et celle du dessous contient la valeur.

label
valeur

<source lang=lua> {

  'type' = 'doubled', -- type de ligne
  'styleHeader' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la clé
  'styleValue' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la valeur
  'label' = , -- clé de la ligne. Obligatoire.
  'params' = nil, --Paramètre à utiliser pour le titre. Peut être une table triée par ordre décroissant de priorité
  'property' = , -- chaîne de type Pxxx où x est un nombre. Correspond à l'identifiant de la propriété de Wikidata stockant la valeur liée au label. 
                   -- si une valeur est donnée pour le paramètre dans le code de l'article, cette valeur à la priorité,
                   -- si aucune valeur n'est fournie, le code va chercher la valeur correspondante sur Wikidata
  'value' = , -- si chaîne : valeur par défaut, 
                -- si fonction : fonction prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le titre 
                -- court-circuite params. Si la fonction retourne nil ou , la ligne n'est pas affichée

} </source>

Exemple d'utilisation du code[modifier le wikicode]

  • Utilisation d'une fonction pour générer une valeur :

<source lang=lua>{

  'type' = 'mixed',
  'label' = 'Test',
  'value' = function( frame ) return frame.args.test end

}</source>

  • Générer une table contenant les élément css à appliquer à un élément de l'infobox :

<source lang=lua>{

  'style' = buildStyleTable({'width','300px','align','right'})

}</source>