تغییر منو
Toggle preferences menu
تغییر منوی شخصی
به سامانه وارد نشده‌اید
نشانی آی‌پی شما در صورت انجام هرگونه ویرایش به صورت عمومی قابل مشاهده خواهد بود.
نسخهٔ تاریخ ۲۲ ژوئن ۲۰۱۶، ساعت ۱۱:۲۶ توسط imported>Dalba (الگو:ارجاع‌دهی مبتنی بر لوآ)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)

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

خطای اسکریپتی: خطای لوا: روند نتوانست ایجاد شود: proc_open(/dev/null): Failed to open stream: Operation not permitted

-- This module implements the {{lua}} template.

local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')

local p = {}

function p.main(frame)
	local origArgs = frame:getParent().args
	local args = {}
	for k, v in pairs(origArgs) do
		v = v:match('^%s*(.-)%s*$')
		if v ~= '' then
			args[k] = v
		end
	end
	return p._main(args)
end

function p._main(args)
	local modules = mTableTools.compressSparseArray(args)
	local box = p.renderBox(modules)
	local trackingCategories = p.renderTrackingCategories(args, modules)
	return box .. trackingCategories
end

function p.renderBox(modules)
	local boxArgs = {}
	if #modules < 1 then
		boxArgs.text = '<strong class="error">خطا: هیچ پودمانی مشخص نشده‌است</strong>'
	else
		local moduleLinks = {}
		for i, module in ipairs(modules) do
			moduleLinks[i] = string.format('[[:%s]]', module)
		end
		local moduleList = mList.makeList('bulleted', moduleLinks)
		boxArgs.text = 'از [[ویکی‌پدیا:لوآ|لوآ]] استفاده می‌کند:\n' .. moduleList
	end
	boxArgs.type = 'notice'
	boxArgs.small = true
	boxArgs.image = '[[پرونده:Lua-logo-nolabel.svg|30px|جایگزین=نماد لوآ|پیوند=ویکی‌پدیا:لوآ]]'
	return mMessageBox.main('mbox', boxArgs)
end

function p.renderTrackingCategories(args, modules, titleObj)
	if yesno(args.nocat) then
		return ''
	end
	
	local cats = {}
	
	-- Error category
	if #modules < 1 then
		cats[#cats + 1] = 'الگو:لوآ همراه خطا'
	end
	
	-- Lua templates category
	titleObj = titleObj or mw.title.getCurrentTitle()
	local subpageBlacklist = {
		doc = true,
		sandbox = true,
		sandbox2 = true,
		testcases = true
	}
	if titleObj.namespace == 10 
		and not subpageBlacklist[titleObj.subpageText]
	then
		local category = args.category
		if not category then
			local categories = {
				['Module:String'] = 'الگو:مبتنی بر لوآ رشته',
				['Module:Math'] = 'الگو:مبتنی بر لوآ ریاضی',
				['Module:BaseConvert'] = 'الگو:مبتنی بر لوآ تبدیل مبنا',
				['Module:Citation'] = 'الگو:ارجاع‌دهی مبتنی بر لوآ'
			}
			categories['Module:Citation/CS1'] = categories['Module:Citation']
			category = modules[1] and categories[modules[1]]
			category = category or 'الگو:مبتنی بر لوآ'
		end
		cats[#cats + 1] = category
	end
	
	for i, cat in ipairs(cats) do
		cats[i] = string.format('[[رده:%s]]', cat)
	end
	return table.concat(cats)
end

return p