Module:Infobox/Fonctions/Bac à sable
Apparence
[voir] [modifier] [historique] [purger]
Cette page définit un module d'infobox.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Modèle:Documentation module d'infobox. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (modifier).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- Fonctions communes à diverses infobox
local localdata = require( 'Module:Infobox/Localdata' )
local wikidata = require( 'Module:Wikidata' )
local item = localdata.item
local p = {}
--[[
Crée un bloc titre
Paramètres
icon :
style :
subtitleparam :
subtitlequery :
italic : indique si le titre de l'infobox doit être mis en italique.
setdisplaytitle : indique si le titre de l'article doit être mis en forme comme celui de l'infobox.
Le paramètres doivent être passés via une table. La syntaxe avec les arguments positionnels est obsolète.
TODO: Migrer tous les appels vers la syntaxe avec table.
--]]
function p.title(args_or_icon, style, subtitleparam, subtitlequery)
local args
if type( args_or_icon ) == 'table' then
args = args_or_icon
else
args = {
icon = args_or_icon,
style = style,
subtitleparam = subtitleparam,
subtitlequery = subtitlequery,
}
end
return {
type = 'title',
value = function()
local yesno = require( 'Module:Yesno' )
local text = (
localdata['nom'] or localdata['association_nom'] or localdata['nom_think'] or
localdata['acronymelaboratoire'] or
( wikidata.getLabel(localdata.item) and
mw.language.getContentLanguage():ucfirst( wikidata.getLabel(localdata.item) ) ) or
mw.title.getCurrentTitle().text
)
if yesno(args.italic) then
text = '<div class="italique">' .. text .. '</div>'
end
if yesno(args.setdisplaytitle) then
text = text .. require( 'Module:Formatage du titre' ).setDisplayTitle{ args = {
italic = args.italic,
options = 'noreplace',
} }
end
return text
end,
subtitle = function() return localdata[args.subtitleparam] end,
wikidatasubtitle = args.subtitlequery,
icon = args.icon,
style = args.style,
}
end
function p.mainimage(args, defaultimage)
if type( args ) ~= 'table' then
args = { cat = args, defaultimage = defaultimage }
end
return {
type = 'images',
imageparameters = {'image', 'photo', 'Photo'},
defaultimages = args.defaultimage,
defaultimagelink = 'Aide:Insérer une image',
sizeparameter = 'taille image',
uprightparameter = 'upright',
defaultupright = args.upright,
defaultsize = args.size,
maintenancecat = args.cat or 'Article à illustrer',
captionparameter = {'légende', 'légende image', 'Légende'},
altparameter = args.altparameter or 'alternative image',
defaultalt = args.alt,
defaultimagealt = args.defaultimagealt,
wikidata = args.wikidata or {property = {'P18'}},
numval = 1,
}
end
function p.interior(upright)
return {
type = 'images',
imageparameters = {'intérieur', 'interior'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'légende intérieur',
property = 'P5775',
defaultupright = upright or '1',
uprightparameter = 'upright intérieur',
sizeparameter = 'taille intérieur',
numval = 1,
}
end
function p.logo(upright)
return {
type = 'images',
imageparameters = {'logo', 'association_logo'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'légende logo',
property = 'P154',
defaultupright = upright or '0.6',
uprightparameter = 'upright logo',
sizeparameter = 'taille logo',
numval = 1,
}
end
function p.blason(upright)
return {
type = 'images',
imageparameters = {'blason', 'sceau'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = {'légende blason', 'légende sceau'},
property = {'P94', 'P158'},
defaultupright = upright or '0.8',
uprightparameter = {'upright blason', 'upright sceau'},
sizeparameter = {'taille blason', 'taille sceau'},
numval = 1,
}
end
function p.flag(upright, id)
local drapeau = wikidata.formatStatements{entity = id, property = 'P163', defaultlink = '-'}
return {
type = 'images',
imageparameters = {'drapeau'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = drapeau or 'légende drapeau',
property = 'P41',
defaultupright = upright or '1',
uprightparameter = 'upright drapeau',
sizeparameter = 'taille drapeau',
numval = 1,
}
end
function p.sign(upright)
return {
type = 'images',
imageparameters = {'signalisation'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'légende signalisation',
property = 'P14',
defaultupright = upright or '0.4',
uprightparameter = 'upright signalisation',
sizeparameter = 'taille signalisation',
numval = 1,
}
end
function p.icon(upright)
return {
type = 'images',
imageparameters = {'icône'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'légende icône',
property = 'P2910',
defaultupright = upright or '0.4',
uprightparameter = 'upright icône',
sizeparameter = 'taille icône',
numval = 1,
}
end
function p.bathymetricmap(upright)
return {
type = 'images',
imageparameters = {'carte bathymétrique'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'légende carte bathymétrique',
property = 'P207',
defaultupright = upright or '1',
uprightparameter = 'upright carte bathymétrique',
sizeparameter = 'taille carte bathymétrique',
numval = 1,
}
end
function p.routemap(upright)
return {
type = 'images',
imageparameters = {'tracé'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'légende tracé',
property = 'P15',
defaultupright = upright or '1',
uprightparameter = 'upright tracé',
sizeparameter = 'taille tracé',
numval = 1,
}
end
-- Liens externes
function p.website(localparam) -- texte libre [http://example.org example.org] ou url seule localparam est désigne le paramètre utilisé historiquement dans le modèle pour le site web (legacy)
return {
type = 'mixed',
label = '[[Site web]]',
plurallabel = '[[Site web|Sites web]]',
wikidata = function()
local values, num = wikidata.formatAndCat {
entity = localdata.item,
displayformat = 'weblink',
conjtype = '<br />',
property = 'P856',
isinlang = 'fr',
rank = 'valid',
excludespecial = true, -- excludespecial car il peut y avoir marqué "aucune valeur" pour le français, mais y avoir un site en anglais
returnnumberofvalues = true,
}
if not values then
values, num = wikidata.formatAndCat {
entity = localdata.item,
displayformat = 'weblink',
conjtype = '<br />',
property = 'P856',
showlang = true,
excludespecial = true,
returnnumberofvalues = true,
}
end
return values, num
end,
value =
function()
local siteurl = localdata[localparam] or localdata['site web'] or localdata['site_web'] or localdata['site officiel'] or localdata['site internet'] or localdata['web']
local sitename = localdata['nom site']
if siteurl then
if siteurl:find("url") then
return siteurl
else
return require("Module:Weblink").makelink(siteurl, sitename)
end
end
end,
}
end
-- Son, prononciation
function p.selectSound(prop)
-- priorité au français
if wikidata.getClaims{entity = localdata.item, property = prop, qualifier = {'P407'}, qualifiervalue = {'Q150'} } then
return {property = prop, qualifier = {'P407'}, qualifiervalue = {'Q150'} }
end
return {property = prop}
end
function p.prononciation()
return {
type = 'images',
style = {['padding-top'] = '25px'},
defaultcaption = 'Prononciation',
captionparameter = 'légende prononciation',
value = 'prononciation',
defaultsize = '280',
wikidata = p.selectSound('P443'),
numval = 1,
}
end
-- Fonctions de géolocalisation
function p.country(default)
local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
return coordfunctions.country(default)
end
function p.geoloc(params)
local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
return coordfunctions.geoloc(params)
end
function p.coordinates(params)
local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
return coordfunctions.coordinates(params)
end
function p.locationmap(params)
local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
return coordfunctions.locationmap(params)
end
return p