Module:Infobox/Monument : Différence entre versions

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
(+ marker et default_zoom)
 
(31 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
local building = require "Module:Infobox/Fonctions/Bâtiment"
 
local building = require "Module:Infobox/Fonctions/Bâtiment"
 
local general = require "Module:Infobox/Fonctions"
 
local general = require "Module:Infobox/Fonctions"
local wikidata = require "Module:Wikidata"
+
local localdata = require "Module:Infobox/Localdata"
 +
local wd = require "Module:Interface Wikidata".fromLua
 +
 
 +
local formats = {
 +
--{valeur wikidata, icône, couleur titre, couleur sous-titre, couleur texte)
 +
        {'Q751876', 'entete chateau','#00507f', '#ffffff', '#000000', 'defaut'}, --château
 +
}
 +
 
 +
local function wdformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre
 +
local wtypes = wd.stringTable{ -- récupère les Qid des professions
 +
entity = localdata.item,
 +
property = 'P31',
 +
displayformat = 'raw',
 +
excludespecial = true
 +
}
 +
local defaultformat = {'Q', '', '#E1E1E1', '#E1E1E1', '#000000', 'defaut'}
 +
if not wtypes or (#wtypes > 1) then -- si plusieurs occupations, on ne sait pas laquelle choisir
 +
return defaultformat
 +
end
 +
wtypes = wd.addVals(wtypes, {property = 'P279'}, 2) -- nombre d'étages de sous-classes à remonter
 +
for i, j in pairs(wtypes) do
 +
for k, l in pairs(formats) do
 +
if l[1] == j then
 +
return l
 +
end
 +
end
 +
end
 +
return defaultformat
 +
end
 +
local function setcharte()
 +
if localdata['charte'] then
 +
charte = localdata['charte']
 +
for i, j in pairs(formats) do
 +
if j[2] == charte then
 +
return j
 +
end
 +
end
 +
end
 +
return wdformat()
 +
end
 +
 
 +
local displayfrmat = setcharte()
 +
 
 
return  
 
return  
 
{
 
{
maincolor = '#E6E3CF',
+
maincolor = displayfrmat[3],
 +
secondcolor = displayfrmat[4],
 +
thirdcolor = displayfrmat[5],
 
parts =
 
parts =
 
     {
 
     {
general.title('Infobox_museum_pictogram.png'),
+
general.title(displayfrmat[2], nil, 'nom local', nil),
 
general.logo(),
 
general.logo(),
 
building.mainimage(),
 
building.mainimage(),
 
{type = 'table', title = 'Présentation', rows = {
 
{type = 'table', title = 'Présentation', rows = {
{type = 'mixed', label = 'Nom local', value = 'nom local'},
+
{type = 'row', label = 'Noms précédents', value = 'noms précédents'},
{type = 'mixed', label = 'Noms précédents', value = 'noms précédents'},
+
{type = 'row', label = 'Surnom(s)', value = 'surnom'},
{type = 'mixed', label = 'Surnom(s)', value = 'surnom'},
+
{type = 'row', label = 'Nom complet', value = 'nom complet'},
{type = 'mixed', label = 'Nom complet', value = 'nom complet'},
+
{type = 'row', label = 'Culte', value = 'culte'},
{type = 'mixed', label = 'Période ou style', value = 'style', property = 'P149'},
+
{type = 'row', label = 'Type', value = 'type', property = 'P31'},
{type = 'mixed', label = 'Type', value = 'type'}, -- property = 'P31' ?
+
{type = 'row', label = 'Rattachement', value = 'rattachement'},
{type = 'mixed', label = function(localdata, item) return localdata['titre architecte'] or 'Architecte' end, value = 'architecte', property = 'P84'},
+
building.archistyle(),
{type = 'mixed', label = 'Date de construction', value = 'date de construction',
+
building.creator(),
wikidata = wikidata.getTheDate{property = 'P793', targetvalue = 'Q385378', addcat = true}
+
building.material(),
},
+
building.construction(),
{type = 'mixed', label = 'Commanditaire', value = 'style', property = 'P88'},
+
building.opening(),
{type = 'mixed', label = 'Dimensions', value = 'hauteur'},
+
building.renovation(),
{type = 'mixed', label = 'Destination initiale', value = 'destination initiale'},
+
building.demolition(),
{type = 'mixed', label = 'Propriétaire', value = 'propriétaire', property = 'P127'},
+
{type = 'row', label = 'Commanditaire', value = 'commanditaire', property = 'P88'},
{type = 'mixed', label = 'Destination actuelle', value = 'destination actuelle'},
+
{type = 'row', label = 'Hauteur', value = 'hauteur', wikidata = {property = 'P2048', targetunit = 'm'}},
{type = 'mixed', label = 'Date de démolition', value = 'date de démolition',
+
{type = 'row', label = 'Largeur', value = 'largeur', wikidata = {property = 'P2049', targetunit = 'm'}},
wikidata = wikidata.getTheDate{property = 'P793', targetvalue = 'Q331483', addcat = true}
+
{type = 'row', label = 'Longueur', value = 'longueur', wikidata = {property = 'P2043', targetunit = 'm'}},
},
+
{type = 'row', label = 'Envergure', value = 'envergure', wikidata = {property = 'P2050', targetunit = 'm'}},
 +
{type = 'row', label = 'Destination initiale', value = 'destination initiale'},
 +
{type = 'row', label = 'Destination actuelle', value = 'destination actuelle'},
 +
building.owner(),
 +
building.operator(),
 +
building.protection(),
 
building.website(),
 
building.website(),
 
}
 
}
Ligne 34 : Ligne 83 :
 
{type = 'table', title = 'Géographie', rows = {
 
{type = 'table', title = 'Géographie', rows = {
 
building.country(),
 
building.country(),
{type = 'mixed', label = 'Région', value = 'région'},
+
building.historicalregion(),
{type = 'mixed', label = function(localdata, item) return localdata['intitulé subdivision'] or 'Subdivision administrative' end, value = 'subdivision'},
+
building.adminlocation(),
{type = 'mixed', label = function(localdata, item) return localdata['intitulé subdivision2'] or 'Subdivision administrative' end, value = 'subdivision2'},
 
{type = 'mixed', label = function(localdata, item) return localdata['intitulé commune'] or 'Commune' end, value = 'commune'},
 
building.address()
 
 
}
 
}
 
},
 
},
 
{type = 'table', title = 'Accès et transport', rows = {
 
{type = 'table', title = 'Accès et transport', rows = {
{type = 'mixed', label = 'Stationnement', value = 'stationnement'},
+
building.transport(),
{type = 'mixed', label = 'Gare', value = 'gare'},
 
{type = 'mixed', label = 'Métro', value = 'métro'},
 
{type = 'mixed', label = 'Tramway', value = 'bus'},
 
{type = 'mixed', label = 'Autobus', value = 'gare'},
 
 
},
 
},
 
},
 
},
Ligne 53 : Ligne 95 :
 
}
 
}
 
},
 
},
building.geoloc(),
+
general.geoloc({marker='monument', default_zoom=16}),
 
}
 
}
 
}
 
}

