Differenze tra le versioni di "Modulo:Wikidata"

aggiorno
(preparo nuove caratteristiche dell'estensione)
(aggiorno)
 
local label = mw.wikibase.label(entityId)
if options.formatting == 'nolink' then
return label or ''
end
 
local link = mw.wikibase.sitelink(entityId)
if link and options.formatting ~= 'nolink' then
if label then
return '[[' .. link .. '|' .. label .. ']]'
return formatError('unknown-value-module')
end
local formatter = require ('ModuleModulo:' .. options['value-module'])
if formatter == nil then
return formatError('value-module-not-found')
-- "rank", "qualifier", "qualifiertype" e "n"
local function getClaims(options)
local entityId, entity, claims, filteredClaims
 
-- get entity
entityId = options.entityId and string.upper(options.entityId)
entity = mw.wikibase.getEntityObjectgetEntity(entityId)
if not entity then
error('') -- error(formatError('entity-not-found'))
 
-- Funzione di utilità, ritorna gli argomenti passati al modulo
-- scartando quelli valorizzati a stringhe vuote.
local function getArgs(frame)
local args = {}
 
if frame == mw.getCurrentFrame() then
-- argomenti passati indirettamente come parametri del template invocante
local parent = frame:getParent()
local parentArgs = parent and parent.args or {}
for k, v in pairs(parentArgs) do
if v ~= '' then
args[k]if v ~= v'' then
args[k] = v
end
end
-- argomenti passati direttamente come parametri di #invoke
end
for k, v in pairs(frame.args) do
 
if v ~= '' then
-- argomenti passati direttamente come parametri di #invoke
args[k] = v
for k, v in pairs(frame.args) do
end
if v ~= '' then
args[k] = v
end
else
args = frame
end
 
-- trasforma i valori di property, qualifier e qualifiervalue in maiuscolo.
local toUpper = { property = true, qualifier = true, qualifiervalue = true }
property = true,
qualifier = true,
qualifiervalue = true
}
for k, v in pairs(args) do
if toUpper[k] then
-- if parameter value is already set, use it
if args.value then
return not(args.novaluepattern) and-- args.patternif andparameter formatFromPattern(args.value,novaluepattern args)is not set
and args.pattern and formatFromPattern(args.value, args)
or args.value
end
-- if parameter value is already set, use it
if args.value then
return not(args.novaluepattern) and-- args.patternif andparameter formatFromPattern(args.value,novaluepattern args)is not set
and args.pattern and formatFromPattern(args.value, args)
or args.value
end
if claim and claim.mainsnak and claim.mainsnak.datavalue then
local datavalue = claim.mainsnak.datavalue
-- controllo tramite identificatore per tipo di dato "elementoentità" (proprietà/elemento)
local options = { formatting = 'nolink' }
-- controllo tramite identificatore per tipo di dato "elemento"
if datavalue.type == 'wikibase-entityid' then
checkvalue = formatEntityId(getEntityIdFromValue(datavalue.value), options, 'raw')
if checkvalue == string.upper(value) then
return n
end
end
-- controllo testuale tra stringhe (testo semplice senza wikilink)
local options = { formatting = 'nolink' }
checkvalue = formatDatavalue(datavalue, options)
if tostring(checkvalue) == value then
5 786

contributi