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.dump(o)
 +
  if type(o) == 'table' then
 +
      local s = '{ '
 +
      for k,v in pairs(o) do
 +
        if type(k) ~= 'number' then k = '"'..k..'"' end
 +
        s = s .. '['..k..'] = ' .. dump(v) .. ','
 +
      end
 +
      return s .. '} '
 +
  else
 +
      return tostring(o)
 +
  end
 +
end
 +
 +
 
function p.carrousel(f)
 
function p.carrousel(f)
 
local inspect = require('inspect')
 
local inspect = require('inspect')
Ligne 68 : Ligne 83 :
 
   
 
   
 
-- -- --
 
-- -- --
return inspect(result)
+
return p.dump(result)
 
end
 
end
 
return p
 
return p

Version du 27 octobre 2021 à 15:31

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

]]

local p = {}

function p.dump(o)
   if type(o) == 'table' then
      local s = '{ '
      for k,v in pairs(o) do
         if type(k) ~= 'number' then k = '"'..k..'"' end
         s = s .. '['..k..'] = ' .. dump(v) .. ','
      end
      return s .. '} '
   else
      return tostring(o)
   end
end


function p.carrousel(f)
	local inspect = require('inspect')
    local linkedwiki = require 'linkedwiki'
    linkedwiki.setCurrentFrame(mw.getCurrentFrame())
    
   local subject = f.args.iri or linkedwiki.getCurrentIRI();
   -- select distinct  ( COALESCE(?nomPrecedent, "")  as ?nomp ) ( COALESCE(?nomSuivant, "")  as ?noms ) 
--	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 { 
  <]] .. subject ..   [[>
  <http://gregorius.dsi.universite-paris-saclay.fr/wiki/Property:WikidataID> ?idWikidata .

  SERVICE <https://query.wikidata.org/sparql> {
          <http://www.wikidata.org/entity/Q57087> 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
--           .. '|}'
 
-- -- --
return p.dump(result)
end
return p