Module:Matériau

.mw-parser-output .documentation-modele{background-color:#ecfcf4}.mw-parser-output .documentation-module{background-color:#ecf0fc}.mw-parser-output .documentati…

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.

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 = { -- libellés définis localement, qui priment sur ceux de Wikidata
	Q296955 = '[[Peinture à l\'huile|huile]]',
	Q22731 = '[[Pierre naturelle|pierre]]',
	Q4259259 = '[[Toile (peinture)|toile]]',
	Q2448108 = 'structure', --QID de "gros oeuvre" mais parait un peu bizarre dans des contexte comme "gros oeuvre en acier"
}

function p.formatFromItem(item, params)	-- affiche le matériau en fonction de Property:P186, et de son qualificatif P518 ('s'applique à')
	params = params or {}
	params.speciallabels = speciallabels
	
	local claims = wikidata.getClaims{entity = item, property = 'P186'}
	if not claims then
		return nil
	end

	-- crée trois tables : main pour celle sans P518, support pour celle avec qualif "s'applique à "support de peinture" et "parts" pour les autres
	local main, support, parts = {}, {}, {}


	local function assignClaim(claim) -- met une claims dans la bonne table
		local str = wikidata.formatStatement(claim, params)
		if (not claim.qualifiers) or (not claim.qualifiers.P518) then
			table.insert(main, str)
		else
			for _, val in pairs(claim.qualifiers.P518) do
				local key = wikidata.getId(val)
				if key == 'Q861259' then
				table.insert(support, str)
				else
					parts[key] = parts[key] or {}
					table.insert(parts[key], str)
				end
			end	
		end
	end
	
	for i, j in pairs(claims) do
		assignClaim(j)
	end
	
	-- transforme en chaîne la table des valeurs sans qualificatif
	local mainstr = linguistic.conj(main)
	
	-- ajoute le support de peinture (sur toile)
	local supportstr = linguistic.conj(support)
	mainstr = linguistic.conj({mainstr, supportstr}, ' sur ')
	
	-- chaîne des autres valeurs avec qualifs: [piédestal] = {marbre, bronze} => 'piédestal en marbre et bronze'
	local formattedparts = {}
	for part, materials in pairs(parts) do
		local str = wikidata.formatEntity(part, {link = '-', speciallabels = speciallabels}) .. '  en ' .. linguistic.conj(materials)
		table.insert(formattedparts, str)
	end
	local partsStr = linguistic.conj(formattedparts, 'comma')
	
	mainstr = linguistic.conj({mainstr, partsStr}, 'comma')

	if (params.linkback ~= '-') then
		mainstr = wikidata.addLinkBack(mainstr, item, 'P186')
	end
	return  mainstr .. wikidata.addTrackingCat('P186')
end

return p

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.