Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:For

From AoM Retold
Module documentation[view][edit][history][purge]
This documentation is transcluded from Module:For/doc. Changes can be proposed in the talk page.
Function list
L 9 — p.For
L 15 — p._For
L 25 — two

Module:For implements the {{For}} template.


local mArguments --initialize lazily
local mHatlist = require('Module:Hatnote list')
local mHatnote = require('Module:Hatnote')
local yesNo = require('Module:Yesno')
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]
	if (not use) then
		return mHatnote.makeWikitextError(
			'no context parameter provided. Use {{other uses}} for "other uses" hatnotes.',
			'Template:For#Errors',
			args.category
		)
	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
	local title = mw.title.getCurrentTitle()
	local skipCat = title.isTalkPage or title.namespace == 2 --don't categorise talk pages and userspace
	local oddCat = skipCat and '' or '[[Category:Hatnote templates using unusual parameters]]'
	local category = yesNo(args.category)
	return mHatnote._hatnote(
		mHatlist.forSeeTableToString({{use = use, pages = pages}}),
		{
			selfref = args.selfref,
			icon = 'WikimediaUI-ArticleDisambiguation-ltr.svg'
		}
	) .. (
			(use == 'other uses') and ((category == true) or (category == nil)) and
			oddCat or ''
		)
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies. We only use cookie to make the site function and save your preferences, nothing else.