Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Humanipedia
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Module:Backwards copy
Module
Discussion
English
Read
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
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 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)) 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 local display_authors = args["display-authors" .. i] or (i == 1 and args["display-authors"]); -- get |display-authors= parameter value for this reference if tonumber (display_authors) and (0 ~= tonumber (display_authors)) then -- for {{backwards copy}} only allowed number is 0 to suppress author name list display_authors = 'etal'; -- any other number gets 'etal'; any other text will be rejected by cs1|2 end table.insert(citations, frame:expandTemplate{ title = "Citation", args = { ref = "none", author = author, ["display-authors"] = 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. " .. "Since the external publication copied Wikipedia rather than the reverse, 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 backwards copy 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 Humanipedia 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
Humanipedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:High-use
(
edit
)
Template:Sandbox other
(
edit
)
Template:T
(
edit
)
Template:Template link
(
edit
)
Module:Backwards copy/doc
(
edit
)
Module:String
(
edit
)