Module:Matériau
Fonctions exportables
formatFromItem(item, params)
Affiche le matériau dans lequel est fait un objet en fonction des données stockées dans la propriété matériau de Wikidata et de paramètres de formatage (params). Ces paramètres de formatage sont les mêmes que ceux de la fonction formatStatements de Module:Wikidata.
Argument | Type | Description |
---|---|---|
item |
chaîne | identifiant wikidata |
params |
table | paramètres de mise en forme |
Libellé | Paramètre | Wikidata | Description |
---|---|---|---|
Matériau | P186 (« matériau »)
|
Liste les matériaux utilisés. Suivant la valeur du qualificateur de chaque matériau le comportement est le suivant : * Pas de qualifcateur : les matériaux sont listés séparés par une virgule. * le qualificateur vaut Q861259 (« support de peinture ») : les supports utilisés apparaitront précédés de « sur ». * les autres qualificatifs permettront de décrire les composants de l'élément décrit. Exemples : |
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
Exemples
Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local wikidata = require('Module:Wikidata')
local linguistic = require('Module:Linguistique')
local speciallabels = { -- valeur du libellé défini ici plutôt que dans l'élément Wikidata (pour adaptation au contexte, léger gain de performance)
Q296955 = '[[Peinture à l\'huile|huile]]'
}
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, {speciallabels = speciallabels})
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
end
local val = linguistic.conj(mainvals) or ''
local support = linguistic.conj(supportvals)
if support then
val = val .. ' sur ' .. support
end
val = wikidata.addLinkback(val, item, 'P186') .. wikidata.addtrackingcat('P186')
return val
end
return p