Redigerer
Modul:Sandkasse/haros/misc
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
local math_mod = require( "Module:Math" ) local WikidataReferanse = require( 'Module:WikidataReferanse' ) local refscore = require 'Module:Reference score' local p = {} function dump(item) return "<pre>" .. mw.text.jsonEncode(item, mw.text.JSON_PRETTY) .. "</pre>" end function p.scholia(frame) local args = mw.getCurrentFrame():getParent().args local id = args['id'] or args[1] or nil if id == "" then id = nil end local entity = mw.wikibase.getEntity(id) or nil if not id then if not entity then return "" end id = entity.id end local label = mw.wikibase.label(id) or "" return "[https://tools.wmflabs.org/scholia/author/" .. id .. " " .. label .. " i scholia]" end function wdValue(entity,prop) local value,unit = nil,nil if entity.claims and entity.claims[prop] then local claim = selectSingleClaim(entity.claims[prop]) local val = claim.mainsnak.datavalue.value or nil if val then local un = val.unit or nil if un then unit = mw.ustring.sub(un, mw.ustring.find(un, "Q"), -1) or nil end value = tonumber(val.amount) end end return value,unit end function selectSingleClaim(claims) if not claims then return nil end local selectedClaim = nil for idx,claim in pairs(claims) do if claim.rank == 'preferred' then return claim end if claim.rank == 'normal' then if not selectedClaim then selectedClaim = claim end end end return selectedClaim end function 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 p.formatUrl(urls) local value = "" sep = "" local urlList = mw.text.split( urls, ',', true ) for i,url in ipairs(urlList) do local val = formatUrl(url) if val and val ~= "" then value = value .. sep .. val sep = "<br/>" end end end function p.formatLenke(sitelink,label) if label and sitelink then return '[[' .. sitelink .. '|' .. label .. ']]' end if label and not sitelink then return label end if sitelink and not label then return '[[' .. sitelink .. ']]' end return '' end function formatValue(value, first, link) assert( value ) --assert( first ) -- setter link til true som default hvis ingen verdi er angitt if type( link ) ~= 'boolean' then link = true end if string.sub(value, 1, 1) ~= "Q" then -- Verdien er enten "ukjent" eller "ingen" return string.format("''%s''", value) end local label = mw.wikibase.label( value ) local sitelink = mw.wikibase.sitelink( value ) if first and label then local lang = mw.language.getContentLanguage() label = lang:ucfirst( label ) end if not link then -- Vi ønsker kun tekst, ikke wikilenke if label then return label end return '' end if label and sitelink then return '[[' .. sitelink .. '|' .. label .. ']]' end if label and not sitelink then return label end if sitelink and not label then return '[[' .. sitelink .. ']]' end return '' end function p.stattest() local menn = mw.site.stats.pagesInCategory("menn", "pages") local kvinner = mw.site.stats.pagesInCategory("kvinner", "pages") local alle = menn+kvinner local prosMenn = menn*100/alle local prosKvinner = kvinner*100/alle return "Antal biografier av<br/>" .. "- Kvinner " .. mw.language.getContentLanguage():formatNum(kvinner) .. " (" .. math_mod._precision_format(prosKvinner,2) .. " %)<br/>" .. "- Menn " .. mw.language.getContentLanguage():formatNum(menn) .. " (" .. math_mod._precision_format(prosMenn,2) .. " %)" end function fmt(ref) local reftxt = "" local sep = "" for pid, property in pairs(ref) do local pidLabel = mw.wikibase.getLabel(pid) local refValue = mw.wikibase.formatValues(property) reftxt = reftxt .. sep .. pidLabel .. ":" .. refValue sep = " , " end return reftxt end function p.trippel(frame) assert( frame ) local args = mw.getCurrentFrame():getParent().args local v1 = args["v1"] or frame.args["v1"] or "" local v2 = args["v2"] or frame.args["v2"] or "" local v3 = args["v3"] or frame.args["v3"] or "" local wd1 = args["wd1"] or frame.args["wd1"] or "" local wd2 = args["wd2"] or frame.args["wd2"] or "" local wd3 = args["wd3"] or frame.args["wd3"] or "" local tittel = args["tittel"] or frame.args["tittel"] or "" if v1 and v1 == "uten" then return "" end if (not v1 or v1 == "" ) and (not wd1 or wd1 == "") then return "" end local value = "" if v1 and v1 == "" then value = wd1 if wd2 and wd2 ~= "" then value = value .. " (" .. wd2 .. ") " end if wd3 and wd3 ~= "" then value = value .. " parti: " .. wd3 end end if v1 and v1 ~= "" then value = v1 if v2 and v2 ~= "" then value = value .. " (" .. v2 .. ") " end if v3 and v3 ~= "" then value = value .. " parti: " .. v3 end end 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 getProp(qid,pid) local entity = mw.wikibase.getEntity(qid) if not entity then return {} end return entity:getBestStatements(pid) end function formatDobbeltrad(value) return string.format([[ <tr class="rad" valign="top"> <td colspan="4">%s</td> </tr> ]], value) end 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.formatSpraak(snak) assert( snak ) local spraakid = snak.datavalue.value.id or nil if not spraakid then return nil end local prop = getProp(spraakid,"P218") or getProp(spraakid,"P220") or nil if prop then if not prop[1] then return "" end if not prop[1].mainsnak then return "" end local kortnavn = prop[1].mainsnak.datavalue.value or nil local sitelink = mw.wikibase.sitelink( spraakid ) return p.formatLenke(sitelink,kortnavn) end local lab = mw.wikibase.label(spraakid) return lab end function formatQualifier(qual,pval) if qual and pval then local qv = qual[pval] local snak = qv[1] or nil if snak and snak.snaktype == "value" then if pval == "P407" then return p.formatSpraak(snak) end return mw.wikibase.formatValues(qv) end end end function p.enProp(prop,visRef) local value = nil -- for i,prop in ipairs(props) do if not prop then return value end if not prop.mainsnak then return value end local sn = prop.mainsnak local qu = prop.qualifiers local rf = prop.references local qual = nil local qualP = "" -- property[1].datavalue.value if sn.snaktype == "value" then if sn.datatype == 'url' then value = formatUrl(sn.datavalue.value) local qt = formatQualifier(qu,"P407") if qt and qt ~= "" then value = value .. " (" .. qt .. ")" end end end if true then --return dump(prop.mainsnak) end if value and value ~= "" then if visRef then local refs = prop.references local ref = nil if refs then ref = refs[1] or nil end if ref then value = value .. refscore.render(mw.getCurrentFrame(),refs) end end -- end end return value end function kollaps(text, totalt) text = string.format( [[ <div class="mw-collapsible mw-collapsed"> <div class="sentrert">totalt %s</div> <div class="mw-collapsible-content">%s</div> </div> ]], totalt, text) return text end function p._formatEgenskaper(qid,pid,visRef) if not pid then return "" end local props = getProp(qid,pid) if not props then return "" end local value1 = "" local value2 = "" local sep = "" if true then -- return dump(props) end local count = 0 for i,prop in ipairs(props) do local v = p.enProp(prop,visRef) if v then -- if count<1 then value1 = value1 .. sep .. v -- end -- if count>0 then -- value2 = value2 .. sep .. v -- end sep = "<br/>" count = count + 1 end end if count>1 then -- value1 = kollaps(value1,count) end return value1 .. value2 end function p.singleValue(tittel,arg,qid,pid) if arg and arg == "uten" then return "" end local value = "" if arg and arg ~= "" then return formatRad(tittel,arg) end if not pid then return "" end local prop = getProp(qid,pid) if not prop then return "" end if not prop[1] then return "" end if not prop[1].mainsnak then return "" end value = mw.wikibase.formatValue(prop[1].mainsnak) if value and value ~= "" then local quals = prop[1].qualifiers local qual = nil if quals then qual = quals[1] or nil end local refs = prop[1].references local ref = nil if refs then ref = refs[1] or nil end if ref then value = value .. refscore.render(mw.getCurrentFrame(),refs) --local attrs = { name = string.format( 'hash-%s', ref.hash ) } --tekst = tekst .. mw.getCurrentFrame():extensionTag( 'ref', reftxt, attrs ) end return formatRad(tittel,value) end return "" end -- kopi fra Wikidataliste function getFrameValue(frame, params) local args = frame.args if args[1] == nil then local pFrame = frame:getParent(); args = pFrame.args; for k,v in pairs( frame.args ) do args[k] = v; end end -- params kan være én enkelt verdi eller flere verdier adskilt med komma. -- F.eks. vil "religion,livssyn" sjekke både "religion" og "livssyn". for param in mw.text.gsplit( params, ',', true ) do if args[param] then return mw.text.trim( args[param] ) end end return "" end function p.beste(frame) assert( frame ) local qid = frame.args["qid"] or nil local pid = frame.args["pid"] or frame.args["wdq"] local param = frame.args["param"] or nil local tittel = frame.args["tekst"] or nil local unit = frame.args["unit"] or nil local verdiFraFrame = getFrameValue(frame, param) if verdiFraFrame and verdiFraFrame == "uten" then -- Hvis malargumentet er satt til "uten" betyr det at det ikke er ønskelig -- at feltet vises, selv om det finnes data på Wikidata. return "[[Kategori:Artikler hvor en parameter spesifisert som uten]]" end local value = "" if verdiFraFrame and verdiFraFrame ~= "" then return formatValue(tittel,verdiFraFrame) end return p.singleValue(tittel,verdiFraFrame,qid,pid) end local museum = { { ["param"] = "navn", ["pid"] = "P1705", ["metode"] = "single", ["tittel"] = "Navn" }, { ["param"] = "bilde", ["pid"] = "P18", ["metode"] = "bilde", ["tittel"] = "" }, { ["param"] = "vinterbilde", ["pid"] = "P5252", ["metode"] = "bilde", ["tittel"] = "" }, { ["param"] = "bilde", ["pid"] = "P5775", ["metode"] = "bilde", ["tittel"] = "" }, { ["param"] = "grunnlagt", ["pid"] = "P571", ["metode"] = "single", ["tittel"] = "Grunnlagt" }, { ["param"] = "arkitekt", ["pid"] = "P84", ["metode"] = "single", ["tittel"] = "Arkitekt" }, { ["param"] = "adresse", ["pid"] = "P6375", ["metode"] = "single", ["tittel"] = "Adresse" }, { ["param"] = "land", ["pid"] = "P17", ["metode"] = "single", ["tittel"] = "Land" }, { ["param"] = "ligger i", ["pid"] = "P131", ["metode"] = "single", ["tittel"] = "Ligger i" }, { ["param"] = "årlig besøkstall", ["pid"] = "P1174", ["metode"] = "single", ["tittel"] = "Årlig besøkstall" } } local uni = { { ["param"] = "navn", ["pid"] = "P1705", ["metode"] = "single", ["tittel"] = "Navn" }, { ["param"] = "logo", ["pid"] = "P154", ["metode"] = "bilde", ["tittel"] = "" }, { ["param"] = "bilde", ["pid"] = "P18", ["metode"] = "bilde", ["tittel"] = "" }, { ["param"] = "latinsk navn", ["pid"] = nil, ["metode"] = "single", ["tittel"] = "latinsk navn" }, { ["param"] = "Kallenavn", ["pid"] = nil, ["metode"] = "single", ["tittel"] = "Kallenavn og forkortelser" }, { ["param"] = "motto", ["pid"] = nil, ["metode"] = "single", ["tittel"] = "Motto" }, { ["param"] = "visjon", ["pid"] = nil, ["metode"] = "single", ["tittel"] = "Visjon" }, { ["param"] = "grunnlagt", ["pid"] = "P571", ["metode"] = "single", ["tittel"] = "Grunnlagt" }, { ["param"] = "type", ["pid"] = nil, ["metode"] = "single", ["tittel"] = "Type" }, { ["param"] = "rektor", ["pid"] = "P1075", ["metode"] = "single", ["tittel"] = "Rektor" }, { ["param"] = "prorektor", ["pid"] = nil, ["metode"] = "single", ["tittel"] = "Prorektor" }, { ["param"] = "Viserektor(er)", ["pid"] = nil, ["metode"] = "single", ["tittel"] = "viserektor" }, { ["param"] = "Direktør", ["pid"] = P1037, ["metode"] = "single", ["tittel"] = "direktør" }, { ["param"] = "beliggenhet", ["pid"] = "P6375", ["metode"] = "single", ["tittel"] = "Beliggenhet" }, { ["param"] = "adresse", ["pid"] = "P6375", ["metode"] = "single", ["tittel"] = "Adresse" }, { ["param"] = "land", ["pid"] = "P17", ["metode"] = "single", ["tittel"] = "Land" }, { ["param"] = "ligger i", ["pid"] = "P131", ["metode"] = "single", ["tittel"] = "Ligger i" }, { ["param"] = "studenter", ["pid"] = "P2196", ["metode"] = "single", ["tittel"] = "Studenter" }, { -- ["param"] = {"ansatte","data fra"}, ["param"] = "ansatte", ["pid"] = "P2196", ["metode"] = "single", ["tittel"] = "Studenter" }, { ["param"] = "medlemskap", ["pid"] = "nil", ["metode"] = "single", ["tittel"] = "Medlemskap" }, { ["param"] = "organisasjonsnummer", ["pid"] = "nil", ["metode"] = "single", ["tittel"] = "Organisasjonsnummer" }, { ["param"] = "nettsted", ["pid"] = "nil", ["metode"] = "single", ["tittel"] = "Nettsted" } } function bilde(snak) assert ( snak ) local item = nil if snak.snaktype == "value" and snak.datatype == "commonsMedia" then value = snak.datavalue.value or nil end return value end -- returnerer en rad for overskrift og en avsluttning hvis det er nødvendig function formatOverskrift (overskrift,kollaps) local oversk = "" local avslutt = "" if overskrift and overskrift ~= "" then oversk = string.format([[ <tr class="overskrift" valign="top"><td colspan="4">%s</td></tr> ]], overskrift) end if kollaps and kollaps ~= "" then end return oversk,avslutt end function formatBilderad(value) return string.format([[ <tr class="bilde" valign="top"><td colspan="4" class="sentrert">%s</td></tr> ]], value) end function p.bilde(qid,pid) local prop = getProp(qid,pid) if not prop or not prop[1] or not prop[1].mainsnak then return "" end return bilde(prop[1].mainsnak) end function bildetekst(qualifier,blankbildetekst) local P2096 = nil if qualifier then P2096 = qualifier['P2096'] end if P2096 then for k, l in pairs(P2096) do if l.datavalue.value and l.datavalue.value.text and l.datavalue.value.language == 'nb' then return l.datavalue.value.text end end end if blankbildetekst then return " " end return "" end function fmtBilde(bilde,bildetekst,byline,size,blankbildetekst) local tekst = "" local pix = size or "" if bilde then tekst = "[[fil:" .. -- mw.wikibase.formatValue(snak) bilde .. "|center|" .. pix .. "|frameless]]" end if bildetekst or byline then tekst = tekst .. '<div class="thumbcaption">' end if bildetekst then tekst = tekst .. bildetekst end if byline then tekst = tekst .. '<div class="byline">' .. byline .. "</div>" end if bildetekst or byline then tekst = tekst .. '</div>' end tekst = formatBilderad(tekst) return tekst end function p.bildeFraWikidata(qid,pid, pix,blankbildetekst) local prop = getProp(qid,pid) if not prop then return "" end if not prop[1] then return "" end if not prop[1].mainsnak then return "" end local bildet = bilde(prop[1].mainsnak) local bildeteksten = bildetekst(prop[1].qualifiers,blankbildetekst) return fmtBilde(bildet,bildeteksten,nil, pix) end function p._bildeOgTekst(qid, pid, bilde, bildetekst, byline, pix, overskrift,blankbildetekst) if bilde and bilde == "uten" then return "" end local overskriftRad,avslutning = "","" if overskrift and overskrift ~= "" then overskriftRad,avslutning = formatOverskrift(overskrift) end local bilderad = "" if bilde and bilde ~= "" then bilderad = fmtBilde(bilde,bildetekst,byline, pix) else bilderad = p.bildeFraWikidata(qid, pid, pix,blankbildetekst) end if bilderad ~= "" then return overskriftRad .. bilderad .. avslutning end return "" end function p.bildeOgTekst(frame) local qid = frame.args["qid"] or nil if qid == "" then qid = nil end local pid = frame.args["pid"] or nil local bilde = frame.args["bilde"] or nil local bildetekst = frame.args["bildetekst"] or nil local byline = frame.args["byline"] or nil local pix = frame.args["bildestørrelse"] or "" local overskrift = frame.args["overskrift"] or "" return p._bildeOgTekst(qid, pid, bilde, bildetekst, byline, pix, overskrift) end function getId(prop) if prop then -- return dump(prop) end if prop and prop.mainsnak and prop.mainsnak.datavalue and prop.mainsnak.datatype == "wikibase-item" then return prop.mainsnak.datavalue.value.id end return nil end function allProps(qid,pid) local propids = getProp(qid,pid) if not propids then return nil end local props = {} for i,prop in ipairs(propids) do table.insert(props, getId(prop)) end return props end function ff(qid,pid) local prop = getProp(qid,pid) if not prop then return "" end if not prop[1] then return "" end if not prop[1].mainsnak then return "" end if prop[1].mainsnak.snaktype ~= "value" then return "" end return mw.wikibase.formatValue(prop[1].mainsnak) end function onlyProps(props,pid,qid) local newprops = {} for i,prop in ipairs(props) do local id = getId(prop) table.insert(newprops, getId(prop)) end return newprops end function p._galleri(qid,pid,skaper,galleri) local bilder = allProps(qid,pid) if not bilder then -- local id = bilder[9] --return dump(mw.wikibase.getEntity(id)) or nil return "" end local args = { ["mode"]="slideshow" } local tekst = "" local sep = "" --local bilder = {} for i,bildet in ipairs(bilder) do -- table.insert(bilder, p.bilde(prop,"P18")) --tekst = tekst .. sep .. getId(prop) -- p.bilde(getId(prop),"P18") if bildet then -- return dump(mw.wikibase.getEntity(bildet)) end local entity = mw.wikibase.getEntity(bildet) local tittel = mw.wikibase.label(bildet) or "" --local P195 = getProp(bildet,"P195") local samling = ff(bildet,"P195") local aar = ff(bildet,"P571") local skaper = ff(bildet,"P170") local undertekst = tittel .."</br>" .. skaper .. " (" .. aar .. ")</br>" .. samling tekst = tekst .. sep .. "file:" .. p.bilde(bildet,"P18") .. "|" .. undertekst .. "\n" --sep = "</br>" end return mw.getCurrentFrame():extensionTag("gallery",tekst,args) -- tekst = tekst .. '</gallery>' -- return tekst -- return dump(props) end function p.galleri(frame) local qid = frame.args["qid"] or nil if qid == "" then qid = nil end local pid = frame.args["pid"] or nil local skaper = frame.args["skaper"] or nil local galleri = frame.args["galleri"] or nil return p._galleri(qid,pid,skaper,galleri) end -- formatOverskrift function p.blokk1(args) local qid = args["qid"] or nil if qid == "" then qid = nil end local max = tonumber(args["max"]) or nil local min = tonumber(args["min"]) or 0 local overskrift = args["overskrift"] or "" -- local kollaps = args["kollaps"] or nil local tekst = "" local num = 0 for i,rad in ipairs(args) do tekst = tekst .. rad num = num + 1 end local overskr = "" local coll1 = '<div class="mw-collapsible mw-collapsed">' local ostart = '<tr class="overskrift" valign="top"><td colspan="4">' local oend = '</td></tr>' local collcont = '<div class="mw-collapsible-content">' local collend = '</div></div>' if num >= min then return coll1 .. ostart .. overskrift .. oend .. collcont .. tekst .. collend -- if false and max and num>max then -- tekst = string.format([[ -- <div class="mw-collapsible mw-collapsed"> -- <div class="sentrert">%s oppføringer</div> -- <div class="mw-collapsible-content">%s</div> -- </div> -- ]], num, tekst) -- else -- overskr,ettersk = formatOverskrift (overskrift) -- end end local ettersk = formatOverskrift ("Slutt") return overskr .. tekst .. ettersk end function p.blokk(frame) local qid = frame.args["qid"] or nil if qid == "" then qid = nil end return p.blokk1(frame.args) end function p.rad(tittel,arg,metode) if arg and arg == "uten" then return "" end local value = "" if arg and arg ~= "" then return formatRad(tittel,arg) end return "" end function ibx(innhold,qid,arg) local value = "" local entity = mw.wikibase.getEntity(qid) for i,rad in ipairs(innhold) do local tittel = rad["tittel"] or "" local pid = rad["pid"] or nil local metode = rad["metode"] local param = rad["param"] if arg and arg[param] then value = value .. p.rad(tittel,arg[param],metode) else if metode == "single" then value = value .. p.singleValue(tittel,nil,qid,pid) end if metode == "bilde" then value = value .. p._bildeOgTekst(qid,pid) end end end return value end function td(verdi) return "<td>" .. verdi .. "</td>" end function tabellbilde(verdi) if verdi == "" then return "" end return "[[fil:" .. verdi .. "|100px]]" end function liste(qid,pid,elemenprops) local elementer = allProps(qid,pid) local list = "" if not elementer then -- local id = bilder[9] --return dump(mw.wikibase.getEntity(id)) or nil return "" end local args = { ["mode"]="slideshow" } local tekst = "<tr>" local sep = "" list = "<table class=\"wikitable\">" for i,element in ipairs(elementer) do local bilde = p.bilde(element,"P18") bilde = td(tabellbilde(bilde)) --local bilde = "<td>" .. p.bildeFraWikidata(element,"P18", "100px") .. "</td>" local navn = "<td>" .. formatValue(element, false, true) .. "</td>" -- mw.wikibase.formatValue(element) mw.wikibase.getLabel(element) list = list .. "<tr>" ..bilde .. navn .. "</tr>" end return list .. "</table>" end function r(qid) local p39 = getProp(qid,"P39") local value = "" for idx,claim in pairs(p39) do id = getId(claim) or nil if id and id =="Q9045502" then local periode = claim.qualifiers["P2937"] local parti = claim.qualifiers["P4100"] local krets = claim.qualifiers["P768"] --return dump(P2937) .. "<p><p>" .. value = value .. mw.wikibase.formatValue(claim.mainsnak) .. " " .. mw.wikibase.formatValue(periode[1]) .. " " .. mw.wikibase.formatValue(parti[1]) .. " " .. mw.wikibase.formatValue(krets[1]) .. " <p>" end end --prop[1].qualifiers --prop[1].qualifiers return value end function test2(frame) local value = "<table>" local args = { p.singleValue("[[vvv]]",nil,"Q1037","P1081"), p._bildeOgTekst("Q11993371", "P18", nil, nil, nil), p.singleValue("[[xxx]]",nil,"Q1037","P1081"), } args.overskrift = "start" value = value .. p._galleri("Q41406","P800") -- value = value .. p.blokk1(args) -- value = value .. p.singleValue("[[HDI]]",nil,"Q1037","P1081") -- value = value .. p.singleValue("Folketall",nil,"Q1037","P1082") --value = value .. p.singleValue("Areal",nil,"Q1037","P2046") -- value = value .. p.singleValue("Folketall",nil,"Q4044","P1082") -- value = value .. p.singleValue("Areal",nil,"Q4044","P2046") --value = value .. p.singleValue("latinsk navn","Universitas Osloensis (Universitas Regia Fredericiana)","Q486156",nil) --value = value .. p.singleValue("Kallenavn og forkortelser",nil,"Q486156","P1813") --value = value .. p.singleValue("Grunnlagt",nil,"Q486156","P571") --value = value .. p.singleValue("Type","universitet","Q486156",nil) --value = value .. p.singleValue("Rektor",nil,"Q486156","P1075") --value = value .. p.singleValue("Studenter",nil,"Q486156","P2196") --value = value .. p.singleValue("Ansatte",nil,"Q486156","P1128") -- value = value .. ibx(uni,"Q486156") -- value = value .. ibx(uni,"Q3436286") -- value = value .. ibx(uni,"Q161562") -- value = value .. ibx(uni,"Q662355") -- value = value .. ibx(uni,"Q131262") -- value = value .. ibx(museum,"Q1132918") -- value = value .. ibx(museum,"Q154996") return value .. "</table>" --return "Test 2 ikke i bruk" end function p.bildetest(frame) local t0 = "Parametre: qid, pid, bilde, bildetekst, byline" local t1 = "Q11993371, P18, nil, nil, nil</br>" .. p._bildeOgTekst("Q11993371", "P18", nil, nil, nil) local t2 = "Q11993371, P18, uten, nil, nil</br>" .. p._bildeOgTekst("Q11993371", "P18", "uten", nil, nil) local t3 = "Q11993371, P18, uten, bildetekst, nil</br>" .. p._bildeOgTekst("Q11993371", "P18", "uten", "bildetekst", nil) local t4 = "Q11993371, P18, nil, bildetekst, nil</br>" .. p._bildeOgTekst("Q11993371", "P18", nil, "bildetekst", nil) local t5 = "Q11993371, P18, -blank-, bildetekst, nil</br>" .. p._bildeOgTekst("Q11993371", "P18", "", "bildetekst", nil) local t6 = "Q11993371, P18, -blank-, bildetekst, byline</br>" .. p._bildeOgTekst("Q11993371", "P18", "", "bildetekst", "byline") local t7 = "Q11993371, P18, Olaf Kamfjord (cropped).jpg, bildetekst, byline</br>" .. p._bildeOgTekst("Q11993371", "P18", "Olaf Kamfjord (cropped).jpg", "bildetekst", "byline") local t8 = "Q36661, P18, nil, bildetekst, byline</br>" .. p._bildeOgTekst("Q36661", "P18", nil , "bildetekst", "byline") local t9 = "Q36661, P109, nil, bildetekst, byline</br>" .. p._bildeOgTekst("Q36661", "P109", nil , "bildetekst", "byline") return t0 .. "</br>" .. t1 .. "</br>" .. t2 .. "</br>" .. t3 .. "</br>" .. t4 .. "</br>" .. t5 .. "</br>" .. t6 .. "</br>" .. t7 .. "</br>" .. t8 .. "</br>" .. t9 .. "</br>" end function p.test1(frame) -- local prop = getProp("Q11993371","P18") -- return dump(prop[1].mainsnak) -- return dump(prop[2]) -- return dump(prop) -- return p.bildetest(frame) return "" end function p.test2a(frame) local p = {} local streng = "Noe rart bla bla bla\n{{ koord|2|3|vis=tittel}} '''Dette''' er en {{artikkel}}" local treff = streng:match("{{%s*[Kk]oord%s*|[^}]+}}") if treff and treff:find("tittel") then return "Vår kategori" else return "Ingenting" end return "Test 1 ikke i bruk" end function test2x(frame) return liste("Q108934475","P527","") end function p.test2(frame) return test2x(frame) -- local num = r("Q156553") -- return num end function p.testQ10855788P2048(frame) return p.singleValue("høyde","","Q10855788","P2048") --return liste("Q108934475","P527","") end function p.testQ824594P1082(frame) return p.singleValue("Befolkning","","Q824594","P1082") --return liste("Q108934475","P527","") end 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 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 "navn" local navn2 = args["navn2"] or nil value = ibxStart(typ, stor, navn, navn2) return value end function ibxSlutt(comcat,endcomment) return "</table>" end function p.ibxSlutt(frame) return ibxSlutt() end function p.bildeboks(frame) local args = mw.getCurrentFrame():getParent().args local qid = args["qid"] or nil if qid == "" then qid = nil end local tekst = "" local num = 0 for i,rad in ipairs(args) do tekst = tekst .. rad num = num + 1 end local pid = args["pid"] or "P18" local bilde = args["bilde"] or nil local bildetekst = args["bildetekst"] or nil local byline = args["byline"] or nil local pix = args["bildestørrelse"] or "290px" local overskrift = args["overskrift"] or mw.wikibase.label(qid) local alttekst = args["alttekst"] or "" local type = args["type"] or "biografi" local stor = args["stor"] or "bred" local b = "" if tekst == "" then for pd in mw.text.gsplit( pid, ',', true ) do b = b .. p._bildeOgTekst(qid, pd, bilde, bildetekst, byline, pix, nil,true) end end if b == "" and tekst == "" then return "" end local value = ibxStart(type,stor,overskrift,nil) value = value .. b .. tekst value = value .. p.ibxSlutt(frame) return value end function p.formatDuration(amount) local s = tonumber(amount) if s<60 then return amount .. " s" end local min = math.floor(s/60) local sec = s - min*60 return tostring(min) .. " min " .. sec .. " s" end function P2415(prop) if not prop or not prop.mainsnak then return "" end local snak = prop.mainsnak if snak.snaktype == "value" and snak.datatype == "quantity" then local tekst = "" local value = snak.datavalue.value or nil local quals = prop.qualifiers local qual = nil local qualval = "" local sep = "" if quals then qual = quals['P2416'] or quals['P641'] if qual then qualval = mw.wikibase.formatValues(qual) if qualval then sep = ", " end end qual = quals['P276'] if qual then qualval = qualval .. sep .. mw.wikibase.formatValues(qual) if qualval then sep = ", " end end qual = quals['P1013'] if qual then qualval = qualval .. sep .. mw.wikibase.formatValues(qual) if qualval then sep = ", " end end end tekst = " (" .. qualval .. ")" local refs = prop.references local ref = nil if refs then ref = refs[1] or nil end if ref then tekst = tekst .. refscore.render(mw.getCurrentFrame(),refs) --local attrs = { name = string.format( 'hash-%s', ref.hash ) } --tekst = tekst .. mw.getCurrentFrame():extensionTag( 'ref', reftxt, attrs ) end --local v = dump(snak) local val = mw.wikibase.formatValue(snak) local issek = string.match( val, "sekund") if issek then val = p.formatDuration(tonumber(value.amount)) end --local q = string.match( value.unit, "Q") --local qq = mw.wikibase.label(value.unit) -- return dump(snak) .. mw.language.getContentLanguage():formatDuration(tonumber(value.amount)) return val .. tekst -- .. " " .. v .. val -- .. " " .. qq end end function p._pers(qid) local entity = mw.wikibase.getEntity(qid) local props = entity:getBestStatements("P2415") local tekst = mw.wikibase.label(qid) .. "<br/>" -- dump(props) for i,prop in ipairs(props) do tekst = tekst .. P2415(prop) .. "<br/>" -- num = num + 1 end return tekst .. "<br/>" end function p.pers(frame) local args = mw.getCurrentFrame():getParent().args local value = "" local qid = args["qid"] or frame.args["qid"] or nil if qid == "" then qid = nil end return qid --.. p._pers(qid) end function p._persrad(pers,qid) if pers and pers == "uten" then return "" end local rad = "" if pers and pers ~= "" then rad = formatRad("Personlig rekord",pers) else rad = formatRad("Personlig<br/>rekord",p._pers(qid)) end return rad end function p.persrad(frame) local args = mw.getCurrentFrame():getParent().args local arg2 = frame.args local qid = args["qid"] or arg2["qid"] or nil if qid == "" then qid = nil end local pers = args["pers"] or nil return p._persrad(pers,qid) end function p.persboks(frame) local args = mw.getCurrentFrame():getParent().args local arg2 = frame.args local qid = args["qid"] or arg2["qid"] or nil if qid == "" then qid = nil end local tekst = "" local pid = args["pid"] or "P18" local overskrift = args["overskrift"] or mw.wikibase.label(qid) or "" local alttekst = args["alttekst"] or "" local type = args["type"] or "biografi" local stor = args["stor"] or "bred" local bilde = args["bilde"] or nil local bildetekst = args["bildetekst"] or nil local byline = args["byline"] or nil local pix = args["bildestørrelse"] or "290px" local b = "" b = b .. p.persrad(frame) if b == "" then return "" end local value = ibxStart(type,stor,overskrift,"[[d:" .. qid .. "]]") value = value .. formatDobbeltrad( p._bildeOgTekst(qid, pid, bilde, bildetekst, byline, pix, nil,true)) value = value .. b value = value .. p.ibxSlutt(frame) return value end function p.test2(frame) -- local prop = getProp("Q11993371","P18") -- return dump(prop[1].mainsnak) -- return dump(prop[2]) -- return dump(prop) -- return p.bildetest(frame) return p._pers("Q28057538") .. p._pers("Q1189") .. p._pers("Q273953") --.. p.pers("qid = Q273953") end function nettsted(prop) local val = nil if not prop.mainsnak then return "" end local value = mw.wikibase.formatValue(prop.mainsnak) if value and value ~= "" then local quals = prop.qualifiers local qual = nil if quals then return dump(quals) -- qual = quals[1] or nil end local refs = prop.references local ref = nil if refs then ref = refs[1] or nil end if ref then value = value .. refscore.render(mw.getCurrentFrame(),refs) end return formatRad(tittel,value) end return val end function p._nettsted(tittel,verdi,qid,pid) if verdi and verdi == "uten" then return "" end if verdi and verdi ~= "" then return formatRad(tittel,verdi) end if not pid then return "" end local props = allProps(qid,pid) if not props then -- local id = bilder[9] --return dump(mw.wikibase.getEntity(id)) or nil return "" end local sep = "" local value = "" for i,prop in ipairs(props) do local val = nettsted(prop) if val and val ~= "" then value = value .. sep .. val sep = "<br/>" end end return formatRad(tittel,value) --return value end function p.nettsted(frame) local args = mw.getCurrentFrame():getParent().args local arg2 = frame.args local qid = args["qid"] or arg2["qid"] or nil if qid == "" then qid = nil end local tekst = "" local num = 0 for i,rad in ipairs(args) do tekst = tekst .. rad num = num + 1 end local pid = arg2["pid"] or "P856" local verdi = arg2["nettsted"] or arg2["webside"] or yyy local tittel = arg2["tittel"] or "xxx" return p._formatEgenskaper(qid,pid) end return p
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Forhåndsvis en side som bruker denne malen
Mal som brukes på denne siden:
Modul:Sandkasse/haros/misc/dok
(
rediger
)
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Modul
Diskusjon
English
Visninger
Les
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon