Module:For: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>Nihiltres Added selfref functionality |
meta>Nihiltres Updated from sandbox: categorizes as unusual "other uses" by defaulting as well as typed-out "other uses" |
||
Line 1: | Line 1: | ||
local mArguments --initialize lazily | local mArguments --initialize lazily | ||
local yesno = require('Module:Yesno') | |||
local mHatlist = require('Module:Hatnote list') | local mHatlist = require('Module:Hatnote list') | ||
local mHatnote = require('Module:Hatnote') | local mHatnote = require('Module:Hatnote') | ||
Line 13: | Line 14: | ||
--Implements {{For}} but takes a manual arguments table | --Implements {{For}} but takes a manual arguments table | ||
function p._For (args) | function p._For (args) | ||
local use = args[1] | local use = args[1] | ||
if use == 'other uses' | local category = '' | ||
if (not use or use == 'other uses') and | |||
(not args.category or yesno(args.category)) then | |||
category = '[[Category:Hatnote templates using unusual parameters]]' | |||
end | end | ||
local pages = {} | local pages = {} | ||
function two (a, b | function two (a, b) return a, b, 1 end --lets us run ipairs from 2 | ||
for k, v in two(ipairs(args)) do table.insert(pages, v) end | for k, v in two(ipairs(args)) do table.insert(pages, v) end | ||
return mHatnote._hatnote( | return mHatnote._hatnote( | ||
mHatlist.forSeeTableToString({{use = use, pages = pages}}), | mHatlist.forSeeTableToString({{use = use, pages = pages}}), | ||
{selfref = args.selfref} | {selfref = args.selfref} | ||
) | ) .. category | ||
end | end | ||
return p | return p |
Revision as of 20:53, 3 August 2016
This Lua module is used on 163,000+ pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Implements {{for}}.
local mArguments --initialize lazily
local yesno = require('Module:Yesno')
local mHatlist = require('Module:Hatnote list')
local mHatnote = require('Module:Hatnote')
local p = {}
--Implements {{For}} from the frame
--uses capitalized "For" to avoid collision with Lua reserved word "for"
function p.For (frame)
mArguments = require('Module:Arguments')
return p._For(mArguments.getArgs(frame))
end
--Implements {{For}} but takes a manual arguments table
function p._For (args)
local use = args[1]
local category = ''
if (not use or use == 'other uses') and
(not args.category or yesno(args.category)) then
category = '[[Category:Hatnote templates using unusual parameters]]'
end
local pages = {}
function two (a, b) return a, b, 1 end --lets us run ipairs from 2
for k, v in two(ipairs(args)) do table.insert(pages, v) end
return mHatnote._hatnote(
mHatlist.forSeeTableToString({{use = use, pages = pages}}),
{selfref = args.selfref}
) .. category
end
return p