Module:Pape

De Gregorius 3.0
Sauter à la navigation Sauter à la recherche

Utilisation

Cette infobox a pour fonction de pouvoir afficher et associer des données à propos des papes.

Exemple d'utilisation

{{#invoke:Pape|infobox
| Wikidata ID = Q132845
| Bnf ID =
| Titre = Adrien IV
| Image = http://commons.wikimedia.org/wiki/Special:FilePath/Pope%20Hadrian%20IV.jpg
| Nom de naissance = Nicolas Breakspear
| Date de naissance = 1100-01-01
| Naissance précision (années) = 10
| Lieu de naissance = Abbots Langley
| Date de décès = 1159-09-01
| Lieu de décès = Anagni
| Election au pontificat = 1154-12-04
| Intronisation = 1154-12-05
| Fin du pontificat = 1159-09-01
}}

Paramétres

  • Wikidata ID : QXXXXX
  • Bnf ID :
  • Titre :
  • Image :
  • Nom de naissance :
  • Date de naissance : YYYY-MM-DD
  • Naissance précision (années) : entier
  • Lieu de naissance :
  • Date de décès : YYYY-MM-DD
  • Lieu de décès : YYYY-MM-DD
  • Election au pontificat : YYYY-MM-DD
  • Intronisation : YYYY-MM-DD
  • Fin du pontificat : YYYY-MM-DD

--[[
-- Debug console

frame = mw.getCurrentFrame() -- Get a frame object
newFrame = frame:newChild{ -- Get one with args
	title = 'Adrien IV' ,
 args = { 
 iri = 'https://gregorius.dsi.universite-paris-saclay.fr/wiki/Adrien_IV' ,
["Wikidata ID"] = 'Q132845' ,
["Bnf ID"] = '' ,
["Titre"] = 'Adrien IV' ,
["Image"] = 'http://commons.wikimedia.org/wiki/Special:FilePath/Pope%20Hadrian%20IV.jpg' ,
["Légende de l'image"] = "Adrien IV" ,
['Nom de naissance'] = 'Nicolas Breakspear' ,
['Lieu de naissance'] = 'Abbots Langley' ,
['Date de naissance'] = '1159-09-01' ,
['Naissance précision (années)'] = '10' ,
['Lieu de décès'] = 'Anagni' ,
['Date de décès'] = '1159-09-01' ,
['Election au pontificat'] = '1154-12-04' ,
['Intronisation'] = '1154-12-05' ,
['Fin du pontificat'] = '1159-09-01' 
    }
}
mw.log(p.infobox( newFrame ) )
]]


local p = {}
 
