Module:Croatian population data graph explained

local p =

-- ako je u predlošku popisi=HRV prikazat će sve poznate popise od 1857. do 2021.-- bez obzira na to postoji li u članku podatak-- bez tog parametra u predlošku, prikazat će samo godine upisane u člankulocal godine_hr = local izvori_hr = "Croatian Bureau of Statistics publications" local max_visina = 8 -- 8 em; podesiti i visinu ćelije u css-u predloška

function p.dijagram(frame) local podatci = local targs = frame:getParent.args --template arguments in template call local margs = frame.args --module arguments in #invoke --prođi kroz sve parametre; većinom su to parametri oblika pGGGG ili parovi aN/pN for k, v in pairs(targs) do local g = tonumber(string.match(k, "^p(%d%d%d%d)$")) -- parametri oblika p2021 if g then local p = tonumber(v) --mw.log(g,p) if p then podatci[g] = p end end local n = string.match(k, "^a(%d%d?)$") -- do 99 parova parametara godina/populacija: a1/p1 … a99/p99 if n then local g = tonumber(v) local p = tonumber(targs["p"..n]) --mw.log(g,p) if g and p then podatci[g] = p end end end --godine prisutne u predlošku; trebamo ih u tablici radi sortiranja local godine = local podatci_max = 0 for k, v in pairs(podatci) do table.insert(godine, k) if podatci[k]>podatci_max then podatci_max=podatci[k] end end table.sort(godine) --html tablica u kojoj će svaka ćelija sadržavati jedan stupac (div) stupčastog dijagrama--ovdje stvaramo ćelije u dvama retcima local tr1 = mw.html.create('tr') tr1 : tag("td") : addClass("kbs_ordinata") : tag("span") : addClass("kbs_ordinata") : wikitext("population") : done local tr2 = mw.html.create('tr') tr2 : tag("td") : done if (targs["popisi"]

"HRV") or (margs["popisi"]

"HRV") then prikazi = godine_hr else prikazi = godine end

local prva, zadnja = Nil, Nil for _, g in ipairs(prikazi) do if godine[1]<=g and g<=godine[#godine] then --ne prikazuj lijevo i desno od jedinih poznatih, ali prikaži između prva = prva or g zadnja = g local podatak = podatci[g] or 0 local biljeg = (podatak>0 and podatak) or "" -- do not show 0 or Nil tr1 : tag("td") : addClass("kbs_za_stupce") : tag("div") : addClass("kbs_podatci") : wikitext(biljeg) : done : tag("div") : addClass("kbs_stupci") : cssText("height:"..0.01*math.floor(100*podatak*max_visina/podatci_max).."em;") : done tr2 : tag("td") : addClass("kbs_godine") : wikitext(g) : done end end

-- naslov iznad tablice s dijagramom -- u predlošku: Naselje X ili Općina Y ili Grad Z local podatci_za = targs["područje"] and (targs["područje"] ~= "") and ("" .. targs["područje"] .. ": ") or "" local kbs = "Population trends " .. prva .."–"..zadnja local naslov = podatci_za .. (targs["naslov"] and (targs["naslov"] ~= "") and targs["naslov"] or kbs)

-- tablica za stupčasti dijagram local tbl = mw.html.create('table') tbl : addClass("kbs_tablica") : node(tr1) : node(tr2) local ttl = mw.html.create('div') ttl : addClass("kbs_naslov") : wikitext(naslov) local tbl_ttl = mw.html.create('div') tbl_ttl : addClass("kbs_tablica_scrollable") : tag("div") : addClass("kbs_tablica") : node(ttl) : node(tbl) : done

-- Napomena:… i Izvori:… ispod dijagrama local napomena = targs["napomena"] or "" local izvori = "" if (targs["popisi"]

"HRV") or (margs["popisi"]

"HRV") then izvori = izvori_hr end

izvori = targs["izvor"] or izvori local nte = mw.html.create('div') : addClass("kbs_napomena") if napomena ~="" then nte : wikitext("Note: " .. napomena .. " ") end if izvori ~="" then nte : wikitext("Sources: " .. izvori) end

local nap_izv = mw.html.create('div') nap_izv : addClass("kbs_napomena_nonscrollable") : node(nte)

local vte_div = mw.html.create('div') : addClass("kbs_vte") local vte = frame : expandTemplate vte_div : node(vte) nap_izv : node(vte_div)

local sve = mw.html.create : node(tbl_ttl) : node(nap_izv) return sveend return p