Geen bewerkingssamenvatting |
Geen bewerkingssamenvatting |
||
| Regel 2: | Regel 2: | ||
p.input = function(frame) | p.input = function(frame) | ||
p.inputHandler(frame) | |||
end | |||
p.textarea = function( frame ) | |||
flexargs = {} | |||
for k,v in pairs( frame.args ) do | |||
flexargs[k] = v | |||
end | |||
flexargs['type'] = 'textarea' | |||
p.inputHandler( flexargs ) | |||
end | |||
p.inputHandler = function(frame) | |||
local content = frame.args.content or frame.args[1] or "" | local content = frame.args.content or frame.args[1] or "" | ||
local content = mw.text.nowiki( content ) | local content = mw.text.nowiki( content ) | ||
Versie van 22 sep 2023 10:23
Module:FF
invoke within form
{{#invoke:FF|input
|type=text
|name=myname
|value=Value here
|id=fff-443434
|class=form-control
|label=Name
|template=Data item
|slot=
|param=
|template=
}}
Please log in first.
Getdata
Kikkers en tongzoenen - Sarah Mlynowski 2007, 1ᵉ druk, Uitgeverij Van Goor Unieboek BV, Houten:
Titel/-787178247
- Works with parser function though
Titel/-787178247
- getdatatest
Titel/-787178247
local p = {}
p.input = function(frame)
p.inputHandler(frame)
end
p.textarea = function( frame )
flexargs = {}
for k,v in pairs( frame.args ) do
flexargs[k] = v
end
flexargs['type'] = 'textarea'
p.inputHandler( flexargs )
end
p.inputHandler = function(frame)
local content = frame.args.content or frame.args[1] or ""
local content = mw.text.nowiki( content )
local frompage = frame.args.page or ""
local fromslot = frame.args.slot or "main"
local fromtemplate = frame.args.template or "" --template name
local fromparam = frame.args.param or "" --template parameter
local label = frame.args.label or ""
-- Important! Assign everything from protected frame.args to new table
flexargs = {}
for k,v in pairs( frame.args ) do
flexargs[k] = v
end
-- slot
-- Remove anything from args that should not be sent to FF
local additkeys = { 'content', 'page', 'slot', 'template', 'param', 'label' }
for name in ipairs( additkeys ) do
if ( flexargs[name] ~= nil ) then
flexargs[name] = nil
end
end
--add value from slot
if ( frompage ~= "" ) then
slotval = p.getdatafromslot( frompage, fromslot, fromtemplate, fromparam )
if ( flexargs["type"] == 'textarea' ) then
content = mw.text.nowiki( slotval )
else
flexargs.value = "" -- likely superfluous
flexargs.value = slotval
end
end
-- FF
local res = frame:extensionTag( '_input', content, flexargs )
return res
end
--[[
test
]]--
p.getdata = function(frame)
-- todo without pagename, get current page
local page = frame.args.page or mw.title.getCurrentTitle()
local slot = frame.args.slot or "main"
local template = frame.args.template or "" --template name
local param = frame.args.param or nil --template parameter
-- getdatafromslot( page, slot, param )
local str = p.getdatafromslot( page, slot, template, param )
return str
--local pagepropsparams = { slot, page, '@' .. slot }
--local slotdatapf = frame:callParserFunction( '#slottemplates', pagepropsparams )
--local slotdata = frame:preprocess( slotdatapf )
end
--[[
]]--
p.getdatafromslot = function( page, slot, template, param )
local str = "Something went wrong"
--
if ( template == "" ) then
--todo
local str = mw.slots.slotContent( slot, page )
return str
end
--
local slotdata = mw.slots.slotTemplates( slot, page )
local str = slotdata[template][1][param]["_text"]
--local str = slotdata["Book"][1]["TitelNr"]["_text"]
return str
end
-- does not work
p.getdatatest = function()
local slotdata = mw.slots.slotTemplates( "ws-page-props", "Boek/-100102193" )
mw.logObject( slotdata );
local str = slotdata["Book"][1]["TitelNr"]["_text"]
return str
end
--[[
test to show comparison callParserFunction and extensionTag
]]--
p.form1 = function(frame)
-- test of frame:callParserFunction
-- {{#tag:form||id=bla|action=get}}
local content = 'Test'
local formparams = { 'form', content, id = 'bla', action = 'get' }
local str = frame:callParserFunction( '#tag', formparams )
return str
end
--[[
Makes more sense than using callParserFunction
but "equivalent to a call to frame:callParserFunction() with function name '#tag' "
]]--
p.form2 = function(frame)
-- frame:extensionTag( name, content, args )
local content = 'Test'
local tag = 'form'
local args = { id = 'bla', action = 'get' }
local str = frame:extensionTag( tag, content, args )
return str
end
p.printarray = function( mytable )
str = table.concat( mytable, ", " )
return str
end
return p
