Modul:Infobox/Fonctions
Xuyakirin
Belgekirina modulê[biafirîne]
-- Fonctions communes à diverses infobox
local localdata = require( 'Module:Infobox/Localdata' )
local wikidata = require( 'Module:Wikidata/fr' )
local item = localdata.item
local p = {}
function p.title(icon, style, subtitleparam, subtitlequery, italic)
local function hide(param, value)
if localdata[param] ~= '-' then
return value
end
end
return {
type = 'title',
value = function()
return 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
end,
subtitle = function() if localdata[subtitleparam] ~= '-' then return localdata[subtitleparam] end end,
wikidatasubtitle = hide(subtitleparam, subtitlequery),
icon = icon,
style = style,
italic = italic,
setdisplaytitle = italic,
}
end
function p.mainimage(args, defaultimage)
if type( args ) ~= 'table' then
args = { cat = args, defaultimage = defaultimage }
end
return {
type = 'images',
imageparameters = {'image', 'photo', 'Photo', 'wêne'},
defaultimages = args.defaultimage or defaultimage,
defaultimagelink = 'Aide:Insérer une image',
sizeparameter = 'mezinahiya wêne',
uprightparameter = 'upright',
defaultupright = args.upright,
defaultsize = args.size,
maintenancecat = args.cat or 'Article à illustrer',
captionparameter = {'légende', 'légende image', 'Légende', 'sernavê_wêne', 'sernavê wêne'},
altparameter = args.altparameter or 'alternative image',
defaultalt = args.alt or 'Image dans Infobox.',
defaultimagealt = args.defaultimagealt,
wikidata = args.wikidata or {property = {'P18', 'P5252'}},
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 = 'Malper',
plurallabel = 'Malper',
wikidata = function()
local values, num = wikidata.formatAndCat {
entity = localdata.item,
displayformat = 'weblink',
conjtype = '<br />',
property = 'P856',
isinlang = 'ku',
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 = false,
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 kurdî
if wikidata.getClaims{entity = localdata.item, property = prop, qualifier = {'P407'}, qualifiervalue = {'Q36368'} } then
return {property = prop, qualifier = {'P407'}, qualifiervalue = {'Q36368'} }
end
return {property = prop}
end
function p.prononciation()
return {
type = 'images',
style = {['padding-top'] = '25px'},
defaultcaption = 'Bilêvkirin',
captionparameter = 'légende prononciation',
value = {'prononciation', 'bilêvkirin'},
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
function p.detailedmap(params)
local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
return coordfunctions.detailedmap(params)
end
return p