Sivun "Moduuli:Wikidata/number" versielöin eroloi
Syväindö on otettu iäre Syväindö on ližätty
Kawtaj (pagin | kohendukset) Новая страница: «local p = {} function p.formatQuantityWithDateClaim( context, options, statement ) local snak = context.formatSnak( options, statement.mainsnak ) --Unit…» |
(Ei ole nimittumii eroloi)
|
Versii 11. Ligakuuta 2016 kello 17.15
Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Wikidata/number/ohje
local p = {}
function p.formatQuantityWithDateClaim( context, options, statement )
local snak = context.formatSnak( options, statement.mainsnak )
--Unit
if ( options.unit and options.unit ~= '' ) then
snak = snak .. ' ' .. options.unit
end
--Date
if ( statement.qualifiers and statement.qualifiers.P585 ) then
snak = snak .. ' (' .. context.formatSnak( options, statement.qualifiers.P585[1] ) .. ')'
end
--References
if ( options.references ) then
snak = snak .. context.formatRefs( options, statement );
end
return snak
end
local function getUnitAbbr(unitQid)
local entity = mw.wikibase.getEntity(unitQid)
if entity and entity.claims and entity.claims.P558 then
for _, abbr in pairs( entity.claims.P558 ) do
if abbr.qualifiers then
if abbr.qualifiers.P407 and abbr.qualifiers.P407[1].datavalue.value.id == "Q7737" or
abbr.qualifiers.P282 and abbr.qualifiers.P282[1].datavalue.value.id == "Q8209" then
return abbr.mainsnak.datavalue.value
end
end
end
end
end
function p.formatQuantity( context, options, value )
local snak = value.amount
if snak:sub(1, 1) == '+' then
snak = snak:sub(2)
end
snak = snak:gsub('[.]', ',')
if ( options.unit and options.unit ~= '' ) then
snak = snak .. ' ' .. options.unit
return snak
end
if value.unit ~= nil then
local unitQid = value.unit:match('Q%d+')
if unitQid ~= nil then
local abbr = getUnitAbbr(unitQid)
if abbr ~= nil then
snak = snak .. ' ' .. abbr
end
end
end
return snak
end
return p