Module:Taxobox-briques
Appearance
Documentation for this module may be created at Module:Taxobox-briques/doc
-- Ce module contient le code HTML à générer. Ce sont des fonctions
-- prennant en paramètres les différents éléments à intégrer
-- (titre, taxon, ...) selon les cas et génerant en retour le code
-- wiki/HTML correspondant.
-- Le but est d'avoir toute la génération finale de code indépendante
-- du code "intelligent" afin de faciliter les évolutions ou de
-- simplifier à l'avenir l'utilisation d'autres briques existantes
local z = {}
-- génère un entête de taxobox (l'ouverture de la taxobox)
-- Paramètres :
-- style : correspond au sous-style CSS associé (le règne "normalisé")
-- titre : le texte a mettre en dans la zone de titre
function z.t_debut(style, titre)
return '<div class="infobox_v3 large taxobox_v3 bordered ' .. style .. '" style="width: 20em">\n' .. '<p class="entete">' .. titre .. '</p>\n'
end
-- genere une entête de bloc. Ça correspond à un sous-titre de taxobox
-- Paramètres :
-- texte : texte à mettre dans la zone de sous-titre
function z.t_bloc(texte)
return '<p class="bloc">' .. texte .. '</p>\n'
end
-- génère une zone de texte, type <p> simple
-- Paramètres :
-- texte : le texte à insérer
-- centre : si true texte centré
function z.t_texte(texte, centre)
local res
if (centre == true) then
res = '<p class="center">'
else
res = '<p>'
end
res = res .. (texte or "") .. '</p>'
return res
end
-- génère le code de la première partie d'une ligne de classification
-- (la partie gauche : le rang)
-- non utilisée directement, voir fonction suivante.
function z.t_ligne_mixte_champs(texte)
return '<tr>\n<th scope="row">' .. (texte or "") .. '</th>\n'
end
-- génère le code de la deuxième partie d'une ligne de classification
-- (la partie droite : le nom du taxon)
-- non utilisée directement, voir fonction suivante.
function z.t_ligne_mixte_valeur(texte)
return '<td style="width:8em;">' .. (texte or "") .. '</td>\n</tr>'
end
-- génère le code d'une ligne de classification. Utilise les deux fonctions
-- précédentes.
-- Paramètres :
-- rang : le rang, partie gauche d'une ligne de classification
-- nom : le nom du rang associé, partie droite d'une ligne de classification
function z.t_ligne_mixte(rang, nom)
return z.t_ligne_mixte_champs(rang or "") .. z.t_ligne_mixte_valeur(nom or "")
end
-- cette fonction insert une ligne unique dans une table en cours. Utile uniquement pour
-- insérer une image dans la partie classification phylo. Il faudrait sans doute trouver mieux.
function z.t_ligne_unique(contenu)
return '<tr><td colspan="2" style="align:center;">' .. (contenu or "") .. '</td></tr>'
end
-- génère un sous-titre. Il s'agit du sous-titre de l'article. En pratique ça ne
-- devrait probablement pas être dans ce module car ce n'est pas particulièrement
-- lié aux "briques de base d'une info/taxobox", mais à défaut c'est ici en attendant.
-- Paramètres :
-- texte : le texte à mettre en sous-titre. ATTENTION : il faut fournir du HTML et
-- non du code wiki si de la mise en forme est nécessaire (italique par exemple)
function z.t_sous_titre(texte)
return '<span id="sous_titre_h1">' .. (texte or "") .. '</span>'
end
-- termine une taxobox. Bloc de fin.
-- Paramètres :
-- aucun
function z.t_end()
return '</div>\n'
end
-- génère une taxobox d'erreur. Utilisé en cas d'erreur de paramètres. Permet
-- ainsi d'afficher une pseudo-infobox en lieu et place de la taxobox, contenant
-- un message clair indiquant qu'il y a une erreur ainsi qu'un texte décrivant
-- l'erreur en question.
-- Insert également une catégorie "Taxobox à corriger" afin de repérer ces cas.
-- Paramètres :
-- texte : le texte de description de l'erreur à afficher.
function z.t_erreur(texte, cattitle)
local box
box = '<div class="infobox_v3 large taxobox_v3 bordered error" style="width: 20em">\n'
box = box .. '<p class="entete">' .. "Erreur d'utilisation du modèle/module taxobox.<br/>Voir [[Template:Taxobox-fr/doc|la documentation]] associée." .. '</p>\n'
if ( nil == texte or "" == texte ) then
texte = "Aucune description d'erreur fournie."
end
box = box .. '<p class="bloc">' .. texte .. '</p>\n'
box = box .. '</div>\n'
-- insertion de la catégorie "en erreur"
if (nil ~= cattitle and "" ~= cattitle) then
box = box .. "[[Category:Taxobox avec erreur|" .. cattitle .. "]]\n"
else
box = box .. "[[Category:Taxobox avec erreur]]\n"
end
return box
end
return z