TSconfig

"User TSconfig" and "page TSconfig" are very flexible concepts for adding fine-grained configuration to the backend of TYPO3. It is a text- based configuration system where you assign values to keyword strings, using the TypoScript syntax. The TSconfig Reference describes in detail how this works and what can be done with it.

User TSconfig

User TSconfig can be set for each backend user and group. Configuration set for backend groups is inherited by the user who is a member of those groups. The available options typically cover user settings like those found in the User Settings, configuration of the "Admin Panel" (frontend), various backend tweaks (lock user to IP, show shortcut frame, may user clear all cache?, etc.) and backend module configuration (overriding any configuration set for backend modules in Page TSconfig).

Page TSconfig

Page TSconfig can be set for each page in the page tree. Pages inherit configuration from parent pages. The available options typically cover backend module configuration, which means that modules related to pages (typically those in the Web main module) can be configured for different behaviours in different branches of the tree. It also includes configuration for the FormEngine (Forms to edit content in TYPO3) and the DataHandler (component that takes care of transforming and persisting data structures) behaviours. Again, the point is that the configuration is active for certain branches of the page tree which is very practical in projects running many sites in the same page tree.

Get Page TSConfig via PHP in an extension

When there is the necessity for fetching and loading PageTSconfig, it is recommended for extension developers to make use of the PHP classes:

  • TYPO3\CMS\Core\Configuration\Loader\PageTsConfigLoader
  • TYPO3\CMS\Core\Configuration\Parser\PageTsConfigParser

Usage for fetching all available PageTS in one large string (not parsed yet):

EXT:some_extension/Classes/SomeClass.php
$loader = GeneralUtility::makeInstance(PageTsConfigLoader::class);
$tsConfigString = $loader->load($rootLine);
Copied!

The string can then be put in proper TSconfig array syntax:

EXT:some_extension/Classes/SomeClass.php
$parser = GeneralUtility::makeInstance(
   PageTsConfigParser::class,
   $typoScriptParser,
   $hashCache
);
$pagesTSconfig = $parser->parse(
   $tsConfigString,
   $conditionMatcher
);
Copied!