Geen bewerkingssamenvatting |
Geen bewerkingssamenvatting |
||
| (19 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
| Regel 16: | Regel 16: | ||
-- @todo returnid if you don't want to retrieve the pages as values | -- @todo returnid if you don't want to retrieve the pages as values | ||
local wrappertemplate = frame.args.wrappertemplate or "" | local wrappertemplate = frame.args.wrappertemplate or "" | ||
local label = frame.args.label or "" | |||
local optionfor = string.gsub( inputname, "%[%]", "" ) | local optionfor = string.gsub( inputname, "%[%]", "" ) | ||
local options = p.createOptions( selectedvalues, sep, displayprop, optionfor ) -- string | local options = p.createOptions( selectedvalues, sep, displayprop, optionfor ) -- string | ||
local flexargs = {} | local flexargs = {} | ||
for k,v in | for k, v in pairs( frame.args ) do | ||
flexargs[k] = v or | -- table.insert( flexargs, k ); | ||
flexargs[k] = v or nil | |||
end | end | ||
-- Remove anything that doesn't belong to FF proper | -- Remove anything that doesn't belong to FF proper | ||
| Regel 81: | Regel 72: | ||
local qarg = "[[" .. pagename .. "]][[Modification date::+]]|?" .. propname .. "=title|link=none" | local qarg = "[[" .. pagename .. "]][[Modification date::+]]|?" .. propname .. "=title|link=none" | ||
local qres = mw.smw.ask( qarg ) | local qres = mw.smw.ask( qarg ) | ||
if qres ~= nil then | |||
return | label = qres[1].title or nil | ||
return label | |||
end | |||
return "" | |||
end | end | ||
return p | return p | ||
Huidige versie van 6 jan 2025 14:38
{{#invoke:FFToken|token
|id=tokener-module
|name=testsdsfdf[]
|query=[[Class::Titles]][[Title plain::!!!]](limit=999)(returntext=Title plain)
|returntext=Title plain
|selected=Titel/100,Titel/4000,Titel/4666
|separator=,
|multiple=multiple
|placeholder=Find a title
|allowclear=true
|input-length-trigger=1
|allowtags=allowtags
|allowsort=allowsort
}}--[[
Test environment for Module:FF
]]--
local p = {}
p.token= function(frame)
-- nowiki for query?
local query = frame.args.query or "" -- nowiki?
local selectedvalues = frame.args.selected or ""
local sep = frame.args.separator or ","
local displayprop = frame.args.returntext or ""
local inputname = frame.args.name or ""
-- @todo returnid if you don't want to retrieve the pages as values
local wrappertemplate = frame.args.wrappertemplate or ""
local label = frame.args.label or ""
local optionfor = string.gsub( inputname, "%[%]", "" )
local options = p.createOptions( selectedvalues, sep, displayprop, optionfor ) -- string
local flexargs = {}
for k, v in pairs( frame.args ) do
-- table.insert( flexargs, k );
flexargs[k] = v or nil
end
-- Remove anything that doesn't belong to FF proper
local nonffargs = { 'selected', 'wrappertemplate', 'returntext', 'label' }
for name in ipairs( nonffargs ) do
if ( flexargs[name] ~= nil ) then
flexargs[name] = nil
end
end
-- FlexForm
local forminput = frame:extensionTag( '_token', options, flexargs )
if ( mw.text.trim( wrappertemplate ) == "" ) then
return forminput
else
local res = frame:expandTemplate{ title = wrappertemplate, args = { label, forminput } }
return res
end
return res
end
p.createOptions = function( values, sep, displayprop, inputname )
local valTbl = mw.text.split( values, sep )
local str = ''
for k,val in ipairs( valTbl ) do
local label = p.smwgetlabel( val, displayprop ) or val
local inputTbl = {
['type'] = 'option',
['value'] = mw.text.trim( val ),
['for'] = inputname,
['selected'] = 'selected'
}
frame = mw.getCurrentFrame()
local input = frame:extensionTag( '_input', label, inputTbl );
str = str .. input
end
return str
end
p.smwgetlabel = function( pagename, propname )
if not mw.smw then
return "mw.smw module not found"
end
local qarg = "[[" .. pagename .. "]][[Modification date::+]]|?" .. propname .. "=title|link=none"
local qres = mw.smw.ask( qarg )
if qres ~= nil then
label = qres[1].title or nil
return label
end
return ""
end
return p
