Modulo:Modifica su Wikidata: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m se utilizzabile da altro modulo dovrebbe avere una funzione senza frame
m modulo no globals obsoleto
 
(5 versioni intermedie di 2 utenti non mostrate)
Riga 1:
--[[
--* Modulo perche mostrareimplementa un'iconail coltemplate suggerimento "Modifica su Wikidata".
-- L'icona rimanderà all'elemento di Wikidata dove si trova il dato da modificare.
]]--
-- Il messaggio viene mostrato solo quando un parametro locale non è compilato:
-- vale a dire che quando il modulo viene richiamato da un template, può essere
-- impostato in modo da non mostrare il messaggio quando un parametro locale
-- è in uso e impedisce al valore su Wikidata di essere prelevato.
-- Il qid di un elemento di Wikidata può essere specificato a mano per test in sandbox.
-- Utilizzo:
-- {{#invoke:Modifica su Wikidata|showMessage|<parametro locale>}}
-- {{#invoke:Modifica su Wikidata|showMessage|qid=<ID elemento>|<parametro locale>}}
-- {{#invoke:Modifica su Wikidata|showMessage|pid=<ID proprietà>|<parametro locale>}}
 
require('strict')
 
local getArgs = require('Modulo:Arguments').getArgs
local p = {}
 
local i18n =
{
["message"] = "Modifica su Wikidata"
}
 
-- Funzione per l'utilizzo da altro modulo
function p._showMessage = function(args)
local qid = args.qid or mw.wikibase.getEntityIdForCurrentPage()
if args[1] or not qid then
-- Restituisce nil quando un parametro locale è specificato ma non compilato.
return iconnil
local local_parm = mw.text.trim(args[1] or "")
if local_parm and (#local_parm == 0) then local_parm = nil end
-- L'icona non viene mostrata quando un parametro locale è in uso.
if local_parm then return nil end
-- Parametro qid= per indicare l'ID dell'elemento su Wikidata.
-- Di norma non viene usato, se non per test al di fuori della voce.
local qid = args.qid
if qid and (#qid == 0) then qid = nil end
-- Parametro pid= per creare un link diretto alla proprietà dell'elemento su Wikidata.
local propertyID = mw.text.trim(args.pid or "")
-- Ottiene l'oggetto contenente tutte le informazioni per la voce.
local entity = mw.wikibase.getEntityObject(qid)
if entity then
local thisQid
if qid then thisQid = qid else thisQid = entity.id end
local icon
if propertyID then
icon = " [[File:Blue pencil.svg |frameless |text-top |10px |alt=" .. i18n.message .. " |link=https://www.wikidata.org/wiki/" .. thisQid .. "#" .. propertyID .. "|" .. i18n.message .. "]]"
else
icon = " [[File:Blue pencil.svg |frameless |text-top |10px |alt=" .. i18n.message .. " |link=https://www.wikidata.org/wiki/" .. thisQid .. "|" .. i18n.message .. "]]"
end
return icon
end
local sezione = args.pid or args.sezione
 
local anchor = sezione and ('#' .. sezione) or ''
local link = 'https://www.wikidata.org/wiki/' .. qid .. anchor
return string.format(' [[File:Blue pencil.svg|frameless|text-top|10px|alt=Modifica su Wikidata|link=%s|Modifica su Wikidata|class=noprint]]', link)
end
 
-- Funzione per il template Modifica su Wikidata
function p.showMessage = function(frame)
return p._showMessage(getArgs(frame.args, { parentOnly = true }))
end