Version actuelle datée du 20 mai 2017 à 09:23

La documentation pour ce module peut être créée à Module:Infobox/Monument/doc

local building = require "Module:Infobox/Fonctions/Bâtiment"
local general = require "Module:Infobox/Fonctions"
local localdata = require "Module:Infobox/Localdata"
local wd = require "Module:Interface Wikidata".fromLua

local formats = {
	--{valeur wikidata, icône, couleur titre, couleur sous-titre, couleur texte)
        {'Q751876', 'entete chateau','#00507f', '#ffffff', '#000000', 'defaut'}, --château
}

local function wdformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre
	local wtypes = wd.stringTable{ -- récupère les Qid des professions
		entity = localdata.item,
		property = 'P31',
		displayformat = 'raw',
		excludespecial = true
	}
	local defaultformat = {'Q', '', '#E1E1E1', '#E1E1E1', '#000000', 'defaut'}
	if not wtypes or (#wtypes > 1) then -- si plusieurs occupations, on ne sait pas laquelle choisir
		return defaultformat 
	end
	wtypes = wd.addVals(wtypes, {property = 'P279'}, 2) -- nombre d'étages de sous-classes à remonter
	for i, j in pairs(wtypes) do
		for k, l in pairs(formats) do
			if l[1] == j then
				return l
			end
		end
	end
	return defaultformat
end
local function setcharte()
	if localdata['charte'] then
		charte = localdata['charte']
		for i, j in pairs(formats) do
			if j[2] == charte then
				return j
			end
		end
	end
	return wdformat()
end

local displayfrmat = setcharte()

return 
	{
	maincolor = displayfrmat[3],
	secondcolor = displayfrmat[4],
	thirdcolor = displayfrmat[5],
	parts =
    	{
			general.title(displayfrmat[2], nil, 'nom local', nil),
			general.logo(),
			building.mainimage(),
			{type = 'table', title = 'Présentation', rows = {
				{type = 'row', label = 'Noms précédents', value = 'noms précédents'},
				{type = 'row', label = 'Surnom(s)', value = 'surnom'},
				{type = 'row', label = 'Nom complet', value = 'nom complet'},
				{type = 'row', label = 'Culte', value = 'culte'},
				{type = 'row', label = 'Type', value = 'type', property = 'P31'},
				{type = 'row', label = 'Rattachement', value = 'rattachement'},
				building.archistyle(),
				building.creator(),
				building.material(),
				building.construction(),
				building.opening(),
				building.renovation(),
				building.demolition(),
				{type = 'row', label = 'Commanditaire', value = 'commanditaire', property = 'P88'},
				{type = 'row', label = 'Hauteur', value = 'hauteur', wikidata = {property = 'P2048', targetunit = 'm'}},
				{type = 'row', label = 'Largeur', value = 'largeur', wikidata = {property = 'P2049', targetunit = 'm'}},
				{type = 'row', label = 'Longueur', value = 'longueur', wikidata = {property = 'P2043', targetunit = 'm'}},
				{type = 'row', label = 'Envergure', value = 'envergure', wikidata = {property = 'P2050', targetunit = 'm'}},
				{type = 'row', label = 'Destination initiale', value = 'destination initiale'},
				{type = 'row', label = 'Destination actuelle', value = 'destination actuelle'},
				building.owner(),
				building.operator(),
				building.protection(),
				building.website(),
				}
			},
			{type = 'table', title = 'Géographie', rows = {	
				building.country(),
				building.historicalregion(),
				building.adminlocation(),
				}
			},
			{type = 'table', title = 'Accès et transport', rows = {
				building.transport(),
				},
			},
			{type = 'table', title = 'Localisation', rows = {
				building.coordinates(),
				}
			},
			general.geoloc({marker='monument', default_zoom=16}),
	}
}