Aller au contenu

Module:Infobox/Fonctions

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.

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


Cette page contient des fonctions aidant à la création des modèles de type infobox. Elle utilise deux variables globales définies par Module:Infobox : localdata (les paramètres passés à l'infobox) et item la table Lua de l'élément Wikidata utilisé.

Fonctions exportables

title(icon, style, subtitleparam, subtitlequery, italic)

Retourne la barre de titre de l'infobox.

Paramètres de la fonction
Argument Type Description
icon chaîne pictogramme s'affichant à droite de la barre de titre.
Voir les valeurs possibles dans le Projet pictogrammes des infobox
style chaîne paramètres html de style, si différents du style par défaut.
subtitleparam chaîne? ???
subtitlequery chaîne? ???
italic chaîne? ???
Paramètre de l'infobox
Libellé Paramètre Wikidata Description
nom
association_nom
nom_think
acronymelaboratoire
titre
Texte à afficher dans la barre de titre de l'infobox.

Par défaut c'est le libellé en français de l'élément wikidata lié à la page. En son absence, c'est le nom de la page Wikipédia.
Exemples :

standardImage(imageType, imageparameters, property, upright)

Fonction destinée à être appelée par d'autres fonctions spécifiques à un type d'image et non pas directement pour créer une infobox. Elle permet de mettre en place les paramètres standard pour un type d'images donné. Par exemple si le type d'image vaut 'logo', les paramètres générés et utilisable dans l'infobox seront : légende logo, upright logo, taille logo et alternative logo.

Paramètres de la fonction
Argument Type Description
imageType chaîne Type de l'image à afficher. Par exemple :'logo'
imageparameters table Liste des paramètres à utiliser dans l'infobox. Par exemple : {'blason', 'sceau'}
property chaîne Propriétés wikidata qui seront utilisées par défaut en cas d'absence de paramètres dans l'infobox.
upright nombre Valeur par défaut du facteur de redimensionnement de l'image de l'intérieur.


mainimage(cat, defaultimage) ou mainimage(args, defaultimage)

Retourne l'image principale de l'infobox ; généralement c'est une photo.

Paramètres de la fonction
Argument Type Description
Première syntaxe
cat chaîne Catégorie à laquelle sera ajoutée la page contenant l'infobox si cette denière n'a pas d'image.
defaultimage chaîne Image à afficher en l'absence d'image fournie. Par exemple .
Deuxième syntaxe
args tableau tableau d'arguments qui peut contenir : defaultimage, upright, size, cat, altparameter, alt, defaultimagealt, wikidata,
defaultimage chaîne? ???


Paramètres de l'infobox
Libellé Paramètres Wikidata Description
image
photo
Photo
P18 (« image »)
P5252 (« vue hivernale »)
Fichier de l'image ou de la photographie à afficher dans l'infobox.
Pour les « bâtiments récents » prennez en compte les règles exceptions au droit d'auteur.

Exemples :

légende image
légende
Légende
Qualificatif de l'image affichée :
P2096 (« légende de média »)[1]
Légende de l'image.
Si l'image provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») de l'image, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si l'image s'affiche.

Exemples :
Pour l'Académie des Jeux floraux l'infobox est paramétrée avec :
légende image = L’hôtel d'Assézat, où siège l’académie.

upright Facteur de redimensionnement de l'image. Utile en particulier lorsque l'image est en mode portrait[2].

Voir l'aide sur la mise en forme des images
Exemples :
upright = 0.5

taille image Largeur de l'image, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :
Pour AARP l'infobox est paramétrée avec :
taille image = 150.

alternative image Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples :
Société d'outillage mécanique et d'usinage d'artillerie

interior(upright)

Retourne une représentation de l'intérieur de l'élément.

Paramètre de la fonction
Argument Type Description
upright nombre Valeur par défaut du facteur de redimensionnement de l'image de l'intérieur.
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
intérieur
interior
P5775 (« vue de l'intérieur ») Fichier de l'intérieur du lieu.

Exemples :

légende intérieur P2096 (« légende de média ») de P5775 (« vue de l'intérieur »)[1] Légende de l'illustration de l'intérieur.
Si l'image provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») de l'image, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si le l'image s'affiche.

Exemples :

upright intérieur Facteur de redimensionnement de l'image de l'intérieur. Utile en particulier lorsque l'image est en mode portrait[2].

Voir l'aide sur la mise en forme des images
Exemples :
upright intérieur = 0.5

taille intérieur Largeur de l'image de l'intérieur, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright intérieur est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :

alternative intérieur Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples :
Hôtel Opéra Cadet

logo(upright)

Retourne le logo.

Paramètre de la fonction
Argument Type Description
upright nombre Valeur par défaut du facteur de redimensionnement du logo.


Paramètres de l'infobox
Libellé Paramètres Wikidata Description
logo
association_logo
P154 (« image du logotype ») Fichier du logo à afficher dans l'infobox.

Exemples :

légende logo P2096 (« légende de média ») de P154 (« image du logotype »)[1] Légende du logo.
Si le logo provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») du logo, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si le logo s'affiche.

Exemples :

upright logo Facteur de redimensionnement du logo. Utile en particulier lorsque le logo est en mode portrait[2].

Voir l'aide sur la mise en forme des images
Exemples :
upright logo = 0.5

taille logo Largeur du logo, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright logo est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :

alternative logo Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples : Alternative textuelle à un logo

blason(upright)

Retourne le blason ou le sceau.

Paramètre de la fonction
Argument Type Description
upright nombre Valeur par défaut du facteur de redimensionnement du blason ou du sceau.
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
blason
sceau
P94 (« image du blason »)
P158 (« image du sceau »)
Fichier du blason ou du sceau à afficher dans l'infobox.

Exemples :

légende blason
légende sceau
P2096 (« légende de média ») de P94 (« image du blason ») ou P158 (« image du sceau »)[1] Légende du blason ou du sceau.
Si le blason ou le sceau provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») du blason ou du sceau, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si le blason ou le sceau s'affiche.

Exemples :

upright blason
upright sceau
Facteur de redimensionnement du blason ou du sceau. Utile en particulier lorsque le blason ou le sceau est en mode portrait[2].

Voir l'aide sur la mise en forme des images Exemples :
upright blason = 0.5

taille blason
taille sceau
Largeur du du blason ou du sceau, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright blason est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :

alternative blason Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples :
Hôtel Opéra Cadet

flag(upright, id)

Retourne le drapeau.

Paramètre de la fonction
Argument Type Description
upright nombre Valeur par défaut du facteur de redimensionnement du drapeau.
id nombre ???
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
drapeau P41 (« image du drapeau ») Fichier du drapeau à afficher dans l'infobox.

Exemples :

légende drapeau P2096 (« légende de média ») de P41 (« image du drapeau »)[1] Légende du drapeau.
Si le drapeau provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») du drapeau, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si le drapeau s'affiche.

