Modulo:Cita Wikidata: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Horcrux ha spostato la pagina Modulo:Sandbox/Horcrux/Cita Wikidata a Modulo:Cita Wikidata senza lasciare redirect |
m modulo no globals obsoleto |
||
(10 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1:
require('
local p = {}
local propertyId
local errorMsg = '<span style="font-size:100%" class="error citation-comment">Errore: parametro <code style="color:red;">$1</code> mancante.</span>'
local showWikidataIcon = false
local getArgs = require('Modulo:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')
Line 12 ⟶ 14:
local function is_set( var )
return not (var == nil or var == '');
local function is_pattern( str )
return is_set(str) and str:find('$1')
end
local function getQualifier(qualifierId, conjunction)
local qualifier = mWikidata._getQualifier(args)
if qualifier then showWikidataIcon = true end
return qualifier
end
local function
return mw.message.newRawMessage(msg, args):plain()
return mWikidata._getProperty( { propertyId, pattern=urlPattern } )▼
end
Line 26 ⟶ 35:
local autoriStringa = getQualifier('P2093')
if is_set(autoriStringa) then
local autoriConLink = getQualifier('P50',
if is_set(autoriConLink) then
return autoriConLink .. ', ' .. autoriStringa
Line 39 ⟶ 48:
local function getTitolo()
local titolo = getQualifier('P1476')
or getQualifier('
or getQualifier('P1932')
or getQualifier('P742')
Line 48 ⟶ 57:
function p.getCitation(frame)
local ret
local args = getArgs(frame)
--
if not is_set(args.medium) then return substitute(errorMsg, 'medium') end
if not is_set(args.prop) then return substitute(errorMsg, 'prop') end
propertyId = args.prop
local identifier = args.id
local urlType = args.tipourl or 'titolo'▼
if identifierFromWD then
showWikidataIcon = true
identifier = identifierFromWD
else
return substitute(errorMsg, 'id')
end
local urlType
if is_pattern(args.url) then
args.url = substitute(args.url, identifier)
urlType = 'capitolo'
args.urlcapitolo = substitute(args.urlcapitolo, identifier)
elseif is_pattern(args.url_capitolo) then
urlType = 'capitolo'
args.url_capitolo = substitute(args.url_capitolo, identifier)
end
-- Se un identificatore è specificato, allora si sta forzando l'inserimento manuale;
-- in tal caso, nessun dato va ricavato da Wikidata, altrimenti si rischierebbero incongruenze fra i dati manuali e quelli automatici
if
if not is_set(args.autore) then
args.autore = getAutori()
Line 68 ⟶ 100:
if not is_set(args.titolo) then
args.titolo = getTitolo()
▲ end
▲ if not is_set(args.url) then
end
elseif urlType == 'capitolo' then
if not is_set(args.capitolo) then
args.capitolo = getTitolo()
▲ end
▲ if not is_set(args.urlcapitolo) then
end
end
Line 87 ⟶ 113:
if not is_set(args.vol) and not is_set(args.volume) then
args.volume = getQualifier('P478')
end
if not is_set(args.pagina) and not is_set(args.pagine) then
args.pagine = getQualifier('P304')
end
else
if urlType == 'titolo' and not is_set(args.titolo) then
args.titolo = pipetrick()
elseif urlType == 'capitolo' and not is_set(args.capitolo) then
args.capitolo = pipetrick()
end
end
if args.
args.cid = substitute(args.cid, identifier)
end
args.id = nil --non passare l'argomento 'id' al Modulo:Citazione
return mCitazione.cita_da_modulo(medium, args)▼
if showWikidataIcon then
local mEditAtWikidata = require('Modulo:Modifica su Wikidata')
ret = ret .. ' ' .. mEditAtWikidata._showMessage({ pid = propertyId })
end
return ret
end
|