এই মডিউলের জন্য মডিউল:সুরক্ষা/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে

--[[ * মডিউল যা সুরক্ষা টেমপ্লেটে প্রয়োগ করা হয়। এই মডিউলটি ইতালীয় উইকির Modulo:Protezione থেকে আনা হয়েছে। ]]--  require('মডিউল:No globals')  local getArgs = require('মডিউল:Arguments').getArgs local cfg = mw.loadData('মডিউল:সুরক্ষা/রূপরেখা') local p = {}  -- অনুরোধকৃত কার্যের জন্য পাতার সুরক্ষা ফেরত দেয় ও সুরক্ষিত না থাকলে nil local function getProtection(title, action) 	return title.protectionLevels[action] and title.protectionLevels[action][1] end  -- কার্যের জন্য আইকন ও নির্দিষ্ট করা সুরক্ষা যোগ করে local function addIcon(action, prot) 	-- l'underscore di move serve per cambiare l'ordine di visualizzazione delle icone 	local icon = string.format('<indicator name="prot%s">%s</indicator>', 							   action == 'move' and '_move' or action, cfg.icone[action][prot]) 	mw.getCurrentFrame():preprocess(icon) end  -- Restituisce il messaggio configurato per il tipo di azione e protezione sulla pagina specificata local function getMsg(title, action, prot) 	local msg = cfg.messaggi[action][prot][title.namespace] 	return msg and msg:gsub('$1', string.format('[[%s|আলাপ পাতায়]]', title.talkPageTitle.fullText)) or nil end  -- কার্যের ধরনের জন্য কনফিগার করার বিষয়শ্রেণী ও নির্দিষ্ট করা পাতার সুরক্ষা ফেরত দিবে local function getCategory(title, action, prot) 	local categories = cfg.categorie[action] 	local cat = categories[title.namespace] or categories.default 	if prot == 'autoconfirmed' then 		cat = 'অর্ধ-' .. cat 	end 	return string.format('[[বিষয়শ্রেণী:%s]]', cat) end  -- ব্যবহারকারীর নির্দিষ্ট করা বিষয়শ্রেণী ফেরত দিবে local function getUserCategory(editProt, args) 	local cat 	if editProt == 'sysop' then 		cat = args.cat 	elseif editProt == 'autoconfirmed' then 		cat = args.cat 	end 	return cat and string.format('[[বিষয়শ্রেণী:%s]]', cat) or nil  end  -- অন্য মডিউল থেকে ব্যবহারের জন্য function p._main(args) 	local title, editProt, moveProt, editCat, moveCat, msg, ret  	title = mw.title.getCurrentTitle() 	editProt = getProtection(title, 'edit') 	moveProt = getProtection(title, 'move') 	-- moveProt=autoconfirmed bnwikiতে ইতিমধ্যে পূর্বনির্ধারিত 	if moveProt == 'autoconfirmed' then 		moveProt = nil 	end  	-- সম্পাদনার জন্য সুরক্ষা 	if editProt then 		addIcon('edit', editProt) 		msg = getMsg(title, 'edit', editProt) 		-- "cat" প্যারামিটার একটি নতুন বিষয়শ্রেণী নির্দিষ্ট করার অনুমতি দেবে 		if args.cat then 			editCat = getUserCategory(editProt, args) 		else 			editCat = getCategory(title, 'edit', editProt) 		end 	end  	-- স্থানান্তরের জন্য সুরক্ষা 	if moveProt then 		addIcon('move', moveProt) 		-- la categoria per lo spostamento non è aggiunta se editProt=sysop 		if editProt ~= 'sysop' then 			moveCat = getCategory(title, 'move', moveProt) 		end 	end  	if editProt or moveProt then 		ret = (msg or '') .. (editCat or '') .. (moveCat or '') 	else 		-- পাতাটি সুরক্ষিত নয় 		if title.namespace == 10 and title.isSubpage and title.subpageText:match('^খেলাঘর$') then 			ret = '[[বিষয়শ্রেণী:টেমপ্লেটের খেলাঘর]]' 		else 			ret = string.format('[[বিষয়শ্রেণী:%s]]', cfg.catSprotette) 		end 	end  	return ret end  -- {{সুরক্ষা}} টেমপ্লেটের ভুক্তি-বিন্দু function p.main(frame) 	return p._main(getArgs(frame, { parentOnly = true })) end  return p