Différences entre versions de « Module:Carrousel »
Sauter à la navigation
Sauter à la recherche
Ligne 14 : | Ligne 14 : | ||
local p = {} | local p = {} | ||
− | function p. | + | 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 = | + | |
+ | -- 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 : | ||
]] | ]] | ||
− | + | ||
− | + | 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 | 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