« Module:Matériau » : différence entre les versions
Apparence
Modèle:Infobox>Zolo détaché de Module:Infobox/Fonctions/Bâtiment |
Modèle:Infobox>Zolo mAucun résumé des modifications |
||
| Ligne 26 : | Ligne 26 : | ||
table.insert(mainvals, val) | table.insert(mainvals, val) | ||
end | end | ||
local main = linguistic.conj(mainvals) or '' | local main = (linguistic.conj(mainvals) or '') .. '[[Catégorie:Page utilisant des données de Wikidata/P186]]' | ||
local support = linguistic.conj(supportvals) | local support = linguistic.conj(supportvals) | ||
if support then | if support then | ||
Version du 7 mars 2015 à 11:08
La documentation pour ce module peut être créée à Module:Matériau/doc
local p = {}
local wikidata = require('Module:Wikidata')
local linguistic = require('Module:Linguistique')
function p.formatFromItem(item)
-- affiche le matériau en fonction de Property:P186, et de son qualificatif P518 ('s'applique à')
local materials = wikidata.getClaims{item = item, property = 'P186'}
if not materials then
return nil
end
local mainvals = {}
local supportvals = {} -- comme dans huile ''sur toile''
for i, j in pairs(materials) do
local val = wikidata.formatSnak(j.mainsnak)
local typ = 'main' -- changé en 'support' s'il faut la mettre sur supportstr
if j.qualifiers and j.qualifiers.P518 then -- P518: "s'applique à "
if wikidata.getRawvalue(j.qualifiers.P518[1]) == 'Q861259' then
typ = 'support'
else
val = val ..linguistic.inparentheses(wikidata.formatSnak(j.qualifiers.P518[1], {link = '-'})) -- enlève le lien qui fait moche ici
end
end
if typ == 'support' then
table.insert(supportvals, val)
else
table.insert(mainvals, val)
end
local main = (linguistic.conj(mainvals) or '') .. '[[Catégorie:Page utilisant des données de Wikidata/P186]]'
local support = linguistic.conj(supportvals)
if support then
return main .. ' sur ' .. support
else
return main
end
end
end
return p