Différences entre versions de « Module:Carrousel »
Sauter à la navigation
Sauter à la recherche
Ligne 20 : | Ligne 20 : | ||
for k,v in pairs(o) do | for k,v in pairs(o) do | ||
if type(k) ~= 'number' then k = '"'..k..'"' end | if type(k) ~= 'number' then k = '"'..k..'"' end | ||
− | s = s .. '['..k..'] = ' | + | s = s .. '['..k..'] = ' .. ',' |
end | end | ||
return s .. '} ' | return s .. '} ' | ||
Ligne 30 : | Ligne 30 : | ||
function p.carrousel(f) | function p.carrousel(f) | ||
− | |||
local linkedwiki = require 'linkedwiki' | local linkedwiki = require 'linkedwiki' | ||
linkedwiki.setCurrentFrame(mw.getCurrentFrame()) | linkedwiki.setCurrentFrame(mw.getCurrentFrame()) | ||
Ligne 66 : | Ligne 65 : | ||
local result = linkedwiki.query(queryStr) | local result = linkedwiki.query(queryStr) | ||
− | linkedwiki.print_r(result) | + | --linkedwiki.print_r(result) |
local newline = [[ | local newline = [[ | ||
Ligne 83 : | Ligne 82 : | ||
-- -- -- | -- -- -- | ||
− | return p.dump(result) | + | return p.dump(result['result']['rows']) |
end | end | ||
return p | return p |
Version du 27 octobre 2021 à 15:34
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..'] = ' .. ','
end
return s .. '} '
else
return tostring(o)
end
end
function p.carrousel(f)
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['result']['rows'])
end
return p