Form processor for MODX

Creator: Sterc Agency (sterc)

3.0.4-pl (197 KB) Other Versions


About FormIt

FormIt is a dynamic form processing Snippet for MODX Revolution. It handles form creation, submission, performing validation and followup actions like sending an email and auto replies. Key features:

  • Automatic validation and custom validator options
  • Auto reply to visitor + email to owner(s)
  • Multiple attachments
  • Submitted forms can be automatically saved and encrypted in the Formit component
  • Submitted forms can be exported to CSV, based on filters
  • Redirect to thank-you pages for optimal tracking in your analytics software (e.g. Google Analytics funnels)
  • Add your own hooks as Snippets to handle forms dynamically
  • Spam protection
  • Dynamic country/state dropdown lists

Official documentation here:


October 25, 2017
Supported Versions
2.2 – Current
Supported Database
MySQL, Microsoft SQL Server

New in FormIt 3.0.4

Formit 3.0.4

  • Fix checkbox values not showing in mail

Formit 3.0.3

  • Fix FormItSaveForm to allow multiple fields with same fieldName
  • Add 'saveTmpFiles' FormIt snippet property to enable/disable saving files to tmp directory
  • Remove list() function from formitsaveform snippet for better PHP version compatibility (#98)
  • Fix PHP7 by-reference errors (#98)
  • Replace ereg() functions with pregmatch() for PHP compatibility (#98)
  • Increase precision for FormItForm 'ip' field to allow for IPV6 addresses (#135)
  • Fix issue where in some cases fields are not correctly saved in FormItForm (#92)
  • Optimize FormItForm export class for better performance (#120)
  • Add 'attachFilesToEmail' property to control if files are added as attachment to email (#122)

Formit 3.0.2

  • Fix encryption in formitsaveform snippet to save correct encryptiontype
  • Fix bug in forms grid when decrypting encrypted forms fail
  • Fix migration to check if decrypted data is correct

FormIt 3.0.1

  • Store file uploads in tmp folder to prevent file uploads getting lost in multistep forms
  • Add checks for OpenSSL in classes and encryption CMP tab
  • Add methodexists check to plugin to prevent errors when method not exists
  • Update context-menu in forms-encryption grid to show only encrypt or decrypt
  • Set placeholders for file upload $FILES array
  • Add option to FormItCountryOptions snippet to limit country list to selected countries only (PR#123) - thanks to gadgetto

New in 3.0.0

  • Mcrypt encryption/decryption has been replaced with openSSL due to mcrypt being deprecated in PHP 7.2
  • Added default file-based chunks as objects
  • Added support for pdoTools getChunk method
  • Added French countries for FormItCountryOptions
  • Added Dutch countries for FormItCountryOptions
  • Added ExtJs stateful parameters to CMP tabs

New in 2.2.11

  • Added storeLocation property to FormIt and FormItRetriever. (issue #95, PR #105#106#107)
  • Changed default behaviour of emailReplyTo parameter to fallback to email field in form (issue #101)
  • Changed math hook to store values in session, preventing easy bypass of math hook (issue #64)
  • Add GPM config
  • Fix bug with multiple file upload (PR #104)
  • Add 'hash' field to FormItSaveForm to allow updating of previously saved forms (PR #94)
  • Add FormItLoadSavedForm snippet to retrieve saved forms (PR #94)
  • Fix for export with datefilter (issue #96, PR #97)
  • Add fiarRequired property (PR#83)
  • Update resolver to check for current version to prevent errors on upgrade
  • Add system setting for formencryptkey, to not rely on siteid (issue #68)
  • Fix saved forms export when using encrypted forms (issue #48)

New in 2.2.10

  • Merged PR#58: Added BOM for Excel to understand UTF-8 non-latin symbols properly. (thanks to govza)
  • Merged PR#73: JSON output options for errors and hooks (thans to sepiariver)
  • Merged PR#79: Create German lexicon for FormIt-CMP (thanks to sebastian-marinescu)
  • New in 2.2.9

  • Merging PR#74 from Jako which solves multiple issues.
  • Fix XSS vulnerabilities
  • Javascript code cleanup
  • Fix empty math operator after form submission #d782c29
  • New in 2.2.8

    • Fixed export limit and added form dropdown paging #60
    • Fixed typo property lexicons #57
    • Added templates path to config #63
    • Added loading lexicons in ficountryoptions class #21
    • Added ability to dynamically set formName by setting placeholder inside formName equal to an existing form field key #45

    New in 2.2.7

      • Optimised export

      New in 2.2.6

        • Fixed empty placeholder for file field in autoresponder

        New in 2.2.5

          • Fixed creating table on update
          • Added new tab inside CMP for managing encryption
          • Added missing br on auto emailTpl

          New in 2.2.4

            • Fixed bug inside FormItSaveForm and PR #43

            New in 2.2.3

            • Added encryption to saved forms
            • Added formname to grid
            • Saved form is now returned from the hook
            • Export unlimited items
            • Add RU translation
            • Fixed some bugs

            New in 2.2.2

              • Added CMP for the saved forms
              • Fixed whitespace PR on required checkboxes

              New in 2.2.1

                • Updated numbers generation for math captcha #5
                • German translation #10
                • Added missing formit.notregexp lexicon #15
                • Specify explicitely return-path fixes #19 #20
                • fix addAttachment() typo #23
                • Fixed typo in adding of the attachments #24
                • Add the possibility of redirectTo=formfield #26
                • Added attachments for auto-reply and Added ability to use @CODE as tpl #29
                • Update snippet.formitisselected.php #12
                • Canadian options for FormitStateOptions

                New in 2.2.0

                • [#8382] Prevent issue with checkboxes/radios causing text-parsing problems with required validator
                • Fixed issue with custom error message for vTextPasswordConfirm not respected
                • [#9457] Fixed issue with commas in values causing errors with FormItIsChecked & FormItIsSelected
                • [#9576] Add ability to translate country options
                • Add check for preHook errors before processing postHooks
                • Add option, defaulting true, to trim spaces from sides of values before validation
                • [#8785] Fix ESTRICT error in fiDictionary

                New in 2.1.2

                • Various language updates
                • [#7250] Fix issue with 0 not passing :required filter

                New in 2.1.1

                • [#8204] Fix issue with FormItAutoResponder and processing of MODX tags

                New in 2.1.0

                • [#7620] Allow for MODX tags in email templates, as well as pass-through of snippet properties to tpl
                • [#7502] Add ability to find type of hook by using $hook->type
                • [#8151] More sanity checking for FormItAutoResponder and replyTo addresses
                • Fix useIsoCode issue in FormItCountryOptions
                • Update German translation
                • Enhance validation templating for validationErrorBulkTpl
                • Add &country option to FormItStateOptions to allow loading of non-US states (currently us/de)

                New in 2.0.3

                • Update Czech translation
                • Fix issue with French accents in translation
                • [#6021] Refactor Russian reCaptcha translations
                • [#6618] Standardize XHTML in reCaptcha usage

                New in 2.0.2

                • [#4864] Fix issue with isNumber not allowing blank fields
                • [#5404] Fix issues with checkboxes and array fields in FormItAutoResponder
                • [#5269] Fix issues with checkboxes in various forms in emails
                • [#5792] Update reCaptcha URLs

                New in 2.0.1

                • [#5525] Add &allowFiles property, that when set to 0, prevents file submissions on form
                • [#5484] Fix issue with double validation error spans
                • Fix issue where config was not passed to hooks
                • Update German translation

                New in 2.0.0

                • [#3514] Add ability to customize validator error messages per FormIt form and per field
                • [#4705] Add regexp validator
                • [#5454] Fix issue with customValidators property in 2.0.0-rc2
                • Fix issue with reCaptcha loading in 2.0.0-rc1
                • Major reworking of main FormIt script to be OOP
                • Add over 150 unit tests to prevent regression
                • [#5388], [#5240] Fix issue with FormItCountryOptions and &useIsoCode
                • Fix issue with FormItStateOptions and &useAbbr
                • [#5267] Fix issue with FormItRetriever and array fields

                New in 1.7.0

                • Add ability to have "Frequent Visitors" optgroup in FormItCountryOptions, moving specified countries to the top of the list in an optgroup
                • Add missing property translations for FormItStateOptions snippet
                • Fix small issue with stored values after validation of fields
                • Add FormItStateOptions snippet for easy U.S. state dropdowns
                • Add FormItCountryOptions snippet for easy country dropdowns
                • [#5101] Fix issue with emailMultiSeparator and emailMultiWrapper default values
                • Fix issue with bracketed field names being added as extra fields post-validation with . prefix

                New in 1.6.0

                • [#4708] Add support for bracketed fields, such as contact[name]
                • [#5038] Fix uninitialized variable warnings in reCaptcha service
                • [#4993] Add Italian translation and fix recaptcha links
                • Fix issue where fields could be removed via DOM from form and be bypassed
                • Add &emailMultiSeparator and &emailMultiWrapper properties for handling display of checkboxes/multi-selects in email hook

                New in 1.5.6

                • [#4564] Fix redirectTo with non-web contexts

                New in 1.5.5

                • [#4168] Add emailConvertNewlines property for handling newlines in HTML emails
                • [#4057] Prevent math hook from generating similar numbers
                • [#4302] Cleanups to FormItAutoResponder snippet
                • [#3991] Fix issue with checkbox values in emails

                New in 1.5.4

                • Fix issue with math hook where error placeholders were incorrect
                • Fix issue where emailHtml property was not respected in email hook
                • Fix issue where hooks were not passed customProperties array
                • [#51] Allow blank fields to be passed with :email validator
                • [#55] Allow all fields to be accessed in custom validators

                New in 1.5.3

                • [#40] Add ability to display all error messages in bulk at top, added validationErrorBulkTpl for templating each one
                • [#52] Add a general validation error message property, validationErrorMessage, that shows when validation fails
                • [#53] Fix bug that prevented recaptcha options from working
                • Add a generic validation error placeholder in FormIt to allow for general messages
                • [#50] Trim each hook specification in hooks calls
                • [#49] Ensure reCaptcha service instance is unique for each FormIt instance
                • [#47] Ensure email validator checks for empty string
                • [#42] Can now include field names in error strings via field placeholder
                • [#39] Fix issue with FormItIsChecked/Selected to prevent output from occurring if not checked
                • [#37] Fix allowTags validator to work, and work with parameters encapsulated by ^


                Current Releases

                January 23, 2021
                2.2 – Current
                January 10, 2020
                2.2 – Current
                January 10, 2020
                2.2 – Current
                April 18, 2019
                2.2 – Current
                April 12, 2019
                2.2 – Current
                February 18, 2019
                2.2 – Current
                View Deprecated Releases

                More from Sterc Agency



                Batcher is a batch-editing Extra for MODX Revolution. It allows you…


                SEO Suite

                Toolset for optimising your websites online presence.


                SEO Tab

                The best way to perform in search engines



                Add cropper for images in MODX media manager