Module:Transclusion count: Difference between revisions
sync from sandbox
(Make argument 2 optional) |
(sync from sandbox) |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p.fetch(frame) | |||
local template = mw.ustring.gsub(mw.title.getCurrentTitle().text, "/doc$", "") | local template = mw.ustring.gsub(mw.title.getCurrentTitle().text, "/doc$", "") | ||
if frame.args["demo"] and frame.args["demo"] ~= "" then | if frame.args["demo"] and frame.args["demo"] ~= "" then | ||
Line 20: | Line 20: | ||
end | end | ||
function p.num(frame) | function p.num(frame, count) | ||
if count == nil then count = p.fetch(frame) end | |||
-- Build output string | -- Build output string | ||
Line 65: | Line 65: | ||
return_value = "risk" | return_value = "risk" | ||
else | else | ||
local count = | local count = p.fetch(frame) | ||
if count and count >= 100000 then return_value = "risk" end | if count and count >= 100000 then return_value = "risk" end | ||
end | end | ||
return return_value | return return_value | ||
end | |||
function p.text(frame) | |||
local count = p.fetch(frame) | |||
local title = mw.title.getCurrentTitle() | |||
if title.subpageText == "doc" or title.subpageText == "sandbox" then | |||
title = title.basePageTitle | |||
end | |||
local templatecount = string.format("https://tools.wmflabs.org/templatecount/index.php?lang=en&namespace=%s&name=%s",mw.title.getCurrentTitle().namespace,mw.uri.encode(title.text)) | |||
local used_on_text = string.format("'''This %s is used on [%s %s pages]'''", | |||
(mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template"), | |||
templatecount, | |||
p.num(frame, count) | |||
) | |||
local sandbox_text = string.format("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages%s ", | |||
(mw.title.getCurrentTitle().namespace == 828 and "module" or "template"), | |||
title.fullText, title.fullText, | |||
(mw.title.getCurrentTitle().namespace == 828 and "." or ", or in your own [[Wikipedia:Subpages#How to create user subpages|user subpage]].") | |||
) | |||
if (frame.args[1] == "risk" or (count and count >= 100000) ) then | |||
local info = "" | |||
if frame.args["info"] and frame.args["info"] ~= "" then | |||
info = "<br />" .. frame.args["info"] | |||
end | |||
sandbox_text = string.format(".%s<br /> To avoid large-scale disruption and unnecessary server load, any changes to it should first be tested in the %sThe tested changes can then be added to this page in a single edit. ", | |||
info, sandbox_text | |||
) | |||
else | |||
sandbox_text = string.format(", so changes to it will be widely noticed. Please test any changes in the %s", | |||
sandbox_text | |||
) | |||
end | |||
local discussion_text = "Please consider discussing changes " | |||
if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then | |||
discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"]) | |||
else | |||
discussion_text = string.format("%son the [[%s|talk page]]", discussion_text, title.talkPageTitle.fullText ) | |||
end | |||
return used_on_text .. sandbox_text .. discussion_text .. " before implementing them." | |||
end | end | ||
return p | return p |