wegmeister / databasestorage
This package adds the ability to store inputs of a form (or other input) into database and export the stored data as xlsx.
Installs: 20 357
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 5
Forks: 7
Open Issues: 6
Type:neos-plugin
Requires
- neos/form: ^5.0
- phpoffice/phpspreadsheet: ^1.2 || ^2.0 || ^3.0
Suggests
- neos/fusion-form: New Form rendering with Fusion and AFX
- dev-master
- 2.1.0
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.2.x-dev
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-fix/prevent-formula-calculation
- dev-feature/papertiger
- dev-neos-4.x
This package is auto-updated.
Last update: 2025-05-05 09:45:40 UTC
README
This package adds the ability to store form submissions into a database and export the stored data as xlsx, xls, ods, csv or html.
Installation
To install the package simply run
composer require wegmeister/databasestorage
Usage
You can add the DatabaseStorage Finisher in the following ways.
Note
Since version 2.1.0
the DatabaseStorage Finisher will add a new form value
databaseStorageIdentifier
that can be used in further finishers.
This value is the identifier of the database entry and can be helpful if you
need to reference the entry in other finishers.
Add DatabaseStorage using YAML definitions
Add the DatabaseStorage a finisher in your form definition/yaml file:
type: 'Neos.Form:Form' identifier: 'some-identifier' label: 'My form' renderables: # Your renderables / form fields go here finishers: - identifier: 'Wegmeister.DatabaseStorage:DatabaseStorageFinisher' options: # The identifier is used to group your data in the database. # You should avoid using the same identifier twice or your data could become a little messed up. identifier: 'my-form-data'
Add DatabaseStorage using the Neos Form Builder
You can also use the DatabaseStorage with the Neos.Form.Builder. You should be able to simply add DatabaseStorage as a finisher to your form.
Don't forget to set a (unique) identifier
!
Add DatabaseStorage using a Fusion Form
You can also use the DatabaseStorage Neos.Fusion.Form action.
Add the following configuration to your form action definition:
databaseStorage {
type = '\\Wegmeister\\DatabaseStorage\\FusionForm\\Runtime\\Action\\DatabaseStorageAction'
options {
identifier = 'identifier-in-backend'
formValues = ${data}
}
}
Available settings
The following settings are available and can be overridden by your Settings.yaml:
Wegmeister: DatabaseStorage: # Creator name of the exported files creator: 'die wegmeister gmbh' # Title for the exported files title: 'Database Export' # Subject for the exported files subject: 'Database Export' # DateTime format if the datetime is included in the export datetimeFormat: 'Y-m-d H:i:s' # Form element types that should not be stored by the finisher (for Node-based forms) nodeTypesIgnoredInFinisher: - 'Neos.Form.Builder:Section' - 'Neos.Form.Builder:StaticText' # Form element types that should not be part of the export (for Node-based forms) nodeTypesIgnoredInExport: - 'Neos.Form.Builder:Section' - 'Neos.Form.Builder:StaticText' - 'Neos.Form.Builder:Password' - 'Neos.Form.Builder:PasswordWithConfirmation'
Cleanup commands
The package comes with cleanup commands to delete data older than a date interval you can define in your settings. You can run the command manually or use a cron job.
Add storages you wish to be cleaned up and define how long the data of each storage should be stored:
Wegmeister: DatabaseStorage: cleanup: # Add storage identifier you wish to be cleaned up storageIdentifier1: # Define how long the data should be stored as date interval # https://www.php.net/manual/en/class.dateinterval.php dateInterval: "P6M" removeFiles: true storageIdentifier2: dateInterval: "P1Y" removeFiles: false
Run the cleanup command for the configured storages:
./flow databasestorage:cleanupconfiguredstorages
You can also run a cleanup command for all existing storages. The command comes with parameters:
Parameter Name | Data Type | Description |
---|---|---|
date-interval | string | Defines which data should be deleted. We use the PHP DateInterval format. You can find more information here. |
include-configured-storages | boolean | If you have configured storages in your settings, you can skip them with this parameter. |
remove-files | boolean | The PersistentResource that is potentially attached to the database storage entry will be removed as well. |
./flow databasestorage:cleanupallstorages --date-interval=P1M --remove-files