Module:Matériau

De Lagny-sur-Marne Wiki
Version datée du 7 mars 2015 à 08:25 par 0x010D (discussion | contributions) (détaché de Module:Infobox/Fonctions/Bâtiment)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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 local support = linguistic.conj(supportvals) if support then return main .. ' sur ' .. support else return main end end end return p