Exemples :

upright drapeau Facteur de redimensionnement du drapeau. Utile en particulier lorsque le drapeau est en mode portrait[2].

Voir l'aide sur la mise en forme des images
Exemples :
upright drapeau = 0.5

taille drapeau Largeur du drapeau, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright drapeau est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :

alternative drapeau Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples :
Affichage du pavillon de la garde côtière du Japon. et d'un texte alternatif

sign(upright)

Retourne la signalisation utilisée.

Paramètre de la fonction
Argument Type Description
upright nombre Valeur par défaut du facteur de redimensionnement du logo.
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
signalisation P14 (« symbole graphique de la voie ») Fichier de la signalisation à afficher dans l'infobox.

Exemples :

légende signalisation P2096 (« légende de média ») de P14 (« symbole graphique de la voie »)[1] Légende de la signalisation.
Si la signalisation provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») de la signalisation, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si la signalisation s'affiche.

Exemples :

upright signalisation Facteur de redimensionnement de la signalisation. Utile en particulier lorsque la signalisation est en mode portrait[2].

Voir l'aide sur la mise en forme des images
Exemples :
upright signalisation = 0.5

taille signalisation Largeur de la signalisation, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright signalisation est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :

alternative signalisation Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples : Alternative textuelle à un logo

icon(upright)

