Moduuli:Edseur

Wikiaineistosta

Esimerkit[muokkaa]

Alasivut[muokkaa]

|edellinen={{subst:#invoke:Edseur|edellinen|../Alasivu I|../Alasivu II|../Alasivu III|n=../{{subst:SUBPAGENAME}}}}
|seuraava={{subst:#invoke:Edseur|seuraava|../Alasivu I|../Alasivu II|../Alasivu III|n=../{{subst:SUBPAGENAME}}}}
|edellinen={{subst:#invoke:Edseur|edellinen|a=1|l=3|../Alasivu %d|n=../Alasivu {{subst:SUBPAGENAME}}}}
|seuraava={{subst:#invoke:Edseur|seuraava|a=1|l=3|../Alasivu %d|n=../Alasivu {{subst:SUBPAGENAME}}}}

local m = {}

local function tee_taulukko(a, l, pohja)
   local taulukko = {}
   for i=a,l,1 do
      taulukko[i] = pohja:gsub("%%d", i) .. ""
   end
   return taulukko
end

local function hae_taulukko(frame)
   local pohja = frame.args[1]
   local a  = tonumber(frame.args.a)
   local l = tonumber(frame.args.l)
   if a and l then
      return tee_taulukko(a, l, pohja)
   else
      return frame.args
   end
end   

-- #invokella kutsuttavat funktiot

function m.seuraava(frame)
   local taulukko = hae_taulukko(frame)
   for i,e in ipairs(taulukko) do
      if e == frame.args.n then
	 return "[[" .. taulukko[i+1] .. "]]" or ""
      end
   end
   return ""
end

function m.edellinen(frame)
   local taulukko = hae_taulukko(frame)
   for i,e in ipairs(taulukko) do
      if e == frame.args.n then
	 return "[[" .. taulukko[i-1] .. "]]" or ""
      end
   end
   return ""
end

return m