Modul:Fhold
Udseende
Dette Lua-modul bruges på ca. 6.100 sider, og derfor vil ændringer blive bemærket af mange. Vær venlig at afprøve enhver ændring i modulets /sandkasse eller /test-undersider, eller i din egen module sandkasse. Du bør også overveje at diskutere ændringer på diskussionssiden før du implementerer dem. |
- Idé : kun én skabelon – {{Fhold}} – til de forskellige landshold: mænd og kvinder, voksne og unge (21, 19 osv.), seniorer ('Old Boys' og 'Old Girls'), ligahold, strandhold og futsalhold.
- Oplæg : Wikipedia-diskussion:WikiProjekt_Fodbold#Ny_skabelon
- De allerede eksisterende separate skabeloner i F-serien er:
- A : {{F}} - A-landshold hos herrerne -- {{Fk}} - A-landshold hos kvinderne
- U : {{FU}} - U-landshold hos herrerne -- {{FkU}} - U-landshold hos kvinderne
- 'Fhold' : F for Fodbold - 'hold' : de nationale fodboldhold
- Skabelonen kalder modulet med:
- {{#invoke:Fhold|main|1={{{1|}}}|2={{{2|}}}|3={{{3|}}} }}
- Med skabelontitel 'Fhold' anvendes: {{Fhold|land|køn|alder}} eller {{Fhold|land|alder|køn}}
- For seniorer - 'Old Boys' og 'Old Girls' - benyttes 'old' som 3. parameter, altså {{Fhold|land|køn|old}}
- For ligahold benyttes 'liga' som 3. parameter, altså {{Fhold|land|køn|liga}}
- - - ('strand' og 'futsal' tilføjet maj 2015)
- For strandhold benyttes 'strand' som 3. parameter, altså {{Fhold|land|køn|strand}}
- For futsal benyttes 'futsal' som 3. parameter, altså {{Fhold|land|køn|futsal}}
- - - (kode for B-hold tilføjet september 2016)
- For B-hold benyttes 'B' som 3. parameter, altså {{Fhold|land|køn|B}}
local genitiv = require('Modul:Genitiv')._genitiv
local p = {}
--[[ Feb-2015
* Idé : kun én skabelon – {{Fhold}} – til de forskellige landshold: mænd og kvinder, voksne og unge (21, 19 osv.),
seniorer ('Old Boys' og 'Old Girls'), ligahold, strandhold og futsalhold.
* Oplæg : Wikipedia-diskussion:WikiProjekt_Fodbold#Ny_skabelon
* De allerede eksisterende separate skabeloner i F-serien er:
* A : {{tl|F}} - A-landshold hos herrerne -- {{tl|Fk}} - A-landshold hos kvinderne
* U : {{tl|FU}} - U-landshold hos herrerne -- {{tl|FkU}} - U-landshold hos kvinderne
* 'Fhold' : F for Fodbold - 'hold' : de nationale fodboldhold
* Skabelonen kalder modulet med:
* {{#invoke:Fhold|main|1={{{1|}}}|2={{{2|}}}|3={{{3|}}} }}
* Med skabelontitel 'Fhold' anvendes: {{Fhold|land|køn|alder}} eller {{Fhold|land|alder|køn}}
* For seniorer - 'Old Boys' og 'Old Girls' - benyttes 'old' som 3. parameter, altså {{Fhold|land|køn|old}}
* For ligahold benyttes 'liga' som 3. parameter, altså {{Fhold|land|køn|liga}}
- - - ('strand' og 'futsal' tilføjet maj 2015)
* For strandhold benyttes 'strand' som 3. parameter, altså {{Fhold|land|køn|strand}}
* For futsal benyttes 'futsal' som 3. parameter, altså {{Fhold|land|køn|futsal}}
--]]
function p.main ( frame )
-- De tre parametre ('args') fra skabelonen (arbejdstitel: 'Fhold')
local land = frame.args[1]
local sex = frame.args[2] -- 'køn' virker ikke i softwaren
local alder = frame.args[3]
-- arg2 og arg3 bruges af hensyn den kontraintuitive situation ved brug af rækkefølgen land - alder - køn
-- Ved 'kompatibilitet' med F og FU kan 'arg2' også indeholde et tal
-- NB "... argument values passed from #invoke are always strings. ..." - det nødvendiggør typechecking
local arg2 = frame.args[2] -- behøver typecheking ved tal for ungdomshold, F og FU
local arg3 = frame.args[3]
local done = false
local result = ""
-- local error_msg = '<span class="error"><small>Brug {{Fhold|land|køn|alder}} - Se [[Skabelon:Fhold]]</small></span>'
local error_msg = '<span style="color:red;"><small>Se vejledning: [[Skabelon:Fhold]]</small></span>'
--Nogle mulige fejl
-- 'land' er nødvendig
if land == nil or land == "" or land == "m" or land == "k" or land == "old" or land == "liga" then
done = true
return ( error_msg )
end -- Nogle mulige fejl: 'land' er nødvendig
-- Hvis 'land' var OK, så fortsæt:
local landgenitiv = genitiv(land) -- tilføjer "s" med mindre navnet allerede ender på s, x eller z, hvor apostrof i stedet tilføjes
-- Bagudkompatibel ? - Et par stykker som forsøg på at gøre den bagudkompatibel med F og FU
-- Den allerede eksisterende Skabelon:F - Forsøg på at lave en indgang som 'den eksisterende skabelon' F, der kun havde 'land' som parameter
if done == false and ( land ~= "" and (sex == "" and alder == "") ) then
-- er: [[{{{1}}}s fodboldlandshold|{{{1}}}]] (- i den separate skabelon [[Skabelon:F]])
result = "[[" .. landgenitiv .. " " .. "fodboldlandshold" .. "|" .. land .. "]]"
done = true
return result
end -- kun land - dvs. som den gamle skabelon F - mænd, voksne
-- Den ene rækkefølge: land - alder - køn kræver tjek af type, da
-- "... argument values passed from #invoke are always strings. ..."
-- Som den allerede eksisterende Skabelon:FU der er 'mænd, ungdom' - fx {{Fhold|land|alder}}
-- mænd AND ungdom (alder angivet som ANDEN parameter : 21, 19 osv.)
-- bruger her arg2 for anden parameter for at undgå forvirring
if done == false and ( land ~= "" and (arg2 ~= "" and alder == "") ) then
-- Problemet er nu at der skal være et tal i parameteren 'arg2' for at virke som Skabelon:FU
-- NB "... argument values passed from #invoke are always strings. ..."
if type( tonumber( arg2 ) ) == 'number' then -- så er det et ungdomshold for mænd -- typechecking
-- er: [[{{{1}}}s U/{{{2}}}-fodboldlandshold|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
result = "[[" .. landgenitiv .. " U/" .. arg2 .. "-fodboldlandshold" .. "|" .. land .. " U/" .. arg2 .. "]]"
done = true
return result
end -- typechecking
end -- mænd, ungdom efter som den allerede eksisterende Skabelon:FU der er 'mænd, ungdom'
-- Forsøg med rækkefølgen land - alder - køn -- forsøg med {{Fhold|land|alder|køn}} - Der bruges nu arg2 og arg3
if done == false and ( land ~= "" and (arg2 ~= "" and arg3 ~= "") ) then
-- Problemet er nu at der skal være et tal i parameteren 'arg2' for at give som FU
-- NB "... argument values passed from #invoke are always strings. ..."
if type( tonumber( arg2 ) ) == 'number' then -- så er det et ungdomshold for mænd -- typechecking
-- er: [[{{{1}}}s U/{{{2}}}-fodboldlandshold|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
-- result = "[[" .. landgenitiv .. " U/" .. arg2 .. "-fodboldlandshold" .. "|" .. land .. " U/" .. arg2 .. "]]"
-- 1) mænd arg3 == 'm'
if arg3 == 'm' then
result = "[[" .. landgenitiv .. " U/" .. arg2 .. "-fodboldlandshold" .. "|" .. land .. " U/" .. arg2 .. "]]"
done = true
return result
end -- land alder mænd
-- 2) kvinder arg3 == 'k'
if arg3 == 'k' then
result = "[[" .. landgenitiv .. " U/" .. arg2 .. "-kvindefodboldlandshold" .. "|" .. land .. " U/" .. arg2 .. "]]"
done = true
return result
end -- land alder kvinder
end -- typechecking
end -- Forsøg med rækkefølgen land - alder - køn
-- Videre med den 'normale rækkefølge : land - køn - alder
-- arg3 er tom
-- mænd AND voksne (ingen alder angivet)
if done == false and (sex == "m" and alder == "") then -- test af tilføjelse med done == false
-- er: [[{{{1}}}s fodboldlandshold|{{{1}}}]] (- i den separate skabelon [[Skabelon:F]])
result = "[[" .. landgenitiv .. " " .. "fodboldlandshold" .. "|" .. land .. "]]"
done = true
return result
end -- mænd, voksne med rækkefølgen land - køn
-- kvinder AND voksne (ingen alder angivet)
if done == false and (sex == "k" and alder == "") then
-- er: [[{{{1}}}s kvindefodboldlandshold|{{{1}}}]] (- i den separate skabelon [[Skabelon:Fk]])
result = "[[" .. landgenitiv .. " " .. "kvindefodboldlandshold" .. "|" .. land .. "]]"
done = true
return result
end -- kvinder, voksne med rækkefølgen land - køn
-- Nogle senere 'specifikke' tilkomne: 'liga' og 'old' som arg3
-- beg: Ligalandshold - nu benyttes arg3 ('liga' i stedet for alder i 3.parameter : land - køn - liga)
-- arg3 : specifik brug (liga og old) før generel brug - ellers går den ikke derind
-- [[Danmarks ligalandshold|Danmark Liga]] er modellen, jf. Wikipedia-diskussion:WikiProjekt Fodbold#Ny skabelon
-- mænd AND liga ('liga' i stedet for alder i 3.parameter : land - køn - liga)
if done == false and (sex == "m" and alder == "liga" ) then
-- mangler eksisterende model at formatere efter
-- indtil videre bruges [[Danmarks ligalandshold|Danmark Liga]]
result = "[[" .. landgenitiv .. " ligalandshold" .. "|" .. land .. " Liga" .. "]]"
done = true
return result
end -- mænd, liga med rækkefølgen land - køn - liga som arg3
-- kvinder AND liga ('liga' i stedet for alder i 3.parameter : land - køn - liga)
if done == false and (sex == "k" and alder == "liga") then
-- mangler eksisterende model at formatere efter
-- indtil videre bruges : [[Danmarks ligalandshold for kvinder|Danmark Liga]]
result = "[[" .. landgenitiv .. "ligalandshold for kvinder" .. "|" .. land .. " Liga" .. "]]"
done = true
return result
end -- kvinder, liga med rækkefølgen land - køn - liga som arg3
--slut: Ligalandshold ('liga' i stedet for alder i 3.parameter : land - køn - liga)
-- endnu en specifik : 'old' som 3. parameter
-- beg: Old Boys og Old Girls
-- mænd AND Old Boys (alder angivet som 'old' i 3.parameter : land - køn - old))
if done == false and (sex == "m" and alder == "old" ) then
-- er: [[{{{1}}}s U/{{{2}}}-fodboldlandshold|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
-- result = "[[" .. landgenitiv .. " U/" .. alder .. "-fodboldlandshold" .. "|" .. land .. " U/" .. alder .. "]]"
-- result = ..mangler model at formatere efter
-- [[Danmarks fodboldlandshold for seniorer|Danmark /Old]]
result = "[[" .. landgenitiv .. "Old Boys-fodboldlandshold" .. "|" .. land .. " `Old Boys`" .. "]]"
done = true
return result
end -- mænd, Old Boys med rækkefølgen land - køn - alder
-- kvinder AND Old Girls (alder angivet som 'old' i 3.parameter)
if done == false and (sex == "k" and alder == "old") then
-- er: [[{{{1}}}s U/{{{2}}}-kvindefodboldlandshold|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FkU]])
-- result = "[[" .. landgenitiv .. " U/" .. alder .. "-kvindefodboldlandshold" .. "|" .. land .. " U/" .. alder .. "]]"
-- mangler model at formatere efter
-- [[Danmarks kvindefodboldlandshold for seniorer|Danmark /Old]]
result = "[[" .. landgenitiv .. "Old Girls-kvindefodboldlandshold" .. "|" .. land .. " `Old Girls`" .. "]]"
done = true
return result
end -- kvinder, Old Girls med rækkefølgen land - køn - alder
-- slut: Old Boys og Old Girls
-- Maj-2015: Yderligere to tilføjelser: 'strand' og 'futsal' som arg3
-- beg: Strandfodboldlandshold - nu benyttes arg3 ('strand' i stedet for alder i 3.parameter : land - køn - strand)
-- (arg3 : de specifike (liga, old, strand og futsal) før generel brug - ellers går den ikke derind)
-- [[Danmarks strandfodboldlandshold|Danmark Strand]] er modellen, jf. Wikipedia-diskussion:WikiProjekt Fodbold#Ny skabelon
-- mænd AND strand ('strand' i stedet for alder i 3.parameter : land - køn - strand)
if done == false and (sex == "m" and alder == "strand" ) then
result = "[[" .. landgenitiv .. " strandfodboldlandshold" .. "|" .. land .. " Strand" .. "]]"
done = true
return result
end -- mænd, strand med rækkefølgen land - køn - strand som arg3
-- kvinder AND strand ('strand' i stedet for alder i 3.parameter : land - køn - strand)
if done == false and (sex == "k" and alder == "strand") then
result = "[[" .. landgenitiv .. "strandfodboldlandshold for kvinder" .. "|" .. land .. " Strand" .. "]]"
done = true
return result
end -- kvinder, strand med rækkefølgen land - køn - strand som arg3
--slut: Strandfodboldlandshold ('strand' i stedet for alder i 3.parameter : land - køn - strand)
-- beg: Futsallandshold - nu benyttes arg3 ('futsal' i stedet for alder i 3.parameter : land - køn - futsal)
-- [[Danmarks futsallandshold|Danmark Futsal]] er modellen, jf. Wikipedia-diskussion:WikiProjekt Fodbold#Ny skabelon
-- mænd AND futsal ('futsal' i stedet for alder i 3.parameter : land - køn - futsal)
if done == false and (sex == "m" and alder == "futsal" ) then
-- indtil videre bruges [[Danmarks futsallandshold|Danmark Futsal]]
result = "[[" .. landgenitiv .. " futsallandshold" .. "|" .. land .. " Futsal" .. "]]"
done = true
return result
end -- mænd, futsal med rækkefølgen land - køn - futsal som arg3
-- kvinder AND futsal ('futsal' i stedet for alder i 3.parameter : land - køn - futsal)
if done == false and (sex == "k" and alder == "futsal") then
-- indtil videre bruges : [[Danmarks futsallandshold for kvinder|Danmark Futsal]]
result = "[[" .. landgenitiv .. "futsallandshold for kvinder" .. "|" .. land .. " Futsal" .. "]]"
done = true
return result
end -- kvinder, futsal med rækkefølgen land - køn - futsal som arg3
--slut: Futsallandshold ('futsal' i stedet for alder i 3.parameter : land - køn - futsal)
-- September 2015: Yderligere tilføjelse: 'B' -
-- Se Wikipedia-diskussion:WikiProjekt Fodbold#Ny_skabelon for 2. sep 2016, 13:55
-- beg: B-fodboldlandshold - nu benyttes arg3 ('B' i stedet for alder i 3.parameter : land - køn - B)
-- (arg3 : de specifike (liga, old, strand, futsal og B) før generel brug - ellers går den ikke derind)
-- [[Danmarks B-fodboldlandshold|Danmark B]] er modellen, jf. Wikipedia-diskussion:WikiProjekt Fodbold#Ny skabelon
-- mænd AND B ('B' i stedet for alder i 3.parameter : land - køn - B)
if done == false and (sex == "m" and alder == "B" ) then
result = "[[" .. landgenitiv .. " B-fodboldlandshold" .. "|" .. land .. " B" .. "]]"
done = true
return result
end -- mænd, B med rækkefølgen land - køn - B som arg3
-- kvinder AND B ('strand' i stedet for alder i 3.parameter : land - køn - B)
if done == false and (sex == "k" and alder == "B") then
result = "[[" .. landgenitiv .. " B-fodboldlandshold for kvinder" .. "|" .. land .. " B" .. "]]"
done = true
return result
end -- kvinder, B med rækkefølgen land - køn - B som arg3
--slut: B-fodboldlandshold ('strand' i stedet for alder i 3.parameter : land - køn - strand)
-- beg: Amatørlandshold - nu benyttes arg3 ('amatør' i stedet for alder i 3.parameter : land - køn - amatør)
-- [[Danmarks amatørlandshold|Danmark Amatør]] er modellen, jf. Wikipedia-diskussion:WikiProjekt Fodbold#Ny skabelon
-- mænd AND amatør ('amatør' i stedet for alder i 3.parameter : land - køn - amatør)
if done == false and (sex == "m" and alder == "amatør" ) then
-- indtil videre bruges [[Danmarks amatørlandshold|Danmark Amatør]]
result = "[[" .. landgenitiv .. " amatørlandshold" .. "|" .. land .. " Amatør" .. "]]"
done = true
return result
end -- mænd, amatør med rækkefølgen land - køn - amatør som arg3
-- kvinder AND amatør ('amatør' i stedet for alder i 3.parameter : land - køn - amatør)
if done == false and (sex == "k" and alder == "amatør") then
-- indtil videre bruges : [[Danmarks amatørlandshold for kvinder|Danmark Amatør]]
result = "[[" .. landgenitiv .. "amatørlandshold for kvinder" .. "|" .. land .. " Amatør" .. "]]"
done = true
return result
end -- kvinder, futsal med rækkefølgen land - køn - futsal som arg3
--slut: Amatørlandshold ('amatør' i stedet for alder i 3.parameter : land - køn - amatør)
-- (Evt. nye specifikke tilføjelser indsættes herover - dvs. før 'Generel' brug
-- 'Generel' brug
-- beg: 3.parameter i generel brug: arg3 som alder 21, 19 osv
-- mænd AND ungdom (alder angivet som TREDJE parameter : 21, 19 osv.)
if done == false and (sex == "m" and alder ~= "" ) then
-- er: [[{{{1}}}s U/{{{2}}}-fodboldlandshold|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
result = "[[" .. landgenitiv .. " U/" .. alder .. "-fodboldlandshold" .. "|" .. land .. " U/" .. alder .. "]]"
done = true
return result
end -- mænd, ungdom (alder angivet 21, 19 osv.) med rækkefølgen land - køn - alder
-- kvinder AND ungdom (alder angivet 21, 19 osv.)
if done == false and (sex == "k" and alder ~= "") then
-- er: [[{{{1}}}s U/{{{2}}}-kvindefodboldlandshold|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FkU]])
result = "[[" .. landgenitiv .. " U/" .. alder .. "-kvindefodboldlandshold" .. "|" .. land .. " U/" .. alder .. "]]"
done = true
return result
end -- kvinder, ungdom (alder angivet 21, 19 osv.) med rækkefølgen land - køn - alder
-- Maj 2019: Yderligere tilføjelse: 'C' -
-- Se Wikipedia-diskussion:WikiProjekt Fodbold#Ny_skabelon for 2. sep 2016, 13:55
-- beg: C-fodboldlandshold - nu benyttes arg3 ('C' i stedet for alder i 3.parameter : land - køn - C)
-- (arg3 : de specifike (liga, old, strand, futsal og C) før generel brug - ellers går den ikke derind)
-- [[Englands C-fodboldlandshold|England C]] er modellen, jf. Wikipedia-diskussion:WikiProjekt Fodbold#Ny skabelon
-- mænd AND C ('C' i stedet for alder i 3.parameter : land - køn - C)
if done == false and (sex == "m" and alder == "C" ) then
result = "[[" .. landgenitiv .. " C-fodboldlandshold" .. "|" .. land .. " C" .. "]]"
done = true
return result
end -- mænd, C med rækkefølgen land - køn - C som arg3
-- kvinder AND C ('C' i stedet for alder i 3.parameter : land - køn - C)
if done == false and (sex == "k" and alder == "C") then
result = "[[" .. landgenitiv .. " C-fodboldlandshold for kvinder" .. "|" .. land .. " C" .. "]]"
done = true
return result
end -- kvinder, C med rækkefølgen land - køn - C som arg3
--slut: C-fodboldlandshold ('C' i stedet for alder i 3.parameter : land - køn - C)
-- Blev bunden nået uden resultat ?
if done == false then
return ( error_msg )
end
end -- function p.main ( frame )
return p -- export table