Aller au contenu

Module:Titulaires

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 16 février 2019 à 12:58 et modifiée en dernier par Alt0160 (discuter | contributions) (Nouvelle page : local wikidata = require 'Module:Wikidata' local formatDate = require 'Module:Date complexe' local p = {} local function formatClaim(statement, args) local name = wikidata.form...). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

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

Utilisation

Le module Titulaires est constitué de différentes parties. Ses fonctions sont réutilisées par les modèles {{Titulaires}} et {{Liste des dirigeants successifs}}.

local wikidata = require 'Module:Wikidata'
local formatDate = require 'Module:Date complexe'

local p = {}

local function formatClaim(statement, args)
	local name = wikidata.formatSnak(statement.mainsnak, args)
	if not name then
		return nil
	end
	local eluArgs = {["Identité"] = name}
	local dates = wikidata.getDate(statement)
	if dates then
		startDate = formatDate.simplestring(dates.begin)
		if startDate then
			eluArgs['Début'] = startDate
		end
		endDate = formatDate.simplestring(dates.ending)
		if endDate then
			eluArgs['Fin'] = endDate
		end
	end
	
	return {title = "Élu", args = eluArgs}
end

function p.listeElusSuccessifs(frame)
	local entity = 'Q484678'
	local title = 'Liste des maires successifs'
	local charter = 'commune'
	local args = {entity = entity, property = 'P6', showdate = true, sorttype = "chronological", rank = "valid", showsource = true}
	local claims = wikidata.getClaims(args)
	mw.log(table.getn(claims))
	local elus = {}
	for i, statement in pairs(claims) do
		local formattedClaim = formatClaim(statement, args)
		if formattedClaim then
			local expandedTemplate = frame:expandTemplate(formattedClaim)
			table.insert(elus, expandedTemplate)
		end
	end
	templateCall = 
		frame:expandTemplate({title = 'ÉluDébut', {Titre = title, Charte = charter}}) 
		.. table.concat(elus)
		.. frame:expandTemplate({title = 'ÉluFin'})
	return templateCall
end
 
return p