Moduł:Ulica infobox/przebieg

Z Wikipedii, wolnej encyklopedii
 Dokumentacja modułu [zobacz] [edytuj] [historia] [odśwież]

Użycie[edytuj kod]

Do użycia w szablonie:

{{#invoke:Ulica infobox/przebieg|nameToClass| {{{1}}} }}

Do testów (do sprawdzenia) mapowania nazw na typ zakończenia:

{{#invoke:Ulica infobox/przebieg|nameToEndingType| SK }}

Opis parametrów[edytuj kod]

  • Pierwszy parametr jest nazwą skrzyżowania.

Uwaga! Po dodaniu nowych rodzajów skrzyżowań uzupełnij listy w module. Dotyczy tylko dodawania skrzyżowań kończących się trawą lub deptakiem (ulica jest domyślnym typem).

Przykład[edytuj kod]

  • SK: street.
  • SDD: pedestrain.
  • ŚLK: grass.

Więcej przykładów w dyskusji modułu.

Błędy[edytuj kod]

Błędy należy zgłaszać na stronie Wikipedia:Kawiarenka/Kwestie techniczne.

Parametry szablonu (strukturyzacja VE)[edytuj kod]

Zobacz też[edytuj kod]


local p = {}

--[[
	Listy nazw.
	
	Wpisz tutaj nazwy skrzyżowań podzielone według zakończenia (dolnej części).
]]
-- deptaki
p.pedestrainTab = {'SDD', 'SKDU', 'SKDD', 'SKDP', 'SKDPLP', 'DEL', 'DEP', 'DELD', 'DEPD', 'DELPD', 'DEPLD', 'ULDL', 'ULDP', 'PLAD', 'MOSD', 'TUND', 'TUNDU', 'WIAD', 'WIADD', 'PTD', 'PTDD', 'DP', 'ŚLKDP'}
-- trawy (pomijając KT...)
p.grassTab = {'ULRGL', 'ULRGP', 'KUTD', 'ŚLK'}
-- (pozostałe to ulica)

--[[
	Zmiana nazwy skrzyżowania na klasy CSS.
]] 
function p.nameToClass(frame)
	local name = trim(frame.args[1])
	
	-- ustalenie typu
	local endingType = nameToEndingType(name);
	
	return "street-course__cell street-course__cell--" .. endingType
end

--[[
	Określenie zakończenia (dolnej części) na podstawie nazwy skrzyżowania.
]] 
function nameToEndingType(name)
	-- ustalenie typu
	local endingType;
	if string.match(name, "^KT") or hasValue(p.grassTab, name) then
		endingType = 'grass';
	elseif hasValue(p.pedestrainTab, name) then
		endingType = 'pedestrain';
	else
		endingType = 'street';
	end
	return endingType;
end
--[[
	Eksport nameToEndingType
]] 
function p.nameToEndingType(frame)
	local name = trim(frame.args[1])
	return nameToEndingType(name);
end


-- trim string
function trim(s)
   return s:gsub("^%s+", ""):gsub("%s+$", "")
end

-- search array-like table
function hasValue (tab, val)
    for index, value in ipairs(tab) do
        if value == val then
            return true
        end
    end

    return false
end

return p