Modul:Iboks
Formål[rediger kilde]
Verktøykasse for infobokser.
Metoder[rediger kilde]
verdiRad - kalles fra en mal ved
- {{#invoke:Iboks|verdiRad|parametre}}
parameter | gitt argument | funksjon |
---|---|---|
tittel | tekst | Beskrivelsen av innholdet av raden |
verdi | vilkårlig verdi | Verdi som skal presenteres i infoboksen. Verdien vil hvis det er oppgitt som et tall formateres med formatnum |
uten | Denne raden skal ikke presenteres i infoboksen | |
Denne raden skal eventuelt hente verdi fra Wikidata | ||
enhet | tekst | Enheten som verdien er oppgitt i. Argumentet brukes bare hvis verdi er oppgitt. |
ref | tekst | Referanse eller referanser for verdien som er gitt. Argumentet brukes bare hvis verdi er oppgitt. |
pid | Wikidata identifikator | Identifikator på en egenskap i Wikidata som verdi, enhet og referanser skal hentes fra |
qid | Wikidata identifikator | Identifikator på et element i Wikidata som egenskapen pid skal hentes fra. qid kan utelates og data vil i så fall hentes fra Wikidata-elementet til aktuell side. |
NB: Referanser hentes ikke fra Wikidata på det nåværende tidspunkt.
_verdiRad(tittel, verdi, enhet, ref, pid, qid)
- Samme som verdiRad, men for kall fra modul. Parametre, se verdiRad.
formatNumber(verdi)
- Metode for å gjøre formatnum på input som kanskje ikke er riktig formaterte tall.
- - kalles fra en mal ved
- {{#invoke:Iboks|formatNumber|verdi}}
formatUrl(url)
- Metode for å forkorte en url
- - kalles fra en mal ved
- {{#invoke:Iboks|formatUrl|url}}
local math_mod = require( "Module:Math" ) local WikidataDato = require( 'Module:WikidataDato' ) local refs = require 'Module:Reference score' local WikidataBilde = require( 'Module:WikidataBilde' ) local p = {} function formatRad(tittel,value) return string.format([[ <tr class="rad" valign="top"> <th colspan="2" class="nowrap">%s</th> <td colspan="2">%s</td> </tr> ]], tittel, value) end function p._formatUrl(url) local reftext = url local j1 = string.find(reftext,'//',1,true) if j1 then reftext = string.sub(reftext,j1+2,string.len(reftext)) else reftext = '' end if reftext ~= '' then local i1 = string.find(reftext,'/',1,true) if i1 then reftext = string.sub(reftext,1,i1-1) end else reftext = url end return "[" .. url .. " " .. reftext .. "]" end function getBestStatements(pid,entity) if not pid then return nil end if not entity then return nil end local prop = entity:getBestStatements(pid) if not prop then return nil end if not prop[1] then return nil end if not prop[1].mainsnak then return nil end return prop[1] end function p.singleValue(tittel,qid,pid,entity) local prop1 = getBestStatements(pid,entity) if not prop1 then return "" end value = mw.wikibase.formatValue(prop1.mainsnak) if value and value ~= "" then local quals = prop1.qualifiers local qual = nil if quals then qual = quals[1] or nil end local references = prop1.references if references then value = value .. refs.render(mw.getCurrentFrame(),references) end return formatRad(tittel,value) end return "" end function p._formatNumber(verdi) if not verdi then return "" end local num = mw.getContentLanguage():parseFormattedNumber(verdi) if num then return mw.getContentLanguage():formatNum(num) end return verdi end function p.formatVerdi(tittel,verdi,enhet,referanser) local value = "" local num = mw.getContentLanguage():parseFormattedNumber(verdi) if num then value = mw.getContentLanguage():formatNum(num) .. " " .. enhet .. referanser else value = verdi.. " " .. enhet .. referanser end return formatRad(tittel,value) end function lokalVerdiRad(tittel, verdi, enhet, referanser) if verdi == "uten" then return "" end local enhettxt = "" local reftxt = "" if enhet then enhettxt = enhet end if referanser then reftxt = referanser end return p.formatVerdi(tittel, verdi, enhettxt, reftxt) end function p._verdiRad(tittel, verdi, enhet, ref, pid, qid) if verdi and verdi ~= "" then return lokalVerdiRad(tittel, verdi, enhet, ref) end local entity = mw.wikibase.getEntity(qid) return p.singleValue(tittel,qid,pid,entity) end function p.verdiRad(frame) local args = frame.args or nil if not args then return "" end local verdi = args["verdi"] or nil local enhet = args["enhet"] or nil local ref = args["ref"] or nil local tittel = args["tittel"] or nil local pid = args["pid"] or nil local qid = args["qid"] or nil return p._verdiRad(tittel, verdi, enhet, ref, pid, qid) end function p.formatNumber(frame) local args = frame.args or nil if not args then return "" end local verdi = args[1] or args["verdi"] or nil return p._formatNumber(verdi) end function p.formatUrl(frame) local args = frame.args or nil if not args then return "" end local url = args[1] or args["url"] or nil return p._formatUrl(url) end function brukmal(frame,mal,kollaps) local frameargs = frame:getParent().args local text = frame:expandTemplate{ title=mal, args = frameargs} if text and text ~= "" then if kollaps then local resultat = string.format([[ <div class="mw-collapsible mw-collapsed"> -- <div class="sentrert">%s oppføringer</div> <div class="mw-collapsible-content">%s</div> </div> ]], text) return resultat end end return text end function p.vannmasse(frame) local ag = frame.args local mal = ag["mal"] or none if mal then return brukmal(frame,mal) end return "" end function p.brukmal(frame) local ag = frame.args local frameargs = frame:getParent().args local mal = frameargs["mal"] or none local kollaps = frameargs["kollaps"] or none if mal then return brukmal(frame,mal,kollaps) end return "" end return p