medienreaktor / form_double_opt_in
Double Opt-In for the TYPO3 CMS Form Framework
Installs: 13 276
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 2
Forks: 21
Open Issues: 7
Type:typo3-cms-extension
Requires
- ext-json: *
- ext-openssl: *
- typo3/cms-core: ^11.5
- typo3/cms-form: ^11.5
- typo3/cms-scheduler: ^11.5
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.2
- codeception/module-cli: ^1.1
- codeception/module-webdriver: ^1.1
- phpstan/phpstan: ^1.8.2
- ssch/typo3-rector: ^1.2
- typo3/cms-core: 11.*.*@dev
- typo3/cms-frontend: 11.*.*@dev
- typo3/cms-install: 11.*.*@dev
- typo3/coding-standards: ^0.5.0
- typo3/tailor: ^1.2
- typo3/testing-framework: ^6.14.0
README
TYPO3 Extension adding Double Opt-In to the TYPO3 CMS Form Framework
Installation
Just install it as a TYPO3 Extension or with composer require linawolf/form_double_opt_in
.
Then make sure to include the static TypoScript in your template.
Configuration
It is recommended to set the default storagePid to a folder where your Opt-In records should be saved to. This can be done in the constants editor of the template or by setting plugin.tx_formdoubleoptin_doubleoptin.persistence.storagePid
in your TypoScript setup.
Usage
The Double Opt-In process consists of two parts:
1. Double Opt-In Form Finisher
Build your form as usual using the TYPO3 Form Framework backend module. Then add the "Double Opt-In" form finisher and map your fields to the desired fields of the created Opt-In records. Also enter a Page ID where the validation plugin (see below) will be placed.
Available fields in the Opt-In model are:
- Title
- Given name
- Last name
- Email address
- Company
- Customer number
At least the email address or the customer number are mandatory fields.
The user will then get an email with a confirmation link to complete the Double Opt-In process.
2. Validation Plugin
The validation plugin will verify your Opt-In records by checking the confirmation link and mark your records as validated.
Just place the "Double Opt-In" plugin on a page you like and make sure to define this Page ID in the form finisher (see above).
If you want an e-mail to be sent to a certain address after the validation set it up in TypoScript constants.
That's it.
3. Data Privacy
You can set up a scheduler to delete all entries in the opt-in table older then a certain age. This includes entries where the user failed to opt-in to their mail:
Goto System > Scheduler
(admins only) and create a new Scheduled tasks
of Class Table garbage collection
. Chose a
frequency to run the task repetetly and set up a cron job if you have none yet. Then choose for Table to clean up
:
tx_formdoubleoptin_domain_model_optin
and the desired interval. Please note that users who received the email to
double opt in cannot opt in anymore after there opt-in record has been deleted.
More about using the scheduler in the
Manual of the system extension scheduler <https://docs.typo3.org/c/typo3/cms-scheduler/main/en-us/>
__.
It is recommended to delete all Opt-In records right after successful opt-in. For this the following TypoScript constant can be used (enabled by default):
plugin.tx_formdoubleoptin_doubleoptin {
settings {
deleteOptInRecordsAfterOptIn = 1
}
}
Additionally, it is recommended to run the following scheduler tasks on a regular basis:
- recycler: Remove deleted records from database. Select Table Op-In (tx_formdoubleoptin_domain_model_optin).
- scheduler: Table garbage collection. Select table tx_formdoubleoptin_domain_model_optin
Upon deleting records TYPO3 only sets a flag to delete the record. Therefore records concerning data privacy should be deleted hard from the database on a regular basis. Use the recycler task for this.
When a use registers with your form but does not use the double opt-in their data would stay in the database perpetually. Use the table garbage collection to delete all records older then 30 days (or set another date limit).
4. Attribution
This extension is based on medienreaktor/form_double_opt_in
by Daniel Kestler.