Aller au contenu

Module:Tableau qualificateurs

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 24 septembre 2015 à 20:37 et modifiée en dernier par Tpt (discuter | contributions) (autorise à rediriger les propriétés). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

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

Module contenant le code de Modèle:Tableau qualificateurs.

local wikidata = require 'Module:Wikidata'
local recup = require 'Module:Wikidata/Récup'

local p = {}

function claimsToArray(claims, options)
	local headers = {}
	local rows = {{}}
	local newCol = 1

	for i, claim in pairs(claims) do
		rows[i + 1] = {}

		if headers[claim.mainsnak.property] == nil then
			headers[claim.mainsnak.property] = newCol
			newCol = newCol + 1
		end
		rows[i + 1][headers[claim.mainsnak.property]] = wikidata.formatSnak(claim.mainsnak, {})

		if claim.qualifiers ~= nil then
			for _, qs in pairs(claim.qualifiers) do
				for _, qualifier in pairs(qs) do
					if options[qualifier.property] ~= nil then
						qualifier.property = options[qualifier.property]
					end
					if headers[qualifier.property] == nil then
						headers[qualifier.property] = newCol
						newCol = newCol + 1
					end
					rows[i + 1][headers[qualifier.property]] = wikidata.formatSnak(qualifier, {})
				end
			end
		end
	end

	for property, i in pairs(headers) do
		rows[1][i] = mw.wikibase.label(property)
	end

	return rows
end

function formatArray(rows)
	local str = '{| class="wikitable sortable"'

	for i,row in pairs(rows) do
		str = str .. '\n|-'

		for j,_ in pairs(rows[1]) do
			if row[j] == nil then
				str = str .. '\n|'
			else
				if i == 1 or j == 1 then
					str = str .. '\n!'
				else
					str = str .. '\n|'
				end
				str = str .. ' ' .. row[j]
			end
		end
	end

	return str .. '\n|}\n'
end

function p.tableau(frame)
	local args = frame:getParent().args
	local claims = recup.getClaims(args)
	local rows = claimsToArray(claims, args)
	return formatArray(rows)
end

return p