<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-csp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pagesync</id>
	<title>CSP Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://open-csp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pagesync"/>
	<link rel="alternate" type="text/html" href="https://open-csp.org/Special:Contributions/Pagesync"/>
	<updated>2026-04-29T20:40:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://open-csp.org/index.php?title=Template:Csp_show_class_definition&amp;diff=3918</id>
		<title>Template:Csp show class definition</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Template:Csp_show_class_definition&amp;diff=3918"/>
		<updated>2026-02-18T08:23:10Z</updated>

		<summary type="html">&lt;p&gt;Pagesync: Imported by PageSync&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the &#039;&#039;&#039;Csp show class definition&#039;&#039;&#039; template. It should be called in the following format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Csp show class definition&lt;br /&gt;
|$namespacename= (text) e.g. &amp;quot;Wiki&amp;quot;&lt;br /&gt;
|$page= (pagename without namespace) e.g. &amp;quot;Class definition/Application page&amp;quot;&lt;br /&gt;
|Class= (text) should always be &amp;quot;Class definition&amp;quot; for those created from CSP 1.8.0 or later&lt;br /&gt;
|Defines class= (text) e.g. &amp;quot;Person&amp;quot;&lt;br /&gt;
|Footer template= (full pagename) &lt;br /&gt;
|Page properties template= (full pagename)&lt;br /&gt;
|Sidebar template= (full pagename)&lt;br /&gt;
|Sub header template= (full pagename)&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;alert alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
Note about the use of &#039;&#039;&#039;&amp;quot;Template:&amp;quot;&#039;&#039;&#039; inside this template to create links in the results: this was done because properties of type pages in WikiSearch are returned without namespace (due to how SMW stores them in ES). An alternative would be to retrieve data from slots of the class definition page or to add new properties (of type Text) that also contain the template names. However this wouldn&#039;t be compatible with class definitions from before CSP 1.8.0. Once the old style class definitions have been officially deprecated (1.9.0 or later), this template could be updated to change this.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test ==&lt;br /&gt;
&lt;br /&gt;
{{Csp show class definition&lt;br /&gt;
|$namespacename=Wiki&lt;br /&gt;
|$page=Class definition/Application page&lt;br /&gt;
|Class=Class definition&lt;br /&gt;
|Defines class=Application page&lt;br /&gt;
|Footer template=&lt;br /&gt;
|Page properties template=Csp class properties&lt;br /&gt;
|Sidebar template=Application page sidebar&lt;br /&gt;
|Sub header template=Application page subheader&lt;br /&gt;
}}{{Csp show class definition&lt;br /&gt;
|$namespacename=Wiki&lt;br /&gt;
|$page=Class definition/Person&lt;br /&gt;
|Class=Class definition&lt;br /&gt;
|Defines class=Person&lt;br /&gt;
|Footer template=Test footer&lt;br /&gt;
|Page properties template=Csp class properties&lt;br /&gt;
|Sidebar template=Csp default sidebar&lt;br /&gt;
|Sub header template=Csp default subheader&lt;br /&gt;
}}{{Csp show class definition&lt;br /&gt;
|$namespacename=Wiki&lt;br /&gt;
|$page=Article-settings&lt;br /&gt;
|Class=&lt;br /&gt;
|Defines class=Article&lt;br /&gt;
|Footer template=&lt;br /&gt;
|Page properties template=Article properties&lt;br /&gt;
|Sidebar template=Article sidebar&lt;br /&gt;
|Sub header template=Article subheader&lt;br /&gt;
}}{{Csp show class definition&lt;br /&gt;
|$namespacename=Wiki&lt;br /&gt;
|$page=Class definition/Class definition&lt;br /&gt;
|Class=Class definition&lt;br /&gt;
|Defines class=Class definition&lt;br /&gt;
|Page properties template=Class definition properties&lt;br /&gt;
|Sidebar template=Class definition sidebar&lt;br /&gt;
|Sub header template=Class definition subheader&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;card mb-3&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;card-header&amp;quot;&amp;gt;[[{{{$namespacename|}}}:{{{$page|}}} |{{{Defines class|}}}]]&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;ul class=&amp;quot;list-group list-group-flush&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
// properties template&lt;br /&gt;
--&amp;gt;&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;{{#switch:{{{Page properties template|}}} |Csp class properties=Csp class properties |=|#default=[[Template:{{{Page properties template|}}} |{{{Page properties template|}}}]] }}&amp;lt;/li&amp;gt;&amp;lt;!--&lt;br /&gt;
// footer template&lt;br /&gt;
--&amp;gt;&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;{{#if:{{{Footer template|}}} |[[Template:{{{Footer template|}}} |Footer]]|(no footer template) {{#widget:Link |type=a |href=#custom-footer-form-{{anchorencode:{{{Defines class|}}} }} |datatoggle=modal |text={{Fa|edit}} }}&lt;br /&gt;
{{Modal&lt;br /&gt;
|Targetid=custom-footer-form-{{anchorencode:{{{Defines class|}}} }}&lt;br /&gt;
|ModalHeading=Create custom footer template&lt;br /&gt;
|BodyText=&amp;lt;form id=&amp;quot;footer-form-{{anchorencode:{{{Defines class|}}} }}&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;[Footer template]&amp;quot; mwtemplate=&amp;quot;wsnone&amp;quot; formfields=&amp;quot;content&amp;quot; noseo mwfollow /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{{$namespacename|}}}:{{{$page|}}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; mwslot=&amp;quot;ws-class-props&amp;quot; formfield=&amp;quot;Footer template&amp;quot; /&amp;gt;&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=Footer template&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;Footer template&amp;quot; class=&amp;quot;form-control&amp;quot; value=&amp;quot;Template:Csp custom footer/{{{Defines class|}}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;content&amp;quot; value=&amp;quot;{{subst:Csp new component template}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;text-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;{{int:csp-label-save}}&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
|Hide link=Yes&lt;br /&gt;
}}&lt;br /&gt;
}}&amp;lt;/li&amp;gt;&amp;lt;!--&lt;br /&gt;
// sidebar template&lt;br /&gt;
--&amp;gt;{{#if:{{{Sidebar template|}}} |&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;{{#switch:{{{Sidebar template|}}} |Csp default sidebar=Csp default sidebar {{#widget:Link |type=a |href=#custom-sidebar-form-{{anchorencode:{{{Defines class|}}} }} |datatoggle=modal |text={{Fa|edit}} }}&lt;br /&gt;
{{Modal&lt;br /&gt;
|Targetid=custom-sidebar-form-{{anchorencode:{{{Defines class|}}} }}&lt;br /&gt;
|ModalHeading=Create custom sidebar template&lt;br /&gt;
|BodyText=&amp;lt;form id=&amp;quot;sidebar-form-{{anchorencode:{{{Defines class|}}} }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;[Sidebar template]&amp;quot; mwtemplate=&amp;quot;subst:Csp new component template&amp;quot; formfields=&amp;quot;Content&amp;quot; noseo mwfollow /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{{$namespacename|}}}:{{{$page|}}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; mwslot=&amp;quot;ws-class-props&amp;quot; formfield=&amp;quot;Sidebar template&amp;quot; /&amp;gt;&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=Sidebar template&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;Sidebar template&amp;quot; class=&amp;quot;form-control&amp;quot; value=&amp;quot;Template:Csp custom sidebar/{{{Defines class|}}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=Template content&lt;br /&gt;
|Value=&amp;lt;select name=&amp;quot;Content&amp;quot; class=&amp;quot;form-control&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;option&amp;quot; value=&amp;quot;&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;(none)&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;option&amp;quot; noparse value=&amp;quot;Default sidebar&amp;quot;&amp;gt;Default sidebar&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;text-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;{{int:csp-label-save}}&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
|Hide link=Yes&lt;br /&gt;
}}&amp;lt;!-- end of custom sidebar template modal --&amp;gt;&lt;br /&gt;
|=|#default=[[Template:{{{Sidebar template|}}} |Sidebar]] }}&amp;lt;/li&amp;gt;}}&amp;lt;!--&lt;br /&gt;
// sub header template&lt;br /&gt;
--&amp;gt;{{#if:{{{Sub header template|}}} |&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;{{#switch:{{{Sub header template|}}} |Csp default subheader=Csp default subheader {{#widget:Link |type=a |href=#custom-subheader-form-{{anchorencode:{{{Defines class|}}} }} |datatoggle=modal |text={{Fa|edit}} }}&lt;br /&gt;
{{Modal&lt;br /&gt;
|Targetid=custom-subheader-form-{{anchorencode:{{{Defines class|}}} }}&lt;br /&gt;
|ModalHeading=Create custom subheader template&lt;br /&gt;
|BodyText=&amp;lt;form id=&amp;quot;subheader-form-{{anchorencode:{{{Defines class|}}} }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;[Sub header template]&amp;quot; mwtemplate=&amp;quot;subst:Csp new component template&amp;quot; formfields=&amp;quot;Content&amp;quot; noseo mwfollow /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{{$namespacename|}}}:{{{$page|}}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; mwslot=&amp;quot;ws-class-props&amp;quot; formfield=&amp;quot;Sub header template&amp;quot; /&amp;gt;&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=Sub-header template&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;Sub header template&amp;quot; class=&amp;quot;form-control&amp;quot; value=&amp;quot;Template:Csp custom subheader/{{{Defines class|}}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=Template content&lt;br /&gt;
|Value=&amp;lt;select name=&amp;quot;Content&amp;quot; class=&amp;quot;form-control&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;option&amp;quot; value=&amp;quot;&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;(none)&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;option&amp;quot; noparse value=&amp;quot;Copy default subheader&amp;quot;&amp;gt;Copy default subheader&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;text-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;{{int:csp-label-save}}&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
|Hide link=Yes&lt;br /&gt;
}}&amp;lt;!-- end of custom sidebar template modal --&amp;gt;|=|#default=[[Template:{{{Sub header template|}}} |Subheader]] }}&amp;lt;/li&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pagesync</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=3917</id>
		<title>DevOps:Doc/FlexForm/Change-log</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=3917"/>
		<updated>2026-02-18T08:22:35Z</updated>

		<summary type="html">&lt;p&gt;Pagesync: Imported by PageSync&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Changelog===&lt;br /&gt;
* 2.6.6 : Tempex now supports select, checkboxes and radiobuttons.&lt;br /&gt;
&lt;br /&gt;
* 2.6.5 : Update HTMLPurifier and move to composer. Added default user for internal api call.&lt;br /&gt;
&lt;br /&gt;
* 2.6.4 : fix: A check at MW if a page title is usable was set to early.&lt;br /&gt;
&lt;br /&gt;
* 2.6.3 : Changed Debug mode. For more information, see [[DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm|Installing Flexform config options]]. Fixed leadingzero function. $output not defined fixed. Fix create range when it cannot be set. Have MW check page before it is created.&lt;br /&gt;
&lt;br /&gt;
* 2.6.2 : Fixed deprecation messages&lt;br /&gt;
&lt;br /&gt;
* 2.6.1 : Fixed messaging bug with persistent messages&lt;br /&gt;
&lt;br /&gt;
* 2.6.0 : Added form tag : add-as-job. This will put any EDIT functions into jobs. Updated select2.js. Fixed https://github.com/Open-CSP/FlexForm/issues/77&lt;br /&gt;
&lt;br /&gt;
* 2.5.0 : Maintenance script for syncing Wiki pages that have forms, for us with $config renderonlyapprovedforms and large wikis. &#039;&#039;&#039;This will also be the last feature update for MW1.35.x versions of FlexForm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 2.4.2 : Better way of finding actual forms in a page&lt;br /&gt;
&lt;br /&gt;
* 2.4.1 : Fix for select2 focus fields for jQuery bug&lt;br /&gt;
&lt;br /&gt;
* 2.4.0 : Added option to choose which excel tabsheet needs converting&lt;br /&gt;
&lt;br /&gt;
* 2.3.10 : Added additional rebuild data for edited or created page to set properties even if user is not allowed.&lt;br /&gt;
&lt;br /&gt;
* 2.3.9 : Added honeypot when using recaptcha. Fixed an issue with single create and not using fields where noseo was not honoured&lt;br /&gt;
&lt;br /&gt;
* 2.3.8 : Added optgroup support for select&lt;br /&gt;
&lt;br /&gt;
* 2.3.7 : Default to now parse every argument given to tokens and selects&lt;br /&gt;
&lt;br /&gt;
* 2.3.6 : FlexForm Secure JS changes&lt;br /&gt;
&lt;br /&gt;
* 2.3.5 : Request https://github.com/Open-CSP/FlexForm/issues/50 added. Parsing of value for attachmessageto. Fixed Tempex JS issue.&lt;br /&gt;
&lt;br /&gt;
* 2.3.4 : Fixed bug in create using next available option&lt;br /&gt;
&lt;br /&gt;
* 2.3.3 : Version bump to keep in-line with REL1.39&lt;br /&gt;
&lt;br /&gt;
* 2.3.2 : Added new security checks for the Messaging functions&lt;br /&gt;
&lt;br /&gt;
* 2.3.1 : _create with instances and JSON fix and i18n Fix from Pull request #47.&lt;br /&gt;
&lt;br /&gt;
* 2.3.0 : To get consistency: Added parsing of value of allowtags and added required=required to select attribute.&lt;br /&gt;
&lt;br /&gt;
* 2.2.21 : check mwreturn changes to take server port in host into account.&lt;br /&gt;
&lt;br /&gt;
* 2.2.20 : Token bugfix&lt;br /&gt;
&lt;br /&gt;
* 2.2.19 : changed token behaviour for allowsort, allowclear and allowtags. Backwards compatible.&lt;br /&gt;
&lt;br /&gt;
* 2.2.18 : re-write of loading necessary JavaScript&lt;br /&gt;
&lt;br /&gt;
* 2.2.17 : Bug fixes in file upload&lt;br /&gt;
&lt;br /&gt;
* 2.2.15 : Allow for field substitution when using _createuser.&lt;br /&gt;
&lt;br /&gt;
* 2.2.14 : Fix for finding templates on a page with spaces. [https://github.com/Open-CSP/FlexForm/releases/tag/v2.2.14REL1_39 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; v2.2.14REL1_39] / [https://github.com/Open-CSP/FlexForm/releases/tag/v2.2.14REL1_35 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; v2.2.14REL1_35]&lt;br /&gt;
&lt;br /&gt;
* 2.2.12 : Fix for creating pages with ranges. Fix reCaptcha on multiple forms.[https://github.com/Open-CSP/FlexForm/releases/tag/v2.2.12REL1_39 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; v2.2.12REL1_39] / [https://github.com/Open-CSP/FlexForm/releases/tag/v2.2.12REL1_35 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; v2.2.12REL1_35]&lt;br /&gt;
&lt;br /&gt;
* 2.2.11 : Added reCaptcha Enterprise and Recaptcha v2 I&#039;m not a Robot support. [https://github.com/Open-CSP/FlexForm/releases/tag/v2.2.11REL1_39 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; v2.2.11REL1_39] / [https://github.com/Open-CSP/FlexForm/releases/tag/v2.2.11REL1_35 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; v2.2.11REL1_35]&lt;br /&gt;
&lt;br /&gt;
* 2.2.10 : Added recursive parsing of content to find templates and values. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.10 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.10] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.10 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.10]&lt;br /&gt;
&lt;br /&gt;
* 2.2.9 : Added convert from xls/xlsx to JSON. Added slot support for conversions. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.9 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.9] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.9 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.9]&lt;br /&gt;
&lt;br /&gt;
* 2.2.8 : Added some addition CSS to instances. Changed no-disable-on-submit to work per form. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.8 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.8] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.8 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.8]&lt;br /&gt;
&lt;br /&gt;
* 2.2.7 : Fixed no_submit_on_return and disabling submit button. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.7 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.7] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.7 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.7]&lt;br /&gt;
&lt;br /&gt;
* 2.2.6 : Changed some implementations for messaging and fixes. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.6 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.6] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.6 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.6]&lt;br /&gt;
&lt;br /&gt;
* 2.2.5 : Added persistent messages, a Messaging special page and update FlexForm per branch&lt;br /&gt;
&lt;br /&gt;
* 2.2.4 : Input type=message now also if secure setting is false. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.4 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.4] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.4 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.4]&lt;br /&gt;
&lt;br /&gt;
* 2.2.3 : Refresh SMW props changed and Debug options changed [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.3 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.3] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.3 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.3]&lt;br /&gt;
&lt;br /&gt;
*2.2.2 : Removed HTML Special character on option fields. Deprecated showmessages https://www.open-csp.org/DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm#Notification.2FMessages. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.2 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.2] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.2 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.2]&lt;br /&gt;
&lt;br /&gt;
*2.2.0 : Added Messaging system. &#039;&#039;&#039;Make sure to run update.php for this release!&#039;&#039;&#039; [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.2.0 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.2.0] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.2.0 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.2.0]&lt;br /&gt;
&lt;br /&gt;
*2.1.34 : Adjusted code to handle similar template names. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.34 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.34] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.34 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.34]&lt;br /&gt;
&lt;br /&gt;
*2.1.33 : Force update DeferredUpdate. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.33 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.33] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.33 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.33]&lt;br /&gt;
&lt;br /&gt;
*2.1.32 : Trimming Tempex Fields before applying. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.32 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.32] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.32 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.32]&lt;br /&gt;
&lt;br /&gt;
*2.1.31 : Fixed an issue where extension argument is empty. i18n update. ( https://github.com/Open-CSP/FlexForm/pull/35/commits ) [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.31 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.31] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.31 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.31]&lt;br /&gt;
&lt;br /&gt;
*2.1.30 : Fixed  https://github.com/Open-CSP/FlexForm/issues/34. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.30 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.30] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.30 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.30]&lt;br /&gt;
&lt;br /&gt;
*2.1.29 : Next available namespace issue fix [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.29 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.29] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.29 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.29]&lt;br /&gt;
&lt;br /&gt;
*2.1.28 : getWikitextForTransclusion double check for nulled content. Fix for instances and form fields arrays. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.28 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.28] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.28 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.28]&lt;br /&gt;
&lt;br /&gt;
*2.1.27 : When using an unknown namespace when creating a page, use main namespace. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.27 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.27] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.27 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.27]&lt;br /&gt;
&lt;br /&gt;
*2.1.26 : Could not resolve namespace check added. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.26 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.26] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.26 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.26]&lt;br /&gt;
&lt;br /&gt;
*2.1.25 : Check to see if a page has a form has been updated to make it only check relevant pages [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.25 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.25] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.25 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.25]&lt;br /&gt;
&lt;br /&gt;
*2.1.24 : Instances with multiple tokens bug fixed. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.24 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.24] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.24 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.24]&lt;br /&gt;
&lt;br /&gt;
*2.1.23 :  Added config option to toggle null edits (forceNullEdit) [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.23 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.23] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.23 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.23]&lt;br /&gt;
&lt;br /&gt;
*2.1.22 :  Fixed: Ajax calls end routine handling; clean post values are now recursive. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.22 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.22] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.22 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.22]&lt;br /&gt;
&lt;br /&gt;
*2.1.21 :   Fixed error in instances [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.21 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.21] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.21 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.21]&lt;br /&gt;
&lt;br /&gt;
*2.1.20 :  Mail update using composer. Changed organization. Instances not using relaxed search. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.20 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.20] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.20 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.20]&lt;br /&gt;
&lt;br /&gt;
*2.1.19 :  False positive check on secure forms. Added support for quoted json path keys. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.19 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.19] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.19 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.19]&lt;br /&gt;
&lt;br /&gt;
*2.1.18 : Show error with incorrect use of multiple _creates in one form. Added 2nd check for incomplete secure fields. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.18 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.18] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.18 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.18]&lt;br /&gt;
&lt;br /&gt;
*2.1.17 : Changed null edit to remove smwproperties refresh. [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.17 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.17] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.17 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.17]&lt;br /&gt;
&lt;br /&gt;
*2.1.16 : Added timing information on debug [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_39-v2.1.16 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_39-v2.1.16] / [https://github.com/Open-CSP/FlexForm/releases/tag/REL1_35-v2.1.16 &amp;lt;i class=&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; REL1_35-v2.1.16]&lt;br /&gt;
&lt;br /&gt;
*2.1.15 : Creating a page not using a template fix for array values&lt;br /&gt;
&lt;br /&gt;
*2.1.14 : Have tokens use the same required=&amp;quot;required&amp;quot; options as normal input fields&lt;br /&gt;
&lt;br /&gt;
*2.1.13 : Added non predefined value to show up in token instances. Added valid JSON schema check.&lt;br /&gt;
&lt;br /&gt;
*2.1.12 : Added form permission argument&lt;br /&gt;
&lt;br /&gt;
*2.1.11 : Added tokens rendering to json schema&lt;br /&gt;
&lt;br /&gt;
*2.1.10 : Redirect issue fixed&lt;br /&gt;
&lt;br /&gt;
*2.1.9 : Added replacevariables parser options on semantic ask query&lt;br /&gt;
&lt;br /&gt;
*2.1.8 : Setting display title in a MCR slot fix&lt;br /&gt;
&lt;br /&gt;
*2.1.7 : Fixed Pandoc images name uploads. (Thanks to Bernhard Krabina!)&lt;br /&gt;
&lt;br /&gt;
*2.1.6 : Bug fix for canvas and signature uploads&lt;br /&gt;
&lt;br /&gt;
*2.1.5 : Fixed possible wrong smw query path ( thnx to @Bovine-collab ). This closes https://github.com/Open-CSP/FlexForm/pull/30. Also added array checks not being empty.&lt;br /&gt;
&lt;br /&gt;
*2.1.4 : Simplified phpList mailing ids&lt;br /&gt;
&lt;br /&gt;
*2.1.3 : Managed approved forms bug fixed&lt;br /&gt;
&lt;br /&gt;
*2.1.2 : Added a required field for the PHPList extension ( like a checkbox to allow to register ).&lt;br /&gt;
&lt;br /&gt;
*2.1.1 : Some changes to the extension handler and the PHPList extension to support localsetting configuration for an extension&lt;br /&gt;
&lt;br /&gt;
*2.1 : New features and changes : https://wikibase-solutions.com/developer-logs/flexform-2.1-release&lt;br /&gt;
&lt;br /&gt;
*2.0.12 : Use wfExpandUrl to accommodate for non-null ArticlePath settings&lt;br /&gt;
&lt;br /&gt;
*2.0.11 : Added loadscript config setting&lt;br /&gt;
&lt;br /&gt;
*2.0.10 : TinyMCE selector change.&lt;br /&gt;
&lt;br /&gt;
*2.0.9 : Added parsing of options and selected to Select and Token&lt;br /&gt;
&lt;br /&gt;
*2.0.8 : new way of rendering select and tokens without options&lt;br /&gt;
&lt;br /&gt;
*2.0.7 : fixed HTML argument custom&lt;br /&gt;
&lt;br /&gt;
*2.0.6 : autosave || to &amp;amp;&amp;amp;, Added autosave=&amp;quot;none&amp;quot;, see docs.&lt;br /&gt;
&lt;br /&gt;
*2.0.4 : Missing sortable on tokens&lt;br /&gt;
&lt;br /&gt;
*2.0.3 : Edit on page id 0 fix&lt;br /&gt;
&lt;br /&gt;
*2.0.2 : Minor tweaks to autosave buttons and the placing&lt;br /&gt;
&lt;br /&gt;
*2.0.0  : Added approved forms, -usercan- options and code optimization, wgCapitalLinks and many more&lt;br /&gt;
&lt;br /&gt;
*1.1.45 : Split wiki edit and create&lt;br /&gt;
&lt;br /&gt;
*1.1.44 : JSON Support for instances. Fixed nooverwrite on create page option.&lt;br /&gt;
&lt;br /&gt;
*1.1.43 : JSON Edit support. Dropped jQuery.UI dependency&lt;br /&gt;
&lt;br /&gt;
*1.1.42 : Instances update and multiple _create json support&lt;br /&gt;
&lt;br /&gt;
*1.1.41 : Add copy and paste support form formats. _create json support finished. Tempex and Calc secure and with instances. reCaptcha changes&lt;br /&gt;
&lt;br /&gt;
*1.1.40 : _create json support&lt;br /&gt;
&lt;br /&gt;
*1.1.39 : Localhost redirect fix&lt;br /&gt;
&lt;br /&gt;
*1.1.38 : API next available warning removed&lt;br /&gt;
&lt;br /&gt;
*1.1.37 : Secure calc added and resolve template fields. Docs : https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/number#Parameters&lt;br /&gt;
&lt;br /&gt;
*1.1.35 : Calc options added. Added Fix for wikis with different paths and urls. Docs : Docs : https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/number#Parameters&lt;br /&gt;
&lt;br /&gt;
*1.1.34 : file upload dropzone verbose fixes. Docs : https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/file&lt;br /&gt;
&lt;br /&gt;
*1.1.33 : template support for file pages. Docs : https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/file&lt;br /&gt;
&lt;br /&gt;
*1.1.32 : Separated Git from Special page&lt;br /&gt;
&lt;br /&gt;
*1.1.31 : Version bump to git update&lt;br /&gt;
&lt;br /&gt;
*1.1.28 : autosave &#039;&#039;&#039;onintervalafterchange&#039;&#039;&#039;. Added admin git update feature. Docs : https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/Form_options#autosave&lt;br /&gt;
&lt;br /&gt;
*1.1.27 : Survey module added. More on this later. Filter option for SMQ Queries added. noseo option for _create&lt;br /&gt;
&lt;br /&gt;
*1.1.26 : Rendering instances with default content will do a SMW Ask to get the Display property for a token using its value and Query&lt;br /&gt;
&lt;br /&gt;
*1.1.25 : Instance default-content 2 token fix&lt;br /&gt;
&lt;br /&gt;
*1.1.24 : Fixed an issue where select2 tokens callbacks were initiated multiple times. Removed 1.12 J-UI dependency.&lt;br /&gt;
&lt;br /&gt;
*1.1.23 : Another instance update for tokens. Recent changes are now initiated.&lt;br /&gt;
&lt;br /&gt;
*1.1.22 : Instances and textarea fix&lt;br /&gt;
&lt;br /&gt;
*1.1.21 : Fixed Paragraph tag appearing in fieldset&lt;br /&gt;
&lt;br /&gt;
*1.1.20 : Fixed file upload preview and dropzone issues&lt;br /&gt;
&lt;br /&gt;
*1.1.19 : Added wscreate usefield like options. Fixed SMW query results being escaped&lt;br /&gt;
&lt;br /&gt;
*1.1.17 : Fixed autosave with Instances&lt;br /&gt;
&lt;br /&gt;
*1.1.16 : VE error message fix when nog VE loaded.&lt;br /&gt;
&lt;br /&gt;
*1.1.15 : Extended the hook to contain extension name.&lt;br /&gt;
&lt;br /&gt;
*1.1.14 : Create user email is now a system message. Added FFAfterFormHandling Hook.&lt;br /&gt;
&lt;br /&gt;
*1.1.13 : Added extension support&lt;br /&gt;
&lt;br /&gt;
*1.1.12 : Added entity decoding to mwreturn to support &amp;amp;-sign. Fixed multiple instances issue.&lt;br /&gt;
&lt;br /&gt;
*1.1.11 : SEO url&#039;s to file upload&lt;br /&gt;
&lt;br /&gt;
*1.1.10 : Added sortable tokens&lt;br /&gt;
&lt;br /&gt;
*1.1.9 : Addendum and SEO setting&lt;br /&gt;
&lt;br /&gt;
*1.1.8 : FileUpload fix&lt;br /&gt;
&lt;br /&gt;
*1.1.7 : Add HTML screenshot upload (canvas)&lt;br /&gt;
&lt;br /&gt;
*1.1.6 : reCaptcha fixed. Rdy to test. https://github.com/WikibaseSolutions/FlexForm/issues/8&lt;br /&gt;
&lt;br /&gt;
*1.1.5 : Fixed slot creation bug&lt;br /&gt;
&lt;br /&gt;
*1.1.4 : Instances changes&lt;br /&gt;
&lt;br /&gt;
*1.1.3 : Added frame parsing for tokens. Form validation was set to input field validations.. Fixed!&lt;br /&gt;
&lt;br /&gt;
*1.1.2 : Fixed no submit on enter per form. Security checksum changes.&lt;br /&gt;
&lt;br /&gt;
*1.1.1 : Added support for anonymous users&lt;br /&gt;
&lt;br /&gt;
*1.1.0     : Email bot api support, create user support, various fixed after refactoring. Added security options. Special note: By default only a sysop can now edit or create a page with FlexForm on it. This can be changed in the settings for FlexForm.&lt;br /&gt;
&lt;br /&gt;
*1.0       : Initial first public release  &#039;&#039;Compared to the previous version any File upload method is not supported and will be added in a later version. Rendering of a form has been rewritten to support themes.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Pagesync</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/file/examples&amp;diff=3916</id>
		<title>DevOps:Doc/FlexForm/2.1/input/file/examples</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/file/examples&amp;diff=3916"/>
		<updated>2026-02-18T08:22:19Z</updated>

		<summary type="html">&lt;p&gt;Pagesync: Imported by PageSync&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Example 1 ====&lt;br /&gt;
This will upload a file. If the filename is DCM10001.jpg, the file will be uploaded as &#039;&#039;&#039;pictures-DCM10001-732138982.jpg&#039;&#039;&#039;, The filepage will have &#039;&#039;&#039;Information of the test file&#039;&#039;&#039;. Finally using &#039;&#039;&#039;error_id&#039;&#039;&#039; and &#039;&#039;&#039;verbose_id&#039;&#039;&#039;, means the user should add two div&#039;s, one with an id=&amp;quot;div-error&amp;quot; and one with an id=&amp;quot;div-verbose&amp;quot; with these name themselves.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; id=&amp;quot;fileUpload&amp;quot; name=&amp;quot;test&amp;quot; target=&amp;quot;pictures-[filename]-[mwrandom]&amp;quot; pagecontent=&amp;quot;Information of the test file&amp;quot; error_id=&amp;quot;div-error&amp;quot; verbose_id=&amp;quot;div-verbose&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example 2 ====&lt;br /&gt;
Always make sure an image will be transformed to jpeg.&lt;br /&gt;
&lt;br /&gt;
Allow for multiple file upload.&lt;br /&gt;
&lt;br /&gt;
Add form text field &amp;quot;description&amp;quot; on the files page content.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form enctype=&amp;quot;multipart/form-data&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; id=&amp;quot;fileUpload&amp;quot; name=&amp;quot;myfile&amp;quot; multiple=&amp;quot;multiple&amp;quot; parsecontent target=&amp;quot;pictures-[filename]-[mwrandom]&amp;quot; pagecontent=&amp;quot;Information for this image: [description]&amp;quot; force=&amp;quot;jpg&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;description&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;upload&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example 3 ====&lt;br /&gt;
Store a template to the pagecontent. You can use this if you want the filepage to have structured content or if you want to store structured data with an extension like SMW.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form enctype=&amp;quot;multipart/form-data&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; id=&amp;quot;fileUpload&amp;quot; name=&amp;quot;myfile&amp;quot; target=&amp;quot;picture-[mwrandom]&amp;quot; parsecontent template=&amp;quot;Uploaded file&amp;quot; pagecontent=&amp;quot;[flexform-template]|Uploaded from page={{FULLPAGENAME}}|Uploaded by={{CURRENTLOGGEDUSER}}|Comment=[Comment][/flexform-template]&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;Comment&amp;quot; placeholder=&amp;quot;Comment&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;upload&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example 4 ====&lt;br /&gt;
Convert a Microsoft Docx document to a page in the Wiki. In our example the pagename will be the filename.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form enctype=&amp;quot;multipart/form-data&amp;quot; messageonsuccess=&amp;quot;File has been converted and uploaded&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;myfile&amp;quot; id=&amp;quot;fileUpload&amp;quot; multiple=&amp;quot;multiple&amp;quot; parsecontent target=&amp;quot;[filename]&amp;quot; pagecontent=&amp;quot;This image belongs to : [filename]&amp;quot; action=&amp;quot;convertfrom:docx&amp;quot; comment=&amp;quot;converted and uploaded from {{PAGENAME}}&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;upload&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example 5 ====&lt;br /&gt;
Convert a Microsoft Excel document to a page in the Wiki. The Excel content (from the second sheet) is stored in json format in a slot and a create is used to also store a template in the main slot.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form enctype=&amp;quot;multipart/form-data&amp;quot; messageonsuccess=&amp;quot;File has been converted and uploaded&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fieldset class=&amp;quot;form-group&amp;quot;&amp;gt;&amp;lt;legend&amp;gt;Upload and convert Excel to Json&amp;lt;/legend&amp;gt;&lt;br /&gt;
  &amp;lt;_create noseo mwwrite=&amp;quot;[FFUploadedFile-NewName-myfile]&amp;quot; mwtemplate=&amp;quot;Test excel convert&amp;quot; mwfields=&amp;quot;FFUploadedFile-UploadName-myfile::Original filename&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; class=&amp;quot;form-control-file&amp;quot; id=&amp;quot;testingFile&amp;quot; name=&amp;quot;myfile&amp;quot; sheet_by_id=&amp;quot;1&amp;quot; parsecontent target=&amp;quot;[filename]&amp;quot; action=&amp;quot;convertfrom:xlsx&amp;quot; slot=&amp;quot;ws-data&amp;quot; comment=&amp;quot;converted and uploaded from {{PAGENAME}}&amp;quot; accept=&amp;quot;.xlsx&amp;quot; target=&amp;quot;excel-data-[mwrandom]-[filename]&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;upload&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pagesync</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/file&amp;diff=3915</id>
		<title>DevOps:Doc/FlexForm/2.1/input/file</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/file&amp;diff=3915"/>
		<updated>2026-02-18T08:22:17Z</updated>

		<summary type="html">&lt;p&gt;Pagesync: Imported by PageSync&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
file&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using file uploads&lt;br /&gt;
===Description===&lt;br /&gt;
Use a form to upload one or multiple files.&lt;br /&gt;
===Parameters===&lt;br /&gt;
input type=&amp;quot;file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;target&#039;&#039;&#039;* : Name of the File page to be created&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039;* : This must always be unique, that is, it can only occur once on a page. Do not include a hyphen (&amp;quot;-&amp;quot;), underscore (&amp;quot;_&amp;quot;), or any special characters (also no spaces).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;action&#039;&#039;&#039;* : defaults to &#039;&#039;&#039;upload&#039;&#039;&#039;. Read more below on using this to convert docx documents to pages in the wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039;* : As with any input field, a name is mandatory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pagecontent&#039;&#039;&#039;: Text content to be added on the File Page. If you are using &#039;&#039;&#039;convertfrom&#039;&#039;&#039; then any images uploading during the convert will get the pagecontent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;comment&#039;&#039;&#039;: Text to show in recent changes or contributions list &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;force &#039;&#039;&#039;: Force images to a certain format (png, jpg or gif). When using this option, any file uploaded that is not supported will be uploaded as is.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;error_id &#039;&#039;&#039;: Id of a DOM Element where error notices will be shown&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;verbose_id &#039;&#039;&#039;: Id of a DOM element where information about the file is shown&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;use_label &#039;&#039;&#039;: Doesn&#039;t require a value. When an input field has a label attached to it, then the label will become the upload button and the input field will be hidden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dropzone &#039;&#039;&#039;: Doesn&#039;t require a value. Will turn the verbose div into an additional file drop zone. If you also &#039;&#039;&#039;use_label&#039;&#039;&#039;, then the label will become the dropzone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parsecontent&#039;&#039;&#039;: Will force FlexForm to insert values from other form fields inside the pagecontent field. Use square brackets, like [fieldname], where values should be inserted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template&#039;&#039;&#039; : If you want to store a template call inside the content of the File page, you can &#039;&#039;&#039;template=&amp;lt;name of your template&amp;gt;&#039;&#039;&#039; in combination with &#039;&#039;&#039;parsecontent&#039;&#039;&#039;. [flexform-template] inside your content field will be replaced by &#039;&#039;&#039;{{&amp;lt;name of your template&#039;&#039;&#039; and &#039;&#039;&#039;[/flexform-template]&#039;&#039;&#039; will be replaced by &#039;&#039;&#039;}}&#039;&#039;&#039;. See example 3 on the examples page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;multiple&#039;&#039;&#039; = multiple&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039;= a required variable&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;target&#039;&#039;&#039; is basically the name you want to use to store the file or files. It recognizes &#039;&#039;&#039;[mwrandom]&#039;&#039;&#039;, &#039;&#039;&#039;[filename]&#039;&#039;&#039; and other form fields, by using their name with square brackets around them (see example). &#039;&#039;&#039;pagecontent&#039;&#039;&#039; can also hold form variables.&lt;br /&gt;
&lt;br /&gt;
=== action=&amp;quot;convertfrom:????&amp;quot; ===&lt;br /&gt;
====Pandoc====&lt;br /&gt;
The &#039;&#039;&#039;action&#039;&#039;&#039; argument defaults to &#039;&#039;upload&#039;&#039;. If you use &#039;&#039;&#039;action=&amp;quot;convertfrom:????&amp;quot;&#039;&#039;&#039; and you have Pandoc installed on your system, FlexForm will convert a document and create it as a page in the Wiki. &#039;&#039;&#039;target&#039;&#039;&#039; will then be used as a Page Title. Depending on your version of Pandoc, the results might differ. &#039;&#039;&#039;convertfrom&#039;&#039;&#039; allows all Pandoc to MediaWiki text conversions. &#039;&#039;&#039;docx&#039;&#039;&#039; would be a good example : action=&amp;quot;convertfrom:docx&amp;quot;. Any images uploaded during the convert can have their content of their filepages be filled using &#039;&#039;&#039;pagecontent&#039;&#039;&#039;. Since version 2.2.9 you can also add an argument &#039;&#039;&#039;slot=&amp;quot;&amp;lt;name of slot&amp;gt;&amp;quot;&#039;&#039;&#039; to have the converted Document be save to a specific slot on the target page, instead of the main slot. Keep in mind, MediaWiki slots need to be defined in your LocalSettings.&lt;br /&gt;
====Excel ( since version 2.2.9 )====&lt;br /&gt;
You can also use &#039;&#039;&#039;action=&amp;quot;convertfrom:xls&amp;quot;&#039;&#039;&#039; or &#039;&#039;&#039;action=&amp;quot;convertfrom:xlsx&amp;quot;&#039;&#039;&#039;. This allows for converting an Excel xls or xlsx file to JSON. Images are not supported. The argument &#039;&#039;&#039;slot&#039;&#039;&#039; is supported. &#039;&#039;This conversion is not done using Pandoc and thus will work without having Pandoc installed&#039;&#039;. (just make sure you run composer update after you update FlexForm).&lt;br /&gt;
&lt;br /&gt;
As off v2.4.0 the Excel convert action has two extra parameters that allow you to choose an Excel Sheet name, if the Excel document has multiple sheets. &#039;&#039;&#039;sheet_by_id&#039;&#039;&#039; and &#039;&#039;&#039;sheet_by_name&#039;&#039;&#039;. If you do not use them, it will work as &#039;&#039;&#039;sheet_by_id=&amp;quot;0&amp;quot;&#039;&#039;&#039; (making it backwards compatible). If you use both arguments, then &#039;&#039;&#039;sheet_by_name&#039;&#039;&#039; will get the priority.&lt;br /&gt;
&lt;br /&gt;
An excel document like this :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;options&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;description&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;HitCounter&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;WSStats&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;More&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$wgDisableCounters&lt;br /&gt;
|automatically show hitcounts on a page and Special page&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|WSStats allows for adding this to a page using parser function&lt;br /&gt;
|-&lt;br /&gt;
|$wgHitcounterUpdateFreq&lt;br /&gt;
|frequency of counters update&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|WSStats uses MW DB abstraction layer to update hitcount. The approach is  different&lt;br /&gt;
|-&lt;br /&gt;
|skip_user_groups&lt;br /&gt;
|Skip certain user groups in counting&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|count_all_usergroups&lt;br /&gt;
|Count pages independend of a user group&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
Will result in the following JSON:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;$wgDisableCounters&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;automatically show hitcounts on a page and Special page&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;yes&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;More&amp;quot;: &amp;quot;WSStats allows for adding this to a page using parser function&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;$wgHitcounterUpdateFreq&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;frequency of counters update&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;yes&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;More&amp;quot;: &amp;quot;WSStats uses MW DB abstraction layer to update hitcount. The approach is different&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;skip_user_groups&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Skip certain user groups in counting&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;yes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;count_all_usergroups&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Count pages independend of a user group&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;yes&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HTMLtoImage===&lt;br /&gt;
You can also use the field input to upload an image created from part of the page shown where the form is rendered.&lt;br /&gt;
&lt;br /&gt;
Basically, you tell FlexForm you want to render a part of your screen as an image and upload it to the wiki.&lt;br /&gt;
&lt;br /&gt;
The syntax is the same as above, but it only needs : target, name and pagecontent. The other arguments are ignored. Additionally it needs an argument called &#039;&#039;&#039;presentor=&amp;quot;canvas&amp;quot;&#039;&#039;&#039; and it needs the ID of the element you want to convert to an image: &#039;&#039;&#039;canvas_source_id&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;By default the image will always be a .jpg file. We plan to support png if this is requested.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For example you have a DIV element with id=&amp;quot;content-to-convert&amp;quot;. Within this DIV you have content you want to convert to an image an upload to the Wiki.&lt;br /&gt;
&lt;br /&gt;
A FlexForm to utilize this would look something like this :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;content-to-convert&amp;quot; style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1&amp;gt;Test Screenshot&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Lots of other content here&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; presentor=&amp;quot;canvas&amp;quot; id=&amp;quot;canvasUpload&amp;quot; target=&amp;quot;testCanvasFile.jpg&amp;quot; pagecontent=&amp;quot;testing&amp;quot; canvas_source_id=&amp;quot;content-to-convert&amp;quot;  /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;upload&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You cannot use both file uploads in one form.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
An &#039;&#039;&#039;input type=&amp;quot;file&amp;quot;&#039;&#039;&#039; always needs a unique ID! ( do not use &amp;quot;-&amp;quot;, &amp;quot;_&amp;quot;, any special characters ( also no spaces ) ).&lt;br /&gt;
&lt;br /&gt;
A form that needs to upload files needs this argument : &#039;&#039;&#039;enctype=&amp;quot;multipart/form-data&amp;quot;&#039;&#039;&#039;. The argument needs to be added to the Form tag, not the input tag. See also : https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/enctype&lt;br /&gt;
&lt;br /&gt;
As FlexForm first handles File Upload, it will add the files processed to use in an _edit or a _create.&lt;br /&gt;
Every file upload field needs a name attribute and once a file has been uploaded you can use them in an edit or create in the following format :&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;FFUploadedFile-UploadName-&#039;&#039;&#039;&#039;&#039;&amp;lt;name attribute of input field&amp;gt;&#039;&#039; : Will hold the original file name uploaded&lt;br /&gt;
*&#039;&#039;&#039;FFUploadedFile-UploadBase-&#039;&#039;&#039;&#039;&#039;&amp;lt;name attribute of input field&amp;gt;&#039;&#039; : Will hold the original file name uploaded without the extension&lt;br /&gt;
*&#039;&#039;&#039;FFUploadedFile-NewName-&#039;&#039;&#039;&#039;&#039;&amp;lt;name attribute of input field&amp;gt;&#039;&#039; : Will hold the name of the file as it is uploaded into the Wiki ( Without the File: prefix )&lt;br /&gt;
&lt;br /&gt;
If you use a multiple file upload, then the above values will all be &#039;&#039;&#039;,&#039;&#039;&#039; separated.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
====Tutorial====&lt;br /&gt;
[https://wikibase-solutions.com/developer-logs/flexform-multiple-file-upload Link to a quick tutorial video shows you how to use one FlexForm form to]:&lt;br /&gt;
* upload multiple files. Docs : [https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/file input file documentation]&lt;br /&gt;
* add a template to the source of the file pages. Docs : [https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/file input file documentation]&lt;br /&gt;
* have form input fields be added to the arguments for the template. Docs : [https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/file input file documentation]&lt;br /&gt;
* show a success message after upload. Docs : [https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/Form_options form options]&lt;br /&gt;
* add a comment line to your upload visible in the Contributions list and recent changes. Docs : [https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/Form_options form options]&lt;br /&gt;
* use a dropzone to drag and drop files. Docs : [https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/file input file documentation]&lt;br /&gt;
* align form fields using a MW table. Docs : [[mediawikiwiki:Help:Tables|MediaWiki tables]]&lt;br /&gt;
* add current date using Magic Words. Docs : [[mediawikiwiki:Help:Magic_words|MediaWiki magic words]]&lt;br /&gt;
&lt;br /&gt;
====Other links====&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/enctype&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file&lt;br /&gt;
&lt;br /&gt;
https://pandoc.org/&lt;/div&gt;</summary>
		<author><name>Pagesync</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Search-documentation&amp;diff=3914</id>
		<title>Search-documentation</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Search-documentation&amp;diff=3914"/>
		<updated>2026-02-18T08:20:51Z</updated>

		<summary type="html">&lt;p&gt;Pagesync: Imported by PageSync&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Search documentation===&lt;br /&gt;
__NOTOC__{{#WikiSearchConfig:&lt;br /&gt;
|default operator=and&lt;br /&gt;
|base query=[[Class::Doc]]&lt;br /&gt;
|aggregation size=50&lt;br /&gt;
|Title&lt;br /&gt;
|Doc subject&lt;br /&gt;
|Doc synopsis&lt;br /&gt;
|Doc parent&lt;br /&gt;
|Subject version&lt;br /&gt;
|Doc target group&lt;br /&gt;
|Tag&lt;br /&gt;
|?Doc subject&lt;br /&gt;
|?Doc target group&lt;br /&gt;
|?Doc parent&lt;br /&gt;
|?Doc synopsis&lt;br /&gt;
|?Subject version&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;main-search&amp;quot;&amp;gt;&lt;br /&gt;
{{#WikiSearchFrontend:size=10&lt;br /&gt;
|facets=4&lt;br /&gt;
|sort=Modification date&lt;br /&gt;
|sort options=Modification date&lt;br /&gt;
|ordertype=Modification date&lt;br /&gt;
|order=desc&lt;br /&gt;
|title=_DTITLE&lt;br /&gt;
|layout=template&lt;br /&gt;
|template=Show_docs_search_result&lt;br /&gt;
|@Doc subject&lt;br /&gt;
|@Subject version&lt;br /&gt;
|@Doc target group&lt;br /&gt;
  #label=Target group&lt;br /&gt;
|@Tag&lt;br /&gt;
  #display=pill&lt;br /&gt;
|?Doc subject&lt;br /&gt;
|?Doc synopsis&lt;br /&gt;
|?Subject version&lt;br /&gt;
|?Doc target group&lt;br /&gt;
|?Doc parent&lt;br /&gt;
|?Title&lt;br /&gt;
|?$title&lt;br /&gt;
|?$snippet &lt;br /&gt;
|?$namespacename&lt;br /&gt;
|?$page&lt;br /&gt;
|?$Modification date#display=date#label=Updated#type=date}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pagesync</name></author>
	</entry>
</feed>