Aller au contenu

Module:Infobox/Footballeur

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 11 mars 2016 à 00:09 et modifiée en dernier par H4stings (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]

Cette page définit un module d'infobox. Pour les conseils sur l'usage de ce module, voyez Modèle:Infobox Footballeur.


local p = {}
local wd = require "Module:Interface Wikidata".fromLua

function p.teams(frame)
	local item = frame.args[1]
	
	-- Récupération de l'ensemble des valeurs
	local claims = wd.getClaims{entity = item, property = 'P54', rank = 'valid', sorttype = 'chronological'}
	
	if not claims then
		return nil
	end
	
	-- classe par catégorie
	local clubs = {}
	local others = {}
	for i, j in pairs(claims) do
		local v = wd.getmainid(j)
		if wd.isInstance('Q476028', v, 1) then -- si club de football / Q847017 pour un club sportif, mais ça paraît peu adapté
			table.insert(clubs, j)
		else 
			table.insert(others, j)
		end
	end	
	
	local retour = ""
	retour = wd.formatStatements{claims = clubs, conjtype ='new line', showdate = 'true'}
	retour = string.gsub(retour, "([^|]*)[Ff]ootball [Cc]lub( de)?( d')?([^|]*\]\])", "%1FC%2") -- raccourcit l'affichage
	retour = string.gsub(retour, "([^|]*)[Aa]ssociation [Ss]portive( de)?( d')?([^|]*\]\])", "%1FC%2") -- raccourcit l'affichage
	retour = string.gsub(retour, "([^|]*)[Uu]nion [Ss]portive( de)?( d')?([^|]*\]\])", "%1FC%2") -- raccourcit l'affichage
	retour = string.gsub(retour, "([^|]*)Club Atlético( de)?([^|]*\]\])", "%1CA%2") -- raccourcit l'affichage
	return retour -- retourne la liste formatée des clubs
end

function p.selections(frame)
	local item = frame.args[1]

	-- Récupération de l'ensemble des valeurs
	local claims = wd.getClaims{entity = item, property = 'P54', rank = 'valid', sorttype = 'chronological'}
	
	if not claims then
		return nil
	end
	
	-- classe par catégorie
	local selections = {}
	local others = {}
	for i, j in pairs(claims) do
		local v = wd.getmainid(j)
		if wd.isInstance('Q15944511', v, 3) then  --  si équipe de football et ses subclasses, notamment les sélectionsnational association football team ou subclasses
			table.insert(selections, j)
		else 
			table.insert(others, j)
		end
	end
	
	local retour = ""
	retour = wd.formatStatements{claims = selections, conjtype ='new line', showdate = 'true'}
	retour = string.gsub(retour, "([^|]*)de football([^|]*\]\])", "%1%2") -- raccourcit l'affichage en supprimant les "en football" dans le titre des sélections
	retour = string.gsub(retour, "([^|]*)de soccer([^|]*\]\])", "%1%2") -- raccourcit l'affichage en supprimant les "en soccer" dans le titre des sélections
	return retour -- retourne la liste formatée des sélections
end

return p