Module:Infobox/Fonctions : Différence entre versions

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
Ligne 9 : Ligne 9 :
 
type = 'title',
 
type = 'title',
 
value = function(localdata, item) return localdata['nom'] or wikidata._getLabel(item) or mw.title.getCurrentTitle().text end,
 
value = function(localdata, item) return localdata['nom'] or wikidata._getLabel(item) or mw.title.getCurrentTitle().text end,
subtitle = 'nom local',
+
subtitle = function(localdata, item)
wikidatasubtitle = wikidata._formatStatements({item=item, property = 'P1448'}),
+
if localdata['nom local'] then
 +
return localdata['nom local']
 +
end
 +
if not item then
 +
return nil
 +
end
 +
local subtitles = wikidata.getClaims({item=item, property = 'P1448'})
 +
local subtitlestr = ''
 +
if not subtitles then return
 +
nil
 +
end
 +
local title = localdata['nom'] or wikidata._getLabel(item) or mw.title.getCurrentTitle().text
 +
local langspan = require('Module:Langue').langue
 +
local dones = {}
 +
local text, textlang
 +
for i, j in pairs(subtitles) do
 +
if j.mainsnak.snaktype then
 +
text, textlang = j.mainsnak.datavalue.value.text, j.mainsnak.datavalue.value.language
 +
end
 +
if text ~= title and not dones[text] then
 +
subtitlestr = subtitlestr .. langspan{textlang, text} .. '<br />'
 +
dones[text]= true
 +
end
 +
end
 +
return subtitlestr
 +
end
 +
,
 
class = class,  
 
class = class,  
 
}
 
}

Version du 29 septembre 2014 à 15:03

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

-- Fonctions communes à diverses infobox
local wikidata = require('Module:Wikidata')
local d = require('Module:Wikidata/Dates')

local p = {}

function p.title()
	return {
			type = 'title',
			value = function(localdata, item) return localdata['nom'] or wikidata._getLabel(item) or mw.title.getCurrentTitle().text end,
			subtitle = function(localdata, item)
				if localdata['nom local'] then
					return localdata['nom local']
				end
				if not item then 
					return nil
				end
				local subtitles = wikidata.getClaims({item=item, property = 'P1448'})
				local subtitlestr = ''
				if not subtitles then return 
					nil
				end
				local title = localdata['nom'] or wikidata._getLabel(item) or mw.title.getCurrentTitle().text
				local langspan = require('Module:Langue').langue
				local dones = {}
				local text, textlang
				for i, j in pairs(subtitles) do
					if j.mainsnak.snaktype then
						text, textlang = j.mainsnak.datavalue.value.text, j.mainsnak.datavalue.value.language
					end
					if text ~= title and not dones[text] then
						subtitlestr = subtitlestr .. langspan{textlang, text} .. '<br />'
						dones[text]= true
					end
				end
				return subtitlestr
				end
			,
			class = class, 
	}
end

function p.mainimage(cat)
	return {
		type = 'images',
		imageparameters =  {'image'},
		defaultimage = {defaultimage},
		maintenancecat =
			function(localdata, item, params)
			if (cat == '-') or localdata['image'] == 'non' then
				return nil
			elseif cat then
				return cat
			else
				return 'Article à illustrer'
			end
			end,
		captionparameter = 'légende',
		defaultcaption = function() return defaultcaption end,
		property = 'P18',
		numval = 1,
	}
end


-- Liens externes
function p.website() --texte libre [http://example.org example.org] ou url seule
	return { 
            type = 'mixed',
            label = "Site web",
            wikidata = wikidata.formatStatements({property='p856', first = "true"}),
            value = function() return require("Module:Weblink").makelink(localdata['site web']) end
            }
end

return p