مسابقه دانش‌دخت
اسلامیکال از تاریخ ۱۵ دی تا ۲۰ بهمن، میزبان یک همایه با موضوع زنان است. شما می‌توانید در مسابقه مقاله‌نویسی دانش‌دخت، شرکت کنید و با نگارش مقاله، از جوایز آن بهره‌مند باشید. اگر به موضوعات مربوط با زنان علاقه‌مندید، این فرصت را از دست ندهید. فهرستی از مقالات پیشنهادی جهت ایجاد یا ویرایش در اینجا وجود دارد.

پودمان:Lua banner: تفاوت میان نسخه‌ها

از اسلامیکال
پرش به ناوبری پرش به جستجو
(ساخت الگو)
 
بدون خلاصۀ ویرایش
 
خط ۵۴: خط ۵۴:
boxArgs.text = 'این پودمان از پودمان‌های زیر استفاده می‌کند:' .. moduleList
boxArgs.text = 'این پودمان از پودمان‌های زیر استفاده می‌کند:' .. moduleList
else
else
boxArgs.text = 'این الگو از [[ویکی‌پدیا:لوآ|لوآ]] استفاده می‌کند:\n' .. moduleList
boxArgs.text = 'این الگو از [[اسلامیکال:لوآ|لوآ]] استفاده می‌کند:\n' .. moduleList
end
end
end
end
boxArgs.type = 'notice'
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.small = true
boxArgs.image = '[[پرونده:Lua-logo-nolabel.svg|30px|جایگزین=نماد لوآ|پیوند=ویکی‌پدیا:لوآ]]'
boxArgs.image = '[[پرونده:Lua-logo-nolabel.svg|30px|جایگزین=نماد لوآ|پیوند=اسلامیکال:لوآ]]'
return mMessageBox.main('mbox', boxArgs)
return mMessageBox.main('mbox', boxArgs)
end
end

نسخهٔ کنونی تا ‏۲۵ ژانویهٔ ۲۰۲۳، ساعت ۰۷:۵۰

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

-- This module implements the {{lua}} template.
-- سطرهای ۳۷ تا ۴۰ این پودمان برای تغییر نام فضای نام از «Module» به «پودمان» تغییر کرده‌اند. در زمان به‌روزرسانی دقت کنید

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
			-- replace "Module" namespace prefix with "پودمان"
			if mw.ustring.find(module, '[Mm]odule', 1, false) then
				module = mw.ustring.gsub(module, '[Mm]odule', 'پودمان', 1)
			end
			
			moduleLinks[i] = string.format('[[:%s]]', module)
			local maybeSandbox = mw.title.new(module .. '/تمرین')
			if maybeSandbox.exists then
				moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|تمرین]])', maybeSandbox.fullText)
			end
		end
		local moduleList = mList.makeList('bulleted', moduleLinks)
		local title = mw.title.getCurrentTitle()
		if title.subpageText == "doc" or title.subpageText == "توضیحات" then
			title = title.basePageTitle
		end
		if title.contentModel == "Scribunto" then
			boxArgs.text = 'این پودمان از پودمان‌های زیر استفاده می‌کند:' .. moduleList
		else
			boxArgs.text = 'این الگو از [[اسلامیکال:لوآ|لوآ]] استفاده می‌کند:\n' .. moduleList
		end
	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,
		['توضیحات'] = true,
		['تمرین'] = true,
		['آزمایشی'] = true,
	}
	local subPageName = subpageBlacklist[titleObj.subpageText]
	if not subPageName then
		local protCatName
		if titleObj.namespace == 10 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
			protCatName = "الگو:مبتنی بر لوآ با سطح محافظت پایین‌تر"
		elseif titleObj.namespace == 828 then
			protCatName = "پودمان‌های وابسته به پودمان‌های دیگر با سطح محافظت پایین‌تر"
		end
		if not args.noprotcat and protCatName then
			local protLevels = {
				autoconfirmed = 1,
				extendedconfirmed = 2,
				templateeditor = 3,
				sysop = 4
			}
			local currentProt
			if titleObj.id ~= 0 then
				-- id is 0 (page does not exist) if am previewing before creating a template.
				currentProt = titleObj.protectionLevels["edit"][1]
			end
			if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
			for i, module in ipairs(modules) do
				if module ~= "WP:libraryUtil" then
					local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
					if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
					if moduleProt < currentProt then
						cats[#cats + 1] = protCatName
						break
					end
				end
			end
		end
	end
	for i, cat in ipairs(cats) do
		cats[i] = string.format('[[رده:%s]]', cat)
	end
	return table.concat(cats)
end

return p