Modul:Iboks: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
(fiks manglende test på entity som kan være nil) |
(legger inn referanser i p.singleValue) |
||
Linje 1: | Linje 1: | ||
local math_mod = require( "Module:Math" ) |
local math_mod = require( "Module:Math" ) |
||
local |
local WikidataDato = require( 'Module:WikidataDato' ) |
||
local refs = require 'Module:Reference score' |
|||
local WikidataBilde = require( 'Module:WikidataBilde' ) |
local WikidataBilde = require( 'Module:WikidataBilde' ) |
||
Linje 60: | Linje 61: | ||
end |
end |
||
local |
local references = prop1.references |
||
if references then |
|||
-- value = value .. lagReferanser(refs) |
|||
value = value .. refs.render(mw.getCurrentFrame(),references) |
|||
end |
|||
return formatRad(tittel,value) |
return formatRad(tittel,value) |
||
end |
end |
Sideversjonen fra 26. okt. 2022 kl. 18:34
Formål
Verktøykasse for infobokser.
Metoder
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 return p