Hopp til innhold

Modul:Infoboks test

Fra Wikipedia, den frie encyklopedi
Sideversjon per 18. feb. 2025 kl. 08:53 av Haros (diskusjon | bidrag)
(diff) ← Eldre sideversjon | Nåværende sideversjon (diff) | Nyere sideversjon → (diff)
Moduldokumentasjon
local p = {}

local ibox = require( 'Module:Infoboks lua' )

--[[ Definisjonene inneholder parametre som skal tolkes av modulen infoboks lua.
		Definisjonene kommer i en liste som skal komme i den rekkefølgen de skal legges inn i infoboksene.
		Hver enkelt definisjon starter med en "{" og avslttes med "}," det kan godt være et komma også bak den siste
		Innholdet av definisjonen består av en liste med argumenter med komma mellom.
		La det første argumentet være et navn som identifiserer hva som skal gjøres (metoden).
		Vi legger det først for å lette lesingen for oss mennesker.
		
		Deretter kommer en rekke med argumenter som skal brukes. Argumentene består av et parameternavn, et "=", og en tekst.
		De kan komme i vilkårlig rekkefølge og bare de som skal brukes behøver legges inn.
		Hver metode har sitt sett av parametre.
		
		Alle metodene har tilgang til de argumentene som er gitt på siden som legger inn som argument til infoboksen.
		Alle metodene vil ha tilgang til argumentet qid som 
		
		Metodene listes nedenfor: 
	]]
	
--[[	"rad"

		Legger inn en rad i infoboksen, altså en venstreside med et navn og en høyreside med en verdi.
		
		Parametre til metoden rad
		
		Minst av de to første må gis om det skal lages en rad.
		
		param:		Inneholder navnet på parameteren som eventuelt henter en verdi fra
					artikkelen hvis en parameterverdi er gitt der. Den vil også brukes som
					tittel på raden med mindre displayName er gitt.
		pid:		Wikidata egenskaps identifikator. (Property id)
				
		displayName:	tekst som skal brukes tom tittel på raden, altså venstresiden av tabellen
		
		...			Listen er ikke komplett foreløpig.
		
	]]

--[[	"bilde"
		pid:		Wikidata egenskaps identifikator. (Property id)
		bilde		parameternavn i infoboksen for bildet. Overstyrer pid om det er gitt.
					Verdien er typisk
						bilde
						logo
		bildetekst	parameternavn som eventuelt gis sammen med bilde i artikkelen
					Verdien er typisk
						bildetekst
						logotekst
		byline		parameternavn som eventuelt gis sammen med bilde i artikkelen
					Verdien er typisk
						byline
						logobyline
		bildestor	parameternavn som eventuelt gis sammen med bilde i artikkelen
					Verdien er typisk
						bildestørrelse
		
	]]

--[[	"mal"
		<to do>
	]]

--[[	"kart"
		<to do>
	]]



local defsVaapen =
{	
	{ "bilde", pid = "P18", qid = "qid", bilde = "bilde", bildetekst = "bildetekst", byline = "byline",
			bildestor = "bildestørrelse"},

	{ "rad", param = "land", pid = "P17"},
}

function p.infoboksvaapen(frame)

	local start = ibox.ibxStart(frame)
	local text,par = ibox._innhold(frame,defsVaapen)
	local slutt = ibox._ibxSlutt()
	return start .. text .. slutt
end

local defsIdrettslag =
{
	{ "bilde", pid = "P18", qid = "qid", bilde = "bilde", bildetekst = "bildetekst", byline = "byline",
			bildestor = "bildestørrelse"},

	{ "rad", param = "land", pid = "P17"},

}

function p.infoboksidrettslag(frame)

	local start = ibox.ibxStart(frame)
	local text,par = ibox._innhold(frame,defsIdrettslag)
	local slutt = ibox._ibxSlutt()
	return start .. text .. slutt
end


local defssplitsideelv = 
{
	{ ["prop"] = "P3871", vals={ "Q25303601","Q27834806"}},
	
}

