|
|
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 = {} |
|
| |
|
| local i18n = | | local i18n = {} |
| { | | |
| ["message"] = "Edit this at Wikidata" | | local function getMessage(name) |
| }
| | if not i18n[name] then |
| | local lang = mw.getCurrentFrame():preprocess('{{int:lang}}') |
| | i18n[name] = require('Module:TNT').formatInLanguage(lang, 'I18n/EditAt.tab', name) |
| | end |
| | return i18n[name] |
| | end |
|
| |
|
| 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 (local_parm == "") then local_parm = nil end | | 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 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 (qid == "") then qid = nil end | | if qid and (#qid == 0) 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 38: |
Line 44: |
| local thisQid | | local thisQid |
| if qid then thisQid = qid else thisQid = entity.id end | | if qid then thisQid = qid else thisQid = entity.id end |
| | | |
| -- Named parameter nbsp allows replacing the leading space with | | local icon |
| local space | | local msg = getMessage('EditAtWikidata') |
| if frame.args.nbsp and (frame.args.nbsp ~= "") then | | if propertyID then |
| space = " "
| | icon = " [[File:Blue pencil.svg |frameless |text-top |10px |alt=" .. msg .. " |link=https://www.wikidata.org/wiki/" .. thisQid .. "#" .. propertyID .. "|" .. msg .. "]]" |
| else | | else |
| space = " " | | icon = " [[File:Blue pencil.svg |frameless |text-top |10px |alt=" .. msg .. " |link=https://www.wikidata.org/wiki/" .. thisQid .. "|" .. msg .. "]]" |
| end | | end |
| | |
| | return icon |
| | end |
|
| |
|
| return
| |
| space .. "[[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=" ..
| |
| i18n.message ..
| |
| " |link=https://www.wikidata.org/wiki/" ..
| |
| thisQid ..
| |
| (propertyID == "" and "" or ("#" .. propertyID)) ..
| |
| "|" .. i18n.message .. "]]"
| |
| end
| |
| end | | end |
| | |
|
| |
|
| return p | | return p |