Modul:EditAtWikidata
Acest modul este folosit pentru a afișa o pictogramă (un creion albastru) sau un text cu o legătură către elementul Wikidata asociat paginii curente. Este folosit, de regulă, în formate (cum ar fi infocasetele) pentru a indica faptul că o anumită valoare este preluată de la Wikidata și poate fi modificată direct acolo.
Acesta reprezintă documentația pentru modulul al cărui cod sursă se regăsește în EditAtWikidata.lua.
Utilizare
Se poate apela prin intermediul formatului {{Editează la Wikidata}}.
Utilizarea de bază în cadrul unui format:
{{#invoke:EditAtWikidata|showMessage|{{{parametru_local|}}}}}
Utilizare cu toți parametrii opționali (în general pentru teste sau legături către o anumită proprietate):
{{#invoke:EditAtWikidata|showMessage|{{{parametru_local|}}} |qid= |pid= |label=}}
Parametri (pentru showMessage)
Modulul utilizează funcția principală showMessage, care acceptă următorii parametri:
1(primul parametru nenominalizat): Parametrul local. Dacă acest parametru este furnizat și nu este gol, modulul nu va afișa mesajul/pictograma. Acest mecanism previne apariția legăturii către Wikidata atunci când în format se folosește deja o valoare introdusă manual.qid(opțional): ID-ul elementului Wikidata (de exemplu,Q42). Dacă nu este specificat, modulul preia automat elementul Wikidata asociat paginii curente. Este folosit în special pentru testarea modulului în afara spațiului de articole.pid(opțional): ID-ul proprietății Wikidata (de exemplu,P18). Dacă este furnizat, legătura generată va duce exact la secțiunea acelei proprietăți din pagina Wikidata a elementului.label(opțional): Un text personalizat. Dacă este completat, modulul va genera o legătură text cu acest titlu în loc să afișeze pictograma implicită cu creionul albastru și textul de tip tooltip „Modificați la Wikidata”.
Funcții pentru alte module
Modulul expune funcții care pot fi apelate direct din alte module Lua, fără a trece prin formatarea parametrilor specifică apelurilor #invoke:
displayMessage
p.displayMessage(pid, qid)
Returnează wikitextul pentru pictograma creionului albastru, legat la elementul și (opțional) proprietatea Wikidata specificate.
pid(opțional): ID-ul proprietății Wikidata (ex."P18").qid(opțional): ID-ul elementului Wikidata (ex."Q42"). Dacă este omis, folosește elementul paginii curente.
displayMessageWithCustomText
p.displayMessageWithCustomText(pid, qid, text)
Returnează o legătură text personalizată către elementul (și opțional proprietatea) Wikidata specificat.
pid(opțional): ID-ul proprietății Wikidata (ex."P18"). Dacă este specificat, legătura va include o ancoră către acea proprietate (#pid).qid(opțional): ID-ul elementului Wikidata (ex."Q42"). Dacă este omis, folosește elementul paginii curente.text(opțional): Textul afișat în legătură. Dacă parametrultexteste omis saunil, funcția apelează automatp.displayMessage(pid, qid)și returnează pictograma implicită cu creionul albastru.
-- Module to display an icon with a tooltip such as "Edit this at Wikidata"
-- Icon will be linked to the Wikidata entry for the article where this is placed.
-- This message is only displayed if a local_parameter is not supplied
-- i.e. when called from a template, it can be coded not to display the message
-- when a local parameter is in use, preventing the value form Wikidata being fetched.
-- The qid of a Wikidata entry can optionally be supplied for testing outside the article.
-- Usage:
-- {{#invoke:EditAtWikidata|showMessage|local_parameter}}
-- {{#invoke:EditAtWikidata|showMessage|qid=<ArticleID>|local_parameter}}
local p = {}
local getArgs = require('Modul:Arguments').getArgs
local i18n =
{
["message"] = "Modificați la Wikidata"
}
p.displayMessageWithCustomText = function(pid, qid, text)
-- Get the object containing all the claims for the article
local thisQid = qid or mw.wikibase.getEntityIdForCurrentPage()
if not thisQid then return nil end
if not text then return p.displayMessage(pid, qid) end
local link = " [[:d:" .. thisQid .. (pid and ("#" .. pid ) or "") .. "|" .. text .. "]]"
return link
end
p.displayMessage = function(pid, qid)
-- Get the object containing all the claims for the article
local thisQid = qid or mw.wikibase.getEntityIdForCurrentPage()
if not thisQid then return nil end
local icon
if pid then
icon = " [[File:Blue pencil.svg |frameless |text-top |10px |alt=" .. i18n.message .. " |link=https://www.wikidata.org/wiki/" .. thisQid .. "#" .. pid .. "|" .. 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
p.showMessage = function(frame)
local args = getArgs(frame)
-- There may be a local parameter supplied, if it's blank, set it to nil
local local_parm = args[1] or ""
if local_parm and (#local_parm == 0) then local_parm = nil end
-- If there is a local parameter used, we don't want to display the message
if local_parm then return nil end
-- Can take a named parameter |qid which is the Wikidata ID for the article.
-- This will not normally be used except for testing outside the article.
local qid = args.qid
-- The module can take a parameter pid=
-- which will create a link to that property in the Wikidata entry for the article
local pid = args.pid
local label = args.label
if not label then
return p.displayMessage(pid, qid)
else
return p.displayMessageWithCustomText(pid, qid, label)
end
end
return p