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
 
(31 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 17: Regel 17:
]]--
]]--
p.select = function(frame)
p.select = function(frame)
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
isLabelled = true
else
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(selectedVal)
selected = mw.text.trim( selected )
id = frame.args.id or "randomidhere"
optionsTable = mw.text.split( options, sep )
otherOptions = {}
optionElements = {}
for k,v in ipairs( optionsTable ) do
for k,v in ipairs( optionsTable ) do
local option = mw.text.trim(v)
if ( isLabelled == true ) then
if option ~= selected then
-- pair of value and label
otherOptions[k] = option
local pair = mw.text.split( v, ">>>" )
val = mw.text.trim( pair[1] )
label = pair[2] or val
else
-- no special label
val = mw.text.trim(v)
label = val
end
 
if ( val == selected ) then
isSelected = true
else
isSelected = false
end
end
optionElements[k] = p.createSelectOption( frame, val, label, id, isSelected )
end
end
 
local newOptionstable = {}
local res = table.concat( optionElements, "" )
return res
local res = '<select id="{id}" class="">' .. table.concat( newOptionsTable, "" ) .. '</select>'
return ""
end
end


--[[
--[[
]]--
]]--
p.createSelectOption = function( val, label, id, isSelected )
p.createSelectOption = function( frame, val, label, id, isSelected )
local attribures = {
local attribs = {
['value'] = mw.text.trim( val ),
['value'] = val
['for'] = id
}
}
if ( isSelected ) then
attribs['for'] = id -- not working because 'for' is also a function
attribures['selected'] = 'selected'
if ( isSelected == true ) then
attribs['selected'] = 'selected'
end
end
local input = frame:extensionTag( 'option', label, attributes );
local res = frame:extensionTag( 'option', label, attribs );
return input
return res
end
end


return p
return p

Huidige versie van 22 jan 2025 13:47

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"
	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, ">>>" )
			val = mw.text.trim( pair[1] )
			label = pair[2] or val
		else
			-- no special label
			val = mw.text.trim(v)
			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'] = val
	}
	attribs['for'] = id -- not working because 'for' is also a function
	if ( isSelected == true ) then
		attribs['selected'] = 'selected'
	end
	local res = frame:extensionTag( 'option', label, attribs );
	return res
end

return p