[go: nahoru, domu]

Aller au contenu

Module:Matériau

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 10 mars 2015 à 16:50 et modifiée en dernier par Zolo (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]

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.

Paramètres de la fonction
Argument Type Description
item chaîne identifiant wikidata
params table paramètres de mise en forme
Paramètre de l'infobox
Libellé Paramètre Wikidata Description
Matériau P186 (« matériau »)
Qualificateur :
P518 (« s'applique à »)
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.

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