Différences entre versions de « Module:Carrousel »

De Gregorius 3.0
Sauter à la navigation Sauter à la recherche
 
(29 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',
'Adrien IV',  'Pie  VII' }
+
["Wikidata ID"] = 'Q132845'
 
}
 
}
mw.log(p.carrousel( newFrame ) )
+
}
 +
mw.log(p.pape( newFrame ) )
  
 
]]
 
]]
  
 
local p = {}
 
local p = {}
function p.carrousel(f)
+
 
 +
function p.pape(f)
 
     local linkedwiki = require 'linkedwiki'
 
     local linkedwiki = require 'linkedwiki'
 
     linkedwiki.setCurrentFrame(mw.getCurrentFrame())
 
     linkedwiki.setCurrentFrame(mw.getCurrentFrame())
 +
    --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 )
-- local idConfigWikidata ='http://www.wikidata.org'
+
  local idConfigWikidata ='http://www.wikidata.org'  
-- linkedwiki.setConfig(idConfigWikidata)
+
  linkedwiki.setConfig(idConfigWikidata)
  local queryStr = [[
+
 
 +
  local queryStr = [[
 
PREFIX p: <http://www.wikidata.org/prop/>  
 
PREFIX p: <http://www.wikidata.org/prop/>  
 
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>  
 
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>  
Ligne 28 : Ligne 32 :
 
PREFIX wd: <http://www.wikidata.org/entity/>  
 
PREFIX wd: <http://www.wikidata.org/entity/>  
  
select distinct ( COALESCE(?nomPrecedent, "")  as ?nomp ) ( COALESCE(?nomSuivant, "")  as ?noms ) where {  
+
select distinct ?precedent ( COALESCE(?nomPrecedent, "")  as ?nomp ) ?suivant ( COALESCE(?nomSuivant, "")  as ?noms )
  <]] .. subject ..  [[>
+
where {  
  <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 .
+
    OPTIONAL {
            ?suivant rdfs:label ?nomSuivant .
+
          <http://www.wikidata.org/entity/]] .. f.args['Wikidata ID'] ..  [[> p:P39 ?stat .
 
+
          ?stat pq:P1365 ?precedent .
            FILTER (langMatches(lang(?nomPrecedent), "fr")
+
          ?precedent rdfs:label ?nomPrecedent .
                    && langMatches(lang(?nomSuivant), "fr")
+
          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 55 : Ligne 57 :
 
]]
 
]]
  
local suivant =   result['result']['rows'][0]['noms']  
+
local wikitext = ''
local precedent result['result']['rows'][0]['nomp']  
+
local rows = result['result']['rows']
 
+
for key,value in pairs(rows) do --actualcode
 
+
    local suivantStr =  rows[key]['noms']  
return '{| class="wikitable" align="right"'..newline
+
local precedentStr =  rows[key]['nomp']  
          .. '|- '..newline
+
wikitext = wikitext .. '{| class="wikitable" style="float:right;clear: right;width: 350px;"'..newline
          .. '| style="width:150px;text-align:left;"| [['.. precedent .. '|< '.. precedent .. ']] '..newline
+
          .. '|- '..newline
          .. '| style="width:150px;text-align:right;"| [[' .. suivant ..'|' .. suivant ..' > ]]'..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