Modul:WikidataBanediagram

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon

Formål[rediger kilde]

Hvis Wikidata har definert et banediagram leveres det bildet tilbake dersom det ikke er gitt et banediagram med som argument

Bruk[rediger kilde]

Modulen brukes ved å legge inn : {{#invoke:WikidataBanediagram|banediagram}} i en mal. Malen {{Banediagram fra Wikidata}} har implementert dette.

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

-- Return bilde til artikkelen
function p.wikidatabanediagram(frame)
    if not mw.wikibase then
        return ""
    end
    local artikkel = mw.wikibase.getEntityObject()
    if not artikkel then
        return ""
    end
    local claims = artikkel.claims
    if not claims then
        return ""
    end
    local p491 = claims.P491
    if not p491 then
        return ""
    end

    return p491[1].mainsnak.datavalue.value
end

function p.framebanediagram(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['banediagram'] then
        return args['banediagram']
     end
     return ""
end

function p.velgbanediagram(frame)
    local symbol = p.framebanediagram(frame)
    if banediagram then
        if banediagram == "" then
--            return ""
        else
           return banediagram
        end
    else
        return ""
    end

    return p.wikidatabanediagram(frame)
end
 
function p.sammenlignbanediagram(frame)
    local fraframe = p.framebanediagram(frame)
    local frawikidata = p.wikidatabanediagram(frame)
    if fraframe == frawikidata then
        if fraframe == "" then
            return ""
        else
            return "[[Kategori:Artikler hvor banediagram er samme som på Wikidata]]"
        end
    else
        if frawikidata == "" then
            return "[[Kategori:Artikler hvor banediagram mangler på Wikidata]]"
        end
        if fraframe == "" then
            return "[[Kategori:Artikler uten banediagram i infoboks med banediagram på Wikidata]]"
        end
        return "[[Kategori:Artikler med banediagram forskjellig fra Wikidata]]"
    end
end

return p