Aller au contenu

Module:Classement

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 7 mars 2015 à 10:27 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]

Utilisation

Fonction utilisable depuis un autre module Lua :

  • fonction formattedlist(item, params) – prend pour argument l'identifiant Wikidata d'un monument (ou la table complète de son élément Wikidata déjà chargée) et liste les protections patrimoniales dont il fait l'objet. params désigne les paramètres habituels des fonction Wikidata voir Module:Wikidata/Documentation).
Le comportement de cette fonction est proche de celui de Module:Wikidata.formatStatements{property ="P1425", showdate = true, precision = "year", showqualifiers = "P518"} mais des mises en forme supplémentaires sont effectuées pour éviter les répétitions et rendre le texte plus naturel.
local p = {}
local formattingdata = mw.loadData('Module:Classement/Données')
local wikidata = require('Module:Wikidata')

function p.formattedList(item)
	-- créé une liste des status patrimoniaux de l'élement
	--utilise Module:Classement/Données pour les abréviations, redirects et logos
	
	local claims = wikidata.getClaims({item = item, property = 'P1435', exludespecial = true})
	if not claims then
		return nil
	end
	
	local statuses = {}-- nouvelle table pour ne pas afficher séparément deux statements décrivant le même statut
	for i, j in pairs(claims) do
		local pstatus = wikidata.getmainid(j)
		if not statuses[pstatus] then 
			statuses[pstatus] = {j}
		else
			table.insert(statuses[pstatus], j)
		end
	end
	
	local stringtable = {} -- liste des chaînes à retourner
	for i, j in pairs(statuses) do
		local mainstr = ''
		if formattingdata[i] then
			mainstr = formattingdata[i][1]
		else
			mainstr = wikidata.formatEntity(i)
		end
		local logostr = ''
		if formattingdata[i] and formattingdata[i][2] then
			logostr = '[[File:' .. formattingdata[i][2] .. '|x18px]] ' 
		end

		local t = {} -- informations complémentaires sur les dates et les parties concernées
		for k, l in pairs(j) do
			local protectiondate = wikidata.getFormattedQualifiers(l, {'P580'}, {precision = 'year'})
			if protectiondate then
				table.insert(t, protectiondate)
			end
		end
		local details = table.concat(t, ", ")
		if details ~= '' then
			details = ' <small>(' .. details ..  ')</small>'
		else
			details = ''
		end
		table.insert(stringtable, logostr .. mainstr .. details)
	end
	return table.concat(stringtable, '<br />') .. '[[Catégorie:Page utilisant des données de Wikidata/P1435]]'
end
return p