Module:Oeuvre
Révision datée du 29 octobre 2021 à 13:44 par Karima Rafes (discussion | contributions)
La documentation pour ce module peut être créée à Module:Oeuvre/doc
--[[
-- Debug console
frame = mw.getCurrentFrame() -- Get a frame object
newFrame = frame:newChild{ -- Get one with args
title = 'oeuvre_test' ,
args = {
iri = 'https://gregorius.dsi.universite-paris-saclay.fr/wiki/Fratelli_tutti' ,
["Wikidata ID"] = 'Q335987' ,
["Bnf ID"] = '' ,
["Titre"] = '' ,
["Siecle"] = '',
["Auteur"] = '',
["Type"] = '',
["Date"] = '',
["Lieu de publication"] = '',
["Suite"] = ''
}
}
mw.log(p.infobox( newFrame ) )
]]
local p = {}
function p.infobox(f)
local capiunto = require 'capiunto'
local linkedwiki = require 'linkedwiki'
linkedwiki.setCurrentFrame(mw.getCurrentFrame()) -- added by hand
local rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
local gregProp = '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 wdt = 'http://www.wikidata.org/prop/direct/'
local wd = 'http://www.wikidata.org/entity/'
local dateFormat = "d M Y"
local subject = f.args.iri or linkedwiki.getCurrentIRI(); -- read the iri of the current page
--local subject = linkedwiki.getCurrentIRI(); -- read the iri of the current page
local object = linkedwiki.new(subject)
object:removeSubject() -- delete all triples of this subject (associees au nom de)
if not linkedwiki.isEmpty(f.args['Image']) then --just added to cure error
mw.log(object:addPropertyWithIri(gregProp..'picture',f.args["Image"]))
end
local iriWikidata = ""
local objWikidata = nil
local linkWikidata = ""
local topWikidata = ""
if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
local idConfigWikidata ='http://www.wikidata.org'
local taglang ='fr'
iriWikidata = wd .. f.args['Wikidata ID']
objWikidata = linkedwiki.new(iriWikidata,idConfigWikidata,taglang) -- create object with same config of wikidata
---- and use the same ID of wikidata to get the informations relative to that object
linkWikidata ='['..iriWikidata..' '..f.args['Wikidata ID']..']'
topWikidata = objWikidata:checkString(rdfs..'label',f.args.Title)
end
-- we build our own infobox
local infobox = capiunto.create( {
bodyStyle = 'width : 50px',
bodyClass = 'gregoriusOeuvre',
title = 'Oeuvre' ,
top = topWikidata ,
topStyle = 'background:#FFD200;height:50px;font-size: 25px;vertical-align:middle',
bottom = object:checkExternLink('Lien vers le texte',rdfs..'seeAlso',f.args.Website)
} )
--return capiunto.create( {
-- bodyStyle = 'border: 15px solid red',
-- bodyClass = 'gregoriusOeuvre',
-- title = 'Oeuvre',
-- top = object:checkString(gregProp..'titre',f.args.Type) ,
-- topStyle = 'background:#0066CC;height:50px;font-size: 20px;color:white;vertical-align:middle',
-- bottom = object:checkExternLink('Lien vers le texte',rdfs..'seeAlso',f.args.Website)
--} )
--end
if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
-- :addRow('Titre',objWikidata:checkString(wdt.."P1476",f.args['Titre']))
infobox:addImage( objWikidata:checkImage(wdt..'P18',f.args["Image"]),"Legende TODO", "infobox" )
infobox:addRow('Titre',objWikidata:checkString(rdfs..'label',f.args.Title) )
infobox:addRow('Auteur',objWikidata:checkTitle(wdt.."P50",f.args['Auteur']))
infobox:addRow('Type',objWikidata:checkTitle(wdt.."P31",f.args['Type']))
infobox:addRow('Date', objWikidata:checkDate(wdt.."P577",f.args['Date'],dateFormat))
infobox:addRow('Lieu de publication',objWikidata:checkTitle(wdt.."P291",f.args['Lieu de publication']))
infobox:addRow('Suit',objWikidata:checkTitle(wdt.."P155",f.args['Suit']))
--infobox:addRow('Lieu de décès', objWikidataLieuDeces:checkString(rdfs.."label",f.args['Lieu de décès']))
----add charges recouvertes
--infobox:addRow('Charges recouvertes', objWikidata:checkTitle(wdt..'P106', f.args['Charges recouvertes'], 'fr' ) )
else
-- :addRow('Titre',f.args['Titre'])
infobox:addImage( f.args["Image"])
infobox:addRow('Titre',f.args['Titre'])
infobox:addRow('Auteur',f.args['Auteur'])
infobox:addRow('Type',f.args['Type'])
infobox:addRow('Date', f.args['Date'],dateFormat)
infobox:addRow('Lieu de publication',f.args['Lieu de publication'])
infobox:addRow('Suit',f.args['Suit'])
----add charges recouvertes
--infobox:addRow('Charges recouvertes', f.args['Charges recouvertes'])
end
--infobox:addRow('Date', f.args['Date'])
return infobox
end
return p