« Module:InfoboxBuilder/Documentation » : différence entre les versions

De Baripedia
m (1 version)
 
m (1 version)
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
Ce module permet de créer des infobox à partir d'un tableau de configuration situé dans la page Module:InfoboxBuilder/NOM_DE_L'INFOBOX. Utilise [[Module:Infobox]].
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]].


== Briques d'Infobox ==
== Principe ==
=== Briques élémentaires ===
Voir [[Module:InfoboxBuilder/Helpers]].


=== Briques spécifiques ===
L'infobox implique plusieurs niveaux pour pouvoir être utilisée dans Wikipédia :
Voir [[Module:InfoboxBuilder/Common queries]].


== Exemples ==
# un modèle NOM_DE_L'INFOBOX:
Voir [[module:InfoboxBuilder/Composé chimique]] et l'application sur [[undéc-1-ène]].
#: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 :
#:<pre>{{#invoke:InfoboxBuilder|build|nom=NOM_DE_L'INFOBOX}}</pre>
# 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.  


=== Configuration: [[Module:InfoboxBuilder/Philosophe]] ===
=== Exemples ===
<source lang=lua>
* [[module:InfoboxBuilder/Composé chimique]] et son utilisation sur [[undéc-1-ène]]  
local helper = require "Module:InfoboxBuilder/Helpers"
* [[module:InfoboxBuilder/Philosophe]]
local common = require "Module:InfoboxBuilder/Common queries"
* [[:Catégorie:Module infobox]]
* [[:Catégorie:Modèle infobox Lua]]


return {
== Fonctions liées ==
    parts = {
helper.title_n({
value = 'nom',
icon = 'auteur',
background = function(frame) if frame.args['couleur'] then return frame.args['couleur'] else return '#B0C4DE' end end
}),
        {
            type = 'text',
            text = function( frame ) if frame.args['région'] then return '<p class="center" style="font-weight: bold">' .. frame.args['région'] .. '</p>' end end
        },
        {
            type = 'text',
            text = function( frame ) if frame.args['époque'] then return '<p class="center" style="font-weight: bold">' .. frame.args['époque'] .. '</p>' end end
        },
        common.mainimage('image', 'légende'),
        helper.table('hidden',
                common.birth('naissance', 'lieu de naissance'),
                common.death('décès', 'lieu de décès'),
                common.nationality('nationalité'),
                helper.mixed('Langue', 'langue'),
                -- version paramètres nommés
                helper.mixed_n{ label = 'Titre', params = 'titre'},
                helper.mixed('École/tradition', 'tradition philosophique'),
                -- version paramètres nommés
                helper.mixed_n{ label = 'Principaux intérêts', params = 'principaux intérêts'},
                helper.mixed('Idées remarquables', 'idées remarquables'),
                helper.mixed('Œuvres principales', 'œuvres principales'),
                -- utilisation paramètres nommés + valeur par défaut
                common.influencedby('influencé par'),
                common.influenced('a influencé'),
                helper.mixed('Célèbre pour', 'célèbre pour'),
                -- utilisation paramètres nommés + valeur par défaut
                helper.mixed_n{ label = 'Citation'},
                helper.mixed('Adjectifs dérivés', 'adjectifs dérivés')
            ),
    }
}
</source>


