Modulo:Controllo Wikidata: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
+p._category() +from per accessi arbitrari e per poter creare Modulo:Controllo Wikidata/test
ritornato alla versione febbraio 2017 con minime modifiche per debug e everyNS
Riga 1:
--[[
--* Modulo che implementa il [[Template:template Controllo Wikidata]].
]]--
-- require('Modulo:No globals')
-- Per test
-- require('Modulo:No globals')
local getArgs = require('Modulo:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')
local p = {}
 
Line 26 ⟶ 29:
end
 
local function p._categorygetCategory(wdpropwdval, userval, catprefix, args)
--[[
local genletto = { ms = 'letto', mp = 'letti', fs = 'letta', fp = 'lette' }
* La categoria senza wikitesto.
* @return string|nil
]]--
function p._category(wdprop, userval, catprefix, args)
local mWikidata = require('Modulo:Wikidata')
 
local wdval
 
-- con id=no il primo parametro non è più trattato come l'ID di una proprietà Wikidata
-- ma come una normale stringa da confrontare con il secondo parametro
if args.id == 'no' then
wdval = wdprop
else
wdval = mWikidata._getProperty( {
wdprop,
showunit = args['unità'] ~= 'no',
formatnum = args['unità'] ~= 'no',
from = args.from
} )
end
 
local comparefunc = function(v1, v2) return v1 == v2 end
local cat
Line 60 ⟶ 43:
end
end
 
local genletto = { ms = 'letto', mp = 'letti', fs = 'letta', fp = 'lette' }
 
if userval then
Line 75 ⟶ 56:
end
return categorycat and string.format('[[Categoria%sCategoria:%s]]', category)args.debug and ':' or '', cat)
return cat
end
 
*-- Per l'utilizzo da altro modulo.
--[[
* Per l'utilizzo da altro modulo.
* @return string
]]--
function p._main(args)
local wdprop, userval, catprefix = args[1], args[2], args[3]
local wdval
 
-- namespace 0 obbligatorio salvo everyNS
-- namespace 0, proprietà Wikidata e prefisso categoria obbligatori
if (mw.title.getCurrentTitle().namespace ~= 0 and args.everyNS ~= 'sì') thenor
return ''
if (args.id ~= 'no' and not wdprop) or not catprefix then
not catprefix then
* @ return string|nil
end
 
-- con id=no il primo parametro non è più trattato come l'ID di una proprietà Wikidata
-- proprietà Wikidata e prefisso categoria obbligatori
-- ma come una normale stringa da confrontare con il secondo parametro
if args.id ~= 'no' and not wdprop or not catprefix then
if args.id == 'no' then
return ''
wdval = wdprop
else
wdval = mWikidata._getProperty( {
wdprop,
showunit = args['unità'] ~= 'no',
formatnum = args['unità'] ~= 'no',
from = args.debug and args.from
} )
end
 
localreturn category = p._categorygetCategory(wdpropwdval, userval, catprefix, args)
return category and string.format('[[Categoria:%s]]', category) or ''
end
* Entry-point di- _mainFunzione per il template {{Controllo Wikidata}}
--[[
* Entry-point di _main per il template {{Controllo Wikidata}}
]]--
function p.main(frame)
return p._main(getArgs(frame, { parentOnly = true }))
local getArgs = require('Modulo:Arguments').getArgs
return p._main(getArgs(frame, {parentOnly = true}))
end
 
--[[
* Entry-point di _category per unit test
]]--
function p.category(frame)
local getArgs = require('Modulo:Arguments').getArgs
local args = getArgs(frame)
return p._category(args[1], args[2], args[3], args)
end