Modul:WikidataBanediagram

Fra Wikisida.no
Sideversjon per 2. mar. 2015 kl. 16:16 av nb>Lucie Kaffee (WMDE) (change mw.wikibase.getEntitiy (deprecated) to mw.wikibase.getEntityObject)
(diff) ← Eldre sideversjon | Nåværende sideversjon (diff) | Nyere sideversjon → (diff)
Hopp til navigering Hopp til søk

Formål

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

Bruk

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