Installation 

Install with Composer 

composer require vkemeter/opinion
Copied!

Install from the TER 

Without Composer, install the extension from the TYPO3 Extension Repository in Admin Tools > Extensions. Activating it creates the table and the screenshot storage, the next section is not needed then.

Set up the extension 

vendor/bin/typo3 extension:setup
Copied!

This creates

  • the table tx_opinion_feedback for the feedback records,
  • the file storage "Opinion screenshots" with the base path var/opinion/.

Afterwards configure at least the email recipients, see Extension configuration.

Screenshot storage 

Screenshots are stored in a local, non-public file storage below var/opinion/ in the project root, outside the web root. The storage is configured relative to the public path (../var/opinion/), so it stays valid when a deployment switches the release directory. As the path is inside the project root, no entry in $GLOBALS['TYPO3_CONF_VARS']['BE']['lockRootPath'] is needed.

Deployment 

var/opinion/ must survive deployments. Configure it as a shared and writable directory of your deployment tool, for example with Deployer:

deploy.php
add('shared_dirs', ['var/opinion']);
add('writable_dirs', ['var/opinion']);
Copied!

Frontend: enable the admin panel 

The frontend entry point lives in the admin panel, which has to be shown for the user:

  • The site set Opinion: editor feedback (vkemeter/opinion) sets config.admPanel = 1. Add it to the site, in the site configuration or in config/sites/<site>/config.yaml:

    config/sites/<site>/config.yaml
    dependencies:
      - vkemeter/opinion
    Copied!

    The site setting Show the admin panel (opinion.adminPanel.enable, default on) switches it off again for a single site. Without the set, add config.admPanel = 1 to the TypoScript of the site yourself.

  • User TSconfig with at least one enabled admin panel module. Administrators get admPanel.enable.all = 1 from the core, other users need for example:

    admPanel.enable.opinion = 1
    Copied!

    Site sets cannot provide user TSconfig, so this and options.opinion.enable stay in the user or group records.