Moduł:Banany/argumenty

Template-info.png Dokumentacja modułu [zobacz] [edytuj] [historia] [odśwież]

Przykładowy moduł demonstrujący, w jaki sposób uzyskać dostęp do argumentów.

Przykład Rezultat
{{#invoke:Banany/argumenty|hello_world}} Witaj, świecie!
{{#invoke:Banany/argumenty|hello|Fred}} Witaj, Fred!
{{#invoke:Banany/argumenty|dodaj|5|3}} 8
{{#invoke:Banany/argumenty|policz_owoce|banany=5|jablka=3}} Mam 5 bananów i 3 jabłek
{{#invoke:Banany/argumenty|ma_owoce|Fred|banany=5|wisnie=7}} Fred ma: 5 bananów 7 wiśni
{{#invoke:Banany/argumenty|niestandardowy_owoc|ananasy=10|kiwi=5}} Mam: 10 ananasy 5 kiwi
{{#invoke:Banany/argumenty|niestandardowy_owoc_2|Fred|ananasy=10|kiwi=5}} Fred ma: 10 ananasy 5 kiwi

Zobacz teżEdytuj

-- Przykładowy moduł demonstrujący, w jaki sposób uzyskać dostęp do argumentów.
-- Po więcej informacji nt/ obiektu Frame, zobacz http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object

local p = {}

-- Bez argumentów, używany w następujący sposób: {{#invoke:Banany/argumenty|hello_world}}
function p.hello_world()
	return "Witaj, świecie!"
end

-- Jeden argument, używany w następujący sposób: {{#invoke:Banany/argumenty|hello|Fred}} 
function p.hello(frame)
	local name = frame.args[1] -- w tym przykładzie, args[1] to słowo Fred 
	return "Witaj, " .. name .. "!" -- ".. name .." zastępowane jest słowem Fred
end

-- Dwa argumenty, używane w następujący sposób: {{#invoke:Banany/argumenty|dodaj|5|3}}
function p.dodaj(frame)
	local num1 = tonumber(frame.args[1])
	local num2 = tonumber(frame.args[2])
	return num1 + num2
end

-- Nazwane argumenty, używane w następujący sposób: {{#invoke:Banany/argumenty|policz_owoce|banany=5|jablka=3}}
function p.policz_owoce(frame)
	local num_banany = frame.args.banany
	local num_jablka = frame.args.jablka
	return 'Mam ' .. num_banany .. ' bananów i ' .. num_jablka .. ' jabłek'
end

-- Mieszanie regularnych argumentów z argumentami nazwanymi i opcjonalnymi argumentami nazwanymi
-- Używane w następujący sposób: {{#invoke:Banany/argumenty|ma_owoce|Fred|banany=5|wisnie=7}}
function p.ma_owoce(frame)
	local name = frame.args[1]
	local num_banany = frame.args.banany
	local num_jablka = frame.args.jablka
	local num_wisnie = frame.args.wisnie
	
	local result = name .. ' ma:'
	if num_banany then result = result .. ' ' .. num_banany .. ' bananów' end
	if num_jablka then result = result .. ' ' .. num_jablka .. ' jabłek' end
	if num_wisnie then result = result .. ' ' .. num_wisnie .. ' wiśni' end
	return result
end

-- Iteracja nad argumentami; używane w następujący sposób: {{#invoke:Banany/argumenty|niestandardowy_owoc|ananasy=10|kiwi=5}}
function p.niestandardowy_owoc(frame)
	local result = 'Mam:'
	for name, value in pairs(frame.args) do
		result = result .. ' ' .. value .. ' ' .. name
	end
	return result
end

-- Iteracja nad argumentami z oddzielnymi, obowiązkowymi argumentami
-- Używane w następujący sposób: {{#invoke:Banany/argumenty|niestandardowy_owoc_2|Fred|ananasy=10|kiwi=5}}
function p.niestandardowy_owoc_2(frame)
	local name = frame.args[1]
	local result = name .. ' ma:'
	for name, value in pairs(frame.args) do
		if name ~= 1 then
			result = result .. ' ' .. value .. ' ' .. name
		end
	end
	return result
end

return p