=== Contenu du modèle ===
Des fonctions particulières sont associées à ce module :
<pre>{{#invoke:InfoboxBuilder|build|nom=Philosophe}}</pre>
* [[Module:InfoboxBuilder/Helpers]].
* [[Module:InfoboxBuilder/Common queries]].


== Voir aussi ==
== Documentation ==
* [[:Catégorie:Module infobox]]
* [[:Catégorie:Modèle infobox Lua]]


== Documentation ==
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) :
Le module situé dans la page Module:InfoboxBuilder/NOM_DE_L'INFOBOX doit retourner un tableau de la forme suivante (toutes les entrés sont optionnelles sauf précision contraire et avec leur valeur par défaut) :


=== Tableau principal ===
=== Infobox ===
<source lang=lua>
<source lang=lua>
{
{
   'isPart' = false, -- Bolléen permettant de désactiver la sortie de la <div> contenant l'infobox. Permet de faire des infobox modulaires
   'isPart' = false, -- booléen permettant de désactiver la sortie de la <div> contenant l'infobox permet de faire des infobox modulaires
   'typeInfobox' = '', -- string indiquant le type d'infobox, par exemple 'infobox_v3' pour une infobox V3 ('infobox_v3' par défaut)
                    -- par défaut 'false'
   'styleInfobox' = '', -- string indiquant les différent paramètres de style appliqués à l'infobox
   'class' = '', -- chaîne indiquant la classe CSS de l'infobox, par exemple 'infobox_v3' pour une infobox V3
   'parts' = { COMPOSANTS } --Contenu de l'infobox
                -- 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>
</source>


=== Composants ===
=== Composants d'une infobox ===
==== title ====
==== title ====
Permet d'afficher le titre de l’infobox.
Permet d'afficher le titre de l’infobox.
<source lang=lua>
<source lang=lua>
{
{
   'type' = 'title', --Type du composant
   'type' = 'title', -- type du composant
   'class' = '', --Class porté par le <p> contenant le titre
   'class' = '', -- chaîne indiquant la classe CSS du titre
   'icon' = '', --Icône de titre gérée via Common.css
                -- par défaut 'entete'
   'params' = nil, --Paramètres à utiliser pour le titre. peut être une table trié par ordre décroissant de priorité
   'style' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués au titre
   'text' = '' --Si string titre par défaut, si function, fonction, prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le titre (court-circuite params)
   'params' = nil, -- paramètres à utiliser pour le titre. Peut être une table triée par ordre décroissant de priorité
  'background' = '' --Couleur de font du titre
   '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>
</source>
Ligne 98 : Ligne 63 :
       {
       {
           'params' = nil, --Paramètre(s) à utiliser pour obtenir le nom de l'image
           '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é
           '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
           'alt' = '', --Alternative textuelle de l'image
           'upright' = 1 --upright pour l'image. par défaut 1 / nombre d'images
           'upright' = 1 --upright pour l'image. par défaut 1 / nombre d'images
Ligne 104 : Ligne 69 :
   },
   },
   'legendParams' = '' --Paramètre(s) correspondant à la légende
   '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é
   '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>
</source>
Ligne 113 : Ligne 78 :
{
{
   'type' = 'text', --Type du composant
   'type' = 'text', --Type du composant
   'text' = '' --Si string texte à ajouter, si function, fonction, prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le wikitext
  '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>
</source>


==== table ====
==== table ====
Permet d'ajouter un tableau.
Permet d'ajouter une table.
<source lang=lua>
<source lang=lua>
{
{
   'type' = 'table', --Type du composant
   'type' = 'table', -- type du composant
   'params' = nil, --Paramètres à utiliser pour le titre du tableau
  'class' = '', -- chaîne indiquant la classe CSS de la table
   'text' = '', --Si string titre du tableau par défaut, si function, fonction, prenant en paramètre le frame correspondant à l'article, exécutée pour obtenir le titre (court-circuite params)
  'style' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la table
  'class' = '', --Class porté par le <caption> contenant le titre
  '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 }
   'rows' = { LIGNES }
}
}
</source>
</source>


=== lignes ===
==== Composants d'une table ====
==== mixed ====
===== mixed =====
Cette structure permet de créer une ligne composée de 2 cellules : la première contenant la clé ou le label, la deuxième contenant la valeur.
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.


{| class="wikitable"
{| class="wikitable"
|-
|-
| label || valeur
| clé || valeur
|}
|}
   
   
<source lang=lua>
<source lang=lua>
{
{
   'type' = 'mixed', --Type de la ligne
   'type' = 'mixed', -- type de ligne
   'label' = '', --Clef de la ligne. Obligatoire.
  'styleHeader' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la clé
   'params' = nil, --Paramètre à utiliser pour le titre. peut être une table trié par ordre décroissant de priorité
  'styleValue' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la valeur
   'property' = '', --String 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 existe sur l'article, cette valeur à la priorité, Si aucune valeur n'est fournie, le code va chercher la valeur correspondante sur Wikidata.
   'label' = '', -- clé de la ligne. Obligatoire.
   'hidden' = '', -- valeur possible 1 ou 0. Permet de masquer l'affichage de la valeur dans un menu déroulant. Utile dans la cas d'une valeur très longue pour réduire la taille de l'infobox en mode normal
   'params' = nil, -- paramètre à utiliser pour le titre. Peut être une table triée par ordre décroissant de priorité
   'weblink' = '', -- String correspondant à un lien web absolu qui permet de créer un hyperlien avec la valeur  
   '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.  
   'value' = '', --Si string valeur par défaut, si function, 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
                    -- si une valeur est donnée pour le paramètre dans le code de l'article, cette valeur à la priorité,
   'styleHeader' = '', -- String ou table décrivant les éléments de style applicable au label
                    -- si aucune valeur n'est fournie, le code va chercher la valeur correspondante sur Wikidata
  'styleValue' = '', -- String ou table décrivant les éléments de style applicable à la valeur
   '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>
</source>


Exemple (sans intérêt) avec l'usage d'une fonction :
===== doubled =====
<source lang=lua>
{
  'type' = 'mixed',
  'label' = 'Test',
  'value' = function( frame ) return frame.args.test end
}
</source>
 
==== doubled ====


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.
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.
Ligne 174 : Ligne 144 :
<source lang=lua>
<source lang=lua>
{
{
   'type' = 'mixed', --Type de la ligne
   'type' = 'doubled', -- type de ligne
   'label' = '', --Clef de la ligne. Obligatoire.
  'styleHeader' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la clé
   'params' = nil, --Paramètre à utiliser pour le titre. peut être une table trié par ordre décroissant de priorité
  'styleValue' = { composants par paire }, -- table indiquant les différents paramètres de style appliqués à la valeur
   'property' = '', --String 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 existe sur l'article, cette valeur à la priorité, Si aucune valeur n'est fournie, le code va chercher la valeur correspondante sur Wikidata.
   'label' = '', -- clé de la ligne. Obligatoire.
   'value' = '', --Si string 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
   'params' = nil, --Paramètre à utiliser pour le titre. Peut être une table triée par ordre décroissant de priorité
  'styleHeader' = '', -- String ou table décrivant les éléments de style applicable au label
   '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.  
  'styleValue' = '', -- String ou table décrivant les éléments de style applicable à la valeur
                    -- 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>
</source>
== Exemple d'utilisation du code ==
* 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>


<includeonly>
<includeonly>

Version actuelle datée du 2 mai 2014 à 23:57

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>