Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Backwards copy
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local MessageBox = require("Module:Message box") local yesno = require("Module:Yesno") local p = {} local function demoCheck(args) return yesno(args["demo"]) or yesno(args["nocat"]) end local function showWarning(text, nocat) mw.addWarning(text) return nocat and "" or "[[Category:Pages with backwards copy warnings]]" end local function delink(text) if text == nil then return nil end return string.gsub(string.gsub(require("Module:Delink")._delink{text}, "%[%[", ""), "%]%]", "") end local function showError(text, nocat) return string.format( "%s%s %s", nocat and "" or "[[Category:Pages with backwards copy errors]] ", tostring( mw.html.create("span") :css("color", "red") :css("font-weight", "bold") :wikitext("Error:") ), text ) end local function row(args, i) return mw.html.create("li"):wikitext(rowText) end local function bannerText(frame, args) local text = "" local id = args["id"] or args["revid"] if id ~= nil then text = string.format("Revisions succeeding [[Special:Diff/%s|this version]] of this", id) else text = "This" end local citations = {} local i = 1 while ( args[tostring(i)] or (args["articlename" .. i] or (i == 1 and args["articlename"])) or (args["title" .. i] or (i == 1 and args["title"])) ) do if args[tostring(i)] then table.insert(citations, args[tostring(i)]) else local author = args["author" .. i] or (i == 1 and args["author"]) local authors = args["authorlist" .. i] or (i == 1 and args["authorlist"]) local date = (args["date" .. i] or (i == 1 and args["date"])) or -- legacy way of providing dates string.format( "%s %s", args["monthday" .. i] or (i == 1 and args["monthday"]) or "", args["year" .. i] or (i == 1 and args["year"]) or "" ) if mw.text.trim(date or "") == "" then if string.match(author or "", "(%d%d%d[%d]+)") then text = text .. " " .. showWarning(string.format( "A <code>year%s</code> or <code>date%s</code> parameter was not found, but a parenthesized year was found in the " .. "<code>author%s</code> parameter. Move the provided year to the correct parameter.", i, i, i ), demoCheck(args)) elseif string.match(authors or "", "(%d%d%d[%d]*)") then text = text .. " " .. showWarning(string.format( "A <code>year%s</code> or <code>date%s</code> parameter was not found, but a parenthesized year was found in the " .. "<code>authorlist%s</code> parameter. Move the provided year to the correct parameter.", i, i, i ), demoCheck(args)) else text = text .. " " .. showWarning(string.format( "Provided <code>title%s</code> must also have a respective <code>year%s</code> or <code>date%s</code> parameter.", i, i, i )) end end table.insert(citations, frame:expandTemplate{ title = "Citation", args = { ref = "none", author = author, authors = authors, ["display-authors"] = args["display-authors" .. i] or (i == 1 and args["display-authors"]), date = date, url = args["url" .. i] or (i == 1 and args["url"]), title = (args["articlename" .. i] or (i == 1 and args["articlename"])) or args["title" .. i] or (i == 1 and args["title"]), publisher = (args["org" .. i] or (i == 1 and args["org"])) or args["publisher" .. i] or (i == 1 and args["publisher"]) } }) end i = i + 1 end text = string.format( "%s article is substantially duplicated by a piece in an external publication. " .. "Please do not flag this article as a copyright violation of the following source", text ) local citationCount = #citations if citationCount == 0 then return showError( "No citations were provided. Provide at least one citation using <code>title</code>.", demoCheck(args) ) elseif citationCount > 1 then text = string.format("%ss:", text) else text = string.format("%s:", text) end local ul = mw.html.create("ul") for k, v in pairs(citations) do ul:node(mw.html.create("li"):wikitext(v)) end text = string.format( "%s %s %s", text, tostring(ul), args["comments"] and tostring( mw.html.create("table") :attr("class", "mw-collapsible mw-collapsed") :attr("style", "width:100%; background-color: #f8eaba;") :node(mw.html.create("tr") :node(mw.html.create("th") :wikitext("Additional comments") ) ) :node(mw.html.create("tr"):node(mw.html.create("td") :attr("style", "background-color: white; border: 1px solid #c0c090; padding: 0.25em 0.5em;") :wikitext( args["comments"] ) )) ) or "" ) return text end function p.renderBanner(frame, args) return MessageBox.main('tmbox', { name = "backwards-copy", small = yesno(args["small"]), image = '[[File:Newspaper Cover.svg|50px]]', text = bannerText(frame, args) }) .. ((demoCheck(args) or mw.title.getCurrentTitle().namespace == 10) and "" or "[[Category:Wikipedia article talk pages incorporating the backwardscopy template]]" ) end function p.main(frame) local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame, { trim = true, removeBlanks = true }) return p.renderBanner(frame, args) end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Sandbox other
(
edit
)
Template:T
(
edit
)
Module:Backwards copy/doc
(
edit
)
Module:String
(
edit
)