Module:Infobox/Fonctions/Bâtiment
Cette page réunit des fonctions qui peuvent être réutilisées pour construire des modules d'infobox visant à décrire un bâtiment ou un monument. Sauf mention contraire, les fonctions utilisent des données fournies en paramètre dans l'article, ou alors, lorsque celles-ci sont absentes, des données issues de Wikidata.
Fonctions exportables
p.creator()
Ligne ou ensemble de lignes présentant les personnes ayant participé à la création du bâtiment.
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) |
---|---|---|---|
Architecte | architecte | P84 (« architecte ») | Architectes |
Ingénieur | ingénieur | P631 (« ingénieur de structure ») | Ingénieurs |
Autres créateurs | Créateur | P170 (« créé par »)[1] | Créateurs |
- Désactivé lorsque les paramètres "ingénieur" ou "architecte" sont remplis (risque de doublon)
p.mainimage(cat, defaultimage)
Libellé | Paramètre | Wikidata | Description |
---|---|---|---|
|
Fichier de l'image ou de la photographie à afficher dans l'infobox. Exemples : | ||
|
Qualificatif de l'image affichée : |
Légende de l'image. Exemples : | |
|
Facteur de redimensionnement de l'image. Utile en particulier lorsque l'image est en mode portrait[2]. Exemples : | ||
|
Largeur de l'image, en pixels. Exemples : | ||
|
Voir la proposition de propriété alt text |
Texte à afficher quand l'image ne peut l'être. Exemples : |
p.owner()
Ligne ou ensemble de lignes indiquant les propriétaires présents ou passés.
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Propriétaire | propriétaire | P127 (« propriétaire »)[3] | Propriétaires | |
Propriétaire initial | propriétaire initial | - | - | déprécié |
Propriétaire actuel | propriétaire actuel | - | - | déprécié |
- Légende en français de l'image si elle existe.
- Image dont la hauteur est supérieur à la largeur.
- Affichage et mise en forme définie par Module:Propriétaire
p.shape()
Ligne indiquant la forme géométrique du bâtiment
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Forme | forme | P1419 (« forme géométrique ») | - | paramètre alternatif déprécié : "aspect" |
p.dimensions()
Ligne ou ensemble de lignes indiquant la longueur, la hauteur, etc. du bâtiment. Pour les données Wikidata, les valeurs sont exprimées en mètres.
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Longueur | longueur | P2043 (« longueur ») | Propriétaires | |
Largeur | largeur | P2049 (« largeur ») | - | |
Diamètre | diamètre | P2386 (« diamètre ») | - | |
Périmètre | périmètre | P2547 (« périmètre ») | - | paramètres synonymes dépréciés : 'contour', 'circonférence' |
Hauteur | hauteur | P2048 (« hauteur ») | - | |
Profondeur | profondeur | P2610 (« épaisseur ») | - | |
Superficie | surface | P2046 (« superficie ») | - | paramètres synonymes dépréciés : "superficie" |
Volume | volume | P2234 (« volume ») | - | |
Tirant d’air | tirant d'air | P2793 (« tirant d'air ») | - | |
Nombre de pièces | pieces | P8733 (« nombre de pièces ») | - |
p.floors()
Nombre d"étages au dessus et en dessous du sol
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Étages | étages | P1101 (« nombre de niveaux au-dessus du sol ») | - | 1 unité déduite de la valeur de Wikidata pour ne pas compter le rez-de-chaussée. Paramètre synonyme déprécié : "niveaux au-dessus du sol" |
Sous-sols | sous-sols | P1139 (« nombre de niveaux de sous-sol ») | - |
p.destroyeby()
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Détruit par | détruit par | P770 (« cause de la destruction ») | - | paramètre alternatif déprécié : "cause de la destruction" |
p.material()
Matériaux utilisés pour la construction
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Matériau | matériau | P186 (« matériau »)[1] | matériaux |
- mis en forme par Module:Matériau
p.color()
Couleur du bâtiment
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Couleur | | P462 (« couleur »)[1] | Couleurs | paramètre alternatif déprécié : "couleurs" |
p.inscription()
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Inscription | | P1684 (« inscription »)[2] | - | paramètre alternatif déprécié : "enseigne" |
- mis en forme par Module:Matériau
- seule la première valeur de la propriété est affichée
p.equipment()
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Équipement | équipement | P912 (« équipement ») | - | paramètre alternatif déprécié : "équipements" |
p.replaces()
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Remplace | remplace | P1398 (« structure précédente ») | - |
p.replacedby()
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Remplacé par | remplacé par | P167 (« structure remplacée par ») | - |
p.protection()
Protection patrimoniale dont bénéficie tout ou partie du bâtiment
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Statut patrimonial | protection | P1435 (« statut patrimonial »)[1] | - | paramètre alternatif déprécié : "classement" |
- Récupération des données et mise en forme par Module:Classement
p.adminlocation()
Retourne ensemble de lignes décrivant l'adresse et la localisation administrative du bâtiment. Cette fonction prend en compte beaucoup de paramètres hérités d'anciens modèles. Elle peut être remplacée par la fonction adminloc()
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
Subdivision[1] | subdivision1 | - | - | paramètres synonymes dépréciés : "nom subdivision", "subdivision" |
Subdivision | subdivision2[2] | - | - | paramètres synonymes dépréciés : "nom subdivision", "subdivision" |
Subdivision | subdivision3[3] | - | - | paramètres synonymes dépréciés : "nom subdivision", "subdivision" |
Commune | commune[4] | - | - | paramètre synonymesdéprécié : "ville" |
Quartier | quartier[5] | - | - | |
Adresse | adresse | P669 (« voie ») / P670 (« numéro de voirie ») | - |
- Modificable par le paramètre "intitulé" ou "lien"
- Modificable par le paramètre "intitulé subdivision2" ou "lien subdivision2"
- Modificable par le paramètre "intitulé subdivision3" ou (obsolète) "lien subdivision3"
- Modificable par le paramètre "intitulé commune" ou (obsolète) "lien commune"
- Modificable par le paramètre "intitulé quartier" ou (obsolète) "titre quartier"
Cette fonction est utilisée par les infobox Monument, Plan d'eau, Chute d'eau, Point de vue panoramique, Échangeur, Observatoire, Musée, Télescope, Sentier, Phare, Cimetière, Hôtel, Port, Usine, Commanderie, Gratte-ciel, Mine, Grotte, Plage, Ouvrage d'art, Gare, Temple bouddhiste, et Espace vert.
coordinates(moduleparams)
Argument | Type | Description |
---|---|---|
moduleparams |
table | liste des éléments mystérieux de cette table .
|
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
Coordonnées |
|
Si Exemples : | |
|
Modifie le format d'affichage des coordonnées pour l'un des formats suivants :
Force la valeur du paramètre de la fonction Exemples : voir Format des coordonnées | ||
|
L'utilisation est inconnue. Exemples : | ||
|
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 » Exemples : | ||
|
L'utilisation complète est inconnue, mais permet d'afficher une autre carte que la Terre. Exemples : | ||
|
Latitude à afficher. Exemples : | ||
|
Longitude à afficher. Exemples : | ||
|
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 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
| ||
p.website(localparam)
Retourne le ou les meilleurs sites web.
Argument | Type | Description |
---|---|---|
localparam |
chaîne | Nom du paramètre dans l'infobox |
Libellé | Paramètre | Wikidata | Description |
---|---|---|---|
|
|
P856 (« site officiel ») |
URL du site internet.
Remarques :
Exemples : |
|
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 : |
p.country()
Affiche le nom du pays où se trouve le monument, accompagné d'un petit drapeau
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Note |
---|---|---|---|
Pays | pays | P17 (« pays ») |
p.adminloc()
Alternative à l'utilisation de la fonction p.adminlocation()
+ p.country()
dans laquelle l'intégralité de la position administrative est indiquée dans un seul champ. Permet une utilisation plus massive de Wikidata.
Libellé de la ligne (singulier) | Données locales | Wikidata | Note |
---|---|---|---|
Adresse | Utilise les paramètres "adresse" et "pays" | Utilise les propriétés P669 (« voie »), P670 (« numéro de voirie »), P131 (« localisation administrative ») et P27 (« pays de nationalité ») par l'intermédiaire de Module:Adresse |
p.opening()
Libellé | Paramètres | Wikidata | Description |
---|---|---|---|
ouverture
|
P1619 (« date d'ouverture officielle ») | Date d'ouverture, de consécration ou de mise en service. |
p.awards()
p.recordheld()
p.visitors()
p.protection()
p.danger()
p.policy()
p.unesco()
p.geoloc()
Affiche une carte ou des cartes, avec un point indiquant l'emplacement du monument
Libellé de la ligne (singulier) | Nom du paramètre | Propriété Wikidata | Libellé de la ligne (pluriel) | Note |
---|---|---|---|---|
géolocalisation | (à partir de P625 (« coordonnées géographiques ») | - |
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (modifier).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local localdata = require( 'Module:Infobox/Localdata' )
local item = localdata.item
local wd = require "Module:Wikidata"
local general = require "Module:Infobox/Fonctions"
local linguistic = require "Module:Linguistique"
local address = require "Module:Adresse"
local function keyDate(event)
return wd.keyDate(event, item, {conjtype = 'comma', showqualifiers = {'P518'}, link = '-'})
end
local function keyDateConstruction(event)
return wd.keyDate(event, item, {conjtype = 'comma', showqualifiers = {'P518', 'P4241'}, link = '-'})
end
local function inclexcl(statement, params) -- formatte les qualificatifs "P518" / "P1011" (à mettre plutôt dans un sous module de Module:Wikidata, comme pour les dates ?
local str = wd.formatSnak(statement.mainsnak, params)
if not statement.qualifiers then
return str
end
local incl = wd.getFormattedQualifiers(statement, "P518")
local excl = wd.getFormattedQualifiers(statement, "P1011")
if incl then
str = str .. linguistic.inparentheses(incl .. " y compris") -- pas la formulation la plus élégante mais elle évite les problèmes d'accord grammaticaux
end
if excl then
str = str .. linguistic.inparentheses("sans " .. excl) -- pas la formulation la plus élégante mais elle évite les problèmes d'accord grammaticaux
end
return str
end
function p.creatorQuery(prop)
return {
property = prop,
entity = localdata.item,
showqualifiers = {'P518'},
showdate = true,
qualiflink = '-',
statementformat = function(statement)
local str
-- On commence par les qualificatifs (attibué à, atelier etc.)
local possiblequalifiers = {
P1773 = "attribué $to $creator",
P1774 = "atelier $of $creator",
P1775 = "suiveur $of $creator",
P1776 = "cercle $of $creator",
P1777 = "d'après $creator", -- TODO : d'après LE Maître X
P1778 = "faux d'après $creator",
P1779 = "$creator (?)",
P1780 = "école $of",
P1877 = "d'après un œuvre $of",
}
if statement.qualifiers then
for qualif, text in pairs(possiblequalifiers) do
local creator = wd.getFormattedQualifiers(statement, {qualif})
if creator then
str = text
str = mw.ustring.gsub(str, '$to $creator', "à ".. creator)
str = mw.ustring.gsub(str, '$of $creator', linguistic.of(creator))
str = mw.ustring.gsub(str, '$creator', creator)
break
end
end
end
-- Sinon, la voie normale
if not str then
str = wd.formatStatement(statement, {speciallabels = {Q4233718 = "anonyme"}}) -- speciallabels pour éviter le lien par défaut
end
return str
end
}
end
--Titrest
function p.title()
-- local class = en-tête par défaut à définir ici ?
return general.title()
end
--Image
function p.mainimage(cat, defaultimage)
if not cat then
cat = 'Article à illustrer Bâtiment divers'
end
return general.mainimage(cat, defaultimage)
end
function p.country()
return -- déprécié
end
function p.historicalregion()
return {
type = 'row', -- pour les régions historiques, non adminstratives
value = 'région',
label = localdata['intitulé région'] or localdata['lien région'] or 'Région',
}
end
function p.adminloc() -- affiche l'adresse complète (rue, divisions administratives pertinentes, pays) dans un champ unique
-- pas de paramètre global pour la ligne streetstr et la ligne divstr, dépend de l'historique du modèle utilisé
local country = localdata["pays"]
local streetstr = localdata['adresse']
local val, isAddress = address.fullAddress(localdata['item'], country, nil, streetstr)
local label
if isAddress then label = 'Adresse' else label = 'Localisation' end --si il n'y a pas de rue, on évite de l'appeler "adresse"
return
{
type = 'row',
label = label,
value = function() return val end
}
end
function p.adminlocation(localparams) -- Fonction assez compliquée du fait des différences entre infobox. Simlifiable si on harmonise les infobox
-- infobox à prendre en compte : voir page de documentation
-- localparams est une table de paramètres de l'infobox dont la présence désactive l'appel à Wikidata
local hasparams = localdata['subdivision1'] or localdata['subdivision'] or localdata['subdivision nom'] or localdata['subdivision2'] or localdata['subdivision3'] or localdata['commune'] or localdata['ville'] or localdata['quartier']
if localparams then
for _,param in pairs(localparams) do
hasparams = hasparams or localdata[ param ]
end
end
if not (hasparams) then
return p.adminloc()
end
return {
type = 'multi',
rows = {
{
type = 'row',
value = 'pays',
label= 'Pays'
},
{
type = 'row',
value = {'subdivision', 'subdivision1', 'subdivision nom'},
label = localdata['intitulé subdivision'] or localdata['intitulé subdivision1'] or localdata['lien subdivision1'] or localdata['lien subdivision'] or localdata['subdivision type'] or 'Division administrative'
},
{
type = 'row',
value = 'subdivision2',
label = localdata['intitulé subdivision2'] or localdata['lien subdivision2'] or 'Subdivision administrative'
},
{
type = 'row',
value = 'subdivision3',
label = localdata['intitulé subdivision3'] or localdata['lien subdivision3'] or 'Subdivision administrative'
},
{
type = 'row',
value = {'commune', 'ville'},
label = localdata['intitulé commune'] or localdata['lien commune'] or 'Commune'
},
{
type = 'row',
value = 'quartier',
label = localdata['intitulé quartier'] or localdata['titre quartier'] or 'Quartier'
},
{
type = 'row',
value = 'adresse',
label = 'Adresse',
},
}
}
end
function p.onshoreof()
return {
type = 'row',
label = 'Baigné par',
value = {'baigné par', 'sur les rives de'},
wikidata = {property = 'P206', defaultlinkquery = {property = 'P361'}},
}
end
function p.watershed()
return {
type = 'row',
label = 'Bassin versant',
value = 'bassin versant',
wikidata = {property = 'P4614', defaultlinkquery = {property = {'P4614', 'P138'}}},
}
end
function p.protectedarea()
return {
type = 'row',
label = 'Aire protégée',
plurallabel = 'Aires protégées',
value = {'aire protégée', 'aires protégées'},
wikidata = {property = 'P3018', defaultlinkquery = {property = 'P3018'}},
}
end
function p.island()
return {
type = 'row',
label = 'Île',
plurallabel = 'Îles',
value = 'île',
property = 'P5130',
}
end
function p.mountainrange()
return {
type = 'row',
label = 'Massif',
plurallabel = 'Massifs',
value = {'massif', 'chaîne de montagnes'},
wikidata = {property = 'P4552', defaultlinkquery = {property = 'P4552'}},
}
end
function p.elevation()
return {
type = 'row',
label = 'Altitude',
value = 'altitude',
wikidata = {property = 'P2044', targetunit = 'metre', conjtype = ' ou ', rounding = '0', numval = '2'},
}
end
function p.coordinates(args)
return general.coordinates(args)
end
function p.website(localparam)
return general.website(localparam)
end
function p.cornerstonelaying()
return {
type = 'multi',
rows = {
{
type = 'row',
value = {'première pierre', 'pose de la première pierre'},
label = '[[Première pierre]]',
wikidata = keyDate('Q18752057')
}
}
}
end
function p.construction()
return {
type = 'multi',
rows = {
-- début construction, fin construction (legacy infobox Stade, Infobox Château),
{
type = 'row',
value = {'début construction', 'début'},
label = 'Début de construction',
},
{
type = 'row',
value = {'fin construction', 'fin'},
label = 'Fin de construction',
},
-- construction (nom de paramètre "date de construction" à déprécier)
{
type = 'row',
value = {'construction', 'Construction', 'date de construction'},
label = 'Construction',
blockers = {'début construction', 'début', 'fin construction', 'fin'},
wikidata = keyDateConstruction{'Q385378'},
},
}
}
end
function p.fondation()
return {
type = 'multi',
rows = {
{
type = 'row',
value = {'fondation', 'Fondation', 'date de fondation'},
label = 'Fondation',
wikidata = keyDateConstruction{'Q3075355'},
},
}
}
end
function p.reconstruction()
return {
type = 'multi',
rows = {
-- début reconstruction, fin reconstruction (legacy infobox Stade, Infobox Château),
{
type = 'row',
value = {'début reconstruction', 'début'},
label = 'Reconstruction',
},
{
type = 'row',
value = {'fin reconstruction', 'fin'},
label = 'Fin de reconstruction',
},
-- reconstruction (nom de paramètre "date de reconstruction" à déprécier)
{
type = 'row',
value = {'Reconstruction', 'reconstruction', 'date de reconstruction'},
label = 'Reconstruction',
wikidata = keyDate{'Q1370468'}
},
}
}
end
function p.opening() --ouverture / consécration / date de mise en service (!= date de construction)
return {
type = 'multi',
rows = {
{
type = 'row',
value = {"ouverture", "date d'ouverture", "mise en service"},
label = 'Ouverture',
wikidata = keyDate{'P1619', 'Q15051339'} -- P1619 = ouverture officielle, pas ouverture de facto
},
{
type = 'row',
value = 'inauguration',
label = 'Inauguration',
blockers = {"ouverture", "date d'ouverture", "mise en service"},
wikidata = keyDate{'Q1417098'}
},
{
type = 'row',
value = 'consécration',
label = 'Consécration',
blockers = 'inauguration',
wikidata = keyDate{'Q125375'}
},
{
type = 'row',
value = 'dédicace',
label = '[[Dédicace (cérémonie)|Dédicace]]',
blockers = 'inauguration',
wikidata = keyDate{'Q1762010'}
},
{
type = 'row',
value = 'première lumière',
label = '[[Première lumière]]',
blockers = {"ouverture", "date d'ouverture", "mise en service"},
wikidata = keyDate{'Q1306940'} -- P1619 = ouverture officielle, pas ouverture de facto
},
}
}
end
function p.renovation()
return {
type = 'multi',
rows = {
{
type = 'row',
value = 'restauration',
label = 'Restauration',
wikidata = keyDate{'Q217102'},
blockers = 'rénovation',
},
{
type = 'row',
value = 'rénovation',
label = 'Rénovation',
wikidata = keyDate{'Q2144402'},
blockers = 'restauration',
},
{
type = 'row',
value = {'extension', 'agrandissement'},
label = 'Extension',
wikidata = keyDate{'Q19841649'},
blockers = 'restauration',
},
{
type = 'row',
value = 'autres travaux',
label = 'Autres campagnes de travaux',
},
}
}
end
function p.relocation()
return {
type = 'multi',
rows = {
{
type = 'row',
value = {'déplacement', 'date de déplacement'},
label = 'Déplacement',
plurallabel = 'Déplacements',
wikidata = keyDate('Q826949')
}
}
}
end
function p.demolition()
return {
type = 'multi',
rows = {
{
type = 'row',
value = {'démolition', 'date de démolition'},
label = 'Démolition',
wikidata = keyDate{'Q331483', 'P576'}
},
{
type = 'row',
value = {'destruction'},
label = 'Destruction',
wikidata = keyDate('Q17781833')
},
{
type = 'row',
value = {'vandalisme'},
label = 'Vandalisme',
wikidata = keyDate('Q6160')
}
}
}
end
function p.closure()
return {
type = 'row',
value = {'fermeture', 'date de fermeture'},
label = 'Fermeture',
wikidata = keyDate{'Q14954904', 'P3999', 'P576'} -- P576: date de dissolution, plutôt réservé aux organisations
}
end
function p.usage()
return {
type = 'row',
label = 'Usage',
value = 'usage',
blockers = 'destination actuelle',
wikidata = {
property = 'P366',
speciallabels = {Q182060 = 'bureaux'}, -- bureaux semble toujours pouvoir se mettre au pluriel quand c'est en P366 d'un bâtiment
showdate = true
}
}
end
function p.operator()
return {
type = 'row',
label = 'Gestionnaire',
wikidata = {property = 'P137', showdate= true},
value = {'administration', 'gestionnaire'}
}
end
function p.maintenance()
return {
type = 'row',
label = 'Maintenance',
wikidata = {property = 'P126', showdate= true},
value = {'maintenance'}
}
end
function p.transport()
return {
type = 'multi',
rows = {
{type = 'row', label = 'Stationnement', value = 'stationnement'},
{type = 'row', label = 'Gare', value = 'gare'},
{type = 'row', label = 'Métro', value = 'métro'},
{type = 'row', label = 'Tramway', value = {'tram', 'tramway'}},
{type = 'row', label = 'Autobus', value = 'bus'},
},
}
end
function p.complex() -- le complexe immobilier auquel appartient un bâtiment
return {
type = 'row',
label = 'Complexe',
value = 'complexe',
wikidata = {
property = 'P361',
condition = function(claim)
local v = wd.getMainId(claim)
return wd.isInstance("Q1497364", v, 1)
end,
}
}
end
function p.orientation()
return {
type = 'row',
label = 'Orientation',
value = 'orientation',
wikidata = {property = 'P7469', numval = '1'},
}
end
function p.archistyle()
return {
type = 'row',
label = 'Style',
plurallabel = 'Styles',
value = {'style architectural', 'style'},
wikidata = {property = {'P149', 'P135'},
showqualifiers = {'P518'},
}
}
end
function p.creator() -- toute sorte de créateurs, pourraient peut-être être partagé avec infobox oeuvre d'art
local wdarchitect, wdengineer = p.creatorQuery("P84"), p.creatorQuery("P631")
if wdarchitect and wdengineer then -- ne pas afficher les deux si c'est la même valeur
if (wd.formatStatements{property = "P84", displayformat = "raw", entity= localdata.item} == wd.formatStatements{property = "P631", displayformat = "raw", entity = localdata.item}) then
wdengineer = nil
end
end
return {
type = 'multi',
rows = {
-- architecte
{
type = "row",
label = localdata["titre architecte"] or "Architecte",
plurallabel = "Architectes",
value = "architecte",
wikidata = wdarchitect,
},
-- ingénieur
{
type = "row",
label = "Ingénieur",
plurallabel = "Ingénieurs",
value = "ingénieur",
wikidata = wdengineer,
},
-- peintre
{
type = "row",
label = "Peintre",
plurallabel = "Peintres",
value = "peintre",
},
-- sculpteur
{
type = "row",
label = "Sculpteur",
plurallabel = "Sculpteurs",
value = "sculpteur",
},
-- créateur (quand les autres noms ne conviennent pas)
{ type = "row",
label = localdata["titre créateur"] or "Créateur",
plurallabel = "Créateurs",
value = "créateur",
-- ne pas utiliser Wikidata si un des paramètres précédent est renseigné (risques de doublon)
wikidata = p.creatorQuery("P170"),
blockers = {'architecte', 'peintre', 'sculpteur'},
},
}
}
end
function p.owner()
return {
type = 'multi',
rows = {
{
type = 'row',
label = 'Propriétaire initial',
plurallabel = 'Propriétaires initiaux',
value = 'propriétaire initial',
},
{
type = 'row',
label = 'Propriétaire actuel',
plurallabel = 'Propriétaires actuels',
value = 'propriétaire actuel',
},
{
type = 'row',
label = 'Propriétaire',
plurallabel = 'Propriétaires',
value = 'propriétaire',
wikidata = function() return require('Module:Propriétaire').formatFromItem(localdata.item, {sorttype = 'chronological', showdate = true, conjtype = 'comma', precision = 'year'}) end,
}
}
}
end
function p.religion()
return {
type = 'row',
label = 'Religion',
value = {'religion', 'église'},
property = 'P140',
}
end
function p.shape()
return {
type = 'row',
label = 'Forme',
value = {'forme', 'aspect'},
property = 'P1419',
}
end
function p.dimensions()
return {
type = 'multi',
rows = {
{
type = 'row',
label = 'Hauteur',
value = function()
local str = localdata['hauteur']
-- hauteurs spéciales, pour infobox:Gratte-ciel
local function appendheight(str, param, label)
if not localdata[param] then
return str
end
if str then
str = str .. '<br />'
else
str = ''
end
return str .. label .. ' : ' .. localdata[param]
end
str = appendheight(str, 'antenne flèche', 'Flèche')
str = appendheight(str, 'toit', 'Toit')
str = appendheight(str, 'dernier étage', 'Dernier étage')
return str
end,
wikidata = {
property = 'P2048',
targetunit = 'm',
excludequalifier = 'P518',
sorttype = 'descending',
rank = 'valid',
conjtype = '<br />',
link = '-',
showqualifiers = {'P1013', 'P518'}
}
},
{
type = 'row',
label = 'Profondeur',
value = 'profondeur',
wikidata = {property = 'P2610', targetunit = 'metre', numval = '2', statementformat = function(statement) return inclexcl(statement, {targetunit = 'metre', rounding = '1'}) end},
},
{
type = 'row',
label = 'Longueur',
value = 'longueur',
wikidata = {property = 'P2043', targetunit = 'metre', numval = '2', statementformat = function(statement) return inclexcl(statement, {targetunit = 'metre', rounding = '1'}) end},
},
{
type = 'row',
label = 'Largeur',
value = 'largeur',
wikidata = {property = 'P2049', targetunit = 'metre', numval = 2, statementformat = function(statement) return inclexcl(statement, {targetunit = 'metre', rounding = '1'}) end},
},
{
type = 'row',
label = 'Envergure',
value = 'envergure',
wikidata = {property = 'P2050', targetunit = 'metre', conjtype = 'or', rounding = '1', numval = '2'},
},
{
type = 'row',
label = 'Diamètre',
value = 'diamètre',
wikidata = {property = 'P2386', targetunit = 'metre', conjtype = 'or', rounding = '1', numval = '2'},
},
{
type = 'row',
label = 'Périmètre',
value = {'périmètre', 'contour', 'circonférence'},
wikidata = {property = 'P2547', targetunit = 'metre', conjtype = 'or', rounding = '1', numval = '2'},
},
{
type = 'row',
label = 'Surface',
value = {'surface', 'superficie'},
wikidata = {property = 'P2046', targetunit = 'square meter', conjtype = 'or', rounding = '1', numval = '2'},
},
{
type = 'row',
label = 'Volume',
value = 'volume',
wikidata = {property = 'P2234', targetunit = 'cubic metre', conjtype = 'or', rounding = '1', numval = '2'},
},
{
type = 'row',
label = 'Inclinaison',
value = 'inclinaison',
wikidata = {property = 'P4183', conjtype = 'or', rounding = '1', numval = '2'},
},
{
type = 'row',
label = 'Tirant d’air',
value = 'tirant d\'air',
wikidata = {property = 'P2793', targetunit = 'metre', conjtype = 'or', rounding = '1', numval = '2'},
},
{
type = 'row',
label = 'Nombre de pièces',
value = 'pieces',
wikidata = {property = 'P8733', excludequalifier = {'P518', 'P1480'}, conjtype = 'or', rounding = '1', numval = '2'},
}
}
}
end
function p.floors()
return {
type = 'multi',
rows = {
{
type = 'row',
label = 'Niveaux',
value = {'niveaux au-dessus du sol', 'niveaux'},
property = 'P1101',
},
{
type = 'row',
label = 'Sous-sols',
value = 'sous-sols',
property = 'P1139',
}
}
}
end
function p.destroyedby()
return {
type = 'row',
label = 'Détruit par',
value = {'détruit par', 'cause de la destruction'},
property = 'P770',
}
end
function p.material()
return {
type = 'row',
label = 'Matériau',
plurallabel = 'Matériaux',
value = 'matériau',
wikidata = require('Module:Matériau').formatFromItem(localdata.item),
}
end
function p.colour()
return {
type = 'row',
label = 'Couleur',
plurallabel = 'Couleurs',
value = {'couleur', 'couleurs'},
property = 'P462',
}
end
function p.inscription()
return {
type = 'row',
label = 'Inscription',
value = {'inscription', 'enseigne'},
wikidata = {property = 'P1684', numval = '1'},
}
end
function p.awards()
return {
type = 'row',
label = 'Prix',
value = 'prix',
wikidata = {property = 'P166', showdate = 'yes', numval = '3'},
}
end
function p.recordheld()
return {
type = 'row',
label = 'Record détenu',
plurallabel = 'Records détenus',
value = 'Record',
wikidata = {property = 'P1000', showdate = 'yes', numval = '3'},
}
end
function p.equipment()
return {
type = 'row',
label = 'Équipement',
plurallabel = 'Équipements',
value = {'équipement', 'équipements'},
property = 'P912',
}
end
function p.replaces()
return {
type = 'row',
label = 'Remplace',
value = 'remplace',
property = 'P1398',
}
end
function p.replacedby()
return {
type = 'row',
label = 'Remplacé par',
value = 'remplacé par',
property = 'P167',
}
end
function p.visitors()
return {
type = 'row',
label = 'Visiteurs par an',
value = {'visiteurs', 'visiteurs par an', 'fréquentation', 'fréquentation annuelle'},
wikidata = {property = 'P1174', showdate = 'true', numval = 1, sorttype = "inverted"},
}
end
function p.protection()
return {
type = 'row',
label = 'Patrimonialité',
value = {'classement', 'protection', 'statut patrimonial', 'patrimonialité'},
wikidata = require('Module:Classement').formattedList(localdata.item)
}
end
function p.danger()
return {
type = 'row',
label = 'Danger',
plurallabel = 'Dangers',
value = {'danger', 'dangers'},
wikidata = {property = 'P3335', numval = 5},
}
end
function p.policy()
return {
type = 'row',
label = 'Règlement',
plurallabel = 'Règlements',
value = {'règlement', 'règlements'},
wikidata = {property = 'P5023', numval = 5},
}
end
function p.unesco() -- pour remplacer [[Modèle:Infobox Patrimoine Mondial]] à ajouter : paramètres extension, patrimoine en péril, retrait, gestion des monuments faisant partie d'un ensemble
local id = localdata['identifiant patrimoine mondial']
if (id == '-') then
return nil
end
if id then
id = '[http://whc.unesco.org/fr/list/' .. id .. ' ' .. id .. ']'
else
id = wd.formatAndCat{entity = item, property = 'P757', urlpattern = 'http://whc.unesco.org/fr/list/$1'}
end
if (not id) then
return nil
end
return
{type = 'table', title = '[[Fichier:World Heritage Emblem.svg|15px|alt=Logo du patrimoine mondial|link=Patrimoine mondial]] Patrimoine mondial', rows = {
{type = 'row', label = 'Désignation', value = 'nom unesco'},
{type = 'row', label = "Type de bien", value = 'type unesco', wikidata = {property = 'P1435', targetvalue = {'Q16617071', 'Q52683527', 'Q52683530'}}},
{type = 'row', label = "Date d'entrée", value = 'date patrimoine mondial', wikidata = {property = 'P1435', targetvalue = {'Q9259', 'Q16617071', 'Q52683527', 'Q52683530'}, showonlyqualifier = {'P580'}}},
{
type = 'row',
label = "Identifiant",
value = function() return id end,
},
{
type = 'row',
label = "Critères",
singularlabel = "Critère",
value = function(localdata)
if localdata['critères patrimoine mondial'] then
return '[http://whc.unesco.org/fr/criteres/' .. localdata['critères patrimoine mondial'] .. ']'
end
end,
wikidata = function(item)
local str, numclaims = wd.formatStatements{entity = item, property = 'P2614', link = '-', conjtype = ' ', returnnumberofvalues = true}
if str then
return wd.formatAndCat{value = '[http://whc.unesco.org/fr/criteres/$1 ' .. str .. ']', entity = item, property = 'P2614'}, numclaims
end
end
},
{type = 'row', label = 'Surface', value = 'surface unesco'},
{type = 'row', label = 'Zone tampon', value = 'surface zone tampon unesco'},
}
}
end
function p.geoloc(params)
return general.geoloc(params)
end
return p