All Projects → pagemachine → typo3-formlog

pagemachine / typo3-formlog

Licence: GPL-3.0 license
Form log for TYPO3

Programming Languages

PHP
23972 projects - #3 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
Less
1899 projects

Projects that are alternatives of or similar to typo3-formlog

powermail
This is the official repository of the TYPO3 extension powermail! Powermail is a well-known, editor-friendly, powerful and easy mailform extension for TYPO3
Stars: ✭ 76 (+375%)
Mutual labels:  form, typo3, typo3-cms-extension
typo3v10 example sitepackage
Site package extension for TYPO3 10 feature demonstration
Stars: ✭ 13 (-18.75%)
Mutual labels:  typo3, typo3-cms-extension
schema
TYPO3 extension providing an API and view helpers for schema.org markup
Stars: ✭ 19 (+18.75%)
Mutual labels:  typo3, typo3-cms-extension
graphql
TYPO3 CMS package for GraphQL (experimental)
Stars: ✭ 21 (+31.25%)
Mutual labels:  typo3, typo3-cms-extension
restrictfe
TYPO3 extension restrictfe. Blocks access to frontend and allows to show it only to some defined exception's like if the request is from an authorized backend user, has specific IP, header etc.
Stars: ✭ 12 (-25%)
Mutual labels:  typo3, typo3-cms-extension
urlguard
TYPO3 extension urlguard. Allows to define what query parameters will be passed to newly created typolinks.
Stars: ✭ 16 (+0%)
Mutual labels:  typo3, typo3-cms-extension
t3extblog
A record based blog extension for TYPO3 CMS powered by Extbase / Fluid. Flexible and powerful!
Stars: ✭ 30 (+87.5%)
Mutual labels:  typo3, typo3-cms-extension
beuser fastswitch
TYPO3 Backend Mode: Fast backend user switch for TYPO3 CMS administrator users
Stars: ✭ 13 (-18.75%)
Mutual labels:  typo3, typo3-cms-extension
blog
This blog extension uses TYPO3s core concepts and elements to provide a full-blown blog that users of TYPO3 can instantly understand and use.
Stars: ✭ 39 (+143.75%)
Mutual labels:  typo3, typo3-cms-extension
rest
REST webservices for TYPO3 CMS
Stars: ✭ 78 (+387.5%)
Mutual labels:  typo3, typo3-cms-extension
backend debug
Debug support in TYPO3 backend
Stars: ✭ 20 (+25%)
Mutual labels:  typo3, typo3-cms-extension
in2publish core
in2publish Community Version
Stars: ✭ 38 (+137.5%)
Mutual labels:  typo3, typo3-cms-extension
bulma-material-form
Material Design Form Elements for Bulma (CSS Only)
Stars: ✭ 26 (+62.5%)
Mutual labels:  form
vue-auto-form
A vue2 component that helpers to easily create basic forms with automatic insert and update events, and automatic reactive validation.
Stars: ✭ 39 (+143.75%)
Mutual labels:  form
stook
A minimalist design state management library for React.
Stars: ✭ 86 (+437.5%)
Mutual labels:  form
dynamic-input-fields-reactjs
Example of the dynamic input fields in ReactJS
Stars: ✭ 31 (+93.75%)
Mutual labels:  form
vue3-form-validation
Vue Composition Function for Form Validation
Stars: ✭ 18 (+12.5%)
Mutual labels:  form
Rails-4-ElasticSearch-dynamic-facets
Rails 4 ElasticSearch integration with dynamic facets
Stars: ✭ 16 (+0%)
Mutual labels:  form
TextFieldsTraversalController
A controller to manage the traversal of a collection of textfields.
Stars: ✭ 15 (-6.25%)
Mutual labels:  form
GenerateDynamicCustomForm
You can generate a dynamic form view in a few minutes for a signup, add a record. Creating a form is very easy.
Stars: ✭ 18 (+12.5%)
Mutual labels:  form

Form log CI

Form log for TYPO3

Installation

This extension is installable from various sources:

  1. Via Composer:

     composer require pagemachine/typo3-formlog
    
  2. From the TYPO3 Extension Repository

Purpose

One feature absent in the TYPO3 form extension is logging of form data. If you have ever used the now defunct Formhandler extension you know how valuable this can be. You can easily check if form submissions are working as they should, see internal values are generated correctly and perform some basic analysis thanks to exports to CSV or similar.

See our blog post about the TYPO3 form log extension.

Start logging

Logging can be enabled for any form by adding the LogFormData finisher to its form definition:

finishers:
  - ...

  - identifier: LogFormData

  - identifier: Redirect

The LogFormData finisher should be the last finisher or right before the Redirect finisher if used. Logging after a redirect is not possible.

Additional variables stored in the FinisherVariableProvider can also be logged by using the finisherVariables option:

  - identifier: LogFormData
    options:
      finisherVariables:
        MyCustomFinisher:
          - myCustomVariable

The keys within finisherVariables are identifiers of finishers used in a form, the value of each entry is a list of finisher variable names.

Form log module

By default the form log module displays a few basic fields like page, form identifier, language and date of form submission as columns.

Additional columns can be added with the list.columns setting in ext_typoscript_setup.txt:

module.tx_formlog {
  settings {
    list {
      columns {
        100 {
          property = data.email
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.email.properties.label
        }
      }
    }
  }
}

Within list.columns an arbitrary list of columns can be added where the property option refers to a property path in the FormLogEntry domain model. Simply speaking data.* provides access to form data by a form element identifier, e.g. data.email for the value of the form element email. The label option is used to retrieve a translatable label. Usually one can simply use the same label that is used for the field within the form itself.

Similarly finisherVariables.* does the same for additional finisher variables by utilizing the finisher identifier and variable name:

module.tx_formlog {
  settings {
    list {
      columns {
        200 {
          property = finisherVariables.MyCustomFinisher.myCustomVariable
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Formlog/locallang.xlf:formlog.entry.finisherVariables.MyCustomFinisher.myCustomVariable
        }
      }
    }
  }
}

Here myCustomVariable of MyCustomFinisher is added as column to the list.

Form log export

Out of the box form log entries can be exported to CSV and Excel (XLSX). Basic fields of form log entries are exported by default, additional columns can be added with the export.columns setting in ext_typoscript_setup.txt which is configured exactly the same as the list.columns setting:

module.tx_formlog {
  settings {
    export {
      columns {
        100 {
          property = data.firstname
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.firstname.properties.label
        }
        101 {
          property = data.lastname
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.lastname.properties.label
        }
        102 {
          property = data.email
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Form/locallang.xlf:element.email.properties.label
        }
        200 {
          property = finisherVariables.MyCustomFinisher.myCustomVariable
          label = LLL:EXT:my_site/Resources/Private/Language/Extensions/Formlog/locallang.xlf:formlog.entry.finisherVariables.MyCustomFinisher.myCustomVariable
        }
      }
    }
  }
}

Log entry cleanup

The Table garbage collection Scheduler task can be set up to automatically delete old form log entries. Select tx_formlog_entries as Table to clean up and a suitable value for Delete entries older than given number of days, 180 by default.

Testing

All tests can be executed with the shipped Docker Compose definition:

docker-compose run --rm app composer build

Thanks

Development of this package was proudly sponsored by TÜV Hessen.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].