Modul:Hhold

Page semibeskyttet
Fra Wikipedia, den frie encyklopædi
Documentation icon Moduldokumentation[opret]
local p = {}

--[[ Feb-2015
* Idé : kun én skabelon – {{Hhold}} – 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
* 'Hhold' : H for håndbold - 'hold' : de nationale håndboldhold 
* Skabelonen kalder modulet med:
* {{#invoke:Hhold|main|1={{{1|}}}|2={{{2|}}}|3={{{3|}}} }}
* Med skabelontitel 'Fhold' anvendes: {{Hhold|land|køn|alder}} eller {{Hhold|land|alder|køn}}
* For seniorer - 'Old Boys' og 'Old Girls' - benyttes 'old' som 3. parameter, altså {{Hhold|land|køn|old}}
* For ligahold benyttes 'liga' som 3. parameter, altså {{Hhold|land|køn|liga}}
- - - ('strand' og 'futsal' tilføjet maj 2015)
* For strandhold benyttes 'strand' som 3. parameter, altså {{Hhold|land|køn|strand}}
* For futsal benyttes 'futsal' som 3. parameter, altså {{Hhold|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 &#123;{Fhold|land|køn|alder}} - Se [[Skabelon:Fhold]]</small></span>'
local error_msg      = '<span style="color:red;"><small>Se vejledning: [[Skabelon:Hhold]]</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:

-- 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 håndboldlandshold (herrer)|{{{1}}}]] (- i den separate skabelon [[Skabelon:F]])
	result = "[[" .. land .. "s" .. " " .. "håndboldlandshold (herrer)" .. "|" .. 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}}}-håndboldlandshold (herrer)|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
			result = "[[" .. land .. "s" .. " U/" .. arg2 .. "-håndboldlandshold (herrer)" .. "|" .. 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}}}-håndboldlandshold (herrer)|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
				-- result = "[[" .. land .. "s" .. " U/" .. arg2 .. "-håndboldlandshold (herrer)" .. "|" .. land .. " U/" .. arg2 .. "]]"


-- 1) mænd arg3 == 'm'
			if arg3 == 'm' then 
				result = "[[" .. land .. "s" .. " U/" .. arg2 .. "-håndboldlandshold (herrer)" .. "|" .. land .. " U/" .. arg2 .. "]]"
				done = true
				return result
			end -- land alder mænd
-- 2) kvinder  arg3 == 'k'
			if arg3 == 'k' then 
				result = "[[" .. land .. "s" .. " U/" .. arg2 .. "-håndboldlandshold (damer)" .. "|" .. 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 håndboldlandshold (herrer)|{{{1}}}]] (- i den separate skabelon [[Skabelon:F]])
	result = "[[" .. land .. "s" .. " " .. "håndboldlandshold (herrer)" .. "|" .. 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 håndboldlandshold (damer)|{{{1}}}]] (- i den separate skabelon [[Skabelon:Fk]])
	result = "[[" .. land .. "s" .. " " .. "håndboldlandshold (damer)" .. "|" .. 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 håndboldligalandshold|Danmark Liga]] 
		result = "[[" .. land .. "s" .. " håndboldligalandshold" ..  "|" .. 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 håndboldligalandshold for kvinder|Danmark Liga]] 
	result = "[[" .. land .. "s" .. "håndboldligalandshold 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}}}-håndboldlandshold (herrer)|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
		-- result = "[[" .. land .. "s" .. " U/" .. alder .. "-håndboldlandshold (herrer)" .. "|" .. land .. " U/" .. alder .. "]]"
		-- result = ..mangler model at formatere efter
		-- [[Danmarks håndboldlandshold (herrer) seniorer|Danmark /Old]]
	result = "[[" .. land .. "s" .. " håndboldlandshold for Old Boys" ..  "|" .. 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}}}-håndboldlandshold (damer)|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FkU]])
		-- result = "[[" .. land .. "s" .. " U/" .. alder .. "-håndboldlandshold (damer)" .. "|" .. land .. " U/" .. alder .. "]]"
		-- mangler model at formatere efter
		-- [[Danmarks håndboldlandshold (damer) seniorer|Danmark /Old]]
	result = "[[" .. land .. "s" .. " håndboldlandshold for Old Girls" ..  "|" .. 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: Strandlandshold - nu benyttes arg3 ('strand' i stedet for alder i 3.parameter : land - køn - strand)

-- [[Danmarks strandhåndboldlandshold (herrer)|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 
		-- indtil videre bruges [[Danmarks strandhåndboldlandshold (herrer)|Danmark Strand]] 
		result = "[[" .. land .. "s" .. " strandhåndboldlandshold (herrer)" ..  "|" .. 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 - futsal)
if done == false and (sex == "k" and alder == "strand") then 
		-- indtil videre bruges : [[Danmarks strandhåndboldlandshold (damer)|Danmark Strand]] 
	result = "[[" .. land .. "s" .. "strandhåndboldlandshold (herrer)" ..  "|" .. land .. " Strand" .. "]]"
	done = true
	return result 
end -- kvinder, strand  med rækkefølgen land - køn - strand som arg3

--slut: strandlandshold ('strand' i stedet for alder i 3.parameter : land - køn - strand)


-- September 2015:  Yderligere tilføjelse: 'B' - 
-- Se Wikipedia-diskussion:WikiProjekt Fodbold#Ny_skabelon for 2. sep 2016, 13:55

-- beg: B-håndboldlandshold (herrer) - 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-håndboldlandshold (herrer)|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 = "[[" .. land .. "s" .. " B-håndboldlandshold (herrer)" ..  "|" .. 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 = "[[" .. land .. "s" .. " B-håndboldlandshold (damer)" ..  "|" .. land .. " B" .. "]]"
	done = true
	return result 
end -- kvinder, B  med rækkefølgen land - køn - B som arg3

--slut: B-håndboldlandshold ('strand' i stedet for alder i 3.parameter : land - køn - strand)



-- (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}}}-håndboldlandshold (herrer)|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FU]])
	result = "[[" .. land .. "s" .. " U/" .. alder .. "-håndboldlandshold (herrer)" .. "|" .. 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}}}-håndboldlandshold (damer)|{{{1}}} U/{{{2}}}]] (- i den separate skabelon [[Skabelon:FkU]])
	result = "[[" .. land .. "s" .. " U/" .. alder .. "-håndboldlandshold (damer)" .. "|" .. land .. " U/" .. alder .. "]]"
	done = true
	return result
end -- kvinder, ungdom  (alder angivet 21, 19 osv.)  med rækkefølgen land - køn - alder




-- Blev bunden nået uden resultat ?
if done == false then
	return ( error_msg )
end 



end -- function p.main ( frame )


return p  -- export table