m Protected "Module:EditAtWikidata": High risk module 76k+ transclusions ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))
|
per request at VPT
|
||
Line 1: | Line 1: | ||
-- Module to display an icon with a tooltip such as "Edit this at Wikidata" |
-- 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. |
-- 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 |
-- 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 |
-- 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. |
-- 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. |
-- The qid of a Wikidata entry can optionally be supplied for testing outside the article. |
||
-- Usage: |
-- Usage: |
||
-- {{#invoke:EditAtWikidata|showMessage|local_parameter}} |
-- {{#invoke:EditAtWikidata|showMessage|local_parameter}} |
||
-- {{#invoke:EditAtWikidata|showMessage|qid=<ArticleID|local_parameter}} |
-- {{#invoke:EditAtWikidata|showMessage|qid=<ArticleID>|local_parameter}} |
||
local p = {} |
local p = {} |
||
Line 13: | Line 13: | ||
local i18n = |
local i18n = |
||
{ |
{ |
||
|
["message"] = "Edit this at Wikidata" |
||
} |
} |
||
p.showMessage = function(frame) |
p.showMessage = function(frame) |
||
|
|||
-- There may be a local parameter supplied, if it's blank, set it to nil |
-- There may be a local parameter supplied, if it's blank, set it to nil |
||
local local_parm = mw.text.trim(frame.args[1] or "") |
local local_parm = mw.text.trim(frame.args[1] or "") |
||
if local_parm and ( |
if local_parm and (local_parm == "") then local_parm = nil end |
||
|
|||
-- If there is a local parameter used, we don't want to display the message |
-- If there is a local parameter used, we don't want to display the message |
||
if local_parm then return nil end |
if local_parm then return nil end |
||
|
|||
-- Can take a named parameter |qid which is the Wikidata ID for the article. |
-- 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. |
-- This will not normally be used except for testing outside the article. |
||
local qid = frame.args.qid |
local qid = frame.args.qid |
||
if qid and ( |
if qid and (qid == "") then qid = nil end |
||
|
|||
-- The module can take a parameter pid= |
-- The module can take a parameter pid= |
||
-- which will create a link to that property in the Wikidata entry for the article |
-- which will create a link to that property in the Wikidata entry for the article |
||
local propertyID = mw.text.trim(frame.args.pid or "") |
local propertyID = mw.text.trim(frame.args.pid or "") |
||
|
|||
-- Get the object containing all the claims for the article |
-- Get the object containing all the claims for the article |
||
local entity = mw.wikibase.getEntityObject(qid) |
local entity = mw.wikibase.getEntityObject(qid) |
||
Line 39: | Line 38: | ||
local thisQid |
local thisQid |
||
if qid then thisQid = qid else thisQid = entity.id end |
if qid then thisQid = qid else thisQid = entity.id end |
||
|
return |
||
" [[File:Blue pencil.svg |frameless |text-top |10px |alt=" .. |
|||
local icon |
|||
i18n.message .. |
|||
if propertyID then |
|||
|
" |link=https://www.wikidata.org/wiki/" .. |
||
thisQid .. |
|||
else |
|||
(propertyID == "" and "" or ("#" .. propertyID)) .. |
|||
icon = " [[File:Blue pencil.svg |frameless |text-top |10px |alt=" .. i18n.message .. " |link=https://www.wikidata.org/wiki/" .. thisQid .. "|" .. i18n.message .. "]]" |
|||
"|" .. i18n.message .. "]]" |
|||
end |
|||
|
|||
return icon |
|||
end |
end |
||
end |
end |
||
return p |
return p |
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This Lua module is used on approximately 2,040,000 pages, or roughly 3% of all pages. To avoid major disruption and server load, any changes should be tested in the module's /sandboxor/testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
Related pages |
---|
|
Module to display an icon with a tooltip such as "Edit this at Wikidata"
To always display the icon:
{{#invoke:EditAtWikidata|showMessage}}
To display the icon depending on a local parameter not existing:
{{#invoke:EditAtWikidata|showMessage|local_parameter}}
To test the functionality outside of an article:
{{#invoke:EditAtWikidata|showMessage|qid=<ArticleID>|local_parameter}}
To make the link point to the given property at the Wikidata entry:
{{#invoke:EditAtWikidata|showMessage|pid=<PropertyID>|local_parameter}}
-- 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 i18n =
{
["message"] = "Edit this at Wikidata"
}
p.showMessage = function(frame)
-- There may be a local parameter supplied, if it's blank, set it to nil
local local_parm = mw.text.trim(frame.args[1] or "")
if local_parm and (local_parm == "") 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 = frame.args.qid
if qid and (qid == "") then qid = nil end
-- The module can take a parameter pid=
-- which will create a link to that property in the Wikidata entry for the article
local propertyID = mw.text.trim(frame.args.pid or "")
-- Get the object containing all the claims for the article
local entity = mw.wikibase.getEntityObject(qid)
if entity then
local thisQid
if qid then thisQid = qid else thisQid = entity.id end
return
" [[File:Blue pencil.svg |frameless |text-top |10px |alt=" ..
i18n.message ..
" |link=https://www.wikidata.org/wiki/" ..
thisQid ..
(propertyID == "" and "" or ("#" .. propertyID)) ..
"|" .. i18n.message .. "]]"
end
end
return p