Semantic MediaWikiDit bericht verdwijnt nadat alle relevante taken zijn afgerond.

Er is één onvoltooide of openstaande taak, die nodig is om het bijwerken van Semantic MediaWiki te voltooien. Een beheerder of gebruiker met voldoende rechten kan deze uitvoeren. Dit moet worden gedaan voordat nieuwe gegevens worden toegevoegd om tegenstrijdigheden te voorkomen.

Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 19: Regel 19:
local allValues = frame.args.values or "" --all possible values?
local allValues = frame.args.values or "" --all possible values?
local options = frame.args.options or {}
local options = frame.args.options or {}
local labelled = frame.args.labelled or 'false'
if labelled == 'true' then
local isLabelled = true
else
local isLabelled = false
end
local sep = frame.args.sep or ','
local sep = frame.args.sep or ','
local optionsTable = mw.text.split( options, sep )
 
local selected = frame.args.selected or ''
local selected = frame.args.selected or ''
selected = mw.text.trim( selected )
selected = mw.text.trim( selected )
id = frame.args.id or "randomidhere"
id = frame.args.id or "randomidhere"
 
local optionsTable = mw.text.split( options, sep )
optionElements = {}
optionElements = {}
for k,v in ipairs( optionsTable ) do
for k,v in ipairs( optionsTable ) do
local val = mw.text.trim(v)
if ( isLabelled == true ) then
local label = val -- for now
-- pair of value and label
if val == selected then
local pair = mw.text.split( val, "--" )
isSelected = true
local val = mw.text.trim( pair[0] )
else
local label = pair[1] or val
isSelected = false
else
end
-- no special label
optionElements[k] = p.createSelectOption( frame, val, label, id, isSelected )
local val = mw.text.trim(val)
local label = val
end
if val == selected then
isSelected = true
else
isSelected = false
end
optionElements[k] = p.createSelectOption( frame, val, label, id, isSelected )
end
end
 
local res = table.concat( optionElements, "" )
local res = table.concat( optionElements, "" )
return res
return res

Versie van 22 jan 2025 13:24

Module:FFSelect




<select name="selectFrut" id="selectme">{{#invoke:FFSelect|select
|options=apple>>>appel;pear>>>peer;banana>>>banaan
|labelled=true
|selected=pear
|sep=;
|id=selectme
}}</select>


local p = {}

--[[

{{#invoke:FFSelect
|selected=pear
|options=apple, pear, banana
|optionlabels=apple--apple; pear--pear; banana--banana
|sep=;
|id=
}}

<select id={id} >
  <option for={id} >
</select>

]]--
p.select = function(frame)
	local allValues = frame.args.values or "" --all possible values?
	local options = frame.args.options or {}
	local labelled = frame.args.labelled or 'false'
	if labelled == 'true' then
		local isLabelled = true
	else 
		local isLabelled = false
	end
	local sep = frame.args.sep or ','

	local selected = frame.args.selected or ''
	selected = mw.text.trim( selected )
	id = frame.args.id or "randomidhere"
	
	local optionsTable = mw.text.split( options, sep )
	
	optionElements = {}
	for k,v in ipairs( optionsTable ) do
			if ( isLabelled == true ) then
				-- pair of value and label
				local pair = mw.text.split( val, "--" )
				local val = mw.text.trim( pair[0] )
				local label = pair[1] or val
			else
				-- no special label
				local val = mw.text.trim(val)
				local label = val
			end
			
			if val == selected then
				isSelected = true
			else
				isSelected = false
			end
			optionElements[k] = p.createSelectOption( frame, val, label, id, isSelected )
	end

	local res = table.concat( optionElements, "" )
	return res
end

--[[
]]--
p.createSelectOption = function( frame, val, label, id, isSelected )
	local attribs = {
		value = mw.text.trim(val)
	}
	attribs["for%s"] = id -- 'for' has special meaning
	if ( isSelected == true  ) then
		attribs['selected'] = 'selected'
	end
	local res = frame:extensionTag( 'option', label, attribs );
	return res
end

return p