Modul:Kolumner

Dokumentation [visa] [redigera] [historik] [rensa sidcachen]


Funktioner i modulen

Kolumner

Funktion

Funktionen liknar mallen {{kolumner}} som använder CSS-kod som inte fungerar i vissa webbläsare (t ex MSIE före version 10)

Anrop

{{#invoke:Kolumner|kolumner|antal=antal|kolumnbredd=kolumnbredd|totalbredd=totalbredd|liten=liten
|post1
|post2
|...
|postn
}}

Parametrar

  • antal (frivillig): anger antalet kolumner; om inget värde anges blir det två kolumner. Till skillnad från mallen är antalet kolumner här statiskt.
  • kolumnbredd (frivillig): parameterns värde används som bredden för varje kolumn. OBS! Detta är ej som i mallen där antalet kolumner varieras vartefter sidbredden ändras.
  • totalbredd (frivillig): parameterns värde används som den sammanlagda bredden för alla kolumner.
  • liten (frivillig): om parameterns värde = "ja" blir det en något mindre fontstorlek (90%).
  • post1, post2, ... , postn: de poster som ska fördelas på kolumnerna.

Not 1: kolumnbredd och totalbredd kan anges antingen som en absolut (fast) bredd, till exempel 250px, eller som en relativ (dynamisk) bredd, till exempel 20%.

Not 2: Endast den ena av kolumnbredd och totalbredd ska användas. Om båda anges så ignoreras kolumnbredd.

local p = {} -- kolumner, liknande funktion som mallen {{kolumner}} som använder CSS-kod som inte fungerar i vissa webbläsare (t ex MSIE före version 10)---- parametrar -- ==========-- antal (frivillig): anger antalet kolumner, om inget värde anges blir det två kolumner-- kolumnbredd (frivillig): parameterns värde används som bredden för varje kolumn. kolumnbredd kan anges absolut i px, t ex 250px, eller relativ, t ex 20%. -- totalbredd (frivillig): parameterns värde används för den sammanlagda bredden för alla kolumner. totalbredd kan anges absolut i px, t ex 500px, eller relativ, t ex 75%. --                         (om totalbredd anges så ignoreras kolumnbredd)-- liten (frivillig): om parameterns värde = "ja" blir det en något mindre fontstorlek (90 %)function p.kolumner(frame)local antal_kolumner = tonumber(frame.args['antal']) or 2local style = ""if (frame.args['liten'] == "ja") then style="style='font-size:90%;'" endlocal kolumnbredd = frame.args['kolumnbredd']local totalbredd = frame.args['totalbredd']local width = ""if (kolumnbredd) then width="width=" .. kolumnbreddif (string.match(kolumnbredd,"(%d+)%%")) then notusedpercent = (100-antal_kolumner*tonumber(string.match(kolumnbredd,"(%d+)%%"))) .. "%" endendif (totalbredd) thenif (string.match(totalbredd,"(%d+)px")) then width = "width=" .. math.floor(tonumber(string.match(totalbredd,"(%d+)px"))/antal_kolumner) .. "px" endif (string.match(totalbredd,"(%d+)%%")) then width = "width=" .. math.floor(tonumber(string.match(totalbredd,"(%d+)%%"))/antal_kolumner) .. "%" notusedpercent = (100-math.floor(tonumber(string.match(totalbredd,"(%d+)%%")))) .. "%"endendlocal antal_poster = 0for i,v in ipairs(frame.args) do antal_poster = i endlocal antal_per_kolumn = math.floor(antal_poster / antal_kolumner) local kolumner_med_extra = antal_poster % antal_kolumner local res = "{| "if (notusedpercent) then res = res .. "width=100% " endres = res ..style.."\n"local k = 0for i = 0, antal_kolumner - 1 dores = res .. "|valign=top " .. width .. "|\n"local jmax = antal_per_kolumnif (i < kolumner_med_extra) then jmax = jmax + 1 endfor j = 1, jmax dok = k + 1res = res .. frame.args[k] .. "" end endif (notusedpercent) then res = res .. "|width=" .. notusedpercent .. "|\n" end return res .. "|}"end-- kolumner_manuell, liknande funktionen kolumner men användaren styr var ny kolumn ska infogas genom parameternvärdet %bryt---- parametrar -- ==========-- kolumnbredd (frivillig): parameterns värde används som bredden för varje kolumn. kolumnbredd kan anges absolut i px, t ex 250px, eller relativ, t ex 20%. -- liten (frivillig): om parameterns värde = "ja" blir det en något mindre fontstorlek (90 %)-- brytmarkering (frivillig): det värde som anges här styr vilket parametervärde som används för kolumnbrytning. Om inget värde anges används "%bryt" för att markera ny kolumn.function p.kolumner_manuell(frame)local style = ""local brytmarkering = frame.args['brytmarkering'] or "%bryt"if (frame.args['liten'] == "ja") then style="style='font-size:90%;'" endlocal kolumnbredd = frame.args['kolumnbredd']local width = ""if (kolumnbredd) then width="width=" .. kolumnbreddendlocal antal_poster = 0for i,v in ipairs(frame.args) do antal_poster = i endlocal res = "{| "res = res ..style.."\n"local k = 0res = res .. "|valign=top " .. width .. "|\n"for i = 1, antal_poster doif string.gsub(frame.args[i],"\n","") == brytmarkering thenres = res .. "|valign=top " .. width .. "|\n"else  res = res .. frame.args[i] .. ""end endreturn res .. "|}"endreturn p