پودمان:See also: تفاوت میان نسخه‌ها

از ایران پدیا
پرش به ناوبری پرش به جستجو
جزبدون خلاصۀ ویرایش
جز (۱ نسخه واردشده)
 
(یک نسخهٔ میانی ویرایش شده توسط یک کاربر دیگر نشان داده نشد)
(بدون تفاوت)

نسخهٔ کنونی تا ‏۷ دسامبر ۲۰۱۷، ساعت ۰۹:۳۰

توضیحات این پودمان می‌تواند در پودمان:See also/توضیحات قرار گیرد.

--[[
-- This module produces a "See also: a, b and c" link. It implements the
-- template {{see also}}.
--]]

local mHatnote = require('Module:Hatnote')
local mTableTools -- lazily initialise
local mArguments -- lazily initialise

local p = {}

function p.seealso(frame)
	mTableTools = require('Module:TableTools')
	mArguments = require('Module:Arguments')
	local args = mArguments.getArgs(frame, {parentOnly = true})
	local pages = {}
	for k, v in pairs(args) do
		if type(k) == 'number' then
			local numstring = tostring(k)
			local display = args['label ' .. numstring]
				or args['l' .. numstring]
			local page = {v, display}
			pages[k] = page
		end
	end
	pages = mTableTools.compressSparseArray(pages)
	if not pages[1] then
		return mHatnote.makeWikitextError(
			'نام هیچ صفحه‌ای مشخص نشده‌است',
			'الگو:همچنین ببینید#خطاها',
			args.category
		)
	end
	local options = {
		altphrase = args.altphrase,
		selfref = args.selfref
	}
	return p._seealso(options, unpack(pages))
end

function p._seealso(options, ...)
	local altphrase = options and options.altphrase or 'نوشتار(های) وابسته'
	local links = mHatnote.formatPageTables(...)
	links = mw.text.listToText(links)
	local text = altphrase .. ': ' .. links

	-- Pass options through.
	local hnOptions = {}
	hnOptions.selfref = options.selfref
	hnOptions.extraclasses = 'boilerplate seealso'

	return mHatnote._hatnote(text, hnOptions)
end

return p