Editing Module:Clickable button
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
-- This module implements {{clickable button}}. | -- This module implements {{clickable button 2}}. | ||
local yesno = require(' | local yesno = require('Modul:Yesno') | ||
local p = {} | local p = {} | ||
local function | function p.main(frame) | ||
if | local args = require('Modul:Arguments').getArgs(frame, { | ||
wrappers = 'Templat:Clickable button 2' | |||
}) | |||
return p.luaMain(args) | |||
end | |||
function p.luaMain(args) | |||
if not args[1] and not args.url then | |||
return '' | return '' | ||
end | end | ||
local data = p.makeLinkData(args) | |||
local link = p.renderLink(data) | |||
local trackingCategories = p.renderTrackingCategories(args) | |||
return | return link .. trackingCategories | ||
end | end | ||
function p.makeLinkData(args) | |||
local data = {} | local data = {} | ||
-- Get the link and display values, | -- Get the link and display values, and find whether we are outputting a | ||
-- wikilink or a URL. | |||
-- | |||
if args.url then | if args.url then | ||
data.isUrl = true | data.isUrl = true | ||
Line 26: | Line 32: | ||
if args[1] then | if args[1] then | ||
data.display = args[1] | data.display = args[1] | ||
else | else | ||
data.display = args.url | data.display = args.url | ||
end | end | ||
else | else | ||
data.isUrl = false | data.isUrl = false | ||
data.link = args[1] | data.link = args[1] | ||
if args[2] then | if args[2] then | ||
Line 43: | Line 44: | ||
end | end | ||
end | end | ||
-- Classes | -- Classes | ||
Line 67: | Line 60: | ||
table.insert(data.classes, 'mw-ui-button') | table.insert(data.classes, 'mw-ui-button') | ||
end | end | ||
if class then | if class then | ||
table.insert(data.classes, class) | table.insert(data.classes, class) | ||
Line 99: | Line 77: | ||
currentTitle = mw.title.getCurrentTitle() | currentTitle = mw.title.getCurrentTitle() | ||
success, linkTitle = pcall(mw.title.new, args[1]) | success, linkTitle = pcall(mw.title.new, args[1]) | ||
end | end | ||
if success | if success | ||
and linkTitle | and linkTitle | ||
and mw.title.equals(currentTitle, linkTitle) | and mw.title.equals(currentTitle, linkTitle) | ||
then | then | ||
if class == 'ui-button-blue' | if class == 'ui-button-blue' | ||
Line 112: | Line 87: | ||
then | then | ||
data.backgroundColor = '#2962CB' | data.backgroundColor = '#2962CB' | ||
elseif class == 'ui-button-green' then | elseif class == 'ui-button-green' then | ||
data.backgroundColor = '#008B6D' | data.backgroundColor = '#008B6D' | ||
Line 120: | Line 94: | ||
data.backgroundColor = '#CCC' | data.backgroundColor = '#CCC' | ||
data.color = '#666' | data.color = '#666' | ||
end | end | ||
end | end | ||
Line 134: | Line 103: | ||
end | end | ||
function p.renderLink(data) | |||
-- Render the display span tag. | -- Render the display span tag. | ||
local display | local display | ||
Line 155: | Line 124: | ||
-- Render the link | -- Render the link | ||
local link | local link | ||
if | if data.isUrl then | ||
link = string.format('[%s %s]', data.link, display) | |||
else | |||
link = string.format('[[%s|%s]]', data.link, display) | |||
end | end | ||
return string.format('<span class="plainlinks | return string.format('<span class="plainlinks">%s</span>', link) | ||
end | end | ||
function p. | function p.renderTrackingCategories(args) | ||
-- | if yesno(args.category) == false then | ||
return '' | |||
end | |||
local class = args.class and args.class:lower() | |||
if class == 'ui-button-green' | |||
or class == 'ui-button-blue' | |||
or class == 'ui-button-red' | |||
then | |||
return '[[Kategori:Halaman yang menggunakan ui-button-color gaya lama]]' | |||
else | |||
return '' | |||
end | end | ||
end | end | ||
return p | return p |