Modul:Infoboks wikidata
Hopp til navigering
Hopp til søk
Dokumentasjon for denne modulen kan opprettes på Modul:Infoboks wikidata/dok
local p={} local wikidataListe = require( 'Module:WikidataListe/test' ) function ibxStart(type,stor,navn,navn2) -- local arg = {} -- arg["navn"] = navn local txt0a = '<table class="infobox infoboks ' local txt0b = type .. " " .. stor .. " " ..'"' -- .. " " .. class local txt0d = ">" local txt1 = '' if navn2 and navn2 ~= '' then txt1 = '<tr valign="top" class="hode"><th colspan="4">' .. navn2 .. '</th></tr>' end local txt2 = '<tr class="hode overskrift"><th colspan="4">' .. navn .. '</th></tr>' return txt0a .. txt0b .. txt0d .. txt1 .. txt2 end function ibxSlutt(comcat,endcomment) return "</table>" end function p.ibxStart(frame) local args = frame.args or {} local typ = args["type"] or "biografi" local stor = args["stor"] or "bred" local navn = args["navn"] or "xxx" local navn2 = args["navn2"] or "xx2" value = ibxStart(typ, stor, navn, navn2) return value end function p.ibxSlutt(frame) return ibxSlutt() end function p._rader(frame,defs) local lang = mw.language.getContentLanguage() local res = {} local txt = "" local qid = nil if frame.args['qid'] and frame.args['qid'] ~= "" then qid = frame.args['qid'] end for i,def in ipairs(defs) do local param = def["param"] local pid = def["pid"] local ref = def["ref"] local sprak = def["sprak"] local displayName = def["displayName"] or lang:ucfirst(param) if not def[1] or def[1] == "rad" then txt = wikidataListe._rad2(frame,qid,pid,param,ref,sprak,displayName) if txt and txt ~= "" then table.insert(res, txt) end end end if #res > 0 then txt = table.concat(res, "\n") end return txt end function p.hendelse(frame) local defs = { -- eksempel: { param = 'sted', pid =nil, ref= 'ja', sprak = nil, displayName = "Foreldre" }, { "bilde", param = "bilde", pid="P18"}, { "rad", param = 'deltakere', pid="P710" }, { "rad", param = 'sted', Pid="P276" }, { "rad", param = 'dato', pid ="P585"}, { "rad", param = 'resultat', pid="P1542"}, { "rad", param = 'url', pid ="P856"}, } return p._rader(frame,defs) end function p._fmt(qid,pid) local proplab,langlab = mw.wikibase.getLabelWithLang(pid) if not proplab then return "" end local ll = "" if langlab and langlab ~= "nb" then ll = " (" .. langlab .. ")" --addKat("[[Kategori:Wikidata testing]]") end local frame = mw.getCurrentFrame() local param = "aaa" local ref = true local sprak = nil local displayName = proplab .. ll local txt = wikidataListe._rad2(frame,qid,pid,param,ref,sprak,displayName) return txt end function p.wdrad(frame) local qid = nil if frame.args['qid'] and frame.args['qid'] ~= "" then qid = frame.args['qid'] end local pidtxt = frame.args['pid'] or frame.args['wdp'] or nil local pids = {} if pidtxt and pidtxt == "alle" then local entity = mw.wikibase.getEntity(qid) or nil if entity then --claims = entity --return "<pre>" .. mw.text.jsonEncode(claims, mw.text.JSON_PRETTY) .. "</pre>" for propid,props in pairs(entity.claims) do table.insert(pids, propid) end end else pids = mw.text.split(pidtxt, ',', true ) end if not pids then return "" end local res = {} for i,pid in ipairs(pids) do local txt = p._fmt(qid,pid) table.insert(res, txt) end local rader = table.concat(res, "\n") return "" -- .. p.ibxStart(frame) --ibxStart(type,stor,navn,navn2) .. rader --.. p.ibxSlutt(frame) end function p.infoboksHistoriskHendelse(frame) local args = mw.getCurrentFrame():getParent().args return p.ibxStart(frame) --ibxStart(type,stor,navn,navn2) .. p.hendelse(frame,defs) .. p.ibxSlutt(frame) end function p.test(frame) return p.infoboksHistoriskHendelse(frame) end return p