सामग्री पर जाएँ
मुख्य मेन्यू
मुख्य मेन्यू
साइडबार पर जाएँ
छुपाएँ
नेविगेशन
मुखपृष्ठ
हाल में हुए बदलाव
बेतरतीब पृष्ठ
मीडियाविकि के बारे में सहायता
खोजें
खोजें
दिखावट
खाता बनाएँ
लॉग-इन करें
व्यक्तिगत उपकरण
खाता बनाएँ
लॉग-इन करें
लॉग-आउट किए गए संपादकों के लिए पृष्ठ
अधिक जानें
योगदान
वार्ता
मॉड्यूल:Clickable button
सम्पादन
Module
वार्ता
English
पढ़ें
स्रोत सम्पादित करें
इतिहास देखें
उपकरण
उपकरण
साइडबार पर जाएँ
छुपाएँ
क्रियाएँ
पढ़ें
स्रोत सम्पादित करें
इतिहास देखें
सामान्य
कड़ियाँ
पृष्ठ से जुड़े बदलाव
विशेष पृष्ठ
पृष्ठ की जानकारी
दिखावट
साइडबार पर जाएँ
छुपाएँ
सावधान:
आपने लॉग-इन नहीं किया है। अगर आप सम्पादन करते हैं तो इस पृष्ठ के संपादन इतिहास में आपका IP पता दृश्य होगा। अगर आप
लॉग-इन
करते हैं या
खाता बनाते हैं
तो दूसरे सुविधाओं के साथ-साथ आपके संपादनों का श्रेय आपके सदस्यनाम पर दिया जाएगा।
ऐन्टी-स्पैम जाँच। इसे
नहीं
भरें!
-- This module implements {{clickable button 2}}. local yesno = require('Module:Yesno') local delink = require('Module:Delink')._delink local p = {} function p.main(frame) local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._main(args) end function p._main(args) -- If first arg or a url is not provided, -- but we have a second arg, make a button. -- Otherwise, return nothing. args.originalInput = args[1] args[1] = delink({args[1]}) if args[1] == "" then args[1] = nil end if not args[1] and not args.url then if args[2] then p.nolink = true else return '' end end local data = p.makeLinkData(args) local link = p.renderLink(args.originalInput, data) local trackingCategories = p.renderTrackingCategories(args) return link .. trackingCategories end function p.makeLinkData(args) local data = {} -- Get the link and display values, -- and find whether we are outputting -- a wikilink or a URL. if args.url then data.isUrl = true data.link = args.url if args[1] then data.display = args[1] elseif args[2] then data.display = args[2] else data.display = args.url p.urlisdisplay = true end else data.isUrl = false p.urlisdisplay = false data.link = args[1] if args[2] then data.display = args[2] else data.display = args[1] end if args[1] and args[1]:find('http') then data.isUrl = true end end if yesno(args.link) == false then p.nolink = true end -- Colours -- For the merge with {{clickable button}} local colour = args.color and args.color:lower() -- Classes local class = args.class and args.class:lower() data.classes = {} if class == 'ui-button-green' or class == 'ui-button-blue' or class == '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 --If class is unset, --then let color determine class if not class then if colour == 'blue' then class = 'mw-ui-progressive' elseif colour == 'red' then class = 'mw-ui-destructive' elseif colour == 'green' then class = 'mw-ui-constructive' end end if class then 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. --]] local success, linkTitle, currentTitle if not data.isUrl then currentTitle = mw.title.getCurrentTitle() success, linkTitle = pcall(mw.title.new, args[1]) elseif p.urlisdisplay then currentTitle = mw.title.getCurrentTitle() end if success and linkTitle and mw.title.equals(currentTitle, linkTitle) and not p.urlisdisplay then if class == 'ui-button-blue' or class == 'mw-ui-progressive' or class == 'mw-ui-constructive' then data.backgroundColor = '#2962CB' data.color = '#fff' elseif class == 'ui-button-green' then data.backgroundColor = '#008B6D' elseif class == 'ui-button-red' or class == 'mw-ui-destructive' then data.backgroundColor = '#A6170F' else data.backgroundColor = '#CCC' data.color = '#666' end elseif p.urlisdisplay then data.dummyLink = tostring(currentTitle) end -- Add user-specified styles. data.style = args.style end return data end function p.renderLink(originalInput, data) -- Render the display span tag. local display do local displaySpan = mw.html.create('span') for i, class in ipairs(data.classes or {}) do displaySpan:addClass(class) end displaySpan :css{ ['background-color'] = data.backgroundColor, color = data.color } if data.style then displaySpan:cssText(data.style) end displaySpan:wikitext(data.display) display = tostring(displaySpan) end -- Render the link local link if originalInput and originalInput:find('|') then link = string.format('[[%s|%s]]', delink({originalInput, wikilinks = 'target'}), display) elseif p.nolink then if p.urlisdisplay then link = string.format('[[%s|%s]]', data.dummyLink, display) else link = string.format('%s', display) end else 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 clickbutton">%s</span>', link) end 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 '[[Category:Pages using old style ui-button-color]]' else return '' end end return p
सारांश:
कृपया ध्यान दें कि वर्ल्डपीडिया को किये गये सभी योगदान क्रिएटिव कॉमन्स एट्रिब्यूशन-शेयरअलाइक ४.० लाइसेंस की शर्तों के तहत होंगे (अधिक जानकारी के लिये
वर्ल्डपीडिया:कॉपीराइट
देखें)। यदि आप अपने योगदान को लगातार बदलते और पुनः वितरित होते नहीं देख सकते हैं तो यहाँ योगदान न करें।
आप यह भी प्रमाणित कर रहे हैं कि यह आपने स्वयं लिखा है अथवा सार्वजनिक क्षेत्र या किसी समान मुक्त स्रोत से प्रतिलिपित किया है।
कॉपीराइट सुरक्षित कार्यों को बिना अनुमति के यहाँ न डालें!
रद्द करें
सम्पादन सहायता
(नई विंडो में खुलता है)
इस पृष्ठ पर प्रयुक्त साँचा:
मॉड्यूल:Clickable button/doc
(
सम्पादन
)