Différences entre versions de « Module:Carrousel »
Sauter à la navigation
Sauter à la recherche
(12 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 6 : | Ligne 6 : | ||
title = 'Adrien IV' , | title = 'Adrien IV' , | ||
args = { | args = { | ||
− | iri = 'https://gregorius.dsi.universite-paris-saclay.fr/wiki/Adrien_VI' , | + | iri = 'https://gregorius.dsi.universite-paris-saclay.fr/wiki/Adrien_VI', |
− | + | ["Wikidata ID"] = 'Q132845' | |
} | } | ||
− | mw.log(p. | + | } |
+ | mw.log(p.pape( newFrame ) ) | ||
]] | ]] | ||
Ligne 15 : | Ligne 16 : | ||
local p = {} | local p = {} | ||
− | function p. | + | function p.pape(f) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
local linkedwiki = require 'linkedwiki' | local linkedwiki = require 'linkedwiki' | ||
linkedwiki.setCurrentFrame(mw.getCurrentFrame()) | linkedwiki.setCurrentFrame(mw.getCurrentFrame()) | ||
− | linkedwiki.setDebug(true) | + | --linkedwiki.setDebug(true) |
local subject = f.args.iri or linkedwiki.getCurrentIRI(); | local subject = f.args.iri or linkedwiki.getCurrentIRI(); | ||
− | -- select distinct ( COALESCE(?nomPrecedent, "") as ?nomp ) ( COALESCE(?nomSuivant, "") as ?noms ) | + | -- select distinct ( COALESCE(?nomPrecedent, "") as ?nomp ) ( COALESCE(?nomSuivant, "") as ?noms ) |
− | + | local idConfigWikidata ='http://www.wikidata.org' | |
− | + | linkedwiki.setConfig(idConfigWikidata) | |
+ | |||
local queryStr = [[ | local queryStr = [[ | ||
PREFIX p: <http://www.wikidata.org/prop/> | PREFIX p: <http://www.wikidata.org/prop/> | ||
Ligne 44 : | Ligne 32 : | ||
PREFIX wd: <http://www.wikidata.org/entity/> | PREFIX wd: <http://www.wikidata.org/entity/> | ||
− | select distinct ? | + | select distinct ?precedent ( COALESCE(?nomPrecedent, "") as ?nomp ) ?suivant ( COALESCE(?nomSuivant, "") as ?noms ) |
where { | where { | ||
− | |||
− | |||
− | + | OPTIONAL { | |
− | <http://www.wikidata.org/entity/ | + | <http://www.wikidata.org/entity/]] .. f.args['Wikidata ID'] .. [[> p:P39 ?stat . |
− | + | ?stat pq:P1365 ?precedent . | |
− | ?stat pq:P1365 ?precedent | + | ?precedent rdfs:label ?nomPrecedent . |
− | + | FILTER (langMatches(lang(?nomPrecedent), "fr")) | |
− | + | } | |
− | + | OPTIONAL { | |
− | + | <http://www.wikidata.org/entity/]] .. f.args['Wikidata ID'] .. [[> p:P39 ?stat . | |
− | + | ?stat pq:P1366 ?suivant . | |
− | + | ?suivant rdfs:label ?nomSuivant . | |
− | + | FILTER (langMatches(lang(?nomSuivant), "fr")) | |
− | + | } | |
} | } | ||
− | |||
]] | ]] | ||
local result = linkedwiki.query(queryStr) | local result = linkedwiki.query(queryStr) | ||
− | --linkedwiki.print_r(result) | + | --linkedwiki.print_r(result) |
local newline = [[ | local newline = [[ | ||
Ligne 72 : | Ligne 57 : | ||
]] | ]] | ||
− | + | local wikitext = '' | |
− | + | local rows = result['result']['rows'] | |
− | + | for key,value in pairs(rows) do --actualcode | |
− | + | local suivantStr = rows[key]['noms'] | |
− | + | local precedentStr = rows[key]['nomp'] | |
− | + | wikitext = wikitext .. '{| class="wikitable" style="float:right;clear: right;width: 350px;"'..newline | |
− | + | .. '|- '..newline | |
− | + | .. '| style="width:150px;text-align:left;border: none;"| ' | |
− | + | if not linkedwiki.isEmpty(precedentStr) then | |
− | + | wikitext = wikitext .. '[['.. precedentStr .. '|< '.. precedentStr .. ']] [[File:Notification-icon-Wikidata-logo.svg|16px|link='.. rows[key]['precedent'] .. ']]' | |
− | + | end | |
− | + | wikitext = wikitext ..newline | |
+ | .. '| style="width:150px;text-align:right;border: none;"| ' | ||
+ | if not linkedwiki.isEmpty(suivantStr) then | ||
+ | wikitext = wikitext .. '[[File:Notification-icon-Wikidata-logo.svg|16px|link='.. rows[key]['suivant'] .. ']] [[' .. suivantStr ..'|' .. suivantStr ..' > ]]' | ||
+ | end | ||
+ | wikitext = wikitext ..newline | ||
+ | .. '|}'..newline | ||
+ | end | ||
+ | return wikitext | ||
end | end | ||
return p | return p |
Version actuelle datée du 28 octobre 2021 à 13:56
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',
["Wikidata ID"] = 'Q132845'
}
}
mw.log(p.pape( newFrame ) )
]]
local p = {}
function p.pape(f)
local linkedwiki = require 'linkedwiki'
linkedwiki.setCurrentFrame(mw.getCurrentFrame())
--linkedwiki.setDebug(true)
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 ?precedent ( COALESCE(?nomPrecedent, "") as ?nomp ) ?suivant ( COALESCE(?nomSuivant, "") as ?noms )
where {
OPTIONAL {
<http://www.wikidata.org/entity/]] .. f.args['Wikidata ID'] .. [[> p:P39 ?stat .
?stat pq:P1365 ?precedent .
?precedent rdfs:label ?nomPrecedent .
FILTER (langMatches(lang(?nomPrecedent), "fr"))
}
OPTIONAL {
<http://www.wikidata.org/entity/]] .. f.args['Wikidata ID'] .. [[> p:P39 ?stat .
?stat pq:P1366 ?suivant .
?suivant rdfs:label ?nomSuivant .
FILTER (langMatches(lang(?nomSuivant), "fr"))
}
}
]]
local result = linkedwiki.query(queryStr)
--linkedwiki.print_r(result)
local newline = [[
]]
local wikitext = ''
local rows = result['result']['rows']
for key,value in pairs(rows) do --actualcode
local suivantStr = rows[key]['noms']
local precedentStr = rows[key]['nomp']
wikitext = wikitext .. '{| class="wikitable" style="float:right;clear: right;width: 350px;"'..newline
.. '|- '..newline
.. '| style="width:150px;text-align:left;border: none;"| '
if not linkedwiki.isEmpty(precedentStr) then
wikitext = wikitext .. '[['.. precedentStr .. '|< '.. precedentStr .. ']] [[File:Notification-icon-Wikidata-logo.svg|16px|link='.. rows[key]['precedent'] .. ']]'
end
wikitext = wikitext ..newline
.. '| style="width:150px;text-align:right;border: none;"| '
if not linkedwiki.isEmpty(suivantStr) then
wikitext = wikitext .. '[[File:Notification-icon-Wikidata-logo.svg|16px|link='.. rows[key]['suivant'] .. ']] [[' .. suivantStr ..'|' .. suivantStr ..' > ]]'
end
wikitext = wikitext ..newline
.. '|}'..newline
end
return wikitext
end
return p