Installation
Grab in instance from https://github.com/WikibaseSolutions/FlexForm.
Create a "FlexForm" folder in your Wiki extensions folder and extract the files there.
Setup
You can tweak FlexForm to an extent in your Localsettings.php
$wgFlexFormConfig['secure'] = true; //( default is true ). Will render form that make no sense when inspected in the browser
$wgFlexFormConfig['sec_key'] = ""; // A salt key for encryption. Used together with "secure" option. Must be set when using multiple instances of a wiki
$wgFlexFormConfig['auto_save_interval'] = 30000; // Interval time in ms, defaults to 3 minutes (180000 ms). Form is submitted on each interval regardless of changes.
$wgFlexFormConfig['auto_save_after_change'] = 3000; // 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.
$wgFlexFormConfig['auto_save_btn_on'] = 'Autosave on'; // text on the autosave button to toggle on
$wgFlexFormConfig['auto_save_btn_off'] = 'Autosave off'; // text on the autosave button to toggle off
$wgFlexFormConfig['FlexFormDefaultTheme'] = "plain"; // Currently the only form
$wgFlexFormConfig['rc_site_key'] = ""; // reCaptcha site key
$wgFlexFormConfig['rc_secret_key'] = ""; // reCaptcha secret key
$wgFlexFormConfig['file_temp_path'] = ""; // Where to store images temporarily that need to be format converted
$wgFlexFormConfig['can_create_user'] = ""; // Defaults to false. Set to yes if FlexForm is allowed to create new users
$wgFlexFormConfig['filter_input_tags'] = false; // Defaults to true. Will filter all parser arguments to plain text, except value parameters. Will also disallow onClick and onFocus parameter
$wgFlexFormConfig['CreateAndEditForms']['allowedGroups'] = ["sysop","moderator"]; // Defaults to sysop. Only a user in the allowedGroups is able to edit pages with a FlexForm in the source.
$wgFlexFormConfig['CreateAndEditForms']['hideEdit'] = true; // 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.
Finally
Add the following line at the end of your LocalSettings.php to enable the extension :
wfLoadExtension( 'FlexForm' );
Notification/Messages
FlexForm has a notification system build in. This is used to show possible errors or success / custom messages.
To enable this.. add to your header page :
<_form showmessages />