Modul:SK: razlika između inačica
Prijeđi na navigaciju
Prijeđi na pretraživanje
mNema sažetka uređivanja |
mNema sažetka uređivanja |
||
| Redak 1: | Redak 1: | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
-- SK PRO + | -- SK PRO (C2 Loader) | ||
-- | -- Minimalni dataset + gustoća | ||
-- Format retka: | |||
-- code|name|pop|area|year|density | |||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
local p = {} | local p = {} | ||
p.db = {} | |||
p. | |||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
-- | -- 1) Učitavanje data modula | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
local modules = { | local modules = { | ||
| Redak 101: | Redak 27: | ||
if ok and type(raw) == "string" then | if ok and type(raw) == "string" then | ||
for line in raw:gmatch("[^\n]+") do | for line in raw:gmatch("[^\n]+") do | ||
local code, name, pop | local code, name, pop, area, year, density = | ||
line:match(" | line:match("([^|]+)|([^|]+)|([^|]+)|([^|]+)|([^|]+)|([^|]+)") | ||
if code then | if code then | ||
pop = tonumber(pop) | pop = tonumber(pop) | ||
area = tonumber(area) | area = tonumber(area) | ||
year = tonumber(year) | year = tonumber(year) | ||
density = tonumber(density) | |||
p.db[code] = { | p.db[code] = { | ||
naziv = name, | naziv = name, | ||
pop = pop, | pop = pop, | ||
area = area, | area = area, | ||
year = year, | year = year, | ||
density = density, | density = density, | ||
| Redak 131: | Redak 49: | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
-- | -- 2) Format funkcije | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
| Redak 140: | Redak 58: | ||
if mode == "p" then return d.naziv end | if mode == "p" then return d.naziv end | ||
if mode == "a" then return d.pop end | if mode == "a" then return d.pop end | ||
if mode == "d" then return d.area end | if mode == "d" then return d.area end | ||
if mode == "g" then return d.year end | |||
if mode == "y" then return d.density end | if mode == "y" then return d.density end | ||
return "" | return "" | ||
| Redak 152: | Redak 66: | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
-- | -- 3) Glavna funkcija | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
| Redak 164: | Redak 78: | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
-- | -- 4) Fallback | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
Inačica od 26. ožujak 2026. u 07:02
Dokumentacija modula
== About ==
Get statistic data about Slovak municipalities.
This template is a sibling of Predložak:SK.
This template use the data from CC-BY database.
Original first author: meta.wikimedia.org/wiki/User:Dušan Kreheľ
Reference implementation is on hrwiki.
Parameters
First paramer
| Meaning | Parameter | Code | Code output |
|---|---|---|---|
| Population | p | {{#invoke:SK|sk|p|SK518581}} | Lešť (vojenský obvod) |
| Population (source URL) |
P | {{#invoke:SK|sk|P|SK0417524395}}<br>{{#invoke:SK|sk|P|SK}}<br>{{#invoke:SK|sk|P|SK0106}} | |
| Population (ex. for table) |
p | {{#invoke:SK|sk|o|SK0417524395}} | |
| Population Id | r | {{#invoke:SK|sk|r|SK0417524395}} | |
| Area | a | {{#invoke:SK|sk|a|SK0417524395}} | |
| Area (source URL) |
A | {{#invoke:SK|sk|A|SK0417524395}} | |
| Area Id | b | {{#invoke:SK|sk|b|SK0417524395}} | |
| Population density (as population/area) |
d | {{#invoke:SK|sk|d}} | |
| Data year | y | {{#invoke:SK|sk|y}} | |
| Last acces | l | {{#invoke:SK|sk|l}} | |
| Last update | u | {{#invoke:SK|sk|u}} | |
| Is slovak municipality (none support %i) |
i | {{#invoke:SK|sk|i|SK0417524395}} | |
| Get NUTS/LAU code (none support %e) |
e |
You can used both the format string like printf() with parameters from table.
| Code: | {{#invoke:SK|sk|%p (source: %P)|SK0417524395}} |
| Output: |
Second parameter
It is a STUN or LAU code for place sup-place (ex. SK0417524395). If none, then code is automatic based on the actual page.
--------------------------------------------------------------------
-- SK PRO (C2 Loader)
-- Minimalni dataset + gustoća
-- Format retka:
-- code|name|pop|area|year|density
--------------------------------------------------------------------
local p = {}
p.db = {}
--------------------------------------------------------------------
-- 1) Učitavanje data modula
--------------------------------------------------------------------
local modules = {
"Modul:SK/Data1",
"Modul:SK/Data2",
"Modul:SK/Data3",
"Modul:SK/Data4",
"Modul:SK/Data5",
"Modul:SK/Data6",
}
for _, name in ipairs(modules) do
local ok, raw = pcall(require, name)
if ok and type(raw) == "string" then
for line in raw:gmatch("[^\n]+") do
local code, name, pop, area, year, density =
line:match("([^|]+)|([^|]+)|([^|]+)|([^|]+)|([^|]+)|([^|]+)")
if code then
pop = tonumber(pop)
area = tonumber(area)
year = tonumber(year)
density = tonumber(density)
p.db[code] = {
naziv = name,
pop = pop,
area = area,
year = year,
density = density,
}
end
end
end
end
--------------------------------------------------------------------
-- 2) Format funkcije
--------------------------------------------------------------------
function p.format(code, mode)
local d = p.db[code]
if not d then return "" end
if mode == "p" then return d.naziv end
if mode == "a" then return d.pop end
if mode == "d" then return d.area end
if mode == "g" then return d.year end
if mode == "y" then return d.density end
return ""
end
--------------------------------------------------------------------
-- 3) Glavna funkcija
--------------------------------------------------------------------
function p.sk(frame)
local args = frame.args
local mode = args[1]
local code = args[2]
if not mode or not code then return "" end
return p.format(code, mode)
end
--------------------------------------------------------------------
-- 4) Fallback
--------------------------------------------------------------------
setmetatable(p, {
__index = function()
return function() return "" end
end
})
return p