Modul:WikidataBilde: Forskjell mellom sideversjoner
6 sideversjoner ble importert fra nn:Modul:WikidataBilde |
ruller tilbake til versjon av Haros fra 1. des. 2023 kl. 09:36 . NN-versjonen lager masse feilmeldinger |
||
| Linje 15: | Linje 15: | ||
local kategori = {[5] = "biografi" } | local kategori = {[5] = "biografi" } | ||
local resten = "[[Kategori: | local resten = "[[Kategori:Artikler hvor bilde er hentet fra Wikidata]]" | ||
function getProp(qid,pid) | function getProp(qid,pid) | ||
| Linje 51: | Linje 51: | ||
if value["entity-type"] == "item" then | if value["entity-type"] == "item" then | ||
if kategori[value["numeric-id"]] then | if kategori[value["numeric-id"]] then | ||
return "[[Kategori: | return "[[Kategori:Artikler hvor bilde er hentet fra Wikidata – " .. kategori[value["numeric-id"]] .. "]]" | ||
end | end | ||
end | end | ||
| Linje 64: | Linje 64: | ||
end | end | ||
-- Return | -- Return bilde til artikkelen | ||
function p. | function p.wikidatabilde(frame) | ||
if not mw.wikibase then | if not mw.wikibase then | ||
return "" | return "" | ||
end | end | ||
local pid = frame.args["pid"] or nil | |||
if not pid then pid = "P18" end | |||
local artikkel = mw.wikibase.getEntityObject() | local artikkel = mw.wikibase.getEntityObject() | ||
if not artikkel then | if not artikkel then | ||
return "" | return "" | ||
end | end | ||
local claims = artikkel:getBestStatements( | local claims = artikkel:getBestStatements( pid ) | ||
if not claims then | if not claims then | ||
return "" | return "" | ||
| Linje 95: | Linje 97: | ||
end | end | ||
function p. | function p.framebilde(frame) | ||
local args = frame.args | local args = frame.args | ||
if args[1] == nil then | if args[1] == nil then | ||
| Linje 104: | Linje 106: | ||
end | end | ||
end | end | ||
if args[' | if args['bilde'] then | ||
return args[' | return args['bilde'] | ||
end | end | ||
return "" | return "" | ||
| Linje 125: | Linje 127: | ||
end | end | ||
function p. | function p.velgbilde(frame) | ||
local | local bilde = p.framebilde(frame) | ||
if | if bilde then | ||
if | if bilde == "" then | ||
-- return "" | -- return "" | ||
elseif | elseif bilde == "uten" then | ||
return "" | return "" | ||
else | else | ||
return | return bilde | ||
end | end | ||
else | else | ||
return "" | return "" | ||
end | end | ||
local frawikidata = p. | local frawikidata = p.wikidatabilde(frame) | ||
local framekart = p.framekart(frame) | local framekart = p.framekart(frame) | ||
if framekart == frawikidata then | if framekart == frawikidata then | ||
| Linje 147: | Linje 149: | ||
end | end | ||
function p. | function p.bildetekst(frame) | ||
if not mw.wikibase then | if not mw.wikibase then | ||
| Linje 173: | Linje 175: | ||
if wdcaptions then | if wdcaptions then | ||
for k, l in pairs(wdcaptions) do | for k, l in pairs(wdcaptions) do | ||
if l.datavalue.value and l.datavalue.value.text and l.datavalue.value.language == ' | if l.datavalue.value and l.datavalue.value.text and l.datavalue.value.language == 'nb' then | ||
return l.datavalue.value.text | return l.datavalue.value.text | ||
end | end | ||
| Linje 230: | Linje 232: | ||
end | end | ||
function p. | function p.finnesbildeiartikkel(frame) | ||
local innhold = mw.title.getCurrentTitle():getContent() or '' | local innhold = mw.title.getCurrentTitle():getContent() or '' | ||
local frawikidata = p. | local frawikidata = p.wikidatabilde(frame):gsub("[%-%+%*%?%^%%%(%)]", "%%%0") -- Erstatter visse spesialtegn (spesialtegn for Lua) med escapede versjoner av samme spesialtegn | ||
frawikidata = frawikidata:gsub("[_ ]", "[_ ]") -- Erstatter understrek eller mellomrom med mønsteret [_ ], så søket nedenfor finner begge varianter | frawikidata = frawikidata:gsub("[_ ]", "[_ ]") -- Erstatter understrek eller mellomrom med mønsteret [_ ], så søket nedenfor finner begge varianter | ||
if innhold:find(":" .. frawikidata) then | if innhold:find(":" .. frawikidata) then | ||
return "[[Kategori: | return "[[Kategori:Artikler hvor bilde fra Wikidata også brukes utenfor infoboks]]" | ||
else | else | ||
return "" | return "" | ||
| Linje 241: | Linje 243: | ||
end | end | ||
function p. | function p.sammenlignbilde(frame) | ||
local fraframe = p. | local fraframe = p.framebilde(frame) | ||
local frawikidata = p. | local frawikidata = p.wikidatabilde(frame) | ||
if fraframe == frawikidata then | if fraframe == frawikidata then | ||
if fraframe == "" then | if fraframe == "" then | ||
return "" | return "" | ||
else | else | ||
return "[[Kategori: | return "[[Kategori:Artikler hvor bilde er samme som på Wikidata]]" | ||
end | end | ||
else | else | ||
if frawikidata == "" then | if frawikidata == "" then | ||
return "[[Kategori: | return "[[Kategori:Artikler hvor bilde mangler på Wikidata]]" | ||
end | end | ||
if fraframe == "" then | if fraframe == "" then | ||
return "[[Kategori: | return "[[Kategori:Artikler uten bilde i infoboks med bilde på Wikidata]]" | ||
end | end | ||
return "[[Kategori: | return "[[Kategori:Artikler med bilde forskjellig fra Wikidata]]" | ||
end | end | ||
end | end | ||
function p.sammenlignMedWikidataValgtBilde(frame) | function p.sammenlignMedWikidataValgtBilde(frame) | ||
local fraframe = p. | local fraframe = p.framebilde(frame) | ||
local frawikidata = p. | local frawikidata = p.wikidatabilde(frame) | ||
local framekart = p.framekart(frame) | local framekart = p.framekart(frame) | ||
local | local finnesbildeiartikkel = p.finnesbildeiartikkel(frame) | ||
if fraframe == frawikidata then | if fraframe == frawikidata then | ||
if fraframe == "" then | if fraframe == "" then | ||
| Linje 274: | Linje 276: | ||
else | else | ||
if frawikidata == "" then | if frawikidata == "" then | ||
return "[[Kategori: | return "[[Kategori:Artikler hvor bilde mangler på Wikidata]]" | ||
end | end | ||
if framekart == frawikidata then | if framekart == frawikidata then | ||
return "[[Kategori: | return "[[Kategori:Artikler hvor kart er samme som bilde på Wikidata]]" | ||
end | end | ||
if fraframe == "" then | if fraframe == "" then | ||
return finnKategori(frame) .. | return finnKategori(frame) .. finnesbildeiartikkel | ||
end | end | ||
return "[[Kategori: | return "[[Kategori:Artikler med bilde forskjellig fra Wikidata]]" | ||
end | end | ||
end | end | ||
function | function bilde(snak) | ||
assert ( snak ) | assert ( snak ) | ||
| Linje 312: | Linje 314: | ||
end | end | ||
function | function formatBilderad(value) | ||
return string.format([[ | return string.format([[ | ||
<tr class=" | <tr class="bilde" valign="top"><td colspan="4" class="sentrert">%s</td></tr> | ||
]], value) | ]], value) | ||
end | end | ||
function p. | function p.bilde(qid,pid) | ||
local prop = getProp(qid,pid) | local prop = getProp(qid,pid) | ||
if not prop or not prop[1] or not prop[1].mainsnak then | if not prop or not prop[1] or not prop[1].mainsnak then | ||
return "" | return "" | ||
end | end | ||
return | return bilde(prop[1].mainsnak) | ||
end | end | ||
function | function bildetekst(qualifier) | ||
local P2096 = nil | local P2096 = nil | ||
if qualifier then | if qualifier then | ||
| Linje 333: | Linje 335: | ||
if P2096 then | if P2096 then | ||
for k, l in pairs(P2096) do | for k, l in pairs(P2096) do | ||
if l.datavalue and l.datavalue.value and l.datavalue.value.text and l.datavalue.value.language == ' | if l.datavalue and l.datavalue.value and l.datavalue.value.text and l.datavalue.value.language == 'nb' then | ||
return l.datavalue.value.text | return l.datavalue.value.text | ||
end | end | ||
| Linje 349: | Linje 351: | ||
for k, l in pairs(P2093) do | for k, l in pairs(P2093) do | ||
if l.datavalue and l.datavalue.value then | if l.datavalue and l.datavalue.value then | ||
return " | return "Foto: " .. l.datavalue.value | ||
end | end | ||
end | end | ||
| Linje 356: | Linje 358: | ||
end | end | ||
function | function fmtBilde(bilde,bildetekst,byline,size, alttekst) | ||
local tekst = "" | local tekst = "" | ||
local pix = size or "" | local pix = size or "" | ||
| Linje 363: | Linje 365: | ||
alt = "|alt=" .. alttekst | alt = "|alt=" .. alttekst | ||
end | end | ||
if | if bilde then | ||
tekst = "[[fil:" .. -- mw.wikibase.formatValue(snak) | tekst = "[[fil:" .. -- mw.wikibase.formatValue(snak) | ||
bilde .. "|center|" .. pix .. "|frameless" .. alt .."]]" | |||
end | end | ||
if | if bildetekst or byline then | ||
tekst = tekst .. '<div class="thumbcaption | tekst = tekst .. '<div class="thumbcaption">' | ||
end | end | ||
if | if bildetekst then | ||
tekst = tekst .. | tekst = tekst .. bildetekst | ||
end | end | ||
if byline then | if byline then | ||
tekst = tekst .. '<div class=" | tekst = tekst .. mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Byline/stil.css' } } .. '<div class="byline">' .. byline .. "</div>" | ||
end | end | ||
if | if bildetekst or byline then | ||
tekst = tekst .. '</div>' | tekst = tekst .. '</div>' | ||
end | end | ||
tekst = | tekst = formatBilderad(tekst) | ||
return tekst | return tekst | ||
end | end | ||
function p. | function p.bildeFraWikidata(qid,pid, pix, alttekst) | ||
local prop = getProp(qid,pid) | local prop = getProp(qid,pid) | ||
if not prop then | if not prop then | ||
| Linje 394: | Linje 396: | ||
return "" | return "" | ||
end | end | ||
local | local bildet = bilde(prop[1].mainsnak) | ||
local | local bildeteksten = bildetekst(prop[1].qualifiers) | ||
local byline = byline(prop[1].qualifiers) | local byline = byline(prop[1].qualifiers) | ||
return | return fmtBilde(bildet,bildeteksten,byline, pix, alttekst) | ||
end | end | ||
function p. | function p._bildeOgTekst(qid, pid, bilde, bildetekst, byline, pix, alttekst, overskrift) | ||
if | if bilde and bilde == "uten" then | ||
return "" | return "" | ||
end | end | ||
| Linje 409: | Linje 411: | ||
overskriftRad,avslutning = formatOverskrift(overskrift) | overskriftRad,avslutning = formatOverskrift(overskrift) | ||
end | end | ||
local | local bilderad = "" | ||
if | if bilde and bilde ~= "" then | ||
bilderad = fmtBilde(bilde,bildetekst,byline, pix, alttekst) | |||
else | else | ||
bilderad = p.bildeFraWikidata(qid, pid, pix, alttekst) | |||
end | end | ||
if | if bilderad ~= "" then | ||
return overskriftRad .. | return overskriftRad .. bilderad .. avslutning | ||
end | end | ||
return "" | return "" | ||
end | end | ||
function p. | function p.bildeOgTekst(frame) | ||
local qid = frame.args["qid"] or nil | local qid = frame.args["qid"] or nil | ||
if qid == "" then | if qid == "" then | ||
| Linje 427: | Linje 429: | ||
end | end | ||
local pid = frame.args["pid"] or nil | local pid = frame.args["pid"] or nil | ||
local | local bilde = frame.args["bilde"] or nil | ||
local | local bildetekst = frame.args["bildetekst"] or nil | ||
local byline = frame.args["byline"] or nil | local byline = frame.args["byline"] or nil | ||
local pix = frame.args[" | local pix = frame.args["bildestørrelse"] or "" | ||
local overskrift = frame.args["overskrift"] or "" | local overskrift = frame.args["overskrift"] or "" | ||
local alttekst = frame.args["alttekst"] or "" | local alttekst = frame.args["alttekst"] or "" | ||
return p. | return p._bildeOgTekst(qid, pid, bilde, bildetekst, byline, pix, alttekst, overskrift) | ||
end | end | ||
return p | return p | ||
Sideversjonen fra 26. feb. 2025 kl. 12:41
Formål
Hvis Wikidata har definert et bilde leveres det bildet tilbake dersom det ikke er gitt et bilde med som argument.
Det er mulig å spesifisere at det ikke skal være noe bilde selv om Wikidata skulle ha et bilde ved å gi bilde som uten.
Bruk
Modulen brukes ved å legge inn : {{#invoke:WikidataBilde|velgbilde}} i en mal. Malen {{Bilde fra Wikidata}} har implementert dette. Dette gjøres best ved å legge inn bilde={{Bilde fra Wikidata|{{{bilde|}}}}} inn i en mal som kan ha bilde. For at artiklene skal kategoriseres med de skjulte kategoriene Kategori:Artikler hvor bilde er hentet fra Wikidata, Kategori:Artikler hvor bilde mangler på Wikidata, Kategori:Artikler med bilde forskjellig fra Wikidata og Kategori:Artikler hvor bilde fra Wikidata også brukes utenfor infoboks må det i slutten av malen for infoboks også legges inn en {{#invoke:WikidataBilde|sammenlignMedWikidataValgtBilde|bilde={{{bilde|}}}}}. Legg dette etter slutten av selve infoboksen.
Det er også mulig å bare teste for bilder fra Wikidata ved å legge inn {{#invoke:WikidataBilde|sammenlignbilde|bilde={{{bilde|}}}}} i slutten av malen. Dette passer også best inn etter slutten av selve infoboksen. Her vil en Kategori:Artikler hvor bilde er samme som på Wikidata kunne bli lagt inn.
Metoden WikidataBilde|bildeOgTekst lager en infoboks rad med bilde, bildetekst og byline som enten er gitt til metoden som argument, eller bilde og bildetekst fra Wikidata. Den metoden kan hente alle former for commonsmedia gitt egenskaps-id.
Parametre:
- bilde – filnavnet på en fil på commons, uten eller blank
- bildetekst – bildetekst som tilhører det gitte filnavnet. Ignoreres hvis filnavn ikke er gitt.
- byline – navn på den som har laget bildet.
- pid – egenskaps id som skal hente bilde. Eksempler: P18 for vanlig bilde, P154 for logo, P990 for lydavspiller for stemme.
- qid – wikidata-element hvor dette eventuelt skal hentes fra hvis det ikke er fra samme side.
- pix – bildestørrelse, f.eks. 250px
- overskrift – tekst som vil bli overskrift på raden over bildet. Raden lages bare hvis overskriften har verdi og raden med bilde også lages. Denne kan enten brukes slik at den alltid er bestemt av infoboksen eller slik at den også kan overstyres fra artikkelen.
Hvis det er gitt bilde=uten, vil det ikke bli noen rad for bildet. Hvis det er gitt et feil filnavn, vil dette ikke oppdages og innholdet vil bli feil. Hvis argumentet er blankt eller utelatt, vil bilde hentes fra Wikidata, da basert på argumentet pid.
Hvis det finnes en kvalifikator bildetekst med språk nb tilhørende dette bildet, vil den teksten bli brukt som bildetekst. Foreløpig hentes ikke byline, men når det blir mulig å spørre commons, kan det bli aktuelt å hente fotograf derfra.
Bruk: : {{#invoke:WikidataBilde|bildeOgTekst|bilde={{{bilde|}}}|bildetekst ={{{bildetekst|}}}|byline={{{byline|}}}|pid=P18|qid={{{qid|}}}|bildestørrelse={{{bildestørrelse|}}}|overskrift={{{overskrift|en normal overskrift for denne typen bilde}}} }}
local p = {}
function dump( out )
if type( out ) == 'table' then
local s = '{ '
for k,v in pairs( out ) do
if type( k ) ~= 'number' then k = '"'..k..'"' end
s = s .. '['..k..'] = ' .. dump( v ) .. ','
end
return s .. '} '
else
return tostring( out )
end
end
local kategori = {[5] = "biografi" }
local resten = "[[Kategori:Artikler hvor bilde er hentet fra Wikidata]]"
function getProp(qid,pid)
local entity = mw.wikibase.getEntity(qid)
if not entity then
return {}
end
return entity:getBestStatements(pid)
end
function finnKategori(frame)
if not mw.wikibase then
return resten
end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
return resten
end
local claims = artikkel:getBestStatements( 'P31' )
if not claims then
return resten
end
for _,v in ipairs( claims ) do
if v.type == 'statement' then
local snak = v.mainsnak
if snak.snaktype == 'value' then
if snak.datatype == 'wikibase-item' then
local data = snak.datavalue
if data.type == 'wikibase-entityid' then
local value = data.value
if value["entity-type"] == "item" then
if kategori[value["numeric-id"]] then
return "[[Kategori:Artikler hvor bilde er hentet fra Wikidata – " .. kategori[value["numeric-id"]] .. "]]"
end
end
end
end
end
end
end
-- failed to find correct type
return resten
end
-- Return bilde til artikkelen
function p.wikidatabilde(frame)
if not mw.wikibase then
return ""
end
local pid = frame.args["pid"] or nil
if not pid then pid = "P18" end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
return ""
end
local claims = artikkel:getBestStatements( pid )
if not claims then
return ""
end
for _,v in ipairs( claims ) do
if v.type == 'statement' then
local snak = v.mainsnak
if snak.snaktype == 'value' then
if snak.datatype == 'commonsMedia' then
local data = snak.datavalue
if data.type == 'string' then
return data.value
end
end
end
end
end
-- failed to find correct type
return ""
end
function p.framebilde(frame)
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
if args['bilde'] then
return args['bilde']
end
return ""
end
function p.framekart(frame)
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
if args['kart'] then
return args['kart']
end
return ""
end
function p.velgbilde(frame)
local bilde = p.framebilde(frame)
if bilde then
if bilde == "" then
-- return ""
elseif bilde == "uten" then
return ""
else
return bilde
end
else
return ""
end
local frawikidata = p.wikidatabilde(frame)
local framekart = p.framekart(frame)
if framekart == frawikidata then
return ""
end
return frawikidata
end
function p.bildetekst(frame)
if not mw.wikibase then
return ''
end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
return ''
end
local claims = artikkel:getBestStatements( 'P18' )
if not claims then
return ''
end
for _,v in ipairs( claims ) do
if v.type == 'statement' then
local snak = v.mainsnak
if snak.snaktype == 'value' then
if snak.datatype == 'commonsMedia' then
local data = snak.datavalue
if data.type == 'string' then
local q = v.qualifiers
if q then
wdcaptions = q['P2096']
end
if wdcaptions then
for k, l in pairs(wdcaptions) 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
end
end
end
end
end
-- failed to find correct type
return ''
end
function p.byline(frame)
if not mw.wikibase then
return ''
end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
return ''
end
local claims = artikkel:getBestStatements( 'P18' )
if not claims then
return ''
end
for _,v in ipairs( claims ) do
if v.type == 'statement' then
local snak = v.mainsnak
if snak.snaktype == 'value' then
if snak.datatype == 'commonsMedia' then
local data = snak.datavalue
if data.type == 'string' then
local q = v.qualifiers
if q then
wdcaptions = q['P2093']
end
if wdcaptions then
for k, l in pairs(wdcaptions) do
if l.datavalue.value and l.datavalue.value.text then
return l.datavalue.value.text
end
end
end
end
end
end
end
end
-- failed to find correct type
return ''
end
function p.finnesbildeiartikkel(frame)
local innhold = mw.title.getCurrentTitle():getContent() or ''
local frawikidata = p.wikidatabilde(frame):gsub("[%-%+%*%?%^%%%(%)]", "%%%0") -- Erstatter visse spesialtegn (spesialtegn for Lua) med escapede versjoner av samme spesialtegn
frawikidata = frawikidata:gsub("[_ ]", "[_ ]") -- Erstatter understrek eller mellomrom med mønsteret [_ ], så søket nedenfor finner begge varianter
if innhold:find(":" .. frawikidata) then
return "[[Kategori:Artikler hvor bilde fra Wikidata også brukes utenfor infoboks]]"
else
return ""
end
end
function p.sammenlignbilde(frame)
local fraframe = p.framebilde(frame)
local frawikidata = p.wikidatabilde(frame)
if fraframe == frawikidata then
if fraframe == "" then
return ""
else
return "[[Kategori:Artikler hvor bilde er samme som på Wikidata]]"
end
else
if frawikidata == "" then
return "[[Kategori:Artikler hvor bilde mangler på Wikidata]]"
end
if fraframe == "" then
return "[[Kategori:Artikler uten bilde i infoboks med bilde på Wikidata]]"
end
return "[[Kategori:Artikler med bilde forskjellig fra Wikidata]]"
end
end
function p.sammenlignMedWikidataValgtBilde(frame)
local fraframe = p.framebilde(frame)
local frawikidata = p.wikidatabilde(frame)
local framekart = p.framekart(frame)
local finnesbildeiartikkel = p.finnesbildeiartikkel(frame)
if fraframe == frawikidata then
if fraframe == "" then
return ""
else
return
end
else
if frawikidata == "" then
return "[[Kategori:Artikler hvor bilde mangler på Wikidata]]"
end
if framekart == frawikidata then
return "[[Kategori:Artikler hvor kart er samme som bilde på Wikidata]]"
end
if fraframe == "" then
return finnKategori(frame) .. finnesbildeiartikkel
end
return "[[Kategori:Artikler med bilde forskjellig fra Wikidata]]"
end
end
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)
local P2096 = nil
if qualifier then
P2096 = qualifier['P2096']
end
if P2096 then
for k, l in pairs(P2096) do
if l.datavalue and l.datavalue.value and l.datavalue.value.text and l.datavalue.value.language == 'nb' then
return l.datavalue.value.text
end
end
end
return nil
end
function byline(qualifier)
local P2093 = nil
if qualifier then
P2093 = qualifier['P2093']
end
if P2093 then
for k, l in pairs(P2093) do
if l.datavalue and l.datavalue.value then
return "Foto: " .. l.datavalue.value
end
end
end
return nil
end
function fmtBilde(bilde,bildetekst,byline,size, alttekst)
local tekst = ""
local pix = size or ""
local alt = ""
if alttekst and alttekst ~= "" then
alt = "|alt=" .. alttekst
end
if bilde then
tekst = "[[fil:" .. -- mw.wikibase.formatValue(snak)
bilde .. "|center|" .. pix .. "|frameless" .. alt .."]]"
end
if bildetekst or byline then
tekst = tekst .. '<div class="thumbcaption">'
end
if bildetekst then
tekst = tekst .. bildetekst
end
if byline then
tekst = tekst .. mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Byline/stil.css' } } .. '<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, alttekst)
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)
local byline = byline(prop[1].qualifiers)
return fmtBilde(bildet,bildeteksten,byline, pix, alttekst)
end
function p._bildeOgTekst(qid, pid, bilde, bildetekst, byline, pix, alttekst, overskrift)
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, alttekst)
else
bilderad = p.bildeFraWikidata(qid, pid, pix, alttekst)
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 ""
local alttekst = frame.args["alttekst"] or ""
return p._bildeOgTekst(qid, pid, bilde, bildetekst, byline, pix, alttekst, overskrift)
end
return p