<?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=Charlot</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=Charlot"/>
	<link rel="alternate" type="text/html" href="https://open-csp.org/Special:Contributions/Charlot"/>
	<updated>2026-04-29T15:25:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/ShowOnSelect&amp;diff=3954</id>
		<title>DevOps:Doc/FlexForm/2.0/ShowOnSelect</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/ShowOnSelect&amp;diff=3954"/>
		<updated>2026-03-24T11:36:56Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
showonselect&lt;br /&gt;
===Type===&lt;br /&gt;
form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Show or hide elements based on a form input change.&lt;br /&gt;
===Description===&lt;br /&gt;
This allows to show elements in a form based on a selection option, a checkbox status or radio button status.&lt;br /&gt;
&lt;br /&gt;
You can create a complete form with certain form elements hidden based on a selection in the form done by a user.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;show-on-select&amp;lt;/code&amp;gt; on the form tag&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For it all to work you must let FlexForm know you want to use Show On Select by adding a parameter to the form tag. &#039;&#039;&#039;See example 1&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;show-on-select&amp;lt;/code&amp;gt; on a select field&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The actual show-on-select attribute is added to an option field within a select field.&lt;br /&gt;
The value of show-on-select will be used to show a show-on-select-trigger with the same name. &#039;&#039;&#039;See example 2&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This will show an additional text input field with the name texttest1 when you select option 1 and texttest2 will be hidden. When option 2 is chosen, then texttest2 will be shown and texttest1 hidden.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;show-on-checked&amp;lt;/code&amp;gt; on a radio button&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3&#039;&#039;&#039; shows you can also add a show-on-select-trigger to something different than a FlexForm input field.&lt;br /&gt;
The example will hide the div with the trigger until the radio button is checked.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;show-on-checked&amp;lt;/code&amp;gt; on a checkbox and &amp;lt;code&amp;gt;show-on-unchecked&amp;lt;/code&amp;gt; on a checkbox&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 4&#039;&#039;&#039; shows an example of how to use show-on-checked for a checkbox field.&lt;br /&gt;
Checkboxes can have an additional option called show-on-unchecked. So, in the example, if a checkbox is unchecked it will show test B and hide test A. If the checkbox is checked it wish show test A and hide test B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 5&#039;&#039;&#039; shows an example of how to use show-on-select when a certain value is equalled.&lt;br /&gt;
You can use this on e.g. an input field of type text. When a certain text is entered and it equals a predefined value it will trigger the show on select&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 6&#039;&#039;&#039; shows an example of how to use show-on-select when a certain value is found.&lt;br /&gt;
You can use this on e.g. an input field of type text. When a certain text is entered and it contains a predefined value it will trigger the show on select&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 7&#039;&#039;&#039; shows an example of how to use show-on-select when one or two conditions need to be selected before show-on-select is triggered. ( OR Trigger )&lt;br /&gt;
The example will show a div when a value is selected in a selectbox OR a checkbox has been checked&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 8&#039;&#039;&#039; shows an example of how to use show-on-select when two conditions need to be selected before show-on-select is triggered. ( AND Trigger )&lt;br /&gt;
The example will show a div when a value is selected in a selectbox AND a radio button has been selected&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Example 1 : Show or hide elements based on a form input change&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Example 2 : show-on-select on a select field&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/option&amp;gt;&lt;br /&gt;
	&amp;lt;/select&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId&amp;quot; name=&amp;quot;texttest1&amp;quot; value=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId2&amp;quot; name=&amp;quot;texttest2&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/option&amp;gt;&lt;br /&gt;
	&amp;lt;/select&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId&amp;quot; name=&amp;quot;texttest1&amp;quot; value=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId2&amp;quot; name=&amp;quot;texttest2&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Example 3 : show-on-checked on a radio button&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;radio&amp;quot; show-on-checked=&amp;quot;tester&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
		test checked&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;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;radio&amp;quot; show-on-checked=&amp;quot;tester&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
		test checked&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Example 4 : show-on-checked on a checkbox and show-on-unchecked on a checkbox.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot;  &amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;checkbox&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; show-on-unchecked=&amp;quot;test B&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test A&amp;quot;&amp;gt;test checked&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test B&amp;quot;&amp;gt;test unchecked&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;checkbox&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; show-on-unchecked=&amp;quot;test B&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test A&amp;quot;&amp;gt;test checked&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test B&amp;quot;&amp;gt;test unchecked&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Example 5 : show-on-select when a user input equals a predefined value&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; name=&amp;quot;test&amp;quot; /&amp;gt; The predefined value is &amp;quot;testingValue&amp;quot;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId&amp;quot; show-on-select-type=&amp;quot;equals::testingValue&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;span&amp;gt; Show this when the input value is equal to the text: testingValue &amp;lt;/span&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;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; name=&amp;quot;test&amp;quot; /&amp;gt; The predefined value is &amp;quot;testingValue&amp;quot;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId&amp;quot; show-on-select-type=&amp;quot;equals::testingValue&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;span&amp;gt; Show this when the input value is equal to the text: testingValue &amp;lt;/span&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Example 6 : show-on-select when a user input contains a predefined value&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; name=&amp;quot;test&amp;quot; /&amp;gt; The predefined value is &amp;quot;testingValue&amp;quot;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId&amp;quot; show-on-select-type=&amp;quot;contains::testingValue&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;span&amp;gt; Show this when the input value is equal to the text: testingValue &amp;lt;/span&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;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; name=&amp;quot;test&amp;quot; /&amp;gt; The predefined value is &amp;quot;testingValue&amp;quot;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId&amp;quot; show-on-select-type=&amp;quot;contains::testingValue&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;span&amp;gt; Show this when the input value contains to the text: testingValue &amp;lt;/span&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Example 7 : The example will show a div when 2 is selected in the select box OR the checkbox has been checked&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/option &amp;gt;&lt;br /&gt;
	&amp;lt;/select&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;checkbox&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId||test A&amp;quot;&amp;gt;&lt;br /&gt;
		This will be shown if one of the conditions is true&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;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/option &amp;gt;&lt;br /&gt;
	&amp;lt;/select&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;checkbox&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId||test A&amp;quot;&amp;gt;&lt;br /&gt;
		This will be shown if one of the conditions is true&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Example 8 : The example will show a div when 2 is selected in the select box AND the radiobutton is selected&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme2&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme2&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme2&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme2&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/option &amp;gt;&lt;br /&gt;
	&amp;lt;/select&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;radio&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId&amp;amp;&amp;amp;test A&amp;quot;&amp;gt;&lt;br /&gt;
		This will be shown if both conditions are true&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;br /&gt;
&amp;lt;form show-on-select=&amp;quot;show-on-select&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme2&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme2&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme2&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/option &amp;gt;&lt;br /&gt;
		&amp;lt;option for=&amp;quot;selectme2&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/option &amp;gt;&lt;br /&gt;
	&amp;lt;/select&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;radio&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;testingId&amp;amp;&amp;amp;test A&amp;quot;&amp;gt;&lt;br /&gt;
		This will be shown if both conditions are true&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
