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 35: Regel 35:
optionElements = {}
optionElements = {}
for k,v in ipairs( optionsTable ) do
for k,v in ipairs( optionsTable ) do
if isLabelled == true then
if isLabelled == true then
-- pair of value and label
-- pair of value and label
local pair = mw.text.split( val, "--" )
local pair = mw.text.split( v, "--" )
local val = mw.text.trim( pair[0] )
local val = mw.text.trim( pair[0] )
local label = pair[1] or val
local label = pair[1] or val
else
else
-- no special label
-- no special label
local val = mw.text.trim(val)
local val = mw.text.trim(v)
local label = val
local label = val
end
end
 
if val == selected then
if val == selected then
isSelected = true
isSelected = true
else
else
isSelected = false
isSelected = false
end
end
optionElements[k] = p.createSelectOption( frame, val, label, id, isSelected )
optionElements[k] = p.createSelectOption( frame, val, label, id, isSelected )
end
end



Versie van 22 jan 2025 13:28

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
		isLabelled = true
	else 
		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( v, "--" )
			local val = mw.text.trim( pair[0] )
			local label = pair[1] or val
		else
			-- no special label
			local val = mw.text.trim(v)
			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