Retourne l'Icône.

Paramètre de la fonction
Argument Type Description
upright nombre Valeur par défaut du facteur de redimensionnement du logo.
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
icône P2910 (« icône ») Fichier de l'icône à afficher dans l'infobox.

Exemples :

légende icône P2096 (« légende de média ») de P2910 (« icône »)[1] Légende de l'icône.
Si l'icône provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») de l'icône, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si l'icône s'affiche.

Exemples :

upright icône Facteur de redimensionnement de l'icône. Utile en particulier lorsque l'icône est en mode portrait[2].

Voir l'aide sur la mise en forme des images
Exemples :
upright icône = 0.5

taille icône Largeur de l'icône, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright icône est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :

alternative icône Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples : Alternative textuelle à un logo

bathymetricmap(upright)

Retourne la carte carte bathymétrique d'un plan d'eau.

Paramètre de la fonction
Argument Type Description
upright nombre Valeur par défaut du facteur de redimensionnement du logo.
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
carte bathymétrique P207 (« carte bathymétrique ») Fichier de la carte bathymétrique à afficher dans l'infobox.

Exemples :

légende carte bathymétrique P2096 (« légende de média ») de P207 (« carte bathymétrique »)[1] Légende de la carte bathymétrique.
Si la carte bathymétrique provient de Wikidata, la légende doit être précisée dans le qualificateur P2096 (« légende de média ») de la carte bathymétrique, sinon il y a un risque d'incohérence.
La légende ne s'affiche que si la carte bathymétrique s'affiche.

Exemples :

upright carte bathymétrique Facteur de redimensionnement de la carte bathymétrique. Utile en particulier lorsque la carte bathymétrique est en mode portrait[2].

Voir l'aide sur la mise en forme des images
Exemples :
upright icône = 0.5

taille carte bathymétrique Largeur de la carte bathymétrique, en pixels.

L'utilisation de ce paramètre est déconseillée dans l'aide sur la mise en forme des images. Le paramètre upright carte bathymétrique est préférable.
Valeur par défaut : 300
Valeur maximum : 315
Exemples :

alternative carte bathymétrique Voir la proposition de propriété alt text Texte à afficher quand l'image ne peut l'être.
Si l'image provient de Wikidata, le texte alternatif devrait être précisé dans un qualificateur de l'image, afin d'éviter un risque d'incohérence.

Exemples : Alternative textuelle à un logo

selectSound(prop)

