(nowiki) |
|||
Regel 3: | Regel 3: | ||
p.input = function(frame) | p.input = 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 frompage = frame.args.page or "" | local frompage = frame.args.page or "" | ||
local fromslot = frame.args.slot or "main" | local fromslot = frame.args.slot or "main" | ||
Regel 9: | Regel 10: | ||
local label = frame.args.label or "" | local label = frame.args.label or "" | ||
− | -- Important! Assign | + | -- Important! Assign everything from protected frame.args to new table |
flexargs = {} | flexargs = {} | ||
for k,v in pairs( frame.args ) do | for k,v in pairs( frame.args ) do | ||
Regel 36: | Regel 37: | ||
local res = frame:extensionTag( '_input', content, flexargs ) | local res = frame:extensionTag( '_input', content, flexargs ) | ||
return res | return res | ||
− | |||
− | |||
− | |||
− | |||
− | |||
end | end | ||
Regel 84: | Regel 80: | ||
return str | return str | ||
end | end | ||
− | |||
--[[ | --[[ | ||
Regel 110: | Regel 105: | ||
return str | return str | ||
end | end | ||
+ | |||
+ | p.printarray = function( mytable ) | ||
+ | str = table.concat( mytable, ", " ) | ||
+ | return str | ||
+ | end | ||
+ | |||
return p | return p |
Versie van 22 sep 2023 09:56
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) 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