* Form fields that are in a hidden section will not be submitted together with the form!&lt;br /&gt;
* Currently if the AND or OR triggers are wrongly defined, no form will be rendered. It&#039;s on the list to be fixed.&lt;br /&gt;
* There is one notable difference between the way FlexForm and Page Forms let you tie multiple selectors to the same selectable area, aside from differences in their choice of attributes. Where PageForms insists that each selectable area has a unique ID and lets you connect it to one or multiple selectors, FlexForm lets you assign one or multiple identifiers (&amp;lt;code&amp;gt;show-on-select-trigger&amp;lt;/code&amp;gt;) to each selectable area while insisting that the &amp;lt;code&amp;gt;show-on-select&amp;lt;/code&amp;gt; attributes are unique to individual selectors.&lt;br /&gt;
* When you have multiple select elements in a form, you need to add the &#039;&#039;&#039;&amp;lt;code&amp;gt;for=&amp;lt;/code&amp;gt;&#039;&#039;&#039; argument to every option field. The value should be the value of the &#039;&#039;&#039;select&#039;&#039;&#039; &#039;&#039;&#039;&#039;&#039;id&#039;&#039;&#039;&#039;&#039; argument. This ways, regardless in what order MediaWiki will parse the form element, FlexForm will always know what option fields belong to what select element.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
Tutorial on show-on-select : https://wikibase-solutions.com/developer-logs/flexform-show-on-select?WSLanguage=en&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/file/examples&amp;diff=3177</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=3177"/>
		<updated>2024-02-23T10:26:57Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &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;file-upload&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;file-upload&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;file-upload&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;file-upload&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 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; 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>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3138</id>
		<title>DevOps:Doc/FlexForm/2.0/Installation of FlexForm</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3138"/>
		<updated>2023-12-06T14:34:54Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FlexForm is installed using [https://www.mediawiki.org/wiki/Composer/For_extensions Composer]: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
composer require open-csp/flex-form&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install FlexForm from [https://github.com/Open-CSP/FlexForm github] by installing it in extensions/Flex-Form. You do have to run composer --update inside that folder after installation to get all dependencies. &lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
You can tweak &#039;&#039;&#039;FlexForm&#039;&#039;&#039; to an extent in your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Will render form that makes no sense when inspected in the browser.&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// A salt key for encryption. Used together with &amp;quot;secure&amp;quot; option. Must be set when using multiple instances of a wiki.&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Interval time in ms, defaults to 3 minutes (180000 ms). Form is submitted on each interval regardless of changes.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_interval&#039;] = 30000;&lt;br /&gt;
&lt;br /&gt;
// Time in ms, defaults to 3 seconds (3000 ms). Form is submitted after the specified time, timer starts when there is a change in the form. Timer resets if there is another change before the time has passed.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_after_change&#039;] = 3000;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle on.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle off.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;;&lt;br /&gt;
&lt;br /&gt;
// Currently the only form.&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha site key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_site_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha secret key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_secret_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Where to store images temporarily that need to be format converted.&lt;br /&gt;
$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Set to yes if FlexForm is allowed to create new users.&lt;br /&gt;
$wgFlexFormConfig[&#039;can_create_user&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will filter all parser arguments to plain text, except value parameters. Will also disallow onClick and onFocus parameter. This feature will most likely be removed in future updates.&lt;br /&gt;
$wgFlexFormConfig[&#039;filter_input_tags&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to what is described by the loadscript form argument. When you change it do a different folder, then loadScript argument will be looking in this folder for its JavaScript file to load with the Form.&lt;br /&gt;
$wgFlexFormConfig[&#039;loadScriptPath&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to sysop. Only a user in the allowedGroups is able to edit pages with a FlexForm in the source.&lt;br /&gt;
$wgFlexFormConfig[&#039;allowedGroups&#039;] = [&amp;quot;sysop&amp;quot;,&amp;quot;moderator&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. When a user in the allowedGroups creates a form it will become valid and will be rendered. Someone not in the allowedGroups can create a form and save it, but it will never be rendered until a user from the allowedGroups will edit and re-save the page. Only then will a form become valid. The message &amp;quot;FORM CANNOT BE RENDERED, NOT VALIDATED&amp;quot; will be shown instead of the form when it is invalid or depending on the next setting an image stating it cannot be rendered.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderonlyapprovedforms&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// When a form is invalid, an invalid image will be rendered instead of the form. Set to true to render i18n invalid message.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderi18nErrorInsteadofImageForApprovedForms&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. This differs from FlexForm before 2.0. FlexForm will now honor the UserCan functions in MediaWiki. If a form edits or creates a page a user has no rights to, the form will fail.&lt;br /&gt;
$wgFlexFormConfig[&#039;userscaneditallpages&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. If a user is not in the allowedGroups then hide edit and editsource menu items for any page containing a FlexForm form.&lt;br /&gt;
$wgFlexFormConfig[&#039;hideEdit&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will turn titles given to wscreate into url friendly slugs. Creating only latin character and converting spaces and special characters.&lt;br /&gt;
$wgFlexFormConfig[&#039;create-seo-titles&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// If you have a custom/different version of Pandoc than the one set by your hosting provider, you can add its local path here and FlexForm will use it, instead of the one set by environment variables&lt;br /&gt;
$wgFlexFormConfig[&#039;pandoc-install-path&#039;] = $IP . &#039;/bin/pandoc&#039;; // This will look for Pandoc executable in the root/bin of your MediaWiki instalment&lt;br /&gt;
&lt;br /&gt;
// FlexForm will by default always do an extra null edit on a save or an edit. This is mainly due to SMW. Not always this is necessary, so with this option you can turn it off. ( resulting in less handling time )&lt;br /&gt;
$wgFlexFormConfig[&#039;forceNullEdit&#039;] = true; // Default to true for backwards compatibility&lt;br /&gt;
&lt;br /&gt;
// When sending email, should we use separate smtp?&lt;br /&gt;
$wgFlexFormConfig[&#039;use_smtp&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_authentication&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_username&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_password&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_secure&#039;] = &amp;quot;TLS&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_port&#039;] = &amp;quot;587&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
* Add the following line at the end of your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; to enable the extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;FlexForm&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It is also recommended to turn off the parser cache when using FlexForm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgParserCacheType = CACHE_NONE;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the [https://www.mediawiki.org/wiki/Manual:Update.php update script] which will automatically create the necessary database tables that this extension needs. &lt;br /&gt;
* Navigate to Special:Version on your wiki to verify that the extension is successfully installed.&lt;br /&gt;
&lt;br /&gt;
==== Migrate from version 1.x to 2.0 ====&lt;br /&gt;
* Please notice the changes in the config settings.&lt;br /&gt;
* Do not forget to run update.php.&lt;br /&gt;
* Also, by default, the setting &#039;&#039;&#039;renderonlyapprovedforms&#039;&#039;&#039; will be &#039;&#039;&#039;true&#039;&#039;&#039;. Meaning that once you install FlexForm v2.0 all your existing FlexForm forms in your wiki will be shown as unvalidated. Visit [[DevOps:Doc/FlexForm/2.0/Validated Forms|Validated Forms]] to read how to solve this easily.&lt;br /&gt;
&lt;br /&gt;
==== Notification/Messages ====&lt;br /&gt;
FlexForm has a notification system build in. This is used to show possible errors or success/custom messages. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As off version 2.2.2 this is now a default feature&#039;&#039;&#039; and &amp;lt;nowiki&amp;gt;&amp;lt;form showmessage /&amp;gt;&amp;lt;/nowiki&amp;gt; is deprecated.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=3137</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=3137"/>
		<updated>2023-12-06T14:29:37Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Changelog===&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>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/edit&amp;diff=3136</id>
		<title>DevOps:Doc/FlexForm/1.0/edit</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/edit&amp;diff=3136"/>
		<updated>2023-12-06T14:08:44Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_edit&lt;br /&gt;
===Type===&lt;br /&gt;
_edit&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to edit pages that have content with templates.&lt;br /&gt;
===Description===&lt;br /&gt;
How to edit pages in the wiki with FlexForm&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_edit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;target&#039;&#039;&#039; = Target page ( title or page id ) that needs to be edited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template &#039;&#039;&#039; = Name of the template on the target page that needs to be edited. If there are multiple instances of the same template, you can specify what instance FlexForm should use if you have a unique key and value in the specific instance. You define it by &#039;&#039;&#039;template=&amp;quot;&amp;lt;name of template&amp;gt;|&amp;lt;name of argument&amp;gt;=&amp;lt;value of argument&amp;gt;&amp;quot;&#039;&#039;&#039;. E.g. &#039;&#039;&#039;template=&amp;quot;Edit user|User id=55&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;formfield&#039;&#039;&#039; = Name of the field in the template. Field in the form should have the same name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;usefield&#039;&#039;&#039; = [optional] If the field in the form differs from the template variable name, you can use &amp;quot;usefield&amp;quot; to let _edit know what other field from the form it should use&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; = [optional] Don&#039;t read the value from the form field, but use this value explicitly&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwslot&#039;&#039;&#039; = [optional] Name of content slot to use&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;pageid&amp;quot; template=&amp;quot;template&amp;quot; formfield=&amp;quot;formfield&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simple test with a complete form you can use to see if editing works: Copy the following code snippet to the source code of a page and save. You will see a text field that will edit the &amp;quot;Content&amp;quot; parameter within the &amp;quot;Test&amp;quot; template call. Note that Template:Test does not need to exist for this example to work.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Test&lt;br /&gt;
|Content=abc&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Test&amp;quot; formfield=&amp;quot;Content&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;Content&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&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;
===Note===&lt;br /&gt;
&lt;br /&gt;
* You can have multiple _edit&#039;s in a form all doing different tasks.&lt;br /&gt;
* If you have more than 5 edits to one single page in the wiki, consider [[DevOps:Doc/FlexForm/1.0/create]] to speed-up the process.&lt;br /&gt;
* If you omit value, then the value of the form will be used (so what a user has filled in).&lt;br /&gt;
===Links===&lt;br /&gt;
https://www.mediawiki.org/wiki/Multi-Content_Revisions&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3135</id>
		<title>DevOps:Doc/FlexForm/2.0/Installation of FlexForm</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3135"/>
		<updated>2023-12-06T14:07:45Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FlexForm is installed using [https://www.mediawiki.org/wiki/Composer/For_extensions Composer]: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
composer require open-csp/flex-form&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install FlexForm from [https://github.com/Open-CSP/FlexForm github] by installing it in extensions/Flex-Form. You do have to run composer --update inside that folder after installation to get all dependencies. &lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
You can tweak &#039;&#039;&#039;FlexForm&#039;&#039;&#039; to an extent in your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Will render form that makes no sense when inspected in the browser.&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// A salt key for encryption. Used together with &amp;quot;secure&amp;quot; option. Must be set when using multiple instances of a wiki.&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Interval time in ms, defaults to 3 minutes (180000 ms). Form is submitted on each interval regardless of changes.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_interval&#039;] = 30000;&lt;br /&gt;
&lt;br /&gt;
// Time in ms, defaults to 3 seconds (3000 ms). Form is submitted after the specified time, timer starts when there is a change in the form. Timer resets if there is another change before the time has passed.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_after_change&#039;] = 3000;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle on.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle off.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;;&lt;br /&gt;
&lt;br /&gt;
// Currently the only form.&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha site key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_site_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha secret key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_secret_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Where to store images temporarily that need to be format converted.&lt;br /&gt;
$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Set to yes if FlexForm is allowed to create new users.&lt;br /&gt;
$wgFlexFormConfig[&#039;can_create_user&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will filter all parser arguments to plain text, except value parameters. Will also disallow onClick and onFocus parameter. This feature will most likely be removed in future updates.&lt;br /&gt;
$wgFlexFormConfig[&#039;filter_input_tags&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to what is described by the loadscript form argument. When you change it do a different folder, then loadScript argument will be looking in this folder for its JavaScript file to load with the Form.&lt;br /&gt;
$wgFlexFormConfig[&#039;loadScriptPath&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to sysop. Only a user in the allowedGroups is able to edit pages with a FlexForm in the source.&lt;br /&gt;
$wgFlexFormConfig[&#039;allowedGroups&#039;] = [&amp;quot;sysop&amp;quot;,&amp;quot;moderator&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. When a user in the allowedGroups creates a form it will become valid and will be rendered. Someone not in the allowedGroups can create a form and save it, but it will never be rendered until a user from the allowedGroups will edit and re-save the page. Only then will a form become valid. The message &amp;quot;FORM CANNOT BE RENDERED, NOT VALIDATED&amp;quot; will be shown instead of the form when it is invalid or depending on the next setting an image stating it cannot be rendered.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderonlyapprovedforms&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// When a form is invalid, an invalid image will be rendered instead of the form. Set to true to render i18n invalid message.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderi18nErrorInsteadofImageForApprovedForms&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. This differs from FlexForm before 2.0. FlexForm will now honor the UserCan functions in MediaWiki. If a form edits or creates a page a user has no rights to, the form will fail.&lt;br /&gt;
$wgFlexFormConfig[&#039;userscaneditallpages&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. If a user is not in the allowedGroups then hide edit and editsource menu items for any page containing a FlexForm form.&lt;br /&gt;
$wgFlexFormConfig[&#039;hideEdit&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will turn titles given to wscreate into url friendly slugs. Creating only latin character and converting spaces and special characters.&lt;br /&gt;
$wgFlexFormConfig[&#039;create-seo-titles&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// If you have a custom/different version of Pandoc than the one set by your hosting provider, you can add its local path here and FlexForm will use it, instead of the one set by environment variables&lt;br /&gt;
$wgFlexFormConfig[&#039;pandoc-install-path&#039;] = $IP . &#039;/bin/pandoc&#039;; // This will look for Pandoc executable in the root/bin of your MediaWiki instalment&lt;br /&gt;
&lt;br /&gt;
// FlexForm will by default always do an extra null edit on a save or an edit. This is mainly due to SMW. Not always this is necessary, so with this option you can turn it off. ( resulting in less handling time )&lt;br /&gt;
$wgFlexFormConfig[&#039;forceNullEdit&#039;] = true; // Default to true for backwards compatibility&lt;br /&gt;
&lt;br /&gt;
// When sending email, should we use separate smtp?&lt;br /&gt;
$wgFlexFormConfig[&#039;use_smtp&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_authentication&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_username&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_password&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_secure&#039;] = &amp;quot;TLS&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_port&#039;] = &amp;quot;587&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
* Add the following line at the end of your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; to enable the extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;FlexForm&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It is also recommended to turn off the parser cache when using FlexForm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgParserCacheType = CACHE_NONE;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the [https://www.mediawiki.org/wiki/Manual:Update.php update script] which will automatically create the necessary database tables that this extension needs. &lt;br /&gt;
* Navigate to Special:Version on your wiki to verify that the extension is successfully installed.&lt;br /&gt;
&lt;br /&gt;
==== Migrate from version 1.x to 2.0 ====&lt;br /&gt;
* Please notice the changes in the config settings.&lt;br /&gt;
* Do not forget to run update.php.&lt;br /&gt;
* Also, by default, the setting &#039;&#039;&#039;renderonlyapprovedforms&#039;&#039;&#039; will be &#039;&#039;&#039;true&#039;&#039;&#039;. Meaning that once you install FlexForm v2.0 all your existing FlexForm forms in your wiki will be shown as unvalidated. Visit [[DevOps:Doc/FlexForm/2.0/Validated Forms|Validated Forms]] to read how to solve this easily.&lt;br /&gt;
&lt;br /&gt;
==== Notification/Messages ====&lt;br /&gt;
FlexForm has a notification system build in. This is used to show possible errors or success/custom messages. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As off version 2.2.2 this is now a default feature&#039;&#039;&#039; and &amp;lt;nowiki&amp;gt;&amp;lt;form showmessage /&amp;gt;&amp;lt;/nowiki&amp;gt; is deprecated.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=3134</id>
		<title>DevOps:Doc/FlexForm/2.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=3134"/>
		<updated>2023-12-05T14:43:57Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
textarea&lt;br /&gt;
===Type===&lt;br /&gt;
textarea&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a textarea input field &lt;br /&gt;
===Description===&lt;br /&gt;
textarea elements create larger text input fields that let the user enter a text.&lt;br /&gt;
It also differs from other input fields as there is no value you can set. Instead you use an opening input type and a closing one. The value will be in between. See example.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one non-HTML5 argument you can use together with a textarea and it is called &#039;&#039;&#039;source&#039;&#039;&#039;. When you add the argument source=&amp;quot;&amp;lt;FULLPAGENAME&amp;gt;&amp;quot; to a textarea, FlexForm will grab the main content of that page and put it inside the textarea. &#039;&#039;&#039;Example : source=&amp;quot;Main page&amp;quot;&#039;&#039;&#039;, will put the main content of the main page inside the textarea. If you have e.g. the extension Visual editor for all or the Tinymce extension, this feature will allow to easily edit a different page right in the form you are creating.&lt;br /&gt;
&lt;br /&gt;
For all supported HTML5 arguments have a look at the link at the links section.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
====VisualEditor====&lt;br /&gt;
If you have installed the [[mw:Extension:VisualEditor|VisualEditor]] and [[mw:Extension:VEForAll|VEForAll]] extensions, you can associate a textarea with the VisualEditor interface for rich text editing. To do so, just add &amp;lt;code&amp;gt;editor=&amp;quot;ve&amp;quot;&amp;lt;/code&amp;gt; to your textarea. You can have as many VE editors on a page as needed.&lt;br /&gt;
&lt;br /&gt;
====Version note====&lt;br /&gt;
In earlier versions of FlexForm, you would use an &amp;lt;code&amp;gt;_input&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;type=&amp;quot;textarea&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=3133</id>
		<title>DevOps:Doc/FlexForm/2.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=3133"/>
		<updated>2023-12-05T14:42:12Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
textarea&lt;br /&gt;
===Type===&lt;br /&gt;
textarea&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a textarea input field &lt;br /&gt;
===Description===&lt;br /&gt;
textarea elements create larger text input fields that let the user enter a text.&lt;br /&gt;
It also differs from other input fields as there is no value you can set. Instead you use an opening input type and a closing one. The value will be in between. See example.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one non-HTML5 argument you can use together with a textarea and it is called &#039;&#039;&#039;source&#039;&#039;&#039;. When you add the argument source=&amp;quot;&amp;lt;FULLPAGENAME&amp;gt;&amp;quot; to a textarea, FlexForm will grab the main content of that page and put it inside the textarea. &#039;&#039;&#039;Example : source=&amp;quot;Main page&amp;quot;&#039;&#039;&#039;, will put the main content of the main page inside the textarea.&lt;br /&gt;
&lt;br /&gt;
For all supported HTML5 arguments have a look at the link at the links section.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
====VisualEditor====&lt;br /&gt;
If you have installed the [[mw:Extension:VisualEditor|VisualEditor]] and [[mw:Extension:VEForAll|VEForAll]] extensions, you can associate a textarea with the VisualEditor interface for rich text editing. To do so, just add &amp;lt;code&amp;gt;editor=&amp;quot;ve&amp;quot;&amp;lt;/code&amp;gt; to your textarea. You can have as many VE editors on a page as needed.&lt;br /&gt;
&lt;br /&gt;
====Version note====&lt;br /&gt;
In earlier versions of FlexForm, you would use an &amp;lt;code&amp;gt;_input&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;type=&amp;quot;textarea&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3132</id>
		<title>DevOps:Doc/FlexForm/2.1/input/message</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3132"/>
		<updated>2023-12-01T19:27:47Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New since version 2.2! ==&lt;br /&gt;
For messaging to work, you will need to have the following config setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Name===&lt;br /&gt;
message&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Send a notification to another user&lt;br /&gt;
===Description===&lt;br /&gt;
This is a FlexForm specific field type. It is not default HTML5.&lt;br /&gt;
&lt;br /&gt;
With this field type you can send notifications to other registered users.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
user=&amp;quot;&amp;lt;username&amp;gt;&amp;quot; - This can be a comma separated list of user names to send one message to multiple users.&lt;br /&gt;
&lt;br /&gt;
message=&amp;quot;&amp;lt;the message that will show up in the notification&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message-title=&amp;quot;&amp;lt;notification title&amp;gt;&amp;quot;  - this is optional&lt;br /&gt;
&lt;br /&gt;
message-type=&amp;quot;&amp;lt;either &amp;quot;danger&amp;quot;, &amp;quot;warning&amp;quot;, &amp;quot;info&amp;quot;, &amp;quot;success&amp;quot;&amp;gt;&amp;quot;  - defaults to danger&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;message&amp;quot; user=&amp;quot;wiki user&amp;quot; message=&amp;quot;test message&amp;quot; message-title=&amp;quot;Admin message&amp;quot; message-type=&amp;quot;info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=3131</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=3131"/>
		<updated>2023-12-01T19:21:18Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Changelog===&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>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=3130</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=3130"/>
		<updated>2023-12-01T19:20:24Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Changelog===&lt;br /&gt;
*2.2.0 : Added Messaging system. [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>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Timeline&amp;diff=3129</id>
		<title>Timeline</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Timeline&amp;diff=3129"/>
		<updated>2023-11-30T22:50:18Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;&amp;lt;div class=&amp;quot;row text-center justify-content-center mb-5&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
      --&amp;gt;&amp;lt;div class=&amp;quot;col-xl-6 col-lg-8&amp;quot;&amp;gt;&amp;lt;h2 class=&amp;quot;font-weight-bold&amp;quot;&amp;gt;Open CSP Timeline&amp;lt;/h2&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;p class=&amp;quot;text-muted&amp;quot;&amp;gt;What&#039;s happening in the Open CSP world&amp;lt;/p&amp;gt;&amp;lt;!--&lt;br /&gt;
      --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
      --&amp;gt;&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
            --&amp;gt;&amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;&amp;lt;div class=&amp;quot;timeline-steps aos-init aos-animate&amp;quot; data-aos=&amp;quot;fade-up&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
                  --&amp;gt;{{#invoke:Timeline|show}}&amp;lt;!--&lt;br /&gt;
               --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
            --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
        --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#slot:ws-data}}&lt;br /&gt;
{{#ifingroup:moderator,sysop |&lt;br /&gt;
&lt;br /&gt;
=== Edit timeline ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID:{{FULLPAGENAME}}}}&amp;quot; format=&amp;quot;json&amp;quot; template=&amp;quot;jsonk|milestones&amp;quot; formfield=&amp;quot;timeline-instance&amp;quot; mwslot=&amp;quot;ws-data&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_instance name=&amp;quot;timeline-instance&amp;quot; format=&amp;quot;json&amp;quot; default-content=&amp;quot;{{#slotdata:ws-data|{{FULLPAGENAME}} |milestones}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;timeline-edit&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;date&amp;quot;&amp;gt;Date&amp;lt;/label&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;date&amp;quot; placeholder=&amp;quot;date&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;timeline-edit&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;title&amp;quot;&amp;gt;Title&amp;lt;/label&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;title&amp;quot; placeholder=&amp;quot;title&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;timeline-edit&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;link&amp;quot;&amp;gt;Link&amp;lt;/label&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;link&amp;quot; placeholder=&amp;quot;url&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_instance&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;save&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Timeline&amp;diff=3128</id>
		<title>Timeline</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Timeline&amp;diff=3128"/>
		<updated>2023-11-30T22:49:08Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;&amp;lt;div class=&amp;quot;row text-center justify-content-center mb-5&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
      --&amp;gt;&amp;lt;div class=&amp;quot;col-xl-6 col-lg-8&amp;quot;&amp;gt;&amp;lt;h2 class=&amp;quot;font-weight-bold&amp;quot;&amp;gt;Open CSP Timeline&amp;lt;/h2&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;p class=&amp;quot;text-muted&amp;quot;&amp;gt;What&#039;s happening in the Open CSP world&amp;lt;/p&amp;gt;&amp;lt;!--&lt;br /&gt;
      --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
      --&amp;gt;&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
            --&amp;gt;&amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;&amp;lt;div class=&amp;quot;timeline-steps aos-init aos-animate&amp;quot; data-aos=&amp;quot;fade-up&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
                  --&amp;gt;{{#invoke:Timeline|show}}&amp;lt;!--&lt;br /&gt;
               --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
            --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
        --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#slot:ws-data}}&lt;br /&gt;
{{#ifingroup:moderator,sysop |&lt;br /&gt;
&lt;br /&gt;
=== Edit timeline ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID:{{FULLPAGENAME}}}}&amp;quot; format=&amp;quot;json&amp;quot; template=&amp;quot;jsonk|milestones&amp;quot; formfield=&amp;quot;timeline-instance&amp;quot; mwslot=&amp;quot;ws-data&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_instance name=&amp;quot;timeline-instance&amp;quot; format=&amp;quot;json&amp;quot; default-content=&amp;quot;{{#slotdata:ws-data|{{FULLPAGENAME}} |milestones}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;timeline-edit&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;date&amp;quot;&amp;gt;Date&amp;lt;/label&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;date&amp;quot; placeholder=&amp;quot;date&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;timeline-edit&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;title&amp;quot;&amp;gt;Title&amp;lt;/label&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;title&amp;quot; placeholder=&amp;quot;title&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;timeline-edit&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;link&amp;quot;&amp;gt;Link&amp;lt;/label&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;link&amp;quot; placeholder=&amp;quot;url&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_instance&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;save&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3127</id>
		<title>DevOps:Doc/FlexForm/2.1/input/message</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3127"/>
		<updated>2023-11-30T22:40:47Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New since version 2.2! ==&lt;br /&gt;
For messaging to work, you will need to have the following config setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Name===&lt;br /&gt;
message&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Send a notification to another user&lt;br /&gt;
===Description===&lt;br /&gt;
This is a FlexForm specific field type. It is not default HTML5.&lt;br /&gt;
&lt;br /&gt;
With this field type you can send notifications to other registered users.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
user=&amp;quot;&amp;lt;username&amp;gt;&amp;quot; - This can be a comma separated list of user names to send one message to multiple users.&lt;br /&gt;
&lt;br /&gt;
message=&amp;quot;&amp;lt;the message that will show up in the notification&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message-title=&amp;quot;&amp;lt;notification title&amp;gt;&amp;quot;  - this is optional&lt;br /&gt;
&lt;br /&gt;
message-type=&amp;quot;&amp;lt;either &amp;quot;danger&amp;quot;, &amp;quot;warning&amp;quot;, &amp;quot;info&amp;quot;, &amp;quot;success&amp;quot;&amp;gt;&amp;quot;  - defaults to danger&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;message&amp;quot; user=&amp;quot;wiki user&amp;quot; message=&amp;quot;test message&amp;quot; message-title=&amp;quot;Admin message&amp;quot; message-type=&amp;quot;info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=3126</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=3126"/>
		<updated>2023-11-30T20:59:47Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Changelog===&lt;br /&gt;
*2.2.0 : Added Messaging system. TBA&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>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=3125</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=3125"/>
		<updated>2023-11-30T20:57:59Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Changelog===&lt;br /&gt;
*2.2.0 : Added Messaging system. TBA&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-v2-1&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>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3124</id>
		<title>DevOps:Doc/FlexForm/2.1/input/message</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3124"/>
		<updated>2023-11-30T20:44:12Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New since version 2.2! ==&lt;br /&gt;
&lt;br /&gt;
===Name===&lt;br /&gt;
message&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Send a notification to another user&lt;br /&gt;
===Description===&lt;br /&gt;
This is a FlexForm specific field type. It is not default HTML5.&lt;br /&gt;
&lt;br /&gt;
With this field type you can send notifications to other registered users.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
user=&amp;quot;&amp;lt;username&amp;gt;&amp;quot; - This can be a comma separated list of user names to send one message to multiple users.&lt;br /&gt;
&lt;br /&gt;
message=&amp;quot;&amp;lt;the message that will show up in the notification&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message-title=&amp;quot;&amp;lt;notification title&amp;gt;&amp;quot;  - this is optional&lt;br /&gt;
&lt;br /&gt;
message-type=&amp;quot;&amp;lt;either &amp;quot;danger&amp;quot;, &amp;quot;warning&amp;quot;, &amp;quot;info&amp;quot;, &amp;quot;success&amp;quot;&amp;gt;&amp;quot;  - defaults to danger&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;message&amp;quot; user=&amp;quot;wiki user&amp;quot; message=&amp;quot;test message&amp;quot; message-title=&amp;quot;Admin message&amp;quot; message-type=&amp;quot;info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3123</id>
		<title>DevOps:Doc/FlexForm/2.1/input/message</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3123"/>
		<updated>2023-11-30T20:36:44Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New since version 2.2! ==&lt;br /&gt;
&lt;br /&gt;
===Name===&lt;br /&gt;
message&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Send a notification to another user&lt;br /&gt;
===Description===&lt;br /&gt;
This is a FlexForm specific field type. It is not default HTML5.&lt;br /&gt;
&lt;br /&gt;
With this field type you can send notifications to other registered users.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
user=&amp;quot;&amp;lt;username&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message=&amp;quot;&amp;lt;the message that will show up in the notification&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message-title=&amp;quot;&amp;lt;notification title&amp;gt;&amp;quot;  - this is optional&lt;br /&gt;
&lt;br /&gt;
message-type=&amp;quot;&amp;lt;either &amp;quot;danger&amp;quot;, &amp;quot;warning&amp;quot;, &amp;quot;info&amp;quot;, &amp;quot;success&amp;quot;&amp;gt;&amp;quot;  - defaults to danger&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;message&amp;quot; user=&amp;quot;wiki user&amp;quot; message=&amp;quot;test message&amp;quot; message-title=&amp;quot;Admin message&amp;quot; message-type=&amp;quot;info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3122</id>
		<title>DevOps:Doc/FlexForm/2.1/input/message</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3122"/>
		<updated>2023-11-30T20:36:02Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
message&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Send a notification to another user&lt;br /&gt;
===Description===&lt;br /&gt;
This is a FlexForm specific field type. It is not default HTML5.&lt;br /&gt;
&lt;br /&gt;
With this field type you can send notifications to other registered users.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
user=&amp;quot;&amp;lt;username&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message=&amp;quot;&amp;lt;the message that will show up in the notification&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message-title=&amp;quot;&amp;lt;notification title&amp;gt;&amp;quot;  - this is optional&lt;br /&gt;
&lt;br /&gt;
message-type=&amp;quot;&amp;lt;either &amp;quot;danger&amp;quot;, &amp;quot;warning&amp;quot;, &amp;quot;info&amp;quot;, &amp;quot;success&amp;quot;&amp;gt;&amp;quot;  - defaults to danger&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;message&amp;quot; user=&amp;quot;wiki user&amp;quot; message=&amp;quot;test message&amp;quot; message-title=&amp;quot;Admin message&amp;quot; message-type=&amp;quot;info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3121</id>
		<title>DevOps:Doc/FlexForm/2.1/input/message</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3121"/>
		<updated>2023-11-30T20:34:55Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
message&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Send a notification to another user&lt;br /&gt;
===Description===&lt;br /&gt;
This is a FlexForm specific field type. It is not default HTML5.&lt;br /&gt;
&lt;br /&gt;
With this field type you can send notifications to other registered users.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
user=&amp;quot;&amp;lt;username&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message=&amp;quot;&amp;lt;the message that will show up in the notification&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
message-title=&amp;quot;&amp;lt;notification title&amp;gt;&amp;quot;  - this is optional&lt;br /&gt;
&lt;br /&gt;
message-type=&amp;quot;&amp;lt;either &amp;quot;danger&amp;quot;, &amp;quot;warning&amp;quot;, &amp;quot;info&amp;quot;, &amp;quot;success&amp;quot;&amp;gt;&amp;quot;  - defaults to danger&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;message&amp;quot; user=&amp;quot;wiki user&amp;quot; message=&amp;quot;test message&amp;quot; message-title=&amp;quot;Admin message&amp;quot; message-type=&amp;quot;info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3120</id>
		<title>DevOps:Doc/FlexForm/2.1/input/message</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/message&amp;diff=3120"/>
		<updated>2023-11-30T20:26:45Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Widget:Front_page_banner&amp;diff=3119</id>
		<title>Widget:Front page banner</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Widget:Front_page_banner&amp;diff=3119"/>
		<updated>2023-11-03T20:58:23Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;style&amp;gt;&lt;br /&gt;
  .ocp-banner-section {&lt;br /&gt;
    display: -webkit-box;&lt;br /&gt;
    display: -ms-flexbox;&lt;br /&gt;
    display: flex;&lt;br /&gt;
    -webkit-box-align: center;&lt;br /&gt;
    -ms-flex-align: center;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    margin-top: -30px;&lt;br /&gt;
    min-height:700px;&lt;br /&gt;
    background-color:black;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .ocp-banner-section video {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    left: 50%;&lt;br /&gt;
    top: 60%;&lt;br /&gt;
    transform: translate(-50%, -60%);&lt;br /&gt;
    min-width: 100%;&lt;br /&gt;
    min-height: 100%;&lt;br /&gt;
    filter:opacity(60%);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .ocp-banner-text-container {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    z-index: 100;&lt;br /&gt;
    color: white;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    max-width: 340px;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .ocp-banner-title {&lt;br /&gt;
    font-size: 3rem;&lt;br /&gt;
    font-weight: 300;&lt;br /&gt;
    right:10px;&lt;br /&gt;
    top:10px;&lt;br /&gt;
    color:white;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .ocp-banner-subtitle {&lt;br /&gt;
    font-size: 1rem;&lt;br /&gt;
    font-weight: 300;&lt;br /&gt;
    max-width: 500px;&lt;br /&gt;
    color:white&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
 @media (max-width: 576px) {&lt;br /&gt;
.ocp-banner-section {&lt;br /&gt;
min-height:auto;&lt;br /&gt;
background-color:white;&lt;br /&gt;
margin-top: 0px;&lt;br /&gt;
}&lt;br /&gt;
        .ocp-banner-section video{&lt;br /&gt;
          display: none;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Video Banner --&amp;gt;&lt;br /&gt;
&amp;lt;section class=&amp;quot;ocp-banner-section&amp;quot; id=&amp;quot;ocpVideoSection&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;container ocp-banner-text-container&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;col-12&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;&lt;br /&gt;
          &amp;lt;h2 class=&amp;quot;ocp-banner-title&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;/logo/open-csp_2.svg&amp;quot; id=&amp;quot;Open CSP Logo&amp;quot; style=&amp;quot;height:100px;&amp;quot;/&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;p class=&amp;quot;mx-auto ocp-banner-subtitle&amp;quot;&amp;gt;&lt;br /&gt;
            The open source content services platform&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/header&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Video --&amp;gt;&lt;br /&gt;
  &amp;lt;video id=&amp;quot;hero-vid&amp;quot; autoplay=&amp;quot;&amp;quot; loop=&amp;quot;&amp;quot; muted&amp;gt;&lt;br /&gt;
    &amp;lt;source src=&amp;quot;/openCSP3.mp4&amp;quot; type=&amp;quot;video/mp4&amp;quot; /&amp;gt;&lt;br /&gt;
    Your browser does not support the video tag.&lt;br /&gt;
  &amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3118</id>
		<title>DevOps:Doc/Open CSP/2.0/Installation</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3118"/>
		<updated>2023-11-02T21:06:38Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisites for a successful installation ==&lt;br /&gt;
Make sure the MediaWiki installation you want to install Open CSP on meets [[DevOps:Doc/Open CSP/1.0/Requirements|the requirements]].&lt;br /&gt;
&lt;br /&gt;
== Steps to install Open CSP ==&lt;br /&gt;
Then follow these steps to set up your Open CSP wiki:&lt;br /&gt;
&lt;br /&gt;
# Copy the installation script from [https://raw.githubusercontent.com/Open-CSP/open-csp/REL1_39/.github/install_open_csp.sh this GitHub] repo to your mediawiki server.&lt;br /&gt;
# Run the installation script&lt;br /&gt;
&lt;br /&gt;
     ./install_open_csp.sh &amp;lt;mediawiki directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this point on the script will guide you through all the necessary steps for installation. &lt;br /&gt;
&lt;br /&gt;
Should it be aborted or run into an error, if you restart it will restart from the step it failed at. If you would like it to re-run from the start instead you can add the parameter –skip-steps=0 to do this. &lt;br /&gt;
 &lt;br /&gt;
== Files that will be installed ==&lt;br /&gt;
* composer.local.json - For installing all the necessary extensions.&lt;br /&gt;
* settings/CSPSettings.php - This file contains all the CSP related MediaWiki settings. It is to be included from LocalSettings.php (install step 2 will take care of this) &lt;br /&gt;
* logo/Logo.svg - The Open CSP logo. You can replace this with your own logo and it will be preserved in upgrades. If present it will not be overwritten by the install script unless you explicitly choose to let it do so. &lt;br /&gt;
* skin/* - CSP skin files &lt;br /&gt;
* wsps/* - Pages to be imported, this will be done by PageSync; one of the extensions installed in the composer step.&lt;br /&gt;
 &lt;br /&gt;
== Additional install options ==&lt;br /&gt;
The install script for this release has been significantly rewritten resulting in a number of new options. &lt;br /&gt;
You can see what they are by running:&lt;br /&gt;
     ./install_open_csp.sh --help. &lt;br /&gt;
&lt;br /&gt;
There is one that&#039;s worth highlighting here: --automatic. &lt;br /&gt;
&lt;br /&gt;
Actually there&#039;s two if you count -–manual, but if omitted, --manual is the default mode. &lt;br /&gt;
&lt;br /&gt;
In manual mode you will be guided through the installation and be given a number of prompts. &lt;br /&gt;
&lt;br /&gt;
In automatic mode, however, it will - where needed - attempt to make the logical choices inferred from context or other parameters, but it will - in any case - not present prompts. &lt;br /&gt;
&lt;br /&gt;
This allows this install script to be used in things like a Dockerfile or a cloud-init script for VPS deployment.&lt;br /&gt;
&lt;br /&gt;
== Installation done ==&lt;br /&gt;
Make sure to [[DevOps:Doc/Open_CSP/2.0/Additional content|Install Additional Content]] to get you started with Open CSP easily.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3117</id>
		<title>DevOps:Doc/Open CSP/2.0/Additional content</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3117"/>
		<updated>2023-11-02T21:00:24Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once you have installed Open CSP you can install additional content that will help you get started with Open CSP.&lt;br /&gt;
{|&lt;br /&gt;
!From any page. Click in the Top menu on Admin Links.&lt;br /&gt;
![[File:OCSP content 1.jpg|right|frameless|600x600px|Click on Admin links in the top menu]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Click on PageSync&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 2.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Click on Share to go to the PageSync Share files&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 3.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;If needed, scroll to the bottom and click on &#039;&#039;INSTALL A SHARED ZIP FILE&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 4.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Scroll to the &#039;&#039;Open-CSP Additional&#039;&#039; area at the bottom of the list. Here you can see the requirements for this PageSync Shared file and if you meet these requirements.&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Click the checkbox and then &#039;&#039;PREVIEW SHARED FILE&#039;&#039;. This will still not install anything, but will give you an overview of what is contained in the PageSync Share file.&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 5.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;This will give you an overview of what is contained in the PageSync Shared File.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This content will install one page in the Main namespace called OpenCSP. Some widgets and files to have the page look good and the nav menu will get an extra admin HELP item.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Click on the &amp;quot;&#039;&#039;I agree with the description&#039;&#039;&amp;quot;-checkbox. Then click in &#039;&#039;INSTALL FILES&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|[[File:OCSP content 6.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Installation is almost instant and the new page will give you an overview of what has been done.&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 7.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Now go back to the &#039;&#039;mainpage/home page&#039;&#039;.  Click on the &#039;&#039;Tools&#039;&#039; menu and there should be a new entry called &#039;&#039;Help&#039;&#039;. Click on it to go to the new content with useful links to get you started.&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 8.jpg|right|frameless|600x600px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_8.jpg&amp;diff=3116</id>
		<title>File:OCSP content 8.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_8.jpg&amp;diff=3116"/>
		<updated>2023-11-02T20:58:34Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Click on Help&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_7.jpg&amp;diff=3115</id>
		<title>File:OCSP content 7.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_7.jpg&amp;diff=3115"/>
		<updated>2023-11-02T20:57:27Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installation done&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_6.jpg&amp;diff=3114</id>
		<title>File:OCSP content 6.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_6.jpg&amp;diff=3114"/>
		<updated>2023-11-02T20:52:58Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Content of the PageSync Shared file&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3113</id>
		<title>DevOps:Doc/Open CSP/2.0/Additional content</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3113"/>
		<updated>2023-11-02T20:52:07Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once you have installed Open CSP you can install additional content that will help you get started with Open CSP.&lt;br /&gt;
{|&lt;br /&gt;
!From any page. Click in the Top menu on Admin Links.&lt;br /&gt;
![[File:OCSP content 1.jpg|right|frameless|600x600px|Click on Admin links in the top menu]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Click on PageSync&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 2.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Click on Share to go to the PageSync Share files&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 3.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;If needed, scroll to the bottom and click on &#039;&#039;INSTALL A SHARED ZIP FILE&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 4.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Scroll to the &#039;&#039;Open-CSP Additional&#039;&#039; area at the bottom of the list.&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Click the checkbox and then &#039;&#039;PREVIEW SHARED FILE&#039;&#039;. This will still not install anything, but will give you an overview of what is contained in the PageSync Share file.&#039;&#039;&#039;&lt;br /&gt;
|[[File:OCSP content 5.jpg|right|frameless|600x600px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_5.jpg&amp;diff=3112</id>
		<title>File:OCSP content 5.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_5.jpg&amp;diff=3112"/>
		<updated>2023-11-02T20:50:22Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Click the checkbox and then PREVIEW SHARED FILE&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_4.jpg&amp;diff=3111</id>
		<title>File:OCSP content 4.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_4.jpg&amp;diff=3111"/>
		<updated>2023-11-02T20:49:03Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If needed, scroll to the bottom and click on INSTALL A SHARED ZIP FILE&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_3.jpg&amp;diff=3110</id>
		<title>File:OCSP content 3.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_3.jpg&amp;diff=3110"/>
		<updated>2023-11-02T20:47:07Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Click on Share&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_2.jpg&amp;diff=3109</id>
		<title>File:OCSP content 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_2.jpg&amp;diff=3109"/>
		<updated>2023-11-02T20:45:03Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Click on PageSync&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=File:OCSP_content_1.jpg&amp;diff=3108</id>
		<title>File:OCSP content 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=File:OCSP_content_1.jpg&amp;diff=3108"/>
		<updated>2023-11-02T20:41:54Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Admin Links&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3107</id>
		<title>DevOps:Doc/Open CSP/2.0/Additional content</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3107"/>
		<updated>2023-11-02T20:40:58Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once you have installed Open CSP.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/About_Open_CSP&amp;diff=3106</id>
		<title>DevOps:Doc/Open CSP/2.0/About Open CSP</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/About_Open_CSP&amp;diff=3106"/>
		<updated>2023-11-02T19:20:36Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1 class=&amp;quot;display-3&amp;quot;&amp;gt;About Open CSP&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Introduction&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open CSP, short for &amp;quot;Open Content Services Platform,&amp;quot; is a versatile and innovative open-source software solution designed to transform the way organizations manage, collaborate on, and access digital content and knowledge. This platform is built upon the robust foundation of the MediaWiki platform, enriched with powerful extensions, and tailored to meet the diverse needs of content management, structured data collection, and dynamic forms creation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Key highlights of Open CSP&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;list-group list-group-flush&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Structured Data Mastery:&#039;&#039;&#039; Leveraging the power of Semantic MediaWiki, Open CSP empowers organizations to manage structured and semantic data effectively, creating meaningful connections between information.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Dynamic Forms:&#039;&#039;&#039; With the integrated FlexForm extension, users can effortlessly create customized forms for data collection, surveys, and more, enhancing data-driven workflows and interactions. FlexForm also includes a built-in Word to Wiki converter, simplifying content migration from Microsoft Word and other word processing applications, further expanding its utility for users.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Efficient Search:&#039;&#039;&#039; Open CSP features robust search capabilities, enabling users to quickly locate and access relevant content and information within the platform.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Tailored Customization:&#039;&#039;&#039; Open CSP provides extensive customization options, allowing users to personalize the platform to suit their unique needs, whether it&#039;s for traditional wikis, structured data initiatives, or specialized knowledge sharing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Community Engagement:&#039;&#039;&#039; The platform fosters community engagement and collaboration.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Use Cases&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;lead&amp;quot;&amp;gt;&lt;br /&gt;
  Open CSP is suitable for a wide range of use cases, including&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;list-group list-group-flush&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Traditional Wikis:&#039;&#039;&#039; Create and manage wikis with user-friendly editing and content organization features.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Knowledge Bases:&#039;&#039;&#039; Build comprehensive knowledge bases for easy access to critical information.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Data Collection:&#039;&#039;&#039; Utilize dynamic forms for structured data collection, surveys, and feedback.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Collaborative Workspaces:&#039;&#039;&#039; Foster collaboration and teamwork within your organization.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;lead&amp;quot;&amp;gt;&lt;br /&gt;
  Enterprise use cases&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;list-group list-group-flush&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Project Collaboration and Documentation:&#039;&#039;&#039; Open CSP can serve as a centralized platform for project teams to collaborate, share documents, track project progress, and maintain documentation. Teams can create project-specific wikis and dynamic forms to streamline project management.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Corporate Intranet:&#039;&#039;&#039; Open CSP can function as an intranet portal, providing employees with a centralized hub for accessing company policies, procedures, employee directories, and internal news. The platform&#039;s dynamic forms can be used for employee surveys, feedback collection, and IT service requests.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Knowledge Base for Customer Support:&#039;&#039;&#039; Enterprises can build a robust knowledge base using Open CSP to support customer service teams. Articles, FAQs, troubleshooting guides, and product documentation can be organized and easily accessible to assist customer support representatives in resolving customer inquiries efficiently.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Human Resources and Training:&#039;&#039;&#039; Open CSP can be employed by HR departments to manage employee training materials, onboarding processes, and policy documentation. Dynamic forms can facilitate training program enrollment and feedback collection.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Compliance and Regulatory Documentation:&#039;&#039;&#039; Enterprises operating in regulated industries can use Open CSP to maintain compliance documentation, track regulatory changes, and ensure employees have access to up-to-date compliance materials.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Quality Assurance and Process Management:&#039;&#039;&#039; Open CSP can support quality assurance efforts by providing a platform for documenting and managing quality processes, audit records, and continuous improvement initiatives. Dynamic forms can facilitate incident reporting and corrective action workflows.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Sales and Marketing Collateral:&#039;&#039;&#039; Sales and marketing teams can use Open CSP to store and manage sales collateral, marketing materials, product catalogs, and campaign assets. The platform can enhance collaboration between sales and marketing departments.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Multi-Departmental Collaboration:&#039;&#039;&#039; Large enterprises with multiple departments can benefit from Open CSP&#039;s ability to create department-specific wikis and forms. This encourages interdepartmental collaboration while maintaining separate spaces for each team&#039;s content.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Custom Enterprise Apps:&#039;&#039;&#039; Open CSP&#039;s flexibility allows organizations to develop custom enterprise applications by integrating forms and structured data with business processes. This can include custom dashboards, reporting tools, and workflow automation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Intellectual Property Management:&#039;&#039;&#039; Companies with intellectual property assets can use Open CSP to manage patents, trademarks, copyrights, and licensing agreements. The platform can help centralize IP-related documents and ensure compliance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Supplier and Vendor Management:&#039;&#039;&#039; Open CSP can be employed to maintain supplier and vendor documentation, contracts, procurement processes, and vendor performance records. This supports efficient supplier relationship management.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open CSP&#039;&#039;&#039; is the go-to solution for organizations seeking an adaptable, open-source platform for content and data management, knowledge sharing, and structured information collection. Its flexible nature, semantic capabilities, dynamic forms and content import capabilities, make it an ideal choice for businesses, educational institutions, nonprofits, and others looking to harness the power of wikis and structured data in a unified, user-friendly environment.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Class_definitions&amp;diff=3105</id>
		<title>DevOps:Doc/Open CSP/2.0/Class definitions</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Class_definitions&amp;diff=3105"/>
		<updated>2023-11-02T19:20:16Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Open CSP you can add structured data to content pages by using class definitions. A class definition is a configuration for a specific type of page.&lt;br /&gt;
&lt;br /&gt;
For example you might have a &amp;quot;Person&amp;quot; class definition. On the class definition page you can configure that a person has parameters such as a first name, last name and date of birth.&lt;br /&gt;
&lt;br /&gt;
When a user creates a person page, they will have the option to fill these fields (or you could also configure them to be mandatory).&lt;br /&gt;
&lt;br /&gt;
The data is by default displayed in a sidebar on the right side of a page, but this layout can also be configured through the class definition.&lt;br /&gt;
&lt;br /&gt;
Managing class definitions is typically done by administrators, while users can create content pages with the defined classes.&lt;br /&gt;
&lt;br /&gt;
Data is stored in slots, so that users can edit the main content of a page in the same way as you would edit any wiki page, without having templates and other non content related items.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/About_Open_CSP&amp;diff=3104</id>
		<title>DevOps:Doc/Open CSP/2.0/About Open CSP</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/About_Open_CSP&amp;diff=3104"/>
		<updated>2023-11-02T19:19:20Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1 class=&amp;quot;display-3&amp;quot;&amp;gt;About Open CSP&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Introduction&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open CSP, short for &amp;quot;Open Content Services Platform,&amp;quot; is a versatile and innovative open-source software solution designed to transform the way organizations manage, collaborate on, and access digital content and knowledge. This platform is built upon the robust foundation of the MediaWiki platform, enriched with powerful extensions, and tailored to meet the diverse needs of content management, structured data collection, and dynamic forms creation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Key highlights of Open CSP&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;list-group list-group-flush&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Structured Data Mastery:&#039;&#039;&#039; Leveraging the power of Semantic MediaWiki, Open CSP empowers organizations to manage structured and semantic data effectively, creating meaningful connections between information.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Dynamic Forms:&#039;&#039;&#039; With the integrated FlexForm extension, users can effortlessly create customized forms for data collection, surveys, and more, enhancing data-driven workflows and interactions. FlexForm also includes a built-in Word to Wiki converter, simplifying content migration from Microsoft Word and other word processing applications, further expanding its utility for users.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Efficient Search:&#039;&#039;&#039; Open CSP features robust search capabilities, enabling users to quickly locate and access relevant content and information within the platform.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Tailored Customization:&#039;&#039;&#039; Open CSP provides extensive customization options, allowing users to personalize the platform to suit their unique needs, whether it&#039;s for traditional wikis, structured data initiatives, or specialized knowledge sharing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Community Engagement:&#039;&#039;&#039; The platform fosters community engagement and collaboration.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Use Cases&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;lead&amp;quot;&amp;gt;&lt;br /&gt;
  Open CSP is suitable for a wide range of use cases, including&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;list-group list-group-flush&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Traditional Wikis:&#039;&#039;&#039; Create and manage wikis with user-friendly editing and content organization features.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Knowledge Bases:&#039;&#039;&#039; Build comprehensive knowledge bases for easy access to critical information.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Data Collection:&#039;&#039;&#039; Utilize dynamic forms for structured data collection, surveys, and feedback.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Collaborative Workspaces:&#039;&#039;&#039; Foster collaboration and teamwork within your organization.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;lead&amp;quot;&amp;gt;&lt;br /&gt;
  Enterprise use cases&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;list-group list-group-flush&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Project Collaboration and Documentation:&#039;&#039;&#039; Open CSP can serve as a centralized platform for project teams to collaborate, share documents, track project progress, and maintain documentation. Teams can create project-specific wikis and dynamic forms to streamline project management.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Corporate Intranet:&#039;&#039;&#039; Open CSP can function as an intranet portal, providing employees with a centralized hub for accessing company policies, procedures, employee directories, and internal news. The platform&#039;s dynamic forms can be used for employee surveys, feedback collection, and IT service requests.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Knowledge Base for Customer Support:&#039;&#039;&#039; Enterprises can build a robust knowledge base using Open CSP to support customer service teams. Articles, FAQs, troubleshooting guides, and product documentation can be organized and easily accessible to assist customer support representatives in resolving customer inquiries efficiently.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Human Resources and Training:&#039;&#039;&#039; Open CSP can be employed by HR departments to manage employee training materials, onboarding processes, and policy documentation. Dynamic forms can facilitate training program enrollment and feedback collection.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Compliance and Regulatory Documentation:&#039;&#039;&#039; Enterprises operating in regulated industries can use Open CSP to maintain compliance documentation, track regulatory changes, and ensure employees have access to up-to-date compliance materials.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Quality Assurance and Process Management:&#039;&#039;&#039; Open CSP can support quality assurance efforts by providing a platform for documenting and managing quality processes, audit records, and continuous improvement initiatives. Dynamic forms can facilitate incident reporting and corrective action workflows.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Sales and Marketing Collateral:&#039;&#039;&#039; Sales and marketing teams can use Open CSP to store and manage sales collateral, marketing materials, product catalogs, and campaign assets. The platform can enhance collaboration between sales and marketing departments.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Multi-Departmental Collaboration:&#039;&#039;&#039; Large enterprises with multiple departments can benefit from Open CSP&#039;s ability to create department-specific wikis and forms. This encourages interdepartmental collaboration while maintaining separate spaces for each team&#039;s content.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Custom Enterprise Apps:&#039;&#039;&#039; Open CSP&#039;s flexibility allows organizations to develop custom enterprise applications by integrating forms and structured data with business processes. This can include custom dashboards, reporting tools, and workflow automation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Intellectual Property Management:&#039;&#039;&#039; Companies with intellectual property assets can use Open CSP to manage patents, trademarks, copyrights, and licensing agreements. The platform can help centralize IP-related documents and ensure compliance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;list-group-item&amp;quot;&amp;gt;&#039;&#039;&#039;Supplier and Vendor Management:&#039;&#039;&#039; Open CSP can be employed to maintain supplier and vendor documentation, contracts, procurement processes, and vendor performance records. This supports efficient supplier relationship management.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open CSP&#039;&#039;&#039; is the go-to solution for organizations seeking an adaptable, open-source platform for content and data management, knowledge sharing, and structured information collection. Its flexible nature, semantic capabilities, dynamic forms and content import capabilities, make it an ideal choice for businesses, educational institutions, nonprofits, and others looking to harness the power of wikis and structured data in a unified, user-friendly environment.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Extensions&amp;diff=3103</id>
		<title>DevOps:Doc/Open CSP/2.0/Extensions</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Extensions&amp;diff=3103"/>
		<updated>2023-11-02T19:19:05Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Extensions are installed with Composer ==&lt;br /&gt;
Open CSP uses composer for installation of extension.  &lt;br /&gt;
&lt;br /&gt;
=== Extensions and skin used ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;th scope=&amp;quot;col&amp;quot;&amp;gt;Name&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;th scope=&amp;quot;col&amp;quot;&amp;gt;Version / Branch&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;AdminLinks&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Bootstrap&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;4.5.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;ChameleonSkin&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^4.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;DisplayTitle&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;MyVariables&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;ReplaceText&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticExtraSpecialProperties&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3.0.4&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticMediaWiki&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^4.1.1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticResultFormats&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;4.0.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticScribunto&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;2.2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;UrlGetParameters&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;UserFunctions&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Widgets&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Elasticsearch&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^6.8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;FlexForm&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;PageSync&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WSSlots&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^4.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WSSPaces&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^2.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WikiSearch&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;ArrayFunctions&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;v1.4.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;CSPResources&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;v2.0.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WikiSearchFront&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;v2.0.4&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3102</id>
		<title>DevOps:Doc/Open CSP/2.0/Additional content</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3102"/>
		<updated>2023-11-02T19:18:47Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3101</id>
		<title>DevOps:Doc/Open CSP/2.0/Installation</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3101"/>
		<updated>2023-11-02T19:18:32Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisites for a successful installation ==&lt;br /&gt;
Make sure the MediaWiki installation you want to install Open CSP on meets [[DevOps:Doc/Open CSP/1.0/Requirements|the requirements]].&lt;br /&gt;
&lt;br /&gt;
== Steps to install Open CSP ==&lt;br /&gt;
Then follow these steps to set up your Open CSP wiki:&lt;br /&gt;
&lt;br /&gt;
# Copy the installation script from [https://raw.githubusercontent.com/Open-CSP/open-csp/REL1_39/.github/install_open_csp.sh this GitHub] repo to your mediawiki server.&lt;br /&gt;
# Run the installation script&lt;br /&gt;
&lt;br /&gt;
     ./install_open_csp.sh &amp;lt;mediawiki directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this point on the script will guide you through all the necessary steps for installation. &lt;br /&gt;
&lt;br /&gt;
Should it be aborted or run into an error, if you restart it will restart from the step it failed at. If you would like it to re-run from the start instead you can add the parameter –skip-steps=0 to do this. &lt;br /&gt;
 &lt;br /&gt;
== Files that will be installed ==&lt;br /&gt;
* composer.local.json - For installing all the necessary extensions.&lt;br /&gt;
* settings/CSPSettings.php - This file contains all the CSP related MediaWiki settings. It is to be included from LocalSettings.php (install step 2 will take care of this) &lt;br /&gt;
* logo/Logo.svg - The Open CSP logo. You can replace this with your own logo and it will be preserved in upgrades. If present it will not be overwritten by the install script unless you explicitly choose to let it do so. &lt;br /&gt;
* skin/* - CSP skin files &lt;br /&gt;
* wsps/* - Pages to be imported, this will be done by PageSync; one of the extensions installed in the composer step.&lt;br /&gt;
 &lt;br /&gt;
== Additional install options ==&lt;br /&gt;
The install script for this release has been significantly rewritten resulting in a number of new options. &lt;br /&gt;
You can see what they are by running:&lt;br /&gt;
     ./install_open_csp.sh --help. &lt;br /&gt;
&lt;br /&gt;
There is one that&#039;s worth highlighting here: --automatic. &lt;br /&gt;
&lt;br /&gt;
Actually there&#039;s two if you count -–manual, but if omitted, --manual is the default mode. &lt;br /&gt;
&lt;br /&gt;
In manual mode you will be guided through the installation and be given a number of prompts. &lt;br /&gt;
&lt;br /&gt;
In automatic mode, however, it will - where needed - attempt to make the logical choices inferred from context or other parameters, but it will - in any case - not present prompts. &lt;br /&gt;
&lt;br /&gt;
This allows this install script to be used in things like a Dockerfile or a cloud-init script for VPS deployment.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3100</id>
		<title>DevOps:Doc/Open CSP/2.0/Installation</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3100"/>
		<updated>2023-11-02T19:18:24Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisites for a successful installation ==&lt;br /&gt;
Make sure the MediaWiki installation you want to install Open CSP on meets [[DevOps:Doc/Open CSP/1.0/Requirements|the requirements]].&lt;br /&gt;
&lt;br /&gt;
== Steps to install Open CSP ==&lt;br /&gt;
Then follow these steps to set up your Open CSP wiki:&lt;br /&gt;
&lt;br /&gt;
# Copy the installation script from [https://raw.githubusercontent.com/Open-CSP/open-csp/REL1_39/.github/install_open_csp.sh this GitHub] repo to your mediawiki server.&lt;br /&gt;
# Run the installation script&lt;br /&gt;
&lt;br /&gt;
     ./install_open_csp.sh &amp;lt;mediawiki directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this point on the script will guide you through all the necessary steps for installation. &lt;br /&gt;
&lt;br /&gt;
Should it be aborted or run into an error, if you restart it will restart from the step it failed at. If you would like it to re-run from the start instead you can add the parameter –skip-steps=0 to do this. &lt;br /&gt;
 &lt;br /&gt;
== Files that will be installed ==&lt;br /&gt;
* composer.local.json - For installing all the necessary extensions.&lt;br /&gt;
* settings/CSPSettings.php - This file contains all the CSP related MediaWiki settings. It is to be included from LocalSettings.php (install step 2 will take care of this) &lt;br /&gt;
* logo/Logo.svg - The Open CSP logo. You can replace this with your own logo and it will be preserved in upgrades. If present it will not be overwritten by the install script unless you explicitly choose to let it do so. &lt;br /&gt;
* skin/* - CSP skin files &lt;br /&gt;
* wsps/* - Pages to be imported, this will be done by PageSync; one of the extensions installed in the composer step.&lt;br /&gt;
 &lt;br /&gt;
== Additional install options ==&lt;br /&gt;
The install script for this release has been significantly rewritten resulting in a number of new options. &lt;br /&gt;
You can see what they are by running:&lt;br /&gt;
     ./install_open_csp.sh --help. &lt;br /&gt;
&lt;br /&gt;
There is one that&#039;s worth highlighting here: --automatic. &lt;br /&gt;
&lt;br /&gt;
Actually there&#039;s two if you count -–manual, but if omitted, --manual is the default mode. &lt;br /&gt;
&lt;br /&gt;
In manual mode you will be guided through the installation and be given a number of prompts. &lt;br /&gt;
&lt;br /&gt;
In automatic mode, however, it will - where needed - attempt to make the logical choices inferred from context or other parameters, but it will - in any case - not present prompts. &lt;br /&gt;
&lt;br /&gt;
This allows this install script to be used in things like a Dockerfile or a cloud-init script for VPS deployment.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3099</id>
		<title>DevOps:Doc/Open CSP/2.0/Installation</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3099"/>
		<updated>2023-11-02T19:18:13Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisites for a successful installation ==&lt;br /&gt;
Make sure the MediaWiki installation you want to install Open CSP on meets [[DevOps:Doc/Open CSP/1.0/Requirements|the requirements]].&lt;br /&gt;
&lt;br /&gt;
== Steps to install Open CSP ==&lt;br /&gt;
Then follow these steps to set up your Open CSP wiki:&lt;br /&gt;
&lt;br /&gt;
# Copy the installation script from [https://raw.githubusercontent.com/Open-CSP/open-csp/REL1_39/.github/install_open_csp.sh this GitHub] repo to your mediawiki server.&lt;br /&gt;
# Run the installation script&lt;br /&gt;
&lt;br /&gt;
     ./install_open_csp.sh &amp;lt;mediawiki directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this point on the script will guide you through all the necessary steps for installation. &lt;br /&gt;
&lt;br /&gt;
Should it be aborted or run into an error, if you restart it will restart from the step it failed at. If you would like it to re-run from the start instead you can add the parameter –skip-steps=0 to do this. &lt;br /&gt;
 &lt;br /&gt;
== Files that will be installed ==&lt;br /&gt;
* composer.local.json - For installing all the necessary extensions.&lt;br /&gt;
* settings/CSPSettings.php - This file contains all the CSP related MediaWiki settings. It is to be included from LocalSettings.php (install step 2 will take care of this) &lt;br /&gt;
* logo/Logo.svg - The Open CSP logo. You can replace this with your own logo and it will be preserved in upgrades. If present it will not be overwritten by the install script unless you explicitly choose to let it do so. &lt;br /&gt;
* skin/* - CSP skin files &lt;br /&gt;
* wsps/* - Pages to be imported, this will be done by PageSync; one of the extensions installed in the composer step.&lt;br /&gt;
 &lt;br /&gt;
== Additional install options ==&lt;br /&gt;
The install script for this release has been significantly rewritten resulting in a number of new options. &lt;br /&gt;
You can see what they are by running:&lt;br /&gt;
     ./install_open_csp.sh --help. &lt;br /&gt;
&lt;br /&gt;
There is one that&#039;s worth highlighting here: --automatic. &lt;br /&gt;
&lt;br /&gt;
Actually there&#039;s two if you count -–manual, but if omitted, --manual is the default mode. &lt;br /&gt;
&lt;br /&gt;
In manual mode you will be guided through the installation and be given a number of prompts. &lt;br /&gt;
&lt;br /&gt;
In automatic mode, however, it will - where needed - attempt to make the logical choices inferred from context or other parameters, but it will - in any case - not present prompts. &lt;br /&gt;
&lt;br /&gt;
This allows this install script to be used in things like a Dockerfile or a cloud-init script for VPS deployment.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/1.0/Requirements&amp;diff=3098</id>
		<title>DevOps:Doc/Open CSP/1.0/Requirements</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/1.0/Requirements&amp;diff=3098"/>
		<updated>2023-11-02T19:17:57Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Open CSP framework will be installed on a current MediaWiki installation. That MediaWiki installation should meet these requirements:&lt;br /&gt;
* PHP version &amp;gt;=8.0 &amp;lt;9&lt;br /&gt;
* Composer version &amp;gt;=2&lt;br /&gt;
* Mediawiki version 1.39&lt;br /&gt;
* ElasticSearch version 6.8&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3097</id>
		<title>DevOps:Doc/Open CSP/2.0/Additional content</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3097"/>
		<updated>2023-11-02T19:17:46Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3096</id>
		<title>DevOps:Doc/Open CSP/2.0/Installation</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3096"/>
		<updated>2023-11-02T19:17:20Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisites for a successful installation ==&lt;br /&gt;
Make sure the MediaWiki installation you want to install Open CSP on meets [[DevOps:Doc/Open CSP/1.0/Requirements|the requirements]].&lt;br /&gt;
&lt;br /&gt;
== Steps to install Open CSP ==&lt;br /&gt;
Then follow these steps to set up your Open CSP wiki:&lt;br /&gt;
&lt;br /&gt;
# Copy the installation script from [https://raw.githubusercontent.com/Open-CSP/open-csp/REL1_39/.github/install_open_csp.sh this GitHub] repo to your mediawiki server.&lt;br /&gt;
# Run the installation script&lt;br /&gt;
&lt;br /&gt;
     ./install_open_csp.sh &amp;lt;mediawiki directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this point on the script will guide you through all the necessary steps for installation. &lt;br /&gt;
&lt;br /&gt;
Should it be aborted or run into an error, if you restart it will restart from the step it failed at. If you would like it to re-run from the start instead you can add the parameter –skip-steps=0 to do this. &lt;br /&gt;
 &lt;br /&gt;
== Files that will be installed ==&lt;br /&gt;
* composer.local.json - For installing all the necessary extensions.&lt;br /&gt;
* settings/CSPSettings.php - This file contains all the CSP related MediaWiki settings. It is to be included from LocalSettings.php (install step 2 will take care of this) &lt;br /&gt;
* logo/Logo.svg - The Open CSP logo. You can replace this with your own logo and it will be preserved in upgrades. If present it will not be overwritten by the install script unless you explicitly choose to let it do so. &lt;br /&gt;
* skin/* - CSP skin files &lt;br /&gt;
* wsps/* - Pages to be imported, this will be done by PageSync; one of the extensions installed in the composer step.&lt;br /&gt;
 &lt;br /&gt;
== Additional install options ==&lt;br /&gt;
The install script for this release has been significantly rewritten resulting in a number of new options. &lt;br /&gt;
You can see what they are by running:&lt;br /&gt;
     ./install_open_csp.sh --help. &lt;br /&gt;
&lt;br /&gt;
There is one that&#039;s worth highlighting here: --automatic. &lt;br /&gt;
&lt;br /&gt;
Actually there&#039;s two if you count -–manual, but if omitted, --manual is the default mode. &lt;br /&gt;
&lt;br /&gt;
In manual mode you will be guided through the installation and be given a number of prompts. &lt;br /&gt;
&lt;br /&gt;
In automatic mode, however, it will - where needed - attempt to make the logical choices inferred from context or other parameters, but it will - in any case - not present prompts. &lt;br /&gt;
&lt;br /&gt;
This allows this install script to be used in things like a Dockerfile or a cloud-init script for VPS deployment.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Extensions&amp;diff=3095</id>
		<title>DevOps:Doc/Open CSP/2.0/Extensions</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Extensions&amp;diff=3095"/>
		<updated>2023-11-02T19:17:00Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Extensions are installed with Composer ==&lt;br /&gt;
Open CSP uses composer for installation of extension.  &lt;br /&gt;
&lt;br /&gt;
=== Extensions and skin used ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;table table-hover&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;th scope=&amp;quot;col&amp;quot;&amp;gt;Name&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;th scope=&amp;quot;col&amp;quot;&amp;gt;Version / Branch&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;AdminLinks&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Bootstrap&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;4.5.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;ChameleonSkin&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^4.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;DisplayTitle&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;MyVariables&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;ReplaceText&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticExtraSpecialProperties&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3.0.4&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticMediaWiki&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^4.1.1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticResultFormats&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;4.0.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;SemanticScribunto&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;2.2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;UrlGetParameters&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;UserFunctions&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Widgets&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Elasticsearch&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^6.8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;FlexForm&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;PageSync&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WSSlots&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^4.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WSSPaces&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;^2.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WikiSearch&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;dev-REL1_39&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;ArrayFunctions&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;v1.4.2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;CSPResources&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;v2.0.0&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;WikiSearchFront&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;v2.0.4&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3094</id>
		<title>DevOps:Doc/Open CSP/2.0/Additional content</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Additional_content&amp;diff=3094"/>
		<updated>2023-11-02T19:15:59Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3093</id>
		<title>DevOps:Doc/Open CSP/2.0/Installation</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Installation&amp;diff=3093"/>
		<updated>2023-11-02T08:48:31Z</updated>

		<summary type="html">&lt;p&gt;Charlot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisites for a successful installation ==&lt;br /&gt;
Make sure the MediaWiki installation you want to install Open CSP on meets [[DevOps:Doc/Open CSP/1.0/Requirements|the requirements]].&lt;br /&gt;
&lt;br /&gt;
== Steps to install Open CSP ==&lt;br /&gt;
Then follow these steps to set up your Open CSP wiki:&lt;br /&gt;
&lt;br /&gt;
# Copy the installation script from [https://raw.githubusercontent.com/Open-CSP/open-csp/REL1_39/.github/install_open_csp.sh this GitHub] repo to your mediawiki server.&lt;br /&gt;
# Run the installation script&lt;br /&gt;
&lt;br /&gt;
     ./install_open_csp.sh &amp;lt;mediawiki directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this point on the script will guide you through all the necessary steps for installation. &lt;br /&gt;
&lt;br /&gt;
Should it be aborted or run into an error, if you restart it will restart from the step it failed at. If you would like it to re-run from the start instead you can add the parameter –skip-steps=0 to do this. &lt;br /&gt;
 &lt;br /&gt;
== Files that will be installed ==&lt;br /&gt;
* composer.local.json - For installing all the necessary extensions.&lt;br /&gt;
* settings/CSPSettings.php - This file contains all the CSP related MediaWiki settings. It is to be included from LocalSettings.php (install step 2 will take care of this) &lt;br /&gt;
* logo/Logo.svg - The Open CSP logo. You can replace this with your own logo and it will be preserved in upgrades. If present it will not be overwritten by the install script unless you explicitly choose to let it do so. &lt;br /&gt;
* skin/* - CSP skin files &lt;br /&gt;
* wsps/* - Pages to be imported, this will be done by PageSync; one of the extensions installed in the composer step.&lt;br /&gt;
 &lt;br /&gt;
== Additional install options ==&lt;br /&gt;
The install script for this release has been significantly rewritten resulting in a number of new options. &lt;br /&gt;
You can see what they are by running:&lt;br /&gt;
     ./install_open_csp.sh --help. &lt;br /&gt;
&lt;br /&gt;
There is one that&#039;s worth highlighting here: --automatic. &lt;br /&gt;
&lt;br /&gt;
Actually there&#039;s two if you count -–manual, but if omitted, --manual is the default mode. &lt;br /&gt;
&lt;br /&gt;
In manual mode you will be guided through the installation and be given a number of prompts. &lt;br /&gt;
&lt;br /&gt;
In automatic mode, however, it will - where needed - attempt to make the logical choices inferred from context or other parameters, but it will - in any case - not present prompts. &lt;br /&gt;
&lt;br /&gt;
This allows this install script to be used in things like a Dockerfile or a cloud-init script for VPS deployment.&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Class_definition_architecture&amp;diff=3085</id>
		<title>DevOps:Doc/Open CSP/2.0/Class definition architecture</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Class_definition_architecture&amp;diff=3085"/>
		<updated>2023-10-27T18:21:29Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open CSP stores metadata of pages in slots. Pages are displayed with various components (for which the Chameleon skin is used), which can look differently based on the configuration found in class definition pages. &lt;br /&gt;
&lt;br /&gt;
== Metadata stored in slots ==&lt;br /&gt;
Before slots were used, there were two common ways to deal with structured data:&lt;br /&gt;
&lt;br /&gt;
* A) Have templates with structured data in between the content (free text) of a page. &lt;br /&gt;
* B) Have one template that wraps the entire page content, with some parameters for structured data and also a parameter for free text&lt;br /&gt;
&lt;br /&gt;
The advantage of using slots is that you can separate the metadata from the content and also separate the storing of the data from displaying it. This reduces the risk of making mistakes when editing, while allowing you to have forms for editing structured data and to use VisualEditor to edit the main content.&lt;br /&gt;
&lt;br /&gt;
Note: data is stored in SMW properties as well, but class definitions do not rely on this. SMW is used for example for [[Search]] and [[Pages]]. It would technically be possible to modify the Open CSP framework to work with a different data storage extension, if you would make your own alternatives for the pages that use SMW queries or WikiSearch.&lt;br /&gt;
&lt;br /&gt;
The following slots are used by Open CSP:&lt;br /&gt;
&lt;br /&gt;
=== csp-base-props ===&lt;br /&gt;
In this slot &#039;&#039;&#039;Template:Base properties&#039;&#039;&#039; is used to store data dat is common to all pages, such as the Class and Title:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Base properties&lt;br /&gt;
|Class=&lt;br /&gt;
|Title=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== csp-class-props ===&lt;br /&gt;
In this slot &#039;&#039;&#039;Template:Csp class properties&#039;&#039;&#039; is used to store data that is specific to each class, based on the class definition:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Csp class properties&lt;br /&gt;
|Parameter1=Value1&lt;br /&gt;
|Parameter2=Value2&lt;br /&gt;
|...&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== csp-data ===&lt;br /&gt;
This is a json slot which the framework only uses for class definition pages, but could be used for storing any json data on content pages as well (if you make your own templates/forms for this).&lt;br /&gt;
&lt;br /&gt;
=== Example slots of a content page ===&lt;br /&gt;
Let&#039;s say we have a page about a person, this could have the following slots:&lt;br /&gt;
&lt;br /&gt;
csp-base-props:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Base properties&lt;br /&gt;
|Class=Person&lt;br /&gt;
|Title=Example person&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;csp-class-props:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Csp class properties&lt;br /&gt;
|First name=John&lt;br /&gt;
|Last name=Smith&lt;br /&gt;
|Date of birth=1986-03-16&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example slots of a class definition page ===&lt;br /&gt;
To continue the previous example, a &amp;quot;Person&amp;quot; class definition page would have pagename &#039;&#039;&#039;Wiki:Class definition/Person&#039;&#039;&#039; and could have the following slots:&lt;br /&gt;
&lt;br /&gt;
csp-base-props:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Base properties&lt;br /&gt;
|Class=Class definition&lt;br /&gt;
|Title=Person&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;csp-class-props:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Csp class properties&lt;br /&gt;
|Defines class=Person&lt;br /&gt;
|Pagetitle format=title&lt;br /&gt;
|Layout areas=&#039;sub-header sidebar&#039; &#039;main sidebar&#039;&lt;br /&gt;
|Layout columns=3fr 1fr&lt;br /&gt;
|Layout rows=auto 1fr&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;csp-data:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;CspParameterDefinitions&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;First name&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Last name&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Date of birth&amp;quot;,&lt;br /&gt;
            &amp;quot;formfieldTemplate&amp;quot;: &amp;quot;Csp formfield/date&amp;quot;,&lt;br /&gt;
            &amp;quot;displayTemplate&amp;quot;: &amp;quot;Csp parameter display/date&amp;quot;,&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
Open CSP uses the Chameleon skin to be able to display pages with customizable components. The following components are used:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Header:&#039;&#039;&#039; always visible at the top of a page&lt;br /&gt;
* &#039;&#039;&#039;Main&#039;&#039;&#039;: this component displays the content that is stored in the main slot of a page, i.e. the text that is written by users&lt;br /&gt;
* &#039;&#039;&#039;Sub-header&#039;&#039;&#039;: by default shown below the header with &#039;&#039;&#039;Template:Csp default subheader&#039;&#039;&#039;, can be customized through class definitions&lt;br /&gt;
* &#039;&#039;&#039;Sidebar&#039;&#039;&#039;: by default shown on right side with &#039;&#039;&#039;Template:Csp default sidebar&#039;&#039;&#039;, can be customized through class definitions, metadata is displayed in this component&lt;br /&gt;
* &#039;&#039;&#039;Footer&#039;&#039;&#039;: by default not displayed, can be customized through class definitions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Open CSP uses system messages inside these components. These system message contain some logic with various parser functions and Lua functions, in order to display a component based on the slot data of page as well as the slot data of the corresponding class definition page. This logic works as follows:&lt;br /&gt;
&lt;br /&gt;
* A component contains a system message that invokes a Lua function, for example &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:CspComponents|parseComponentIfApplicable|sidebar}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. This Lua function does the following:&lt;br /&gt;
* Retrieve slotdata from current page&lt;br /&gt;
* Get &amp;quot;Class&amp;quot; parameter from slotdata (return if it does not exist)&lt;br /&gt;
* Get class definition pagename corresponding to the class&lt;br /&gt;
* Get slotdata from class definition page (return if it does not exist)&lt;br /&gt;
* If the component is not found in the &amp;quot;Layout areas&amp;quot; parameter of the class definition page, return&lt;br /&gt;
* Parse component template (for example &#039;&#039;&#039;Template:Csp default sidebar&#039;&#039;&#039;, unless a different template is found in the class definition data)&lt;br /&gt;
* Pass all of the slotdata from the current page as well as the class definition slotdata to this template, in the form of an ArrayFunctions export&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Class_definition_customization_options&amp;diff=3084</id>
		<title>DevOps:Doc/Open CSP/2.0/Class definition customization options</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/Open_CSP/2.0/Class_definition_customization_options&amp;diff=3084"/>
		<updated>2023-10-27T18:19:47Z</updated>

		<summary type="html">&lt;p&gt;Charlot: User:Charlot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In &#039;&#039;&#039;Open CSP 2.0&#039;&#039;&#039; the default sidebar was added, this allows you to have sidebars without having to create custom sidebar templates for each class definition. There are some customization options built into the default sidebar as well. It is recommended to use these customization options when possible and to only create fully custom sidebar templates when absolutely necessary, as the fully custom sidebar templates require a lot more maintenance work when for example some parserfunctions get deprecated or changed. This document describes the various customization options.&lt;br /&gt;
&lt;br /&gt;
== Parameters and formfield/display templates ==&lt;br /&gt;
* Edit parameters on a class definition page, to configure what will show up on your sidebar. &lt;br /&gt;
* Note that the parameter configuration is also used for setting properties, but you can use &amp;quot;(none)&amp;quot; as property name value if you don&#039;t want to set a property.&lt;br /&gt;
* Only the &amp;quot;parameter name&amp;quot; field is required. When you only fill this, you will get default text fields in the sidebars.&lt;br /&gt;
* Choose a displayTemplate to configure how a parameter is displayed in the view tab of the default sidebar.&lt;br /&gt;
* Choose a formfieldTemplate to configure what type of form field is used in the edit tab of the default sidebar.&lt;br /&gt;
* DisplayTemplate and formfieldTemplate can both be set to &amp;quot;(none)&amp;quot; to not have a parameter show up in respectively the view and edit tabs of the default sidebar.&lt;br /&gt;
&lt;br /&gt;
== Custom formfield/display templates ==&lt;br /&gt;
* It is possible to add custom template names in the displayTemplate and formfieldTemplate fields.&lt;br /&gt;
* All fields that are filled for a parameter will be passed to the templates so they can be accessed through template parameters there. For example you can use &amp;lt;nowiki&amp;gt;{{{allowedValues|}}}&amp;lt;/nowiki&amp;gt; in a formfieldTemplate. It might be useful to look at the csp-data slot of the class definition to see all of the parameters.&lt;br /&gt;
* The values of parameters on a content page are also passed to the display/formfield templates as the &amp;quot;value&amp;quot; parameter.&lt;br /&gt;
* In a display/formfield template you cannot access values of other parameters directly, but you can do this by using &amp;lt;nowiki&amp;gt;{{#invoke:CspFunctions|getParentArgs|$pageData}}&amp;lt;/nowiki&amp;gt;, which will return the $pageData parameter that is used in &#039;&#039;&#039;Template:Csp default sidebar&#039;&#039;&#039; (and contains an [[mediawikiwiki:Extension:ArrayFunctions|ArrayFunctions]] export with slotdata of the page).&lt;br /&gt;
* It is possible to add fields to the json data in the csp-data slot that cannot be filled through the parameters form. For example Open CSP 2.0 does not yet include the option to specify a placeholder for your formfields, but you can add placeholder to the json data and then use &amp;lt;nowiki&amp;gt;{{{placeholder|}}}&amp;lt;/nowiki&amp;gt; in a custom formfieldTemplate.&lt;br /&gt;
&lt;br /&gt;
== Custom sidebar template where you are adding to the default sidebar ==&lt;br /&gt;
In many cases you won&#039;t necessarily want to replace the default sidebar, but you may want to add another card above or below it with additional functionality. It is possible to use the default sidebar within a custom sidebar template. For example like the following code snippet:&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot;&amp;gt;&lt;br /&gt;
{{Csp default sidebar&lt;br /&gt;
|$pageData={{{$pageData|}}}&lt;br /&gt;
|$classData={{{$classData|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Csp sidebar tabs&lt;br /&gt;
|id=another-card&lt;br /&gt;
|canEdit=yes&lt;br /&gt;
|closeButton=&lt;br /&gt;
|title=Another card&lt;br /&gt;
|subTitle=Below the default sidebar&lt;br /&gt;
|view=&amp;lt;div class=&amp;quot;card-body&amp;quot;&amp;gt;viewtab content&amp;lt;/div&amp;gt;&lt;br /&gt;
|edit=&amp;lt;div class=&amp;quot;card-body&amp;quot;&amp;gt;edittab content&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fully custom sidebar template ==&lt;br /&gt;
In a fully custom sidebar template you can do anything you want. You will still get the $pageData and $classData parameters passed to this template so you can use those. The following is an example of custom sidebar code that will produce a sidebar similar to the default one, perhaps this will give you some ideas for what&#039;s possible:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tab-content&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;sidebar-view&amp;quot; name=&amp;quot;toggle-sidebar&amp;quot; checked=&amp;quot;checked&amp;quot; class=&amp;quot;d-none sidebar-view&amp;quot; /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;card sidebar-view-tab&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-header&amp;quot;&amp;gt;{{#ifeq:{{#ifingroup:user |{{#if:{{#urlget:veaction}}{{#urlget:action}}||yes}} }}|yes |&amp;lt;span style=&amp;quot;float:right&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;sidebar-edit&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot;&amp;gt;Edit&amp;lt;/label&amp;gt;&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;b class=&amp;quot;d-block&amp;quot;&amp;gt;{{#af_get:{{{$pageData}}}|csp-base-props|Base properties|1|Class|_text}}&amp;lt;/b&amp;gt;&lt;br /&gt;
{{#af_get:{{{$pageData}}}|csp-base-props|Base properties|1|Title|_text}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;!-- end of .card-header --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-body&amp;quot;&amp;gt;&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=Title&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-base-props|Base properties|1|Title |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=TextInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TextInput |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=TokenInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TokenInput |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=AskTokenInput&lt;br /&gt;
|Value={{#af_join:{{#af_map:{{#af_split:{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|AskTokenInput |_text}}|,}}|@@|[[{{{@@}}}|{{#show:{{{@@}}}|?Title}}]]}}|&amp;lt;br&amp;gt;}}&lt;br /&gt;
}}{{Test date display&lt;br /&gt;
|Name=DateInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|DateInput |_text}}&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=DateInputTwo&lt;br /&gt;
|Value={{#if:{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|DateInputTwo |_text}} |{{#time: j M Y H:i |{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|DateInputTwo |_text}} }} }}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=TextInputTwo&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TextInputTwo |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=CheckboxInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|CheckboxInput |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=TextAreaInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TextAreaInput |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=NumberInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|NumberInput |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=SelectInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|SelectInput |_text}}&lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=TokenMultipleInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TokenMultipleInput |_text}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!-- end of .card-body --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;!-- end of .card &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#ifeq:{{#ifingroup:user |{{#if:{{#urlget:veaction}}{{#urlget:action}}||yes}} }}|yes |&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; id=&amp;quot;sidebar-edit&amp;quot; name=&amp;quot;toggle-sidebar&amp;quot; class=&amp;quot;d-none sidebar-edit&amp;quot; /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;card sidebar-edit-tab&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;card-header&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;float:right&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;sidebar-view&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot; &amp;gt;Close&amp;lt;/label&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;d-block&amp;quot;&amp;gt;{{#af_get:{{{$pageData}}}|csp-base-props|Base properties|1|Class|_text}}&amp;lt;/b&amp;gt;&lt;br /&gt;
{{#af_get:{{{$pageData}}}|csp-base-props|Base properties|1|Title|_text}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;!-- end of .card-header --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-body&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
// _edits: no edit when formfieldType is set to &amp;quot;(none)&amp;quot;&lt;br /&gt;
--&amp;gt;&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Base properties&amp;quot; formfield=&amp;quot;Title&amp;quot; mwslot=&amp;quot;csp-base-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;TextInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;TokenInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;AskTokenInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;DateInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;DateInputTwo&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;TextInputTwo&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;CheckboxInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;TextAreaInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;NumberInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;SelectInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;TokenMultipleInput&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Csp class properties&amp;quot; formfield=&amp;quot;TestNoDisplay&amp;quot; mwslot=&amp;quot;csp-class-props&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- end of _edits&lt;br /&gt;
&lt;br /&gt;
// form fields&lt;br /&gt;
--&amp;gt;{{Csp sidebar item&lt;br /&gt;
|Label=Title&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;Title&amp;quot; class=&amp;quot;form-control&amp;quot; required=&amp;quot;required&amp;quot; value=&amp;quot;{{#af_get:{{{$pageData}}}|csp-base-props|Base properties|1|Title|_text}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=TextInput&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;TextInput&amp;quot; class=&amp;quot;form-control&amp;quot; required=&amp;quot;required&amp;quot; value=&amp;quot;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TextInput|_text}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=TokenInput&lt;br /&gt;
|Value=&amp;lt;_token id=&amp;quot;token-{{lc:{{anchorencode:TokenInput}} }}&amp;quot; name=&amp;quot;TokenInput[]&amp;quot; class=&amp;quot;form-control&amp;quot; allowclear selected=&amp;quot;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TokenInput|_text}}&amp;quot; options=&amp;quot;Ay,Bee,Cee&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=AskTokenInput&lt;br /&gt;
|Value=&amp;lt;_token id=&amp;quot;token-{{lc:{{anchorencode:AskTokenInput}} }}&amp;quot; name=&amp;quot;AskTokenInput[]&amp;quot; class=&amp;quot;form-control&amp;quot; required=&amp;quot;required&amp;quot; multiple=&amp;quot;multiple&amp;quot;  input-length-trigger=&amp;quot;1&amp;quot; query=&amp;quot;[[Class::+]][[Title::!!!]](limit=999)(returntext=Title)&amp;quot; &amp;gt;&lt;br /&gt;
{{#af_join:{{#af_map:{{#af_split:{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|AskTokenInput|_text}} }} |$value|&amp;lt;option value=&amp;quot;{{{$value}}}&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;{{#show:{{{$value}}}|?Title}}&amp;lt;/option&amp;gt;}}|\n}}&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Test date formfield&lt;br /&gt;
|Name=DateInput&lt;br /&gt;
|Value={{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|DateInput|_text}} &lt;br /&gt;
}}{{Csp sidebar item&lt;br /&gt;
|Label=DateInputTwo&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;datetime-local&amp;quot; name=&amp;quot;DateInputTwo&amp;quot; class=&amp;quot;form-control&amp;quot; value=&amp;quot;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|DateInputTwo|_text}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&#039;alert alert-danger&#039;&amp;gt;No template defined in parameter definitions&amp;lt;/div&amp;gt;{{Csp sidebar item&lt;br /&gt;
|Label=&amp;lt;label for=&amp;quot;checkbox-{{lc:{{anchorencode:CheckboxInput}} }}&amp;quot; &amp;gt;CheckboxInput&amp;lt;/label&amp;gt;&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;CheckboxInput&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;checkbox&amp;quot; id=&amp;quot;checkbox-{{lc:{{anchorencode:CheckboxInput}} }}&amp;quot; name=&amp;quot;CheckboxInput&amp;quot; value=&amp;quot;Yes&amp;quot; checked=&amp;quot;{{#ifeq:{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|CheckboxInput|_text}} |Yes|checked}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=TextAreaInput&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;textarea&amp;quot; name=&amp;quot;TextAreaInput&amp;quot; class=&amp;quot;form-control&amp;quot; &amp;gt;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TextAreaInput|_text}}&amp;lt;/input&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=NumberInput&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;number&amp;quot; name=&amp;quot;NumberInput&amp;quot; class=&amp;quot;form-control&amp;quot; value=&amp;quot;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|NumberInput|_text}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=SelectInput&lt;br /&gt;
|Value=&amp;lt;select name=&amp;quot;SelectInput&amp;quot; class=&amp;quot;form-control&amp;quot; allowclear selected=&amp;quot;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|SelectInput|_text}}&amp;quot; options=&amp;quot;Alpha,Bravo,Charlie&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=TokenMultipleInput&lt;br /&gt;
|Value=&amp;lt;_token id=&amp;quot;token-{{lc:{{anchorencode:TokenMultipleInput}} }}&amp;quot; name=&amp;quot;TokenMultipleInput[]&amp;quot; class=&amp;quot;form-control&amp;quot; multiple=&amp;quot;multiple&amp;quot; selected=&amp;quot;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TokenMultipleInput|_text}}&amp;quot; options=&amp;quot;Alpha,Bravo,Charlie&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Csp sidebar item&lt;br /&gt;
|Label=TestNoDisplay&lt;br /&gt;
|Value=&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;TestNoDisplay&amp;quot; class=&amp;quot;form-control&amp;quot; value=&amp;quot;{{#af_get:{{{$pageData}}}|csp-class-props|Csp class properties|1|TestNoDisplay|_text}}&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;text-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;label for=&amp;quot;sidebar-view&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot;&amp;gt;Close&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;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;
&amp;lt;/div&amp;gt;&amp;lt;!-- end of .card-body --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;!-- end of .card --&amp;gt;&lt;br /&gt;
|}}&amp;lt;!-- end of #ifeq @allow sidebar edit == yes --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Charlot</name></author>
	</entry>
</feed>