local defsTest1 =
{
	{ "bilde", pid = "P18", qid = "qid", bilde = "bilde", bildetekst = "bildetekst", byline = "byline",
			bildestor = "bildestørrelse"},

	{ "rad", param = "land", pid = "P17"},
	{ "rad", param = "start", pid = "P885"},
	{ "rad", param = "høyde_start",displayName="&nbsp;&nbsp;– Høyde"},
	{ "rad", param = "lengde", pid = "P2043"},
	{ "rad", param = "munning", pid = "P403"},
	{ "rad", param = "munningsarm", pid = "P5998"},
	{ "rad", param = "område", pid = "P131"},
	{ "rad", param = "vassdrag", pid = "P4614"},
	{ "rad", param = "nedbørfeltareal", pid = "P2053"},
	{ "rad", param = "vannføring", pid = "P2225"},
	{ "rad", param = "innsjø", pid = "P469"},
	{ "rad", param = "sideelv", pid = "P974", split = defssplitsideelv},
	{ "rad", param = "innløp", pid = "P200"},
	{ "kart", param = nil},
}

local definisjoner =
{
	["avtale"] = defsAvtale,
	["elv"] = defsTest1,
	["idrettslag"] = defsIdrettslag,
	["våpen"] = defsVaapen,
}

function p.infoboks(frame)
	local frameargs = frame:getParent().args
	local bokstype = frameargs[1] or nil
	local usedef = definisjoner[bokstype] or defsTest1
	local start = ibox.ibxStart(frame)
	local text,par = ibox._innhold(frame,usedef) --defsTest1)
	local slutt = ibox._ibxSlutt()
	return start .. text .. slutt
end


local defsAvtale =
{
	{ "bilde", pid = "P18", qid = "qid", bilde = "bilde", bildetekst = "bildetekst", byline = "byline",
			bildestor = "bildestørrelse"},

	{ "rad", param = "offisielt navn", pid = "P1448"},
	{ "rad", param = "type", pid = "Pxxx"},
	{ "rad", param = "møtedato", pid = "P585"},
	{ "rad", param = "signeringsdato", pid = "P571"},
	{ "rad", param = "ikraft", pid = "P7588",displayName="Trådte i kraft"},
	{ "rad", param = "antall deltakere", pid = "P1132"},
	{ "rad", param = "slutt", pid = "Pxxx"},
	{ "rad", param = "parter", pid = "P710"},
	{ "rad", param = "underskrevet av", pid = "P1891"},
	{ "rad", param = "språk", pid = "P364"},
	{ "rad", param = "fnid", pid = "P9966"},
	{ "rad", param = "nettsted", pid = "P856"},
	{ "rad", param = "opphørt", pid = "P576"},
	{ "rad", param = "erstatter", pid = "P1365"},
	{ "rad", param = "erstatning", pid = "P1366"},
	{ "kart", param = nil},
}


function p.infoboksAvtale(frame)
	local start = ibox.ibxStart(frame)
	local text,par = ibox._innhold(frame,defsAvtale)
	local slutt = ibox._ibxSlutt()
	return start .. text .. slutt
end

local defsUtmerkelse =
{
	{ "bilde", pid = "P18", qid = "qid", bilde = "bilde", bildetekst = "bildetekst", byline = "byline",
			bildestor = "bildestørrelse"},
		
	{ "overskrift", tekst = "Basisdata", innhold=
		{
		{ "rad", param = "type", pid = "Pxxx"},
		{ "rad", param = "land", pid = "P17"},
		{ "rad", param = "dato", pid = "P585",displayName="Innført"},
		{ "rad", param = "mottakere", pid = "Pxxx"},
		{ "rad", param = "antall", pid = "Pxxx"},
		}
	},
	{ "overskrift", tekst = "Tekniske data", innhold=
		{
		{ "rad", param = "materiale", pid = "Pxxx"},
		{ "rad", param = "festeanordning", pid = "Pxxx"},
		{ "rad", param = "bredde", pid = "Pxxx"},
		{ "rad", param = "høyde", pid = "Pxxx"},
		}
	},
	{ "overskrift", tekst = "Rangering", innhold=
		{
		{ "rad", param = "rangering", pid = "Pxxx"},
		{ "rad", param = "høyere", pid = "Pxxx"},
		{ "rad", param = "lavere", pid = "Pxxx"},
		}
	},

}

function p.infoboksUtmerkelse(frame)
	local start = ibox.ibxStart(frame)
	local text,par = ibox._innhold(frame,defsUtmerkelse)
	local slutt = ibox._ibxSlutt()
	return start .. text .. slutt
end

return p