Installation 

Quick start 

  1. Install the extension (see Composer below) and run the Database Analyser in the Install Tool.
  2. Load the TypoScript: on TYPO3 v13 and v14 add the Site Set proudnerds/pn-questionnaire to the site configuration, on v12 include the static template Questionnaire / Test / Decision tree. See Loading the TypoScript.
  3. Create a Questionnaire record in the List module — a dedicated sysfolder keeps things tidy.
  4. Add questions, answer options and at least one result page to that record. See Building a questionnaire.
  5. Place the Questionnaire / Decision Tree plugin on a page and select the questionnaire record in its FlexForm.

Composer 

composer require proudnerds/pn-questionnaire
Copied!

TYPO3 picks the extension up automatically; there is nothing to activate by hand.

Classic mode 

Install Questionnaire / Test / Decision tree from the TYPO3 Extension Repository through Admin Tools > Extensions, then activate it there.

Both routes 

After the first install, run the Database Analyser in the TYPO3 Install Tool to create the seven tables, and load the TypoScript as described below.

Upgrading 

Run the Database Analyser again after any update that adds a field; the changelog says so per release. Version 1.1.0 for instance added introduction_footer_text to the questionnaire table. Existing records and plugin settings keep working as they are — no migration wizard is needed.

Loading the TypoScript 

The TypoScript itself lives in Configuration/TypoScript/setup.typoscript and constants.typoscript — a location every supported TYPO3 version understands. It is offered through two routes, both pointing at those same two files:

TYPO3 version Route
14.3 Site Set proudnerds/pn-questionnaire (preferred)
13.4 Site Set proudnerds/pn-questionnaire (preferred)
12.4 Static template Questionnaire / Test / Decision tree

Site Sets were introduced in TYPO3 v13.1 and are ignored by v12, which is why the static template exists. The files in Configuration/Sets/PnQuestionnaire/ contain nothing but an @import of the files above.

On TYPO3 v13 and v14 — Site Set 

Add the set to any site that should use the questionnaire plugin:

config/sites/your-site/config.yaml
dependencies:
  - proudnerds/pn-questionnaire
Copied!

The set name is defined in Configuration/Sets/PnQuestionnaire/config.yaml:

EXT:pn_questionnaire/Configuration/Sets/PnQuestionnaire/config.yaml
name: proudnerds/pn-questionnaire
label: Questionnaire / Test / Decision tree
Copied!

TYPO3 automatically includes setup.typoscript and constants.typoscript from the set directory when the dependency is active.

On TYPO3 v12 — static template 

The extension registers Configuration/TypoScript/ as a selectable static template in Configuration/TCA/Overrides/sys_template.php. Go to Web > Template, open the root template record and add Questionnaire / Test / Decision tree (pn_questionnaire) to Include static (from extensions).

Include it before any site package that overrides the view path constants, otherwise those overrides are undone again.

Do not combine the static template with a site package that already imports EXT:pn_questionnaire/Configuration/TypoScript/setup.typoscript directly — the values are identical so setup stays correct, but a second pass over the constants can override a site package's view path overrides depending on include order.

The retrieval route 

Storing results produces a link of the form /{plugin-page}/saved-result/{token}. An extension cannot register route enhancers itself, so the site configuration has to import the shipped one:

config/sites/your-site/config.yaml
imports:
  - resource: 'EXT:pn_questionnaire/Configuration/Routing/SavedResult.yaml'
Copied!

Without that import the retrieval link still works, but as a query-string URL. See The retrieval route for the details.

Backend search on TYPO3 v14 

On v12 and v13 the records of this extension declare their backend search fields explicitly. TYPO3 v14 dropped that mechanism and derives searchability from the field type instead, so on v14 a search in the list module covers every text-like field of these tables rather than a curated subset. The extension follows each version's own convention; nothing needs configuring.