Modul:External links: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
(debugging) |
(+genitiv) |
||
Linje 4: | Linje 4: | ||
local conf = {} |
local conf = {} |
||
local function getLabel(entity) |
local function getLabel(entity, use_genitiv) |
||
if not entity then |
if not entity then |
||
label = mw.title.getCurrentTitle().text |
label = mw.title.getCurrentTitle().text |
||
else |
else |
||
label = mw.wikibase.label(entity.id) or mw.title.getCurrentTitle().text |
label = mw.wikibase.label(entity.id) or mw.title.getCurrentTitle().text |
||
return genitiv(label) |
return use_genitiv and genitiv(label) or label |
||
end |
end |
||
end |
end |
||
Linje 50: | Linje 50: | ||
if claims then |
if claims then |
||
local conf_claims = conf:getConfiguredClaims(contLang:getCode()) |
local conf_claims = conf:getConfiguredClaims(contLang:getCode()) |
||
mw.log( |
mw.log(dump(conf_claims)) |
||
for prop, v in pairs(conf_claims) do |
for prop, v in pairs(conf_claims) do |
||
local _, _, ch, num= prop:find("([pP])(%d+)") |
local _, _, ch, num= prop:find("([pP])(%d+)") |
||
Linje 57: | Linje 57: | ||
if formaturlp and formaturlp[1] and formaturlp[1].mainsnak.datavalue then |
if formaturlp and formaturlp[1] and formaturlp[1].mainsnak.datavalue then |
||
local formaturl = formaturlp[1].mainsnak.datavalue.value |
local formaturl = formaturlp[1].mainsnak.datavalue.value |
||
output[#output+1] = "* " .. (v.langcode and frame:expandTemplate{ title="Språkikon", args = { v.langcode } } .. " " or "") .. mw.message.newRawMessage(v.message, getLabel(entity), mw.message.newRawMessage(formaturl, claims[prop][1].mainsnak.datavalue.value):plain()):plain() |
output[#output+1] = "* " .. (v.langcode and frame:expandTemplate{ title="Språkikon", args = { v.langcode } } .. " " or "") .. mw.message.newRawMessage(v.message, getLabel(entity, v.genitiv), mw.message.newRawMessage(formaturl, claims[prop][1].mainsnak.datavalue.value):plain()):plain() |
||
end |
end |
||
end |
end |
Sideversjonen fra 28. mar. 2016 kl. 19:49
Modulen "External links" inneholder følgende metoder som er ment brukt via maler
- getLinks
- Henter eksterne lenker fra Wikidata i henhold til en konfigurasjonsfil
- Funksjonen har noen få felles standard-parametre som kan benyttes
conf
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=...}}
- Den vil da returnere en rekke formaterte lenker til eksterne sider i henhold til en konfigurasjon som ligger som undersider av denne modulen.
- Følgende konfigurasjoner er tilgjengelige
-
Arter
- Artslenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Arter}}
. Se {{Artslenker}} for eksempel på bruk.Astronomi
- Astronomi, Kalles opp slik:{{#invoke:External links|getLinks|conf=Astronomi}}
. Se {{Astronomilenker}} for eksempel på bruk.Autoritetsdata
- Autoritetsdata, Kalles opp slik:{{#invoke:External links|getLinks|conf=Autoritetsdata}}
. Se {{Autoritetsdata}} for eksempel på bruk.Bryggeri
- Bryggerilenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Bryggeri}}
. Se {{Bryggerilenker}} for eksempel på bruk.Film
- Filmlenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Film}}
. Se {{Filmlenker}} for eksempel på bruk.Filmperson
- Filmpersonlenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Filmperson}}
. Se {{Filmperson}} for eksempel på bruk.Musikk
- Musikklenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Musikk}}
. Se {{Musikklenker}} for eksempel på bruk.Offisielle lenker
- Offisielle lenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Offisielle lenker}}
. Se {{Offisielle lenker}} for eksempel på bruk.Politiker
- Politiker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Politiker}}
. Se {{Politiker}} for eksempel på bruk.Some
- Sosiale medie-lenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Some}}
. Se {{Somelenker}} for eksempel på bruk.Spill
- Spill-lenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Spill}}
. Se {{Spill-lenker}} for eksempel på bruk.Sport
- Sportslenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Sport}}
. Se {{Sportslenker}} for eksempel på bruk.Skip
- Skipslenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Skip}}
. Se {{Skipslenker}} for eksempel på bruk.Forsker
- Forskerlenker, Kalles opp slik:{{#invoke:External links|getLinks|conf=Forsker}}
. Se {{Forskerlenker}} for eksempel på bruk.Test
- For testing av nye typer og utvikling, Kalles opp slik:{{#invoke:External links|getLinks|conf=Test}}
. Skal ikke benyttes i produksjon.
- Funksjonen kalles opp slik:
tittel
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|tittel=...}}
- Denne parameteren kan overstyre artikkelnavnet som benyttes videre i modulen. Hvis dette ikke er satt, vil den som standard bruke sidenavnet til artikkelen.
- Funksjonen kalles opp slik:
maxlink
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|maxlink=...}}
- Denne parameteren setter maksimum antall lenker som vises frem. Standardverdien er satt til 10.
- Funksjonen kalles opp slik:
prop
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|prop=<egenskap>,<egenskap2>,...}}
- Denne parameteren setter en begrensning på hvilke egenskaper som skal vises frem. De skilles av med et komma, mellomrom, semikolon eller kolon. Dersom egenskapen starter med et minus-tegn (
-
), f.eks.-P345
, så vil alle egenskaper, unntatt den som er angitt forsøkes vist frem. Det er mulig å legge inn flere av disse.
- Funksjonen kalles opp slik:
kort
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|kort=1}}
- Denne parameteren bestemmer om kort-versjonen av lenkene skal benyttes.
- Funksjonen kalles opp slik:
inline
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|inline=1}}
- Denne parameteren bestemmer om lenkene skal legges på en linje med en separator i mellom seg. Linjen vil ikke prefikses med noen bullet eller lignenden. Se definisjonen av separatoren i Module:External links/conf under
['msg-inline-separator']
. Denne funksjonaliteten er ment brukt i tilfeller hvor man ønsker å benytte lenkene i referanser eller lignende.
- Funksjonen kalles opp slik:
språk
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|språk=<langcode1>,<langcode2>...}}
- Denne parameteren setter en begrensning på hvilke språk som skal vises frem. De skilles av med et komma, mellomrom, semikolon eller kolon. Dersom språkkoden starter med et minus-tegn (
-
), f.eks.-fr
, så vil alle språkkoder, unntatt den vises frem. Det er mulig å legge inn flere av disse. Spesial-verdienalle
overstyrer og tillater alle språk.
- Funksjonen kalles opp slik:
track
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|track=<egenskap1>,<egenskap2>...}}
- Denne parameteren styrer individuelle sporingskategorier for hver egenskap. De skilles av med et komma, mellomrom, semikolon eller kolon. Dersom egenskapen starter med et minus-tegn (
-
), f.eks.-P345
, så vil den ikke spores (i tilfelle den er konfigurert til å spores i felleskonfigurasjonen). Det er mulig å legge inn flere av disse, og spesial-kodenalle
vil slå på sporing på alle.
- Funksjonen kalles opp slik:
<egenskapsnavn>
- Funksjonen kalles opp slik:
{{#invoke:External links|getLinks|conf=<konfigurasjon ihht. ovenfor>|<egenskapsnavn>=<verdi>}}
- Dette er en generell måte å sette verdien til en egenskap manuelt fra artikler/maler. Dette er ment brukt for tilfeller hvor man bruker en lokalt definert egenskap og trenger å gi den en verdi fra artikkelen. F.eks.
bbfc=46443
vil gi ID-en til Blue Thunder i BBFc sin database, og den manuelle definisjonen avbbfc
i Module:External links/conf/Film vil da benyttes sammen med den ID-en for å bygge den eksterne lenken.
- Funksjonen kalles opp slik:
Se også
- Kategori:External links-kategorier - Kategori som samler forskjellige automatiske kategorier fra dette rammeverket
local genitiv = require('Modul:Genitiv')._genitiv local contLang = mw.language.getContentLanguage() local conf = {} local function getLabel(entity, use_genitiv) if not entity then label = mw.title.getCurrentTitle().text else label = mw.wikibase.label(entity.id) or mw.title.getCurrentTitle().text return use_genitiv and genitiv(label) or label end end local function dump(obj) return "<pre>" .. mw.dumpObject(obj) .. "</pre>" end local function getArgument(frame, argument) 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[argument] then return args[argument] end return nil end local p = {} function p.getLinks(frame) local configured_conf = getArgument(frame, 'conf') if configured_conf then conf = require ('Module:External_links/conf/'..configured_conf) else return 'Missing configuration: '..configured_conf end local entity = mw.wikibase.getEntityObject() local claims = nil local output = {} if entity and entity.claims then claims = entity.claims --mw.log(dump(claims)) end if claims then local conf_claims = conf:getConfiguredClaims(contLang:getCode()) mw.log(dump(conf_claims)) for prop, v in pairs(conf_claims) do local _, _, ch, num= prop:find("([pP])(%d+)") if claims[prop] and claims[prop][1] and claims[prop][1].mainsnak.datavalue then local formaturlp = mw.wikibase.getEntity(prop).claims['P1630'] if formaturlp and formaturlp[1] and formaturlp[1].mainsnak.datavalue then local formaturl = formaturlp[1].mainsnak.datavalue.value output[#output+1] = "* " .. (v.langcode and frame:expandTemplate{ title="Språkikon", args = { v.langcode } } .. " " or "") .. mw.message.newRawMessage(v.message, getLabel(entity, v.genitiv), mw.message.newRawMessage(formaturl, claims[prop][1].mainsnak.datavalue.value):plain()):plain() end end end end return table.concat(output,"\n") end return p