Modul:Småplanetnavigatør
Hopp til navigering
Hopp til søk
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