function p.infobox(f)
    local capiunto = require 'capiunto'
    local linkedwiki = require 'linkedwiki'
    linkedwiki.setCurrentFrame(mw.getCurrentFrame())
 
   local rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
   local rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
   local ri = 'http://gregorius.dsi.universite-paris-saclay.fr/wiki/'
   local rp = 'http://gregorius.dsi.universite-paris-saclay.fr/wiki/Property:'
   local geo = 'http://www.w3.org/2003/01/geo/wgs84_pos#'
   local vcard = 'http://www.w3.org/2006/vcard/ns#'
   local xsd = 'http://www.w3.org/2001/XMLSchema#'
   local wdt = 'http://www.wikidata.org/prop/direct/'
   local wd = 'http://www.wikidata.org/entity/'
   local bnf = 'http://www.data.bnf.fr/'
   local p = 'http://www.wikidata.org/prop/'
   local pq = 'http://www.wikidata.org/prop/qualifier/'
   local ps = 'http://www.wikidata.org/prop/statement/'
   
   local dateFormat = "d M Y"
   local taglang ='fr'
   
   local subject = f.args.iri or linkedwiki.getCurrentIRI();

	local subject = linkedwiki.getCurrentIRI(); -- read the iri of the current page
	local object =  linkedwiki.new(subject)
	--object:setDebug(true)
	object:removeSubject() -- delete all triples of this subject
	   
	mw.log(object:addPropertyWithIri(rdf..'type',ri..'Pape'))
	
	if not linkedwiki.isEmpty(f.args['Titre']) then
		mw.log(object:addPropertyString(rdfs..'label',f.args["Titre"] ))
	end
	if not linkedwiki.isEmpty(f.args['Image']) then
		mw.log(object:addPropertyWithIri(rp..'picture',f.args["Image"]))
	end
	if not linkedwiki.isEmpty(f.args["Légende de l'image"]) then
		mw.log(object:addPropertyString(rp..'pictureLegend',f.args["Légende de l'image"]))
	end
	
	if not linkedwiki.isEmpty(f.args['Nom de naissance']) then
		mw.log(object:addProperty(rp..'nomDeNaissance',f.args['Nom de naissance']))
	end
	if not linkedwiki.isEmpty(f.args['Date de naissance']) then
		mw.log(object:addProperty(rp..'naissance',f.args['Date de naissance'] ,xsd..'date',''))
	end
	if not linkedwiki.isEmpty(f.args['Naissance précision (années)']) then
		mw.log(object:addProperty(rp..'naissancePrecision',f.args['Naissance précision (années)'],xsd..'integer',''))
	end
	if not linkedwiki.isEmpty(f.args['Lieu de naissance']) then
		mw.log(object:addPropertyString(rp..'lieuDeNaissance',f.args['Lieu de naissance']))
	end
	if not linkedwiki.isEmpty(f.args['Date de décès']) then
		mw.log(object:addProperty(rp..'deces',f.args['Date de décès'],xsd..'date',''))
	end
	if not linkedwiki.isEmpty(f.args['Lieu de décès']) then
		mw.log(object:addPropertyString(rp..'lieuDeDeces',f.args['Lieu de décès']))
	end
	if not linkedwiki.isEmpty(f.args['Election au pontificat']) then
		mw.log(object:addProperty(rp..'electionAuPontificat',f.args['Election au pontificat'],xsd..'date',''))
	end
	if not linkedwiki.isEmpty(f.args['Intronisation']) then
		mw.log(object:addProperty(rp..'intronisation',f.args['Intronisation'],xsd..'date',''))
	end
	if not linkedwiki.isEmpty(f.args['Fin du pontificat']) then
		mw.log(object:addProperty(rp..'finDuPontificat',f.args['Fin du pontificat'],xsd..'date',''))
	end
	
	--compare data with wikidata
	
	    local iriWikidata = ""
	    local objWikidata = nil
	    local objWikidataLieuNaissance = nil
	    local objWikidataLieuDeces = nil
	    local objWikidataImageStatement = nil
	    local objPapeFonction = nil
	    local linkWikidata = ""
	    local topWikidata = ""
	
	if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
		local idConfigWikidata ='http://www.wikidata.org'
		iriWikidata = wd .. f.args['Wikidata ID']
		objWikidata = linkedwiki.new(iriWikidata,idConfigWikidata,taglang)
	    mw.log(object:addPropertyWithIri(rp..'WikidataID',iriWikidata))
	   objWikidataLieuNaissance =  linkedwiki.new(objWikidata:getValue(wdt..'P19'),idConfigWikidata,taglang)
	   objWikidataLieuDeces =  linkedwiki.new(objWikidata:getValue(wdt..'P20'),idConfigWikidata,taglang)
	   objWikidataImageStatement =  linkedwiki.new(objWikidata:getValue(p..'P18'),idConfigWikidata,taglang)
	  
		listIri = linkedwiki.explode(";",  objWikidata:getValue(p..'P39'))
		objPapeFonction = nil
	    for i, iri in ipairs(listIri) do
	    	 objPapeFonction =  linkedwiki.new(iri,idConfigWikidata,taglang)
	        if objPapeFonction:getValue(ps..'P39') == wd .."Q19546" then
	        	break
	        end
	    end
	    
	    linkWikidata ='['..iriWikidata..' '..f.args['Wikidata ID']..']'
	    topWikidata  = objWikidata:checkString(rdfs..'label',f.args.Title)
	    
	    
	    
	end
	
	local iriBNF =""
	local objBnf = nil
	local linkBNF =""
	
	if not linkedwiki.isEmpty(f.args['Bnf ID']) then
		iriBNF = bnf .. f.args['Bnf ID']
		objBnf = linkedwiki.new(iriBNF,'http://data.bnf.fr',"fr")
	    mw.log(object:addPropertyWithIri(rp..'BnfID',iriBNF))
	    	linkBNF = '['..iriBNF..' '..f.args['Bnf ID']..']'
	end
	
	local infobox = capiunto.create( {
		    bodyStyle = 'width : 50px',
		    bodyClass = 'gregoriusPape',
			title =  'Pape' ,
	        top = topWikidata ,
			topStyle = 'background:#FFD200;height:50px;font-size: 25px;vertical-align:middle',		
		--	bottom = 
		} )
	
	--objWikidataImageStatement:setDebug(true)
	if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
		infobox:addImage(
			objWikidataImageStatement:checkImage(ps..'P18',f.args["Image"]),
			objWikidataImageStatement:checkString(pq..'P2096',f.args["Légende de l'image"],taglang), -- LEGENDE DE L'IMAGE
		    "infobox" -- CLASS CSS POUR CONTROLER LA TAILLE DE L'IMAGE voir la classe dans la page https://gregorius.dsi.universite-paris-saclay.fr/wiki/MediaWiki:Common.css
		)
	else
		infobox:addImage( f.args["Image"])
	end
	
	infobox:addHeader( "Biographie","infoboxPapeHeaderRow" )
	if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
		infobox:addRow('Nom de naissance',objWikidata:checkString(wdt.."P1477",f.args['Nom de naissance']))
		infobox:addRow('Lieu de naissance',objWikidataLieuNaissance:checkString(rdfs.."label",f.args['Lieu de naissance']))
		infobox:addRow('Naissance',objWikidata:checkDate(wdt.."P569",f.args['Date de naissance'],dateFormat))	
		infobox:addRow('Lieu de décès', objWikidataLieuDeces:checkString(rdfs.."label",f.args['Lieu de décès']))
		infobox:addRow('Date de décès', objWikidata:checkDate(wdt.."P570",f.args['Date de décès'],dateFormat))	
	else
		infobox:addRow('Nom de naissance',f.args['Nom de naissance'])
		infobox:addRow('Lieu de naissance',f.args['Lieu de naissance'])
		infobox:addRow('Naissance',f.args['Date de naissance'],dateFormat)
		infobox:addRow('Lieu de décès',f.args['Lieu de décès'])
		infobox:addRow('Date de décès', f.args['Date de décès'],dateFormat)	
	end
	
	infobox:addHeader( "Pape de l'église catholique","infoboxPapeHeaderRow" )
	if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
		infobox:addRow('Élection au pontificat', f.args['Election au pontificat'])
		infobox:addRow('Intronisation',  objPapeFonction:checkDate(pq.."P580",f.args['Intronisation'],dateFormat))
		infobox:addRow('Fin du pontificat', objPapeFonction:checkDate(pq.."P582",f.args['Fin du pontificat'],dateFormat))
		infobox:addRow('Source Wikidata', linkWikidata)	
		infobox:addRow('Source Bnf', linkBNF)	
	else
		infobox:addRow('Élection au pontificat', f.args['Election au pontificat'])
		infobox:addRow('Intronisation',  f.args['Intronisation'])
		infobox:addRow('Fin du pontificat', f.args['Fin du pontificat'])
		infobox:addRow('Source Wikidata', linkWikidata)	
		infobox:addRow('Source Bnf', linkBNF)
	end

	infobox:addWikitext(  "[[Catégorie:Pape]]" )

  return infobox
end
 
return p