Integrates server side data privacy conform tracking into TYPO3 https://daniel-siepmann.de/projects/typo3-extension-tracking.html
Find a file
Daniel Siepmann 33685d1735 Add tracking of record views
Allow Integrator to define rules to track views of records.
This allows to add tracking to extensions like tx_news.
Integrators are able to define matching rules on current request. If a
request matches, the record is stored as individual view beside existing
pageview.

Relates: #14
2020-07-30 13:52:33 +02:00
.github/workflows Improve CI 2020-04-07 15:32:29 +02:00
Classes Add tracking of record views 2020-07-30 13:52:33 +02:00
Configuration Add tracking of record views 2020-07-30 13:52:33 +02:00
Documentation/Images Add screenshots to readme (#3) 2020-02-25 22:46:07 +01:00
Resources/Private/Language Add tracking of record views 2020-07-30 13:52:33 +02:00
Tests/Unit Add tracking of record views 2020-07-30 13:52:33 +02:00
.gitignore Add PSR-12 2020-02-25 22:35:29 +01:00
composer.json Require TYPO3 10.4 dev state 2020-04-16 11:54:42 +02:00
ext_emconf.php Prepare usage as standalone composer package 2020-02-25 22:35:28 +01:00
ext_localconf.php Add first basic tracking for page views 2020-02-25 22:35:25 +01:00
ext_tables.sql Add tracking of record views 2020-07-30 13:52:33 +02:00
LICENSE Initial commit 2020-02-25 17:42:14 +01:00
phpcs.xml.dist Improve CI 2020-04-07 15:32:29 +02:00
phpstan.neon Add tracking of record views 2020-07-30 13:52:33 +02:00
phpunit.xml.dist Add Unittests 2020-02-25 22:35:30 +01:00
readme.rst Add operating system to page view record 2020-07-29 09:07:43 +02:00

About

This extension should only demonstrate technical features of TYPO3. It is not intended for use in production systems.

The following features should be demonstrated:

PSR-4 Autoloading Standard

Use composer.json to provide autoloading information. Classes will be loaded when needed. No need for require statements.

PSR-12 Extended Coding Style Guide

Current stable Coding Style Guide, applied via Coding Sniffer.

PSR-7 HTTP Message Interface

Also known as Request Response, used to create tracking information from incoming request.

PSR-11 Container Interface

Also known as Dependency Injection. Used to resolve external dependencies, e.g. foreign classes. Existing TYPO3 factories are used to build QueryBuilder instances. Also DI is "misused" to provide configuration for dashboard widgets and tracking blacklists.

PSR-15 HTTP Handlers

Also known as middlewares. Used to hook into processing to create tracking information.

PSR-14 Event Dispatcher

Not in use yet.

EXT:dashboard

Used to visualize collected tracking information.

Todos

  1. Add 100% code coverage (Widgets are missing)
  2. Add version matrix to test with multiple PHP versions.
  3. Add campaigns if possible (twitter parameter, etc.)
  4. Add referrer if available.
  5. Add device type phone, tablet, desktop?
  6. Add operating system version?
  7. Add further widgets.
    1. Grouped by user agents (bar).
    2. Top 404 requests (Collect them to show them, doughnut).
  8. Move bot detection to another rule.
    1. Keep indexing those requests, but mark them as bot and separate them in widgets.
    2. Provide an overview of crawls as widgets. E.g. to allow fine grained robots.txt.
  9. Add information to Admin Panel.
  10. Add command that will iterate over all DB entries and remove ones matching the black list rule. E.g. if rule is adjusted in meanwhile.

Example

The following widgets are added and could look like:

image

A new record is added which looks like:

image