مواد ڏانھن هلو

ماڊيول:For

کليل ڄاڻ چيڪلي، وڪيپيڊيا مان


{{for}} لاڳو ڪري ٿو.


local mArguments -- سست طريقي سان شروعات ڪئي ويندي
local mHatnote = require('ماڊيول:Hatnote')
local yesNo = require('ماڊيول:Yesno')
local p = {}

-- {{For}} کي فريم مان هلائي ٿو
function p.For(frame)
	mArguments = require('ماڊيول:Arguments')
	return p._For(mArguments.getArgs(frame))
end

-- {{For}} جو بنيادي فنڪشن
function p._For(args)
	local use = args[1]

	if not use or use == '' then
		return mHatnote.makeWikitextError(
			'ڪو به موضوع يا استعمال فراهم نه ڪيو ويو آهي.',
			'Template:For#Errors',
			args.category
		)
	end

	-- ٻئي پيراميٽر کان پوءِ ڏنل صفحا گڏ ڪريو
	local pages = {}
	local i = 2

	while args[i] do
		if args[i] ~= '' then
			table.insert(pages, args[i])
		end
		i = i + 1
	end

	-- جيڪڏهن ڪو صفحو ڏنل نه هجي ته موجوده صفحي جو disambiguation استعمال ڪريو
	if #pages == 0 then
		local currentTitle = mw.title.getCurrentTitle().text
		table.insert(pages, currentTitle .. ' (disambiguation)')
	end

	-- صفحن کي وڪي لنڪن ۾ تبديل ڪريو
	local links = {}
	for _, page in ipairs(pages) do
		table.insert(links, '[[' .. page .. ']]')
	end

	-- سنڌي فهرست ٺاهيو
	local pageText
	if #links == 1 then
		pageText = links[1]
	elseif #links == 2 then
		pageText = links[1] .. ' ۽ ' .. links[2]
	else
		pageText = table.concat(links, '، ', 1, #links - 1)
			.. ' ۽ ' .. links[#links]
	end

	local text = use .. ' لاءِ، ڏسو ' .. pageText .. '۔'

	local title = mw.title.getCurrentTitle()
	local skipCat = title.isTalkPage or title.namespace == 2
	local oddCat = skipCat and ''
		or '[[زمرو:غير معمولي پيراميٽر استعمال ڪندڙ هيٽ نوٽ سانچا]]'

	local category = yesNo(args.category)

	return mHatnote._hatnote(
		text,
		{selfref = args.selfref}
	) .. (
		(use == 'other uses' or use == 'ٻيا استعمال')
		and ((category == true) or (category == nil))
		and oddCat
		or ''
	)
end

return p