Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Модуль:ProcessArgs: различия между версиями

Материал из Create Wiki
м (Защищена страница «Модуль:ProcessArgs»: шаблон/модуль с большим количеством включений ([Редактирование=Разрешено только администраторам] (б…)
 
creng>Joker876
Нет описания правки
Строка 1: Строка 1:
local p = {}
local p = {}
function p.norm( origArgs )
function p.norm( origArgs, lowercase )
if type( origArgs ) ~= 'table' then
if type( origArgs ) ~= 'table' then
origArgs = mw.getCurrentFrame():getParent().args
origArgs = mw.getCurrentFrame():getParent().args
Строка 7: Строка 7:
for k, v in pairs( origArgs ) do
for k, v in pairs( origArgs ) do
if lowercase and type(k) == "string" then k = k:lower() end
v = mw.text.trim( tostring( v ) )
v = mw.text.trim( tostring( v ) )
if v ~= '' then
if v ~= '' then
Строка 27: Строка 28:
for k, v in pairs( origArgs ) do
for k, v in pairs( origArgs ) do
v = mw.text.trim( tostring( v ) )
v = mw.text.trim( tostring( v ) )
if not norm or norm and v ~= '' then
if not norm or v ~= '' then
args[k] = v
args[k] = v
end
end
Строка 34: Строка 35:
for k, v in pairs( parentArgs ) do
for k, v in pairs( parentArgs ) do
v = mw.text.trim( v )
v = mw.text.trim( v )
if ( not norm or norm and v ~= '' ) and not args[k] then
if not norm or v ~= '' then
args[k] = v
args[k] = v
end
end

Версия от 17:07, 30 апреля 2021

Для документации этого модуля может быть создана страница Модуль:ProcessArgs/doc

local p = {}
function p.norm( origArgs, lowercase )
	if type( origArgs ) ~= 'table' then
		origArgs = mw.getCurrentFrame():getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		if lowercase and type(k) == "string" then k = k:lower() end
		v = mw.text.trim( tostring( v ) )
		if v ~= '' then
			args[k] = v
		end
	end
	
	return args
end

function p.merge( origArgs, parentArgs, norm )
	if type( origArgs ) ~= 'table' then
		norm = origArgs
		local f = mw.getCurrentFrame()
		origArgs = f.args
		parentArgs = f:getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if not norm or v ~= '' then
			args[k] = v
		end
	end
	
	for k, v in pairs( parentArgs ) do
		v = mw.text.trim( v )
		if not norm or v ~= '' then
			args[k] = v
		end
	end
	
	return args
end
return p
Сайт использует Cookie для нормальной работы