Modul:Småplanetnavigatør
Moduldokumentasjon
Formål[rediger kilde]
For bruk i artikler om småplaneter for å gi mulighet for navigering til forrige og neste småplanet.
Bruk[rediger kilde]
Malen {{Småplanetnavigatør}} har implementert denne modulen. Se malen dokumentasjon for bruk.
Eksempler[rediger kilde]
Eksempler på resultat kan sees i nederst i artiklene om asteroidene 2 Pallas og 10 Hygiea.
function hent(entity, property, var, i)
if var then
if property == 'P155' then
return '[[' .. var .. '|◄ ' .. var .. ']] | '
else
return '| [[' .. var .. '|' .. var .. ' ►]]'
end
end
if not entity or not entity.claims or not entity.claims[property] or not entity.claims[property][i] then
return ''
end
local j = entity.claims[property][i]
if j.mainsnak.snaktype == 'value' then
var = 'Q' .. tostring(j.mainsnak.datavalue.value['numeric-id'])
local label = mw.wikibase.label(var)
if not label then
label = 'n/a'
end
local sitelink = mw.wikibase.sitelink(var)
if not sitelink then
if property == 'P155' then
return '◄ ' .. label .. ' | '
else
return '| ' .. label .. ' ►'
end
else
if property == 'P155' then
return '[[' .. sitelink .. '|◄ ' .. label .. ']] | '
else
return '| [[' .. sitelink .. '|' .. label .. ' ►]]'
end
end
end
return var
end
local p = {}
function p.nav(frame)
local r = ''
local pFrame = frame:getParent()
local args = pFrame.args
local entity = mw.wikibase.getEntityObject()
local titel = mw.title.getCurrentTitle().text
local entitylabel = nil
if entity then
entitylabel = entity:getLabel()
end
local na = 0
local nb = 0
if entity and entity.claims and entity.claims.P155 then
na = #entity.claims.P155
else
na = 0
end
if entity and entity.claims and entity.claims.P156 then
nb = #entity.claims.P156
else
nb = 0
end
local nm = na
if nb > nm then
nm = nb
end
local an = 1
while an <= nm or an <= 1 do
local var = nil
if an == 1 then
var = args['forrige']
end
local r2 = mw.text.tag('td', {align="right"}, mw.text.tag( 'b' , {},hent(entity, 'P155', var, an)))
if an == 1 then
if nm > 1 then
r2 = r2 ..' ' .. mw.text.tag('td', { rowspan = tostring(nm) }, mw.text.tag( 'b' , {}, (args.namn or titel) )) .. ' '
else
r2 = r2 ..' ' .. mw.text.tag('td', {}, mw.text.tag( 'b' , {}, (args.namn or entitylabel or titel) )) .. ' '
end
end
local var2 = nil
if an == 1 then
var2 = args['neste']
end
r2 = r2 .. mw.text.tag('td', {}, mw.text.tag( 'b' , {}, hent(entity, 'P156', var2, an)))
r = r .. mw.text.tag('tr', {}, r2 )
an = an + 1
end
return mw.text.tag( 'table', {align="center"}, r)
end
function p.topp(frame)
local r = 'Asteroider'
local entity = mw.wikibase.getEntityObject()
if not entity or not entity.claims or not entity.claims.P31 then
return r
end
for i, j in pairs(entity.claims.P31) do
if j.mainsnak.snaktype == 'value' then
local var = 'Q' .. tostring(j.mainsnak.datavalue.value['numeric-id'])
local label = mw.wikibase.label(var)
if label == 'fjerntliggende småplaneter' then
return 'Småplaneter'
end
end
end
return r
end
function p.list(frame)
local r = '*[[Jordnære objekt]]\n*[[Asteroide]]\n*[[Asteroidebeltet]]\n*[[Trojansk objekt|Trojaner]]\n*[[Damokloide]]\n*[[Kentaurer]]\n*[[Kuiperbeltet]]'
local entity = mw.wikibase.getEntityObject()
if not entity or not entity.claims or not entity.claims.P31 then
return r
end
for i, j in pairs(entity.claims.P31) do
if j.mainsnak.snaktype == 'value' then
local var = 'Q' .. tostring(j.mainsnak.datavalue.value['numeric-id'])
local label = mw.wikibase.label(var)
if label == 'fjerntliggende småplaneter' then
return '[[Transneptunsk objekt|TNO]]\n*[[Resonante transneptunske objekt]]\n*[[Den spredte skiven|SDO]]\n*[[E-SDO]]\n*[[Cubewano]]r\n*[[Kentaurer]]\n*[[Asteroider]]'
end
end
end
return r
end
return p