Différences entre versions de « Module:Carrousel »

De Gregorius 3.0
Sauter à la navigation Sauter à la recherche
Ligne 14 : Ligne 14 :
  
 
local p = {}
 
local p = {}
function p.hello(f)
+
function p.carrousel(f)
 
     local linkedwiki = require 'linkedwiki'
 
     local linkedwiki = require 'linkedwiki'
 
     linkedwiki.setCurrentFrame(mw.getCurrentFrame())
 
     linkedwiki.setCurrentFrame(mw.getCurrentFrame())
 
      
 
      
 
   local subject = f.args.iri or linkedwiki.getCurrentIRI();
 
   local subject = f.args.iri or linkedwiki.getCurrentIRI();
   local queryStr = "select ?p ?v where { <"..subject.."> ?p ?v.} limit 5"
+
 
 +
-- local idConfigWikidata ='http://www.wikidata.org'
 +
-- linkedwiki.setConfig(idConfigWikidata)
 +
   local queryStr = [[
 +
PREFIX p: <http://www.wikidata.org/prop/>
 +
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
 +
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
 +
PREFIX wd: <http://www.wikidata.org/entity/>
 +
 
 +
select distinct  ?nomPrecedent ?nomSuivant where {  
 +
  <https://gregorius.dsi.universite-paris-saclay.fr/wiki/Adrien_IV>
 +
  <http://gregorius.dsi.universite-paris-saclay.fr/wiki/Property:WikidataID> ?idWikidata .
 +
 
 +
  SERVICE <https://query.wikidata.org/sparql> {
 +
          ?idWikidata p:P39 ?stat .
 +
 
 +
          ?stat pq:P1365 ?precedent ;
 +
              pq:P1366 ?suivant .
 +
 
 +
            ?precedent rdfs:label ?nomPrecedent .
 +
            ?suivant rdfs:label ?nomSuivant .
 +
 
 +
            FILTER (langMatches(lang(?nomPrecedent), "fr")
 +
                    && langMatches(lang(?nomSuivant), "fr")
 +
                    )
 +
  }
 +
}
 +
  ]]
 +
 
 
   local result = linkedwiki.query(queryStr)
 
   local result = linkedwiki.query(queryStr)
 
linkedwiki.print_r(result)
 
linkedwiki.print_r(result)
Ligne 26 : Ligne 54 :
  
 
]]
 
]]
-- return '{| class="wikitable" align="right"'..newline
+
 
--          .. '|- '..newline
+
local suivant =  result['result']['rows'][0]['nomSuivant']
--          .. '| style="width:150px;text-align:left;"|  [['.. frame.args[1] .. '|< '.. frame.args[1] .. ']] '..newline
+
local precedent =  result['result']['rows'][0]['nomPrecedent']
--          .. '| style="width:150px;text-align:right;"| [[' .. frame.args[2] ..'|' .. frame.args[2] ..' > ]]'..newline
+
 
--          .. '|}'
+
 
 +
return '{| class="wikitable" align="right"'..newline
 +
          .. '|- '..newline
 +
          .. '| style="width:150px;text-align:left;"|  [['.. precedent .. '|< '.. precedent .. ']] '..newline
 +
          .. '| style="width:150px;text-align:right;"| [[' .. suivant ..'|' .. suivant ..' > ]]'..newline
 +
          .. '|}'
 
   
 
   
return queryStr
+
 
 
end
 
end
 
return p
 
return p

Version du 27 octobre 2021 à 14:49

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

--[[
-- 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' ,
 'Adrien IV',  'Pie  VII' }
}
mw.log(p.hello( newFrame ) )

]]

local p = {}
function p.carrousel(f)
    local linkedwiki = require 'linkedwiki'
    linkedwiki.setCurrentFrame(mw.getCurrentFrame())
    
   local subject = f.args.iri or linkedwiki.getCurrentIRI();
   
--	local idConfigWikidata ='http://www.wikidata.org'
--	linkedwiki.setConfig(idConfigWikidata)
   local queryStr = [[
PREFIX p: <http://www.wikidata.org/prop/> 
PREFIX pq: <http://www.wikidata.org/prop/qualifier/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX wd: <http://www.wikidata.org/entity/> 

select distinct  ?nomPrecedent ?nomSuivant where { 
   <https://gregorius.dsi.universite-paris-saclay.fr/wiki/Adrien_IV>
   <http://gregorius.dsi.universite-paris-saclay.fr/wiki/Property:WikidataID> ?idWikidata .

  SERVICE <https://query.wikidata.org/sparql> {
          ?idWikidata p:P39 ?stat .

          ?stat pq:P1365 ?precedent ;
              pq:P1366 ?suivant .

            ?precedent rdfs:label ?nomPrecedent .
            ?suivant rdfs:label ?nomSuivant .

             FILTER (langMatches(lang(?nomPrecedent), "fr")
                    && langMatches(lang(?nomSuivant), "fr")
                    )
  }
} 
   ]]
   
   local result = linkedwiki.query(queryStr)
linkedwiki.print_r(result)
   
	local newline = [[

]]

 local suivant =   result['result']['rows'][0]['nomSuivant'] 
 local precedent =   result['result']['rows'][0]['nomPrecedent'] 


	return '{| class="wikitable" align="right"'..newline
           .. '|- '..newline
           .. '| style="width:150px;text-align:left;"|  [['.. precedent .. '|< '.. precedent .. ']] '..newline
           .. '| style="width:150px;text-align:right;"| [[' .. suivant ..'|' .. suivant ..' > ]]'..newline
           .. '|}'
 

end
return p