Modul:Iboks
Utseende
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