Mô tổ:Clickable button 2
Ngoại quan
![文档图示](https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/50px-Test_Template_Info-Icon_-_Version_%282%29.svg.png)
![]() | Thử mô khối bị dẫn dụng ôHệ thống giới diệnTrung. Nhậm hà đối thử mô khối đích tu cải hội lập tức phản ánh ô duy cơ bách khoa đích dụng hộ giới diện. Vi liễu tị miễn tạo thành đại quy mô đích ảnh hưởng, biên giả khả dĩ tại bổn mô khối đích sa hạp(Sang kiến|Kính tượng)Hòa trắc thí dạng lệ(Sang kiến)Hiệt diện tiến hành thật nghiệm. Trắc thí hậu vô ngộ đích bản bổn khả dĩ nhất thứ tính địa gia nhập thử mô khối trung, đãn thị tu cải tiền thỉnh vụ tất ôThảo luận hiệtPhát khởi thảo luận. |
Thượng thuậtVăn đươngKhảm nhậpTựModule:Clickable button 2/doc.(Biên tập|Lịch sử) Biên giả khả dĩ tại bổn mô khối đích sa hạp(Sang kiến|Kính tượng)Hòa trắc thí dạng lệ(Sang kiến)Hiệt diện tiến hành thật nghiệm. Bổn mô khối đích tử hiệt diện. |
-- This module implements {{clickable button 2}}.
localyesno=require('Module:Yesno')
localp={}
functionp.main(frame)
localargs=require('Module:Arguments').getArgs(frame,{
wrappers='Template:Clickable button 2'
})
returnp.luaMain(args)
end
functionp.luaMain(args)
ifnotargs[1]andnotargs.urlthen
return''
end
localdata=p.makeLinkData(args)
locallink=p.renderLink(data)
localtrackingCategories=p.renderTrackingCategories(args)
returnlink..trackingCategories
end
functionp.makeLinkData(args)
localdata={}
-- Get the link and display values, and find whether we are outputting a
-- wikilink or a URL.
ifargs.urlthen
data.isUrl=true
data.link=args.url
ifargs[1]then
data.display=args[1]
else
data.display=args.url
end
else
data.isUrl=false
data.link=args[1]
ifargs[2]then
data.display=args[2]
else
data.display=args[1]
end
end
-- Classes
localclass=args.classandargs.class:lower()
data.classes={}
ifclass=='ui-button-green'
orclass=='ui-button-blue'
orclass=='ui-button-red'
then
table.insert(
data.classes,
'submit ui-button ui-widget ui-state-default ui-corner-all'
..' ui-button-text-only ui-button-text'
)
else
table.insert(data.classes,'mw-ui-button')
end
ifclassthen
table.insert(data.classes,class)
end
-- Styles
do
--[[
-- Check whether we are on the same page as we have specified in
-- args[1], but not if we are using a URL link, as then args[1] is only
-- a display value. If we are currently on the page specified in
-- args[1] make the button colour darker so that it stands out from
-- other buttons on the page.
--]]
localsuccess,linkTitle,currentTitle
ifnotdata.isUrlthen
currentTitle=mw.title.getCurrentTitle()
success,linkTitle=pcall(mw.title.new,args[1])
end
ifsuccess
andlinkTitle
andmw.title.equals(currentTitle,linkTitle)
then
ifclass=='ui-button-blue'
orclass=='mw-ui-progressive'
orclass=='mw-ui-constructive'
then
data.backgroundColor='#2962CB'
elseifclass=='ui-button-green'then
data.backgroundColor='#008B6D'
elseifclass=='ui-button-red'orclass=='mw-ui-destructive'then
data.backgroundColor='#A6170F'
else
data.backgroundColor='#CCC'
data.color='#666'
end
end
-- Add user-specified styles.
data.style=args.style
end
returndata
end
functionp.renderLink(data)
-- Render the display span tag.
localdisplay
do
localdisplaySpan=mw.html.create('span')
fori,classinipairs(data.classesor{})do
displaySpan:addClass(class)
end
displaySpan
:attr('role','button')
:attr('aria-disabled','false')
:css{
['background-color']=data.backgroundColor,
color=data.color
}
ifdata.stylethen
displaySpan:cssText(data.style)
end
displaySpan:wikitext(data.display)
display=tostring(displaySpan)
end
-- Render the link
locallink
ifdata.isUrlthen
link=string.format('[%s %s]',data.link,display)
else
link=string.format('[[%s|%s]]',data.link,display)
end
returnstring.format('<span class= "plainlinks" >%s</span>',link)
end
functionp.renderTrackingCategories(args)
ifyesno(args.category)==falsethen
return''
end
localclass=args.classandargs.class:lower()
ifclass=='ui-button-green'
orclass=='ui-button-blue'
orclass=='ui-button-red'
then
return'[[Category:Pages using old style ui-button-color]]'
else
return''
end
end
returnp