Différences entre versions de « Module:Oeuvre »

De Gregorius 3.0
Sauter à la navigation Sauter à la recherche
Ligne 36 : Ligne 36 :
 
   local dateFormat = "d M Y"
 
   local dateFormat = "d M Y"
  
  local linkedwiki = require 'linkedwiki' -- iri de la page execute par ce module
 
 
   local subject = f.args.iri or linkedwiki.getCurrentIRI(); -- read the iri of the current page
 
   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 subject = linkedwiki.getCurrentIRI(); -- read the iri of the current page

Version du 29 octobre 2021 à 09:27

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 = 'http://157.136.249.54/wiki/oeuvre_test' ,
["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