Moduuli:Fr:Infobox/Fonctions/asukasluku
Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Fr:Infobox/Fonctions/asukasluku/ohje
local l = {}
local convert = require "Module:Fr:Conversion"
local linguistic = require "Module:Fr:Linguistique"
local localdata = require 'Module:Fr:Infobox/Localdata'
local wikidata = require "Module:Fr:Wikidata"
local function getVal(addargs) -- pour une propriété donnée, retourne la meilleure valeur, ainsi que sa date, sa référence, et si ça vient ou non de Wikidata
local args = {numval = 1, entity = localdata.item, showunit = '-', displayformat = 'raw', precision = 'year'}
for i, j in pairs(addargs or {}) do
args[i] = j
end
local statements = wikidata.getClaims(args)
if not statements then
return nil
end
local val = statements[1]
local v = wikidata.formatStatement(val, args)
local period = wikidata.getFormattedDate(val, args)
local ref = nil -- TODO : fonction dans Module:Wikidata pour récupérer les refs
return v, period, ref, args.property
end
-- Fonctions de récupération de données valables dans plusieurs champs (et appelées plusieurs fois)
local pop, popdate, popref, popprop = localdata["väkiluku"], localdata["année pop"], localdata["population notes"], nil
if not pop then
pop, popdate, popref, popprop = getVal({property = "P1082", sorttype="inverted"})
end
-- Fonctions de mise en forme
local function formatVal(val, period, ref, prop)
local s = tostring(val)
if period then
s = s .. "<small>" .. linguistic.inparentheses(period) .. "</small>"
end
if ref then
s = s .. "<ref>" .. ref .. "</ref>"
end
if prop then
s = wikidata.formatAndCat{entity = localdata.item, property = prop, value = s} -- permet de mettre le rétrolien à la fin
end
return s
end
function l.formatPop()
if not pop then
return nil
end
local popstr = convert.displayvalue(pop)
popstr = string.gsub(popstr, "+", "") -- devrait être fait en amont
popstr = popstr .. " as."
return formatVal(popstr, popdate, popref, popprop)
end
return l