liquidlight/typo3-form-to-database

Extends the TYPO3 form with a database finisher, to save every form-result in the database.

Package info

github.com/liquidlight/typo3-form-to-database

Homepage

Type:typo3-cms-extension

pkg:composer/liquidlight/typo3-form-to-database

Statistics

Installs: 15โ€‰609

Dependents: 0

Suggesters: 0

Stars: 5

Open Issues: 12

5.3.1 2026-06-12 13:26 UTC

Requires

Suggests

  • mpdf/mpdf: Allows downloading form results as a PDF

Provides

None

Conflicts

None

GPL-3.0-or-later 87a204e47db1a499d252ca9facaa505a7fb9a884

formextensiontypo3save formtypo3 formform to database


README

๐Ÿ‘ Latest Stable Version
๐Ÿ‘ TYPO3
๐Ÿ‘ License

This extension adds an additional finisher to the TYPO3 Form (tx_form) to save the results into the database

composer req liquidlight/typo3-form-to-database

Compatibility

Form to Database TYPO3 Version
5.x 13.4
4.x 12.4
3.x 11.5
2.x 9.5 - 10.4

Introduction

Features

  • No configuration needed
  • No database-changes per form required
  • Shows all results per form in a separate backend module
  • Provides a CSV-download of all results
  • Preview & PDF download of individual form results
  • Automatic deletion of results after a specified number of days (GDPR)

Screenshots

Backend Overview

๐Ÿ‘ Backend Overview

Backend Results

๐Ÿ‘ Backend Results

Installation & setup

  1. composer req liquidlight/typo3-form-to-database (or download from the TYPO3 Extension Repository)
  2. Add the extension as a dependency in your site as a site set
  3. Edit the form you wish to store results for
  4. Add the finisher ("Save the mail to the Database") to your form - it is recommended you place this finisher first

The recommended way to install the extension is by using Composer. In your Composer based TYPO3 project root run composer req liquidlight/typo3-form-to-database.

Installation from TYPO3 Extension Repository (TER)

Download and install the extension form_to_database with the extension manager module.

Setup & Usage

Finisher

To start storing form results:

  1. Install the extension
  2. Edit the form you wish to store results for
  3. Add the finisher ("Save the mail to the Database") to your form - it is recommended you place this finisher first

Command / Scheduler

It's possible to delete the form results by the command line or scheduler (Execute console commands).

Usage:
 form_to_database:deleteFormResults [<maxAge>]

Arguments:
 maxAge Maximum age of form results in days [default: 90]

Options

There are several options available for customisation. To change these, go to Settings -> Configure Extensions -> form_to_database

  • General
    • hideLocationInList - Should the location of the form be hidden on the Form results overview module? (Default: No)
    • displayActiveFieldsOnly - If true will only output active renderables in backendModule and CSV (will not display deleted renderables stored in the formDefinition) (Default: false)
  • CSV Settings
    • csvDelimiter - What character should separate fields in the CSV export (Default: ,)
    • csvOnlyFilenameOfUploadFields - Should the CSV list the whole path or just the file name?
    • csvHtmlSpecialChars - If true will encode special chars (' => &quot;, < => &lt;) (Default: true)

Additional Feature configuration

PDF download of a single result

Contribute

We welcome issues and merge/pull requests. Please don't let conventions or failing tests put you off - we can always fix them once a request is submitted.

Please create an issue at https://github.com/liquidlight/typo3-form-to-database/issues.

Please follow the TYPO3 Commit conventions if you can when committing.

Please use GitLab only for bug-reporting or feature-requests. For support use the TYPO3 community channels

To run tests & linting

The extension uses a modified version of runTests.sh from the TYPO3 core.

You need Podman installed and running to run the tests.

  • Install dependencies with TYPO3 13 and php 8.2:
    • Build/Scripts/runTests.sh -t 13 -p 8.2 -s composer install (-t is currently obsolete, as only v13 is supported and set as default)
  • Run linter:
    • Build/Scripts/runTests.sh -p 8.2 -s lintPhp
    • Build/Scripts/runTests.sh -t 13 -p 8.2 -s lintTypoScript
  • Execute functional tests:
    • Build/Scripts/runTests.sh -p 8.2 -s functional

See help menu for all options: Build/Scripts/runTests.sh --help

Commits should follow TYPO3 Commit Guidelines.

Support

If you need private or personal support, try the TYPO3 Slack channel - #ext-form-to-database or contact us by email on info@liquidlight.co.uk.

Be aware that this support might not be free!

Contributors

Big thanks to the following people

  • โญ๏ธ Philipp Mueller - For providing the original code & extension
  • Markus Hofmann
  • Stig Nรธrgaard Fรฆrch