Sélectionne les sons de la propriété prop en français (qualificateur P407 (« langue de l'œuvre, du nom ou du terme ») à pour valeur Q150 (« français »))

Paramètre de la fonction
Argument Type Description
prop texte Propriété wikidata du type de son à afficher

prononciation()

Retourne un lecteur audio avec l'enregistrement de la prononciation.

Paramètre de la fonction
Argument Type Description
Cette fonction n'a aucun paramètre
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
prononciation prononciation P443 (« prononciation (fichier son) ») Fichier de la prononciation à afficher dans l'infobox.
Les fichiers peuvent être engregisté via Lingua Libre.

Exemples : De-Albert Einstein-Pronuciation.ogg

légende prononciation Légende affichée sous le lecteur audio
Par défaut : Prononciation

Exemples :

country()

Paramètres de l'infobox
Libellé Paramètres Wikidata Description

Pays

pays

Affiche le pays.


Exemples :

wikidataDivRows(countryid)

Liste de lignes de divisions administrative basée sur des données de Wikidata

Arguments de la fonction
Argument Type Description
countryid ??? Permet de limiter la recherche quand le niveau Pays est atteint.
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
Division
P131 (« localisation administrative »)
Actuel
Recherche itérativement les divisions dans laquelle se trouve l'entité en se limitant à 3 niveaux ou si le niveau pays (countryid) est atteint.

Exemple : Kulti, Rochebonne

P31 (« nature de l’élément ») Nom court[Information douteuse] de la division administrative

website(localparam)

Retourne le ou les meilleurs sites web.

Paramètre de la fonction
Argument Type Description
localparam chaîne Nom du paramètre à ajouter aux paramètres de l'infobox existants (site web, site_web, site officiel, site internet, web).


Paramètres de l'infobox
Libellé Paramètres Wikidata Description
Site web site web
site_web
site officiel
site internet
web
P856 (« site officiel »)
Qualificateur obligatoire :
P407 (« langue de l'œuvre, du nom ou du terme »)
Autres qualificateurs :
P1001 (« ressort territorial »)
URL du site internet.

L'adresse doit être complète en commençant par http:// ou https://.
Lorsque l'un des paramètres est utilisé il ne peut y avoir qu'un seul site.
Lorsque des propriétés de Wikidata sont utilisées le ou les sites internet s'affichent en respectant les règles suivantes, dans l'ordre, jusqu'à ce qu'il soit possible de renvoyer quelque chose à afficher :

  1. les sites ayant un rang égal à deprecated ne sont jamais pris en compte.
  2. pour une catégorie de sites, ceux ayant un rang normal ne sont pris en considération que s'il n'y en a aucun ayant un rang preferred.
  3. S'il y a au moins un site dont le qualificateur P407 (« langue de l'œuvre, du nom ou du terme ») est le français, seuls les sites en français sont renvoyés pour affichage.
  4. Sinon les sites dans les autres langues sont précédés du code de langue, par exemple (en) pour l'anglais et sont renvoyés pour affichage.

Remarques :

Exemples :
Pour la règle 3 voir Conseil international de la danse.
Pour la règle 4 voir Académie nationale des sciences d'Azerbaïdjan.

nom site Texte affiché pour le lien du site. Ce paramètre ne fonctionne que lorsque l'adresse est spécifiée par un paramètre.
Exemples :
nom site = site officiel

coordinates(moduleparams)

Paramètre de la fonction
Argument Type Description
moduleparams table liste des éléments mystérieux de cette table (Smiley: triste).
  • maxdistance usage inconu,
  • wikidataquery usage inconu, si le paramètre est vide P625 (« coordonnées géographiques ») est utilisé à la place.
  • entity usage inconu,
  • displayformat peut être forcé par le paramètre de l'infobox format coordonnées. Voir la desciption de ce paramètre pour plus de détails.
  • displayinline peut être forcé par le paramètre de l'infobox coords en ligne. Usage inconnu,
  • displaytitle peut être forcé par le paramètre de l'infobox coords en titre. Usage inconnu,
  • globe peut être forcé par les paramètres de l'infobox globe et planète. Usage inconnu,
  • latitude peut être forcé par le paramètre de l'infobox latitude. Latitude du point à afficher.
    Le format utilisé est soit en degrés au format décimal (par exemple : 16.74170), soit en degrés, minutes et secondes (par exemple : 16°44'29.88"N ou 16/44/29.88/N)
  • longitude peut être forcé par le paramètre de l'infobox longitude. Longitude du point à afficher.
    Le format utilisé est soit en degrés au format décimal (par exemple : -92.62982), soit en degrés, minutes et secondes (par exemple : 92°37'47.28"O ou 92/37/47.28/O)
  • fallbackquery requête de replis dans le cas où la requête standard ne renvoie rien.
  • ...
Paramètres de l'infobox
Libellé Paramètres Wikidata Description

Coordonnées

coordonnées

Si coordonnées est égal à « - » ou « non » supprime l'affichage des coordonnées dans l'infobox.

Exemples :
coordonnées = -

format coordonnées

Modifie le format d'affichage des coordonnées pour l'un des formats suivants :

  • dms pour un affichage degré/minute/seconde, c'est à priori la valeur par défaut.
  • dms long pour un affichage degré/minute/seconde avec l'orientation en toute lettres,
  • dec pour un affichage décimal en degré

Force la valeur du paramètre de la fonctiondisplayformat.


Exemples : voir Format des coordonnées

coords en ligne

L'utilisation est inconnue.
Force la valeur du paramètre de la fonctiondisplayinline.


Exemples :

coords en titre

Permet d'afficher les coordonnées sur la droite de la ligne du titre de l'article et le code source mentionne : « par défaut : on met dans les coordonnées de l'infobox principale en titre »
Force la valeur du paramètre de la fonctiondisplaytitle.


Exemples :

globe
planète

L'utilisation complète est inconnue, mais permet d'afficher une autre carte que la Terre.
Force la valeur du paramètre de la fonctionglobe.
Par défaut on utilise notre bonne vielle Terre.


Exemples :

latitude

Latitude à afficher.
Force la valeur du paramètre de la fonctionlatitude.
Le format utilisé est soit en degrés au format décimal (par exemple : 16.74170), soit en degrés, minutes et secondes (par exemple : 16°44'29.88"N ou 16/44/29.88/N).


Exemples :

longitude

Longitude à afficher.
Force la valeur du paramètre de la fonctionlongitude.
Le format utilisé est soit en degrés au format décimal (par exemple : -92.62982), soit en degrés, minutes et secondes (par exemple : 92°37'47.28"O ou 92/37/47.28/O).


Exemples :

référence géolocalisation

Dans la documentation du modèle {{Infobox Aire protégée}} on trouve : « référence où l'on a trouvé ces coordonnées géographiques, à mettre entre <ref> </ref> ». Mais, semble-t-il sans utilisation.


Exemples :

Il existe deux possibilités pour l'affichage d'une carte :

Dans les 2 cas les coordonnées sont définies par P625 (« coordonnées géographiques ») ou les paramètres latitude et longitude.

Dans le cas où le sujet de l'infobox n'existe plus, il faut vérifier si une carte actuelle est pertinent.
géolocalisation Carte utilisée pour afficher la géolocalisation du siège donnée par les latitude et longitude.

Si géolocalisation=pas pertinent, les coordonnées sont affichées mais la carte ne l'est pas.
Si géolocalisation=- ou géolocalisation=non, ni les coordonnées ni la carte ne sont affichées.
Pour une utilisation standard de ce paramètre les cartes doivent être séparées par un « / ». Par exemple géolocalisation = Monde/Canada/Québec/Montréal. Le nombre de cartes semble être limité à 4 (non testé). Exemples :

Références et notes

  1. a b c d e f g et h Légende en français de l'image si elle existe.
  2. a b c d e f g et h Image dont la hauteur est supérieur à la largeur.
--[[ 
Avant de mettre en production une nouvelle version avez-vous :
- testé avec la version bac à sable ?
- modifié la documentation ?
]]

-- Fonctions communes à diverses infobox
local localdata = require 'Module:Infobox/Localdata'
local wikidata = require 'Module:Wikidata'
local linguistic = require "Module:Linguistique"
local item = localdata.item
local p = {}

function p.title(icon, style, subtitleparam, subtitlequery, italic)
	local function hide(param, value)
		if localdata[param] ~= '-' then
			return value
		end
	end
	
	return {
		type = 'title',
		value = function() 
			return localdata['nom'] or localdata['association_nom'] or localdata['nom_think'] or localdata['acronymelaboratoire'] or localdata['titre']
				or wikidata.getLabel(localdata.item) and mw.language.getContentLanguage():ucfirst( wikidata.getLabel(localdata.item) )
				or mw.title.getCurrentTitle().text
		end,
		subtitle = function() if localdata[subtitleparam] ~= '-' then return localdata[subtitleparam] end end,
		wikidatasubtitle = hide(subtitleparam, subtitlequery),
		icon = icon,
		style = style,
		italic = italic,
		setdisplaytitle = italic,
	}
end

function p.standardImage(imageType, imageparameters, property, upright)
	return {
		type = 'images',
		imageparameters =  imageparameters or {imageType},
		captionparameter = 'légende ' .. imageType,
		property = property,
		defaultupright = upright,
		classparameter = 'classe ' .. imageType,
		uprightparameter = 'upright ' .. imageType,
		sizeparameter = 'taille ' .. imageType,
		altparameter = 'alternative ' .. imageType,
		numval = 1,
	}
end

function p.mainimage(args, defaultimage)
	if type( args ) ~= 'table' then
		args = { cat = args, defaultimage = defaultimage }
	end
	local tableReturned = p.standardImage('image', {'image', 'photo', 'Photo'}, {'P18', 'P5252'}, upright or '1')
	tableReturned.defaultimages = args.defaultimage or defaultimage
	tableReturned.defaultimagelink = 'Aide:Insérer une image'
	tableReturned.uprightparameter = 'upright'
	tableReturned.defaultupright = args.upright
	tableReturned.defaultsize = 	args.size
	tableReturned.maintenancecat = args.cat or 'Article à illustrer'
	tableReturned.captionparameter = {'légende', 'légende image', 'Légende'}
	tableReturned.altparameter = args.altparameter or 'alternative image'
	tableReturned.defaultimagealt = args.defaultimagealt
    tableReturned.property = nil
	tableReturned.wikidata = args.wikidata or {property = {'P18', 'P5252'}}
	return tableReturned
end

function p.interior(upright)
    return p.standardImage('intérieur', {'intérieur', 'interior'}, 'P5775', upright or '1')
end

function p.logo(upright)
    return p.standardImage('logo', {'logo', 'association_logo'}, 'P154', upright or '0.6')
end

function p.blason(upright)
	local tableReturned = p.standardImage('blason', {'blason', 'sceau'}, {'P94', 'P158'}, upright or '0.8')
	tableReturned.captionparameter = {'légende blason', 'légende sceau'}
	tableReturned.uprightparameter = {'upright blason', 'upright sceau'}
	tableReturned.sizeparameter = {'taille blason', 'taille sceau'}
	return tableReturned
end
-- Il n'y a aucune preuve que le paramètre id ai une utilité: aucun appel avec ce paramètre et pas de documentation (2022-08-20).

function p.flag(upright, id)
	local tableReturned = p.standardImage('drapeau', {'drapeau'}, 'P41', upright or '1')
	local drapeau = wikidata.formatStatements{entity = id, property = 'P163', defaultlink = '-'}
	tableReturned.captionparameter = drapeau or 'légende drapeau'
	return tableReturned
end

function p.sign(upright)
	return p.standardImage('signalisation', {'signalisation'}, 'P14', upright or '0.4')
end

function p.icon(upright)
	return p.standardImage('icône', {'icône'}, 'P2910', upright or '0.4')
end

function p.bathymetricmap(upright)
	return p.standardImage('carte bathymétrique', {'carte bathymétrique'}, 'P207', upright or '1')
end

function p.routemap(upright)
	return {
		type = 'images',
		imageparameters =  {'tracé'},
	--	defaultimage = {},
	--	maintenancecat =
		captionparameter = 'légende tracé',
		property = 'P15',
		defaultupright = upright or '1',
		uprightparameter = 'upright tracé',
		sizeparameter = 'taille tracé',
		numval = 1,
	}
end

-- Liens externes
function p.website(localparam) -- texte libre [http://example.org example.org] ou url seule localparam est désigne le paramètre utilisé historiquement dans le modèle pour le site web (legacy)
	return { 
		type = 'mixed',
		label = 'Site web', 
		plurallabel = 'Sites web',
		wikidata = function()
				local values, num = wikidata.formatAndCat {
					entity = localdata.item,
					displayformat = 'weblink',
					conjtype = '<br />',
					property = 'P856',
					isinlang = 'fr',
					excludespecial = true, -- excludespecial car il peut y avoir marqué "aucune valeur" pour le français, mais y avoir un site en anglais
					returnnumberofvalues = true,
				}
				if not values then
					values, num = wikidata.formatAndCat {
						entity = localdata.item,
						displayformat = 'weblink',
						conjtype = '<br />',
						property = 'P856',
						showlang = true,
						excludespecial = true,
						returnnumberofvalues = true,
					}
				end
				return values, num
			end,
		value = 
			function()
				local siteurl = localdata[localparam] or localdata['site web'] or localdata['site_web'] or localdata['site officiel'] or localdata['site internet'] or localdata['web']
				local sitename = localdata['nom site']
				if siteurl then
					if siteurl == '-' then
						return '-'
					else
						return require("Module:Weblink").makelink(siteurl, sitename)
					end
				end
			end,
	}
end

-- Son, prononciation
function p.selectSound(prop)
	-- priorité au français
	if wikidata.getClaims{entity = localdata.item, property = prop, qualifier = {'P407'}, qualifiervalue  = {'Q150'} } then
		return {property = prop, qualifier = {'P407'}, qualifiervalue  = {'Q150'} }
	end
	return {property = prop}
end

function p.prononciation()
	return {
		type		     = 'images',
		style            = {['padding-top'] = '25px'},
		defaultcaption   = 'Prononciation',
		captionparameter = 'légende prononciation',
		imageparameters  = 'prononciation',
		defaultsize      = '280',
		wikidata         = p.selectSound('P443'),
		numval           = 1,
	}
end

-- Fonctions de géolocalisation
function p.country(default)
	local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
	return coordfunctions.country(default)	
end

--- localisation administrative par Wikidata
function p.wikidataDivRows(countryid)  -- liste de lignes de divisions administratives basée sur des données de Wikidata
	if not localdata.item then
		return nil
	end
	-- récupération des valeurs
	local list = wikidata.transitiveVals(localdata.item, {property = "P131", atdate = "today", excludespecial = true}, 3, 5, countryid)
	if not list then
		return nil
	end

	-- création des colonnes
	local rows = {}
	for i, div in pairs(list) do
		if (div == countryid) then
			break
		end
		local rowlabel, rowlabelid, rowlabeltext, rowlabellink, rowvalue
		rowlabelid = wikidata.formatStatements{entity= div, property = 'P31', numval = 1, displayformat = 'raw', excludespecial = true}
		
		rowlabeltext = wikidata.getLabel(rowlabelid)
		if rowlabeltext then
			rowlabeltext = linguistic.ucfirst(linguistic.removecomplement(rowlabeltext))  -- imposé par les libellés pas très logiques sur Wikidata du genre "canton de Suisse" plutôt que "canton"		else
		else
			rowlabeltext = ''
		end
		
		if (not rowlabeltext) then
			rowlabeltext = 'Division'
		end
		
		if rowlabelid then
			rowlabellink = wikidata.siteLink(rowlabelid, {defaultlink = '-', defaultlinkquery= {property = "P2354"}} ) -- si pas de lien, lier vers la page de liste e.g liste des Etats de Californie
		end
		if rowlabellink then
			rowlabel = "[[" .. rowlabellink .. "|" .. rowlabeltext .. "]]"
		else
			rowlabel = rowlabeltext
		end
		rowvalue = wikidata.formatEntity(div, {labelformat = function(id) 
			local str = wikidata.getLabel(id) or ""
			if mw.ustring.match(rowlabel, str) then
				str = linguistic.keepcomplement(str)-- si le nom de la division administrative affiché est présent, ne pas le répéter
			end
			return str
			end})
		
		local capitalid
		capitalid = wikidata.formatStatements{entity= div, property = 'P36', numval = 1, displayformat = 'raw', excludespecial = true}
		
		local function capitalstring(div)
			if wikidata.isInstance('Q35657',div) then return '[[Liste des capitales des États-Unis|capitale]]' end
			if wikidata.isInstance('Q107390',div) or wikidata.isInstance('Q96196009',div) or wikidata.isInstance('Q34876',div) then return '[[capitale]]' end --État ou province
			if wikidata.isInstance('Q28575',div) then return '[[siège de comté|siège]]' end
			return '[[chef-lieu]]'
		end
		
		if capitalid == localdata.item then
			rowvalue = rowvalue .. '<small> (' .. capitalstring(div) .. ')</small>'
		end
		
		table.insert(rows, 1, {type = "row", label = rowlabel, value = function() return rowvalue end})
	end
	return rows
end

function p.geoloc(params)
	local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
	return coordfunctions.geoloc(params)	
end

function p.coordinates(params)
	local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
	return coordfunctions.coordinates(params)
end

function p.locationmap(params)
	local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
	return coordfunctions.locationmap(params)	
end

function p.detailedmap(params)
	local coordfunctions = require 'Module:Infobox/Fonctions/Géolocalisation'
	return coordfunctions.detailedmap(